>>> from music21 import *
>>> c = chord.Chord(['c3','g#4', 'b5'])
>>> eventList = chordToMidiEvents(c)
>>> eventList
[<MidiEvent DeltaTime, t=0, track=None, channel=None>, <MidiEvent NOTE_ON, t=None, track=None, channel=1, pitch=48, velocity=90>, <MidiEvent DeltaTime, t=0, track=None, channel=None>, <MidiEvent NOTE_ON, t=None, track=None, channel=1, pitch=68, velocity=90>, <MidiEvent DeltaTime, t=0, track=None, channel=None>, <MidiEvent NOTE_ON, t=None, track=None, channel=1, pitch=83, velocity=90>, <MidiEvent DeltaTime, t=1024, track=None, channel=None>, <MidiEvent NOTE_OFF, t=None, track=None, channel=1, pitch=48, velocity=0>, <MidiEvent DeltaTime, t=0, track=None, channel=None>, <MidiEvent NOTE_OFF, t=None, track=None, channel=1, pitch=68, velocity=0>, <MidiEvent DeltaTime, t=0, track=None, channel=None>, <MidiEvent NOTE_OFF, t=None, track=None, channel=1, pitch=83, velocity=0>]
Convert a single MIDI event into a music21 TimeSignature object.
>>> from music21 import key
>>> ks = key.KeySignature(2)
>>> ks
<music21.key.KeySignature of 2 sharps>
>>> eventList = keySignatureToMidiEvents(ks)
>>> eventList[1]
<MidiEvent KEY_SIGNATURE, t=None, track=None, channel=1, data='\x02\x00'>
>>> ks = key.KeySignature(-5)
>>> ks
<music21.key.KeySignature of 5 flats>
>>> eventList = keySignatureToMidiEvents(ks)
>>> eventList[1]
<MidiEvent KEY_SIGNATURE, t=None, track=None, channel=1, data='\xfb\x00'>
>>> from music21 import *
>>> mt = midi.MidiTrack(1)
>>> dt1 = midi.DeltaTime(mt)
>>> dt1.time = 0
>>> me1 = midi.MidiEvent(mt)
>>> me1.type = "NOTE_ON"
>>> me1.pitch = 45
>>> me1.velocity = 94
>>> dt2 = midi.DeltaTime(mt)
>>> dt2.time = 0
>>> me2 = midi.MidiEvent(mt)
>>> me2.type = "NOTE_ON"
>>> me2.pitch = 46
>>> me2.velocity = 94
>>> dt3 = midi.DeltaTime(mt)
>>> dt3.time = 2048
>>> me3 = midi.MidiEvent(mt)
>>> me3.type = "NOTE_OFF"
>>> me3.pitch = 45
>>> me3.velocity = 0
>>> dt4 = midi.DeltaTime(mt)
>>> dt4.time = 0
>>> me4 = midi.MidiEvent(mt)
>>> me4.type = "NOTE_OFF"
>>> me4.pitch = 46
>>> me4.velocity = 0
>>> c = midiEventsToChord([dt1, me1, dt2, me2, dt3, me3, dt4, me4])
>>> c
<music21.chord.Chord A2 B-2>
>>> c.duration.quarterLength
2.0
Convert a single MIDI event into a music21 TimeSignature object.
>>> from music21 import *
>>> mt = midi.MidiTrack(1)
>>> me1 = midi.MidiEvent(mt)
>>> me1.type = "KEY_SIGNATURE"
>>> me1.data = midi.putNumbersAsList([2, 0]) # d major
>>> ks = midiEventsToKeySignature(me1)
>>> ks
<music21.key.KeySignature of 2 sharps>
>>> me2 = midi.MidiEvent(mt)
>>> me2.type = "KEY_SIGNATURE"
>>> me2.data = midi.putNumbersAsList([-2, 0]) # b- major
>>> me2.data
'\xfe\x00'
>>> midi.getNumbersAsList(me2.data)
[254, 0]
>>> ks = midiEventsToKeySignature(me2)
>>> ks
<music21.key.KeySignature of 2 flats>
Convert from a list of MIDI message to a music21 note The inputM21 parameter can be a Note or None; in the case of None, a Note object is created.
>>> from music21 import *
>>> mt = midi.MidiTrack(1)
>>> dt1 = midi.DeltaTime(mt)
>>> dt1.time = 1024
>>> me1 = midi.MidiEvent(mt)
>>> me1.type = "NOTE_ON"
>>> me1.pitch = 45
>>> me1.velocity = 94
>>> dt2 = midi.DeltaTime(mt)
>>> dt2.time = 2048
>>> me1 = midi.MidiEvent(mt)
>>> me1.type = "NOTE_ON"
>>> me1.pitch = 45
>>> me1.velocity = 0
>>> n = midiEventsToNote([dt1, me1, dt2, me1])
>>> n.pitch
A2
>>> n.duration.quarterLength
1.0
Convert a single MIDI event into a music21 TimeSignature object.
>>> from music21 import *
>>> mt = midi.MidiTrack(1)
>>> me1 = midi.MidiEvent(mt)
>>> me1.type = "TIME_SIGNATURE"
>>> me1.data = midi.putNumbersAsList([3, 1, 24, 8]) # 3/2 time
>>> ts = midiEventsToTimeSignature(me1)
>>> ts
<music21.meter.TimeSignature 3/2>
>>> me2 = midi.MidiEvent(mt)
>>> me2.type = "TIME_SIGNATURE"
>>> me2.data = midi.putNumbersAsList([3, 4]) # 3/16 time
>>> ts = midiEventsToTimeSignature(me2)
>>> ts
<music21.meter.TimeSignature 3/16>
>>> from music21 import *
>>> import os
>>> fp = os.path.join(common.getSourceFilePath(), 'midi', 'testPrimitive', 'test05.mid')
>>> mf = midi.MidiFile()
>>> mf.open(fp)
>>> mf.read()
>>> mf.close()
>>> len(mf.tracks)
1
>>> s = midiFileToStream(mf)
>>> len(s.flat.notes)
9
>>> from music21 import *
>>> import os
>>> fp = os.path.join(common.getSourceFilePath(), 'midi', 'testPrimitive', 'test05.mid')
>>> mf = midi.MidiFile()
>>> mf.open(fp)
>>> mf.read()
>>> mf.close()
>>> len(mf.tracks)
1
>>> mt = mf.tracks[0]
>>> s = midiTrackToStream(mt)
>>> len(s.notes)
9
Translate Note to four MIDI events.
>>> from music21 import *
>>> n1 = note.Note()
>>> eventList = noteToMidiEvents(n1)
>>> eventList
[<MidiEvent DeltaTime, t=0, track=None, channel=None>, <MidiEvent NOTE_ON, t=None, track=None, channel=1, pitch=60, velocity=90>, <MidiEvent DeltaTime, t=1024, track=None, channel=None>, <MidiEvent NOTE_OFF, t=None, track=None, channel=1, pitch=60, velocity=0>]
>>> n1.duration.quarterLength = 2.5
>>> eventList = noteToMidiEvents(n1)
>>> eventList
[<MidiEvent DeltaTime, t=0, track=None, channel=None>, <MidiEvent NOTE_ON, t=None, track=None, channel=1, pitch=60, velocity=90>, <MidiEvent DeltaTime, t=2560, track=None, channel=None>, <MidiEvent NOTE_OFF, t=None, track=None, channel=1, pitch=60, velocity=0>]
>>> from music21 import note
>>> n1 = note.Note()
>>> n1.quarterLength = 6
>>> mf = noteToMidiFile(n1)
>>> mf.tracks[0].events
[<MidiEvent DeltaTime, t=0, track=1, channel=None>, <MidiEvent SEQUENCE_TRACK_NAME, t=0, track=1, channel=None, data=''>, <MidiEvent DeltaTime, t=0, track=1, channel=None>, <MidiEvent NOTE_ON, t=None, track=1, channel=1, pitch=60, velocity=90>, <MidiEvent DeltaTime, t=6144, track=1, channel=None>, <MidiEvent NOTE_OFF, t=None, track=1, channel=1, pitch=60, velocity=0>, <MidiEvent DeltaTime, t=0, track=1, channel=None>, <MidiEvent END_OF_TRACK, t=None, track=1, channel=1, data=''>]
>>> from music21 import *
>>> s = stream.Stream()
>>> n = note.Note('g#')
>>> n.quarterLength = .5
>>> s.repeatAppend(n, 4)
>>> mf = streamToMidiFile(s)
>>> len(mf.tracks)
1
>>> len(mf.tracks[0].events)
20
Returns a music21.midi.base.MidiTrack object based on the content of this Stream. This assumes that this Stream has only one Part. For Streams that contain sub-streams, use streamToMidiTracks.
>>> from music21 import *
>>> s = stream.Stream()
>>> n = note.Note('g#')
>>> n.quarterLength = .5
>>> s.repeatAppend(n, 4)
>>> mt = streamToMidiTrack(s)
>>> len(mt.events)
20
Translate a m21 TiemSignature to a pair of events, including a DeltaTime.
>>> from music21 import *
>>> ts = meter.TimeSignature('5/4')
>>> eventList = timeSignatureToMidiEvents(ts)
>>> eventList[0]
<MidiEvent DeltaTime, t=0, track=None, channel=None>
>>> eventList[1]
<MidiEvent TIME_SIGNATURE, t=None, track=None, channel=1, data='\x05\x02\x18\x08'>