CSOUND INTERFACE FOR BCF2000 MIDI CONTROLLER Olivier Baudouin 44100 10 2 44100 10 2 true false true true true true true true false false true true true true false true 0 false test kenv port gkfad1*5, 0.1 kfrq port gkfad2, 0.1 aout oscil kenv, kfrq, 1 outs aout, aout pyBCF2000 CSOUND INTERFACE FOR BCF2000 MIDI CONTROLLER 8 commutateurs rotatifs : gkrot1..8 ----> contrôleurs 9 à 16 et 41 à 48 rotatifs push (Toggle OFF) : gkpush1..8 ----> contrôleurs 64 à 71 1er étage de 8 boutons (Toggle OFF) : gkbut1..8 ----> contrôleurs 72 à 79 2e étage de 8 boutons (Toggle ON) : gkbut9..16 ----> contrôleurs 80 à 87 8 faders : gkfad1..8 ----> contrôleurs 1 à 8 et 33 à 40 pavé de 4 bouton : gkpav1..4 ----> contrôleurs 88 à 91 1. Utiliser un séquenceur (Rosegarden) pour les essais 2. Enregistrer les contrôleurs dans un fichier de contrôle avec foutk (idéal : un déclencheur pour Rosegarden) 3. Désactiver le MIDI et jouer le fichier de contrôle avec fink L'idéal : avoir un déclencheur de type 'jacktransport' pour éviter de naviguer d'une interface à l'autre gkfad1 init 0 gkfad2 init 0 gkfad3 init 0 gkfad4 init 0 gkfad5 init 0 gkfad6 init 0 gkfad7 init 0 gkfad8 init 0 gkrot1 init 0 gkrot2 init 0 gkrot3 init 0 gkrot4 init 0 gkrot5 init 0 gkrot6 init 0 gkrot7 init 0 gkrot8 init 0 gkpush1 init 0 gkpush2 init 0 gkpush3 init 0 gkpush4 init 0 gkpush5 init 0 gkpush6 init 0 gkpush7 init 0 gkpush8 init 0 gkbut1 init 0 gkbut2 init 0 gkbut3 init 0 gkbut4 init 0 gkbut5 init 0 gkbut6 init 0 gkbut7 init 0 gkbut8 init 0 gkbut9 init 0 gkbut10 init 0 gkbut11 init 0 gkbut12 init 0 gkbut13 init 0 gkbut14 init 0 gkbut15 init 0 gkbut16 init 0 gkpav1 init 0 gkpav2 init 0 gkpav3 init 0 gkpav4 init 0 i<INSTR_ID> <PROCESSING_START> <TOTAL_DUR> ### BCF2000 MIDI controller - CSOUND ### canal = 1 test = 1 # 0 = no test ; 1 = print value ; 2 = print commande/variable name # ne pas oublier de transférer les init vers global init1+init2 dans instrument out1_a = ["k"+str(x) for x in range(1,33)] out2_a = ["gkpush"+str(x) for x in range(1,9)] out2_b = ["gkbut"+str(x) for x in range(1,17)] out2_c = ["gkpav"+str(x) for x in range(1,5)] out2_d = ["kvoid"+str(x) for x in range(1,5)] out1, out2 = "", "" out2_e = out2_a+out2_b+out2_c+out2_d strI2 = "%s init 0\n" strD2_1 = "printk2 %s\n" strD2_2 = """printf "%s %s", %s, %s\n""" j2 = 0 init2 = "" disp2 = "\n" ######## 1 ######## for i in out1_a: out1 += i+", " out1 = out1.rstrip(', ')+" slider32 "+str(canal)+", \\\n" out1 = out1.replace('0,', '0, \\\n') ######## 2 ######## for i in out2_e: out2 += i+", " j2 += 1 if j2 < 29: init2 += strI2 % (i) if test == 1: disp2 += strD2_1 % (i) if test == 2: disp2 += strD2_2 % (i, "%i" ,i ,i) out2 = out2.rstrip(', ')+" slider32 "+str(canal)+", \\\n" out2 = out2.replace('0,', '0, \\\n') init2 += "\n" par1 = "" par2 = "" strP1 = "%i, 0, 127, 0, 0, \\\n" strP2 = "%i, 0, 127, 0, 0, \\\n" cal1 = "" strG1 = "gk%s%i = k%i+127*k%i\n" type1 = "fad" strI1 = "gk%s%i init 0\n" strD1_1 = "printk2 gk%s%i\n" strD1_2 = """printf "gk%s%i %s", gk%s%i, gk%s%i\n""" disp1 = "\n" init1 = "" ####### paramètres 1 ####### for i in range(1, 17): par1 += strP1 %(32+i) + strP1 %(i) if i > 8: type1 = "rot" cc = i-8 else: cc = i cal1 += strG1 %(type1, cc, 2*i-1, 2*i) init1 += strI1 %(type1, cc) if test == 1: disp1 += strD1_1 %(type1, cc) if test == 2: disp1 += strD1_2 %(type1,cc,"%i",type1,cc,type1,cc) par1 = par1.rstrip(", \\\n")+"\n\n" ####### paramètres 2 ####### for i in range(1, 33): cc = i+63 par2 += strP2 %(cc) par2 = par2.rstrip(", \\\n")+"\n\n" instrument = out1+par1 + out2+par2 + cal1 + disp1+disp2 # init1+init2 + false 0.0 1 Master 0.0 false false 2 Master 0.0 false false Master Master 0.0 false false f1 0 4096 10 1 csound -Wdo devaudio -L stdin false false 2.0 0.0 root -10066279 0 true 64 0 false 1.0 0 5 12.8125 0.0 GenericScore -12566464 2 i1 0 120 true 0.0 -1.0 false false false