[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sc-users] MOTÖR49/61
Hi.
I used to use a BCF2000 which recently died.
So I got myself a "new"[1] controller with motorized faders.
And wrote a quark for using it with SC.
https://github.com/mlang/Motorized.quark
I am aware of the ControlSurface quark, but I wasn't really able to do
with it what I wanted. MOTOR is a pretty simple convenience class
that provides a proxy for every type of control available on the MOTÖR.
Examples
// Initialise on a Linux system.
(
MIDIClient.init(verbose: false);
MIDIIn.connectAll;
MIDIClient.destinations.detectIndex {|ep|
ep.device == "MOTÖR49 Keyboard" and: ep.name == "MOTÖR49 Keyboard MIDI 1"
} !? {|index|
MOTOR.midiOut = MIDIOut(0).connect(index);
MOTOR.fader(\master, \db, s.volume = _).value = s.volume.volume;
MOTOR.stop({ thisProcess.stop });
MOTOR.play({ thisProcess.run });
MOTOR.record({ if(s.isRecording, { s.stopRecording }, { s.record }) });
};
)
// Basic keyboard.
(
~notes = Array.newClear(128);
MOTOR.noteOn(\unipolar, {|amp, num|
~notes[num] = Synth(\default,
[\freq, num.midicps, \amp, amp]
)
});
MOTOR.noteOff({|vel, num| ~notes[num].set(\gate, 0) });
)
// Use the faders to "draw" sin, cos and tan functions.
(
var faders, resolution, offset, draw;
faders = Array.fill(24, {|i| MOTOR.fader(i+1, \bipolar) });
resolution = MOTOR.encoder(1, [8, 8+128, \lin, 1], {
offset.spec = [
0, resolution.value-8, \lin,
1, min(offset.value, resolution.value-8)
];
draw.value
});
draw = {
#[\sin, \cos, \tan].do{|f, i|
8.do {|j|
faders[(i*8)+j].value = (pi*2/(resolution.value-1)*(j+offset.value)).perform(f)
}
}
};
offset = MOTOR.encoder(2, [0, resolution.value-8, \lin, 1], {
draw.value
});
draw.value
)
[1]: Behringer doesn't make them anymore. However, amazon.de still has
two new models in stock...
--
CYa,
⡍⠁⠗⠊⠕
_______________________________________________
sc-users mailing list
info (subscription, etc.): http://www.birmingham.ac.uk/facilities/ea-studios/research/supercollider/mailinglist.aspx
archive: https://listarc.bham.ac.uk/marchives/sc-users/
search: https://listarc.bham.ac.uk/lists/sc-users/search/