def cast_top_level_prolation_pairs(top_level_prolation_pairs): tokens = cast_tokens() pairs = top_level_prolation_pairs[:] for instrument_indices, weights in tokens: instrument_pair_lists = [] for instrument_index in instrument_indices: instrument_pair_list = pairs[instrument_index] instrument_eighths = [pair[0] for pair in instrument_pair_list] parts = sequencetools.split_sequence_cyclically_with_overhang(instrument_eighths, weights) lengths = [len(part) for part in parts] instrument_pair_list = sequencetools.partition_sequence_by_counts(instrument_pair_list, lengths) instrument_pair_lists.append(instrument_pair_list) rebuilt_pair_lists = [] for i, parts in enumerate(zip(*instrument_pair_lists)): #print(i, parts) if i % 3 == 1: rebuilt_pair_lists.append((parts[0], ) * len(parts)) else: rebuilt_pair_lists.append(parts) rebuilt_pair_lists = zip(*rebuilt_pair_lists) rebuilt_pair_lists = [ sequencetools.flatten_sequence(x, depth = 1) for x in rebuilt_pair_lists] rebuilt_pair_lists = [list(x) for x in rebuilt_pair_lists] for instrument_index, rebuilt_pair_list in zip( instrument_indices, rebuilt_pair_lists): pairs[instrument_index] = rebuilt_pair_list return pairs
def cast_top_level_eighths(top_level_eighths): tokens = cast_tokens() top_level_eighths = top_level_eighths[:] #print(top_level_eighths) for instrument_indices, weights in tokens: instruments = [] for instrument_index in instrument_indices: instrument = top_level_eighths[instrument_index] parts = sequencetools.split_sequence_cyclically_by_weights_with_overhang( instrument, weights) instruments.append(parts) #print(instruments) rebuilt_instruments = [] for i, parts in enumerate(zip(*instruments)): #print(i, parts) if i % 3 == 1: rebuilt_instruments.append((parts[0], ) * len(parts)) else: rebuilt_instruments.append(parts) rebuilt_instruments = zip(*rebuilt_instruments) rebuilt_instruments = [sequencetools.flatten_sequence(x) for x in rebuilt_instruments] rebuilt_instruments = [list(x) for x in rebuilt_instruments] #print(rebuilt_instruments) for instrument_index, rebuilt_instrument in zip( instrument_indices, rebuilt_instruments): top_level_eighths[instrument_index] = rebuilt_instrument return top_level_eighths
def depict_cast_schedule(): tokens = cast_tokens() start_stops = [] for token in tokens: start, stop = print_cast_line(token) start_stops.append((start, stop)) start_stops.sort() print(start_stops)