def get_songs(path): files = glob.glob('{}/*.mid*'.format(path)) songs = [] for f in tqdm(files): try: song = np.array(midi_manipulation.midiToNoteStateMatrix(f)) if np.array(song).shape[0] > 50: songs.append(song) except Exception as e: raise e return songs
def get_songs(path): files = glob.glob('{}/*.mid*'.format(path)) songs = [] for f in tqdm(files): try: song = np.array(midi_manipulation.midiToNoteStateMatrix(f)) if np.array(song).shape[0] > 50: songs.append(song) except Exception as e: raise e return songs
def getStateMatrices(): files = list_midis() stateMatrices = [] i = 1 for f in files: matrix = np.array(midi_manipulation.midiToNoteStateMatrix(f)) if matrix.shape[0]>75: stateMatrices.append(matrix) os.system('clear') print "Loaded %d/%d files..."%(i, len(files)) i = i+1 return stateMatrices
def get_files(path): songs = [] for a, b, c in os.walk(path): for f in c: song = os.path.join(a, f) try: n = np.array(midi_manipulation.midiToNoteStateMatrix(song)) songs.append(n) except Exception as e: print("error: {} on file: {}".format(e, f)) return songs
def get_songs(path): # search inside the path folder and read all files with .mid extension files = glob.glob(f'{ path }/*.mid*') songs = [] for f in tqdm(files): try: song = np.array(midi_manipulation.midiToNoteStateMatrix(f)) if np.array(song).shape[0] > 50: songs.append(song) except Exception as e: raise e return songs
def get_songs(path): # TODO: refine file choices # TODO: replace Pop_Music_Midi with out pop music repo files = glob.glob('{}/*.mid*'.format(path)) songs = [] for f in tqdm(files): try: song = np.array(midi_manipulation.midiToNoteStateMatrix(f)) if np.array(song).shape[0] > 50: songs.append(song) except Exception as e: raise e return songs
def menu(output="output"): files = get_files() songs = np.zeros((0, 156)) for f in tqdm(files): try: song = np.array(midi_manipulation.midiToNoteStateMatrix(f)) songs = np.concatenate((songs, song)) except Exception as e: raise e print("samples merging ...") print(np.shape(songs)) if (not ".mid" in output): output += ".mid" midi_manipulation.noteStateMatrixToMidi(songs, output)
def create_dataset(min_length): songs = glob.glob('/home/elias/Documents/MuseScore2/Scores/mid/*.mid*') encoded_songs = [] discarded = 0 for song in songs: encoded_song = midi_manipulation.midiToNoteStateMatrix(song) encoded_song = make_one_hot_notes(encoded_song) if len(encoded_song) >= min_length: encoded_songs.append(encoded_song) else: discarded += 1 print("{} songs processed".format(len(songs))) print("{} songs discarded".format(discarded)) return encoded_songs
def get_histogram(midi_file): """ Given a midi file, convert the midi file into state matrix and add all matrices to get the frequency of each note in the song """ song = midi_manipulation.midiToNoteStateMatrix(midi_file) song = np.array(song) x, y = song.shape total = np.zeros(y, ) for i in range(x): total += song[i] return total
def menu(output="output"): files = get_files() songs = np.zeros((0,156)) for f in tqdm(files): try: song = np.array(midi_manipulation.midiToNoteStateMatrix(f)) if np.array(song).shape[0] > 10: #songs.append(song) songs = np.concatenate((songs,song)) except Exception as e: raise e print "samples merging ..." print np.shape(songs) if(not ".mid" in output): output+=".mid" midi_manipulation.noteStateMatrixToMidi(songs, output) miditomp3.midi_to_mp3(output) os.remove(output)
import numpy as np from tqdm import tqdm import glob #sudo pip install msgpack-python import msgpack import midi_manipulation #files = glob.glob('{}/*.mid*'.format(path)) try: files = glob.glob('generated*.mid*') except Exception as e: raise e songs = np.zeros((0, 156)) for f in tqdm(files): try: song = np.array(midi_manipulation.midiToNoteStateMatrix(f)) if np.array(song).shape[0] > 10: #songs.append(song) songs = np.concatenate((songs, song)) except Exception as e: raise e print "samlpes merging ..." print np.shape(songs) midi_manipulation.noteStateMatrixToMidi(songs, "final")
highest_note = 102 # the index of the highest note on the piano roll note_range = highest_note - lowest_note # the note range # files = glob.glob('{}/*.mid*'.format('midis')) files = glob.glob('{}/*.mid*'.format('midis')) songs = [] pos = 0 neg = 0 print(len(files)) counter = 0 for i, file in enumerate(files): try: if i % 10 == 0: print(i) song = np.asarray(midiToNoteStateMatrix(file)) if len(song) < 2: pos += 1 print(pos) os.remove(file) else: neg += 1 end = (np.floor(song.shape[0] / num_timesteps) * num_timesteps).astype(np.int16) song = song[:end] song2 = np.hstack([song[:, 1:], np.zeros([song.shape[0], 1])]) song3 = np.hstack([song2[:, 1:], np.zeros([song.shape[0], 1])]) noteStateMatrixToMidi(song, name=("mynewdata/sample_" + str(i)))
def generate_feedable_song_from_file(midi_file): with open(midi_file, "r") as f: song = np.array(midi_manipulation.midiToNoteStateMatrix(f)) if not np.array(song).shape[0] > SONG_SLICE_START + SONG_SLICE_COUNT: raise Exception("MIDI File too short.") return slice_song(song)
# author chinabluewu@github import numpy as np from tqdm import tqdm import glob #sudo pip install msgpack-python import msgpack import midi_manipulation #files = glob.glob('{}/*.mid*'.format(path)) try: files = glob.glob('generated*.mid*') except Exception as e: raise e songs = np.zeros((0,156)) for f in tqdm(files): try: song = np.array(midi_manipulation.midiToNoteStateMatrix(f)) if np.array(song).shape[0] > 10: #songs.append(song) songs = np.concatenate((songs,song)) except Exception as e: raise e print "samlpes merging ..." print np.shape(songs) midi_manipulation.noteStateMatrixToMidi(songs, "final")
import midi import midi_manipulation as mm import numpy as np #pattern = midi.read_midifile("try.mid") notestatematrix = mm.midiToNoteStateMatrix( "Pop_Music_Midi/Around The World - Chorus.midi") count = 0 for track in notestatematrix: count += 1 print(len(track)) print(count) """ statematrix = mm.midiToNoteStateMatrix("Pop_Music_Midi/All The Small Things - Chorus.midi") span = 78 statematrix = np.array(statematrix) if not len(statematrix.shape) == 3: statematrix = np.dstack((statematrix[:, :span], statematrix[:, span:])) statematrix = np.asarray(statematrix) pattern = midi.Pattern() track = midi.Track() pattern.append(track)