def notate_score(musician_names, instrument_names, music): score = Score() for musician_name, instrument_name in zip(musician_names, instrument_names): instrument = get_instrument(instrument_name) instrument.partName = instrument.instrumentName instrument.partAbbreviation = instrument.instrumentAbbreviation parts = [] part = Part() parts.append(part) part.insert(0, instrument) score.insert(0, part) score.insert(0, StaffGroup(parts)) notes = music[musician_name] for pitches in notes: if not pitches or pitches == 'stop': note = Rest() elif len(pitches) == 1: pitch = Pitch(pitches[0] + 60) note = Note(pitch) else: note = Chord(notes=[Pitch(p + 60) for p in pitches]) duration = Duration() duration.fill([4.0]) note.duration = duration part.append(note) score.show('musicxml', '/Applications/Sibelius 7.5.app')
# new[0] += normal(dur[0], dur[1]) # new[1] += normal(freq[0], freq[1]) notes.append(new) total_dur += new[0] return MIDIReader.list_to_stream(notes) if __name__ == '__main__': snn = SonataNeuralNetwork() for midi in listdir(music_dir): print midi snn.read(path.join(music_dir, midi)) print 'training' t_net, b_net = snn.train_network() # snn.append_errors() # td, tf, bd, bf = snn.get_error_vals() treble = stream_from_notes([[1, log(261.6)], [1, log(329.6)], [1, log(392)], [1, log(329.6)], [1, log(392)], [1, log(523.3)]], t_net) treble.insert(0, clef.TrebleClef()) bass = stream_from_notes([[0.5, log(130.8)], [0.5, log(164.8)], [0.5, log(196)], [1, log(261.6)], [0.5, log(196)], [1, log(164.8)]], b_net) bass.insert(0, clef.BassClef()) s = Score() s.append(treble) s.append(bass) bass.offset = 0 s.show()
from music21.instrument import fromString as get_instrument from music21.clef import BassClef timestamp = datetime.datetime.utcnow() metadata = Metadata() metadata.title = 'The Title' metadata.composer = 'Jonathan Marmor' metadata.date = timestamp.strftime('%Y/%m/%d') score = Score() score.insert(0, metadata) part = Part() parts = [part] oboe = get_instrument('oboe') part.insert(0, oboe) score.insert(0, part) score.insert(0, StaffGroup(parts)) for dur in [[1, .5], [.25], [.25, 2]]: pitch = Pitch(60) note = Note(pitch) duration = Duration() duration.fill(dur) note.duration = duration part.append(note) score.show('musicxml', '/Applications/Sibelius 7.5.app')
return MIDIReader.list_to_stream(notes) if __name__ == '__main__': snn = SonataNeuralNetwork() for midi in listdir(music_dir): print midi snn.read(path.join(music_dir, midi)) print 'training' t_net, b_net = snn.train_network() # snn.append_errors() # td, tf, bd, bf = snn.get_error_vals() treble = stream_from_notes( [[1, log(261.6)], [1, log(329.6)], [1, log(392)], [1, log(329.6)], [1, log(392)], [1, log(523.3)]], t_net) treble.insert(0, clef.TrebleClef()) bass = stream_from_notes( [[0.5, log(130.8)], [0.5, log(164.8)], [0.5, log(196)], [1, log(261.6)], [0.5, log(196)], [1, log(164.8)]], b_net) bass.insert(0, clef.BassClef()) s = Score() s.append(treble) s.append(bass) bass.offset = 0 s.show()