diff --git a/dico_akai.py b/dico_akai.py new file mode 100644 index 0000000..200742c --- /dev/null +++ b/dico_akai.py @@ -0,0 +1,79 @@ +midi_note={} + +midi_note[0]=262 +midi_note[1]=277 +midi_note[2]=294 +midi_note[3]=311 +midi_note[4]=330 +midi_note[5]=349 +midi_note[6]=370 +midi_note[7]=392 +midi_note[8]=415 +midi_note[9]=440 +midi_note[10]=466 +midi_note[11]=494 +midi_note[12]=523 +midi_note[13]=554 +midi_note[14]=587 +midi_note[15]=622 +midi_note[16]=659 +midi_note[17]=698 +midi_note[18]=740 +midi_note[19]=784 +midi_note[20]=831 +midi_note[21]=880 +midi_note[22]=932 +midi_note[23]=988 +midi_note[24]=1046 +midi_note[25]=1109 +midi_note[26]=1175 +midi_note[27]=1244 +midi_note[28]=1318 +midi_note[29]=1397 +midi_note[30]=1480 +midi_note[31]=1568 +midi_note[32]=1661 +midi_note[33]=1760 +midi_note[34]=1865 +midi_note[35]=1975 +midi_note[36]=2093 +midi_note[37]=2217 +midi_note[38]=2349 +midi_note[39]=2489 +midi_note[40]=2637 +midi_note[41]=2794 +midi_note[42]=2960 +midi_note[43]=3136 +midi_note[44]=3322 +midi_note[45]=3520 +midi_note[46]=3729 +midi_note[47]=3951 +midi_note[48]=4186 +midi_note[49]=4435 +midi_note[50]=4698 +midi_note[51]=4978 +midi_note[52]=5274 +midi_note[53]=5588 +midi_note[54]=5920 +midi_note[55]=6272 +midi_note[56]=6645 +midi_note[57]=7040 +midi_note[58]=7458 +midi_note[59]=7902 +midi_note[60]=8372 +midi_note[61]=8870 +midi_note[62]=9396 +midi_note[63]=9956 +midi_note[64]=10548 +midi_note[65]=11176 +midi_note[66]=11840 +midi_note[67]=12544 +midi_note[68]=13290 +midi_note[69]=14080 +midi_note[70]=14918 +midi_note[71]=15804 +midi_note[72]=16744 +midi_note[73]=17740 +midi_note[74]=18792 +midi_note[75]=19912 +midi_note[76]=21098 diff --git a/test2.py b/test2.py new file mode 100644 index 0000000..807d62c --- /dev/null +++ b/test2.py @@ -0,0 +1,86 @@ +from ctypes import * +from RPi import GPIO +from threading import Thread +from threading import Event +import dico_akai +import ctypes as ct +import signal +import sys + +_lib = ct.cdll.LoadLibrary("./libanalysemidi.so") + +class Evenement(Structure): + _fields_ = [("type", ct.c_int),("note", ct.c_int), ("velocity",ct.c_int)] + +_lib.wait_event.restype = Evenement + +class FD(Thread): + + def __init__(self, pin): + Thread.__init__(self); + self.pin = pin + self.running = False + + def run(self): + p = GPIO.PWM(self.pin,1) + p.start(50) + self.running = True + while self.running: + e.wait() + if r.type == 0: + p.ChangeFrequency(dico_akai.midi_note[r.note]) + if r.type == 1: + p.ChangeFrequency(1) + e.clear() + + def stop(self): + self.running = False + +def fin_du_live(signal, frame): + print("fin du live") + e.set() + fd1.stop() + fd2.stop() + fd1.join() + fd2.join() + GPIO.cleanup() + _lib.close() + sys.exit(0) + +signal.signal(signal.SIGINT, fin_du_live) +_lib.recup_num() +_lib.init_seq() +_lib.create_port() +_lib.connect_port() +#Initialisation des FDs +GPIO.setmode(GPIO.BCM) +#FD1 +GPIO.setup(23,GPIO.OUT) +GPIO.setup(24,GPIO.OUT) +GPIO.setup(25,GPIO.OUT) +#FD2 +GPIO.setup(16,GPIO.OUT) +GPIO.setup(20,GPIO.OUT) +GPIO.setup(21,GPIO.OUT) +#PWM +GPIO.setup(18,GPIO.OUT) +GPIO.setup(13,GPIO.OUT) +#Act FD1 +GPIO.output(23,GPIO.LOW) +GPIO.output(24,GPIO.LOW) +GPIO.output(25,GPIO.LOW) +#Act FD2 +GPIO.output(16,GPIO.LOW) +GPIO.output(20,GPIO.LOW) +GPIO.output(21,GPIO.LOW) + +r = _lib.wait_event() +e = Event() + +fd1 = FD(13) +fd2 = FD(18) +fd1.start() +fd2.start() +while(True): + r = _lib.wait_event() + e.set() -- libgit2 0.21.2