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