diff --git a/conv-midi-mikro.py b/conv-midi-mikro.py index 32a0564..2f69b96 100644 --- a/conv-midi-mikro.py +++ b/conv-midi-mikro.py @@ -3,24 +3,31 @@ import time import winsound import math + +#plays a Note through windows def playNote(freq, dur): winsound.Beep(freq, dur) - - - +#convert a note to a frequency def noteToFreq(note): return (2**((note-69)/12))*440 +#select which midi channel you want to convert. Can be multiple, but it often doesn't work. Not like anything else does. channelIsole = [0] -file = mido.MidiFile("laputa.mid") +# set the midi file here +file = mido.MidiFile("MIDIs/laputa.mid") + +# use this to modify the tempo. tempoMult = 1/1 + +# use this to modify the key. I've found out my routerboards is less tone deaf with a higher key. Mileage will vary. freqMult = 1.3 +# start of the shitty code tabNote = [msg for msg in file] -print(f"tab lenght is {len(tabNote)}") +# print(f"tab lenght is {len(tabNote)}") note1 = tabNote[0] note2 = tabNote[0] i = 0 @@ -31,11 +38,8 @@ biMode = False out = open("out.txt",'w') while i < len(tabNote): - # print(tabNote[i]) -# while i < 5000: - while((not isFound) and i < len(tabNote)): - print("b1", i, tabNote[i]) + # print("b1", i, tabNote[i]) if tabNote[i].type == "note_on": if(tabNote[i].channel in channelIsole): note1 = tabNote[i] @@ -44,11 +48,11 @@ while i < len(tabNote): isFound = False - print("found note 1", i-1, note1) + # print("found note 1", i-1, note1) while((not isFound) and i < len(tabNote)): - print("b2", i, tabNote[i]) + # print("b2", i, tabNote[i]) if tabNote[i].type == "note_off": if(tabNote[i].channel in channelIsole ): note2 = tabNote[i] @@ -65,10 +69,10 @@ while i < len(tabNote): isFound = False if(biMode): - print("######") - print("lol",note1) - print("mdr",note2) - print("######") + # print("######") + # print("lol",note1) + # print("mdr",note2) + # print("######") freq = int(noteToFreq(note1.note)) duration = int((note1.time + note2.time) *1000) # in ms @@ -76,7 +80,7 @@ while i < len(tabNote): if(duration == 0): duration = 150 - print(freq, duration) + # print(freq, duration) #if(msg.time>0.1): # playNote(freq, int(duration*tempoMult))