indices = np.random.choice(88, chord_size, replace=False, p=[i / sum(preds) for i in preds]) for index in indices: next.append(index) rounded_preds[index] = 1 chord_size_and_preds = np.append(chord_size_zeroed, rounded_preds) p = np.array( [np.append(p[0], np.array([chord_size_and_preds]), axis=0)]) p = np.delete(p, 0, 1) nexties.append([pno_pitcher(i) for i in next]) print() # print(nexties) # simple_pno_mari = simple_pno_mari[start_index:start_index+maxlen] # simple_pno_mari=[[pno_pitcher(i[j]) for j in range(len(i))] for i in simple_pno_mari] tot_music = nexties notes = [] time = 0.0 for i in tot_music: dur = 2.0 / 16.0 for j in i: notes.append([pno_numberer(j) * 2, time, dur, 30]) time += dur midi_generator(notes, 'feldman_dream_3.3.again.mid', sustain='yes')
import random import sys import pretty_midi from data import midi_numberer, pno_numberer, grade_and_chorder, pno_pitcher from algs import midi_generator mari_287_to_310 = [['d4'],['g4','c5'],['f4'],['af3','ef5'],['d4'],['g4','c5'],['f4'],['af3','ef5'],['f4'],['g5','ef5'],\ ['df4'],['c6','ef5'],['f4'],['bf3','ef4'],['d4'],['gs5','a5','ef5'],['d4'],['b3','c5'],['ef4'],['c6','df5'],\ ['f5'],['bf4','ef6'],['df5'],['d4','c6'],['ef4'],['af4','df5'],['fs4'],['a3','e5'],['ef4'],['af4','df5'],\ ['fs4'],['a3','e5'],['fs4'],['af5','e5'],['d4'],['cs6','e5'],['fs4'],['b3','e5'],['ds4'],['a5','bf5','e5'],['ds4'],['c4','cs5'],\ ['e4'],['cs6','d5'],['fs5'],['b4','e6'],['d5'],['ef4','cs6']] simple_pno_mari = [] for i in mari_287_to_310: partial = [] for j in i: partial.append(pno_numberer(j)) simple_pno_mari.append(partial) simple_keyboard_mari = np.zeros((len(mari_287_to_310), 88), dtype=bool) for i, item in enumerate(simple_pno_mari): for j in item: simple_keyboard_mari[i][j] = 1.0 print('score length:', len(simple_keyboard_mari)) # cut the text in semi-redundant sequences of maxlen characters maxlen = 12 step = 1 phrases = [] next_notes = []
def expander(set): g = [(i, 0.5) for i in set] return g mari_pg_8_partial = [(16, [(i[0][0], 0)] + expander(i[1])) for i in mari_pg_8_partial] tot_length = len(mari_pg_8_partial) * 16 * 2 simple_pno_mari = [] for i in mari_pg_8_partial: for j in range(32): next = [] for k in i[1]: if k[1] == j / 2.0: next.append(pno_numberer(k[0])) simple_pno_mari.append(next) simple_keyboard_mari = np.zeros((len(simple_pno_mari), 88), dtype=bool) for i, item in enumerate(simple_pno_mari): for j in item: simple_keyboard_mari[i][j] = 1.0 largest_chord = 4 chord_size = [len(i) for i in simple_pno_mari] chord_size_nn = np.zeros([len(chord_size), largest_chord], bool) for i, item in enumerate(chord_size): chord_size_nn[i][item] = 1 simple_keyboard_mari = np.concatenate((chord_size_nn, simple_keyboard_mari), axis=1)