diff --git a/musique.txt b/musique.txt new file mode 100644 index 0000000..fd5232b --- /dev/null +++ b/musique.txt @@ -0,0 +1,80 @@ +midi.Pattern(format=1, resolution=220, tracks=\ +[midi.Track(\ + [midi.TimeSignatureEvent(tick=0, data=[4, 2, 24, 8]), + midi.KeySignatureEvent(tick=0, data=[0, 0]), + midi.EndOfTrackEvent(tick=1, data=[])]), + midi.Track(\ + [midi.ControlChangeEvent(tick=0, channel=0, data=[91, 58]), + midi.ControlChangeEvent(tick=0, channel=0, data=[10, 69]), + midi.ControlChangeEvent(tick=0, channel=0, data=[0, 0]), + midi.ControlChangeEvent(tick=0, channel=0, data=[32, 0]), + midi.ProgramChangeEvent(tick=0, channel=0, data=[24]), + midi.NoteOnEvent(tick=0, channel=0, data=[64, 72]), + midi.NoteOnEvent(tick=0, channel=0, data=[55, 70]), + midi.NoteOnEvent(tick=231, channel=0, data=[64, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[62, 72]), + midi.NoteOnEvent(tick=231, channel=0, data=[62, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[60, 71]), + midi.NoteOnEvent(tick=231, channel=0, data=[60, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[62, 79]), + midi.NoteOnEvent(tick=206, channel=0, data=[55, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[62, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[64, 85]), + midi.NoteOnEvent(tick=0, channel=0, data=[55, 79]), + midi.NoteOnEvent(tick=231, channel=0, data=[64, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[64, 78]), + midi.NoteOnEvent(tick=231, channel=0, data=[64, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[64, 74]), + midi.NoteOnEvent(tick=462, channel=0, data=[55, 0]), + midi.NoteOnEvent(tick=0, channel=0, data=[64, 0]), + midi.NoteOnEvent(tick=50, channel=0, data=[62, 75]), + midi.NoteOnEvent(tick=0, channel=0, data=[55, 77]), + midi.NoteOnEvent(tick=231, channel=0, data=[62, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[62, 77]), + midi.NoteOnEvent(tick=231, channel=0, data=[62, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[62, 75]), + midi.NoteOnEvent(tick=462, channel=0, data=[55, 0]), + midi.NoteOnEvent(tick=0, channel=0, data=[62, 0]), + midi.NoteOnEvent(tick=50, channel=0, data=[64, 82]), + midi.NoteOnEvent(tick=0, channel=0, data=[55, 79]), + midi.NoteOnEvent(tick=231, channel=0, data=[64, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[67, 84]), + midi.NoteOnEvent(tick=231, channel=0, data=[67, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[67, 75]), + midi.NoteOnEvent(tick=462, channel=0, data=[55, 0]), + midi.NoteOnEvent(tick=0, channel=0, data=[67, 0]), + midi.NoteOnEvent(tick=50, channel=0, data=[64, 73]), + midi.NoteOnEvent(tick=0, channel=0, data=[55, 78]), + midi.NoteOnEvent(tick=231, channel=0, data=[64, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[62, 69]), + midi.NoteOnEvent(tick=231, channel=0, data=[62, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[60, 71]), + midi.NoteOnEvent(tick=231, channel=0, data=[60, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[62, 80]), + midi.NoteOnEvent(tick=206, channel=0, data=[55, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[62, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[64, 84]), + midi.NoteOnEvent(tick=0, channel=0, data=[55, 79]), + midi.NoteOnEvent(tick=231, channel=0, data=[64, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[64, 76]), + midi.NoteOnEvent(tick=231, channel=0, data=[64, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[64, 74]), + midi.NoteOnEvent(tick=231, channel=0, data=[64, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[64, 77]), + midi.NoteOnEvent(tick=206, channel=0, data=[55, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[64, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[62, 75]), + midi.NoteOnEvent(tick=0, channel=0, data=[55, 78]), + midi.NoteOnEvent(tick=231, channel=0, data=[62, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[62, 74]), + midi.NoteOnEvent(tick=231, channel=0, data=[62, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[64, 81]), + midi.NoteOnEvent(tick=231, channel=0, data=[64, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[62, 70]), + midi.NoteOnEvent(tick=206, channel=0, data=[55, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[62, 0]), + midi.NoteOnEvent(tick=25, channel=0, data=[60, 73]), + midi.NoteOnEvent(tick=0, channel=0, data=[52, 72]), + midi.NoteOnEvent(tick=974, channel=0, data=[60, 0]), + midi.NoteOnEvent(tick=0, channel=0, data=[52, 0]), + midi.EndOfTrackEvent(tick=1, data=[])])]) diff --git a/python-midi b/python-midi new file mode 160000 index 0000000..4b7a229 --- /dev/null +++ b/python-midi @@ -0,0 +1 @@ +Subproject commit 4b7a229f6b340e7424c1fccafa9ac543b9b3d605 diff --git a/python_midi.py b/python_midi.py new file mode 100755 index 0000000..d92a4fc --- /dev/null +++ b/python_midi.py @@ -0,0 +1,70 @@ +import sys +import os +import re + +def midi_treatment_file(midi_file): + os.system("mididump.py " + midi_file + ">musique.txt") + f = open("musique.txt","r") + texte=f.read() + midi_frame = texte.split("),") + midi_note_events = [] + i = 0 + while (i < len(midi_frame)-1): + if(("midi.NoteOn" in midi_frame[i]) or ("midi.NoteOff" in midi_frame[i])): + midi_note_events.append(midi_frame[i]) + i+=1 + else: + i+=1 + + data = [] + ticks = [] + j = 0 + while (j < len(midi_note_events)): + data.append(midi_note_events[j][45:70]) + ticks.append(midi_note_events[j][26:29]) + data[j] = data[j].replace('=','') + data[j] = re.sub('[a-zA-Z]','',data[j]) + ticks[j] = ticks[j].replace(',','') + j+=1 + + a = 0 + while (a < len(ticks)): + ticks[a] = int(ticks[a]) + a+=1 + + pitches=[] + velocity=[] + k = 0 + while (k < len(data)): + pitches.append(data[k][0:3]) + pitches[k] = pitches[k].replace('[','') + pitches[k] = pitches[k].replace(',','') + k+=1 + + l = 0 + while (l < len(pitches)): + pitches[l] = int(pitches[l]) + l+=1 + + k = 0 + while (k < len(data)): + velocity.append(data[k][4:len(data)-1]) + velocity[k] = velocity[k].replace(']','') + k+=1 + + l = 0 + while (l < len(pitches)): + velocity[l] = int(velocity[l]) + l+=1 + + return (pitches,velocity,ticks) + +def main(args): + (p,v,t) = midi_treatment_file("python-midi/mary.mid") + n = 0 + while (n < len(p)): + print("Note : " + str(p[n]) + "Velocite : "+ str(v[n]) + "Tick : " + str(t[n])) + n+=1 + print "\n" + +main(sys.argv) diff --git a/python_midi.py~ b/python_midi.py~ new file mode 100755 index 0000000..c4be125 --- /dev/null +++ b/python_midi.py~ @@ -0,0 +1,70 @@ +import sys +import os +import re + +def midi_treatment_file(midi_file): + os.system("mididump.py " + midi_file + ">musique.txt") + f = open("musique.txt","r") + texte=f.read() + midi_frame = texte.split("),") + midi_note_events = [] + i = 0 + while (i < len(midi_frame)-1): + if(("midi.NoteOn" in midi_frame[i]) or ("midi.NoteOff" in midi_frame[i])): + midi_note_events.append(midi_frame[i]) + i+=1 + else: + i+=1 + + data = [] + ticks = [] + j = 0 + while (j < len(midi_note_events)): + data.append(midi_note_events[j][45:70]) + ticks.append(midi_note_events[j][26:29]) + data[j] = data[j].replace('=','') + data[j] = re.sub('[a-zA-Z]','',data[j]) + ticks[j] = ticks[j].replace(',','') + j+=1 + + a = 0 + while (a < len(ticks)): + ticks[a] = int(ticks[a]) + a+=1 + + pitches=[] + velocity=[] + k = 0 + while (k < len(data)): + pitches.append(data[k][0:3]) + pitches[k] = pitches[k].replace('[','') + pitches[k] = pitches[k].replace(',','') + k+=1 + + l = 0 + while (l < len(pitches)): + pitches[l] = int(pitches[l]) + l+=1 + + k = 0 + while (k < len(data)): + velocity.append(data[k][4:len(data)-1]) + velocity[k] = velocity[k].replace(']','') + k+=1 + + l = 0 + while (l < len(pitches)): + velocity[l] = int(velocity[l]) + l+=1 + + return (pitches,velocity,ticks) + +def main(args): + (p,v,t) = midi_treatment_file("nom_fichier.mid") + n = 0 + while (n < len(p)): + print("Note : " + str(p[n]) + "Velocite : "+ str(v[n]) + "Tick : " + str(t[n])) + n+=1 + print "\n" + +main(sys.argv) -- libgit2 0.21.2