«Controlling DSI tetra with Supercollider--some examples» by jamescaf

on 25 Oct'17 14:16 in midi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
s.boot;

MIDIClient.init;
// check the array of midi destinations for the device you are using, and then create a MIDIOut
//   at the index of the destination you plan on using
// in the case that the midi destination you are using is the first in the destinations array:
m = MIDIOut(0); 

//playing a simple pattern of midi notes to the hardware synth listening to midi channel 1
// see also the documentation page "Pattern Guide Cookbook 04: Sending MIDI"
(
Pbind(
	\type, \midi,
	\midicmd, \noteOn,
	\midiout, m,
	\chan, 0,
	\midinote, Pseq([48, 67, 52], inf), // C, G, E
	\dur, Pseq([4, 2, 2], inf),
	\legato, 1.01,
	\amp, 1,
).play;
)

// sending a control message. second argument is control number, third is control value:
m.control(0, 23, 110);

//NRPN control of filter pole on DSI Tetra:
//   first, set parameter number (24 in this case)
//   set most significant byte for parameter number (0 in this case)
m.control(0, 99, 0);
//   then least significant byte for parameter number (24 in this case)
m.control(0, 98, 24);
// then set value (1 for 4 pole)
//   first set most significant byte for this value (0 in this case)
m.control(0, 6, 0);
//   then least significant byte for parameter number (1 in this case)
m.control(0,38, 1);
raw 1281 chars (focus & ctrl+a+c to copy)
reception
comments