// title: Controlling DSI tetra with Supercollider--some examples // author: jamescaf // description: // code: 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);