python_midi.py~
1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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)