Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from mididings import *
- from mididings.engine import *
- from mididings.event import *
- class HiHatController:
- def __init__(self):
- self.pedal = -1
- self.open = 1;
- self.close = 0;
- def __call__(self, ev):
- if ev.type_ == CTRL and ev.param == 4:
- self.pedal = ev.value
- print "pedal ", self.pedal
- if ev.value < 20:
- self.open = 1
- self.close = 0
- return None
- elif ev.value >= 35: # <--- questo probabilmente va abbassato a 30
- self.close = 1
- if self.open == 1 and self.close == 1:
- self.open = 0
- self.close = 0
- print "banzai!"
- return [
- NoteOffEvent(ev.port, ev.channel, 39, 127),
- NoteOffEvent(ev.port, ev.channel, 40, 127),
- NoteOffEvent(ev.port, ev.channel, 41, 127),
- NoteOffEvent(ev.port, ev.channel, 42, 127),
- NoteOffEvent(ev.port, ev.channel, 43, 127),
- NoteOffEvent(ev.port, ev.channel, 46, 127),
- NoteOffEvent(ev.port, ev.channel, 47, 127),
- NoteOffEvent(ev.port, ev.channel, 48, 127),
- NoteOffEvent(ev.port, ev.channel, 49, 127),
- NoteOffEvent(ev.port, ev.channel, 50, 127),
- ]
- elif ev.type_ == NOTEON and (ev.note == 37 or ev.note == 44) and self.pedal != -1:
- var = ev.note
- if(self.pedal < 1):
- ev.note += 6;
- elif(self.pedal < 5):
- ev.note += 5;
- elif(self.pedal < 10):
- ev.note += 4;
- elif(self.pedal < 20):
- ev.note += 3;
- elif(self.pedal < 35):
- ev.note += 2;
- elif(self.pedal < 85):
- ev.note += 1;
- print "note in=", var, " out=", ev.note
- return ev
- run([
- Filter(NOTEOFF) >> Discard(),
- Filter(NOTEON|CTRL) >> Process(HiHatController())
- ] >> Velocity(gamma=0.75)
- )
Advertisement
Add Comment
Please, Sign In to add comment