Initial commit
This commit is contained in:
commit
778fe31c38
35 changed files with 1849 additions and 0 deletions
42
level4.py
Normal file
42
level4.py
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
"""
|
||||
Niveau 4
|
||||
Jouer des accords
|
||||
|
||||
Ne pas introduire le facteur d'amplitude avant d'avoir entendu le résultat sans lui
|
||||
"""
|
||||
|
||||
import synthlib, math, sys
|
||||
|
||||
music = synthlib.midi()
|
||||
|
||||
active = {}
|
||||
wait = 0
|
||||
tt = 0
|
||||
t = 0
|
||||
loop = True
|
||||
|
||||
sound_encoder = synthlib.SoundEncoder()
|
||||
while loop:
|
||||
if wait == 0:
|
||||
while True:
|
||||
event = music[tt]
|
||||
tt += 1
|
||||
if event.type == synthlib.Note:
|
||||
if event.velocity == 0:
|
||||
if event.number in active:
|
||||
active.pop(event.number)
|
||||
sys.stderr.write("pop "+str(event.number)+"\n")
|
||||
else:
|
||||
active[event.number] = event.velocity
|
||||
sys.stderr.write(str(event.velocity)+" "+str(event.number)+" ("+str(len(active))+")\n")
|
||||
elif event.type == synthlib.Wait:
|
||||
wait = int(event.value*8000)
|
||||
break
|
||||
elif event.type == synthlib.End:
|
||||
loop = False
|
||||
break
|
||||
else:
|
||||
wait -= 1
|
||||
|
||||
sound_encoder.write_sample(sum([active[number]*math.sin(t/16000*440*2**(number/12)*2*math.pi) for number in active])/max(1,len(active)))
|
||||
t += 1
|
||||
Loading…
Add table
Add a link
Reference in a new issue