Overviews (extension) | Conductor | GUI | External Control > MIDI | External Control > OSC

CVCenter
ExtensionExtension

a library aiming at the easy use of external hard- and software controllers within SuperCollider

CVCenter is built upon the concept of CVs by Ron Kuivila. Its name-giving class CVCenter holds a collection of CVs and allows the user to easily create widgets that let her/him easily connect external MIDI- or OSC-controllers. CVs, respectively widgets as their graphical representation, can be created from Synth-, Ndef-, NodeProxy-controls as well as CVCenter can be used in connection with slots of a ProxySpace or a Patch created from an Instr. As CV inherits from Stream CVs may be used in Patterns as well (just like you would embed a regular Pattern in another).

Classes

Widgets

Utilities

Helpers

Extensions to other Classes

Examples

Ndef(\sawTest, { |damping| SinOsc.ar(damping * VarSaw.ar(\sawFreq.kr([100, 101]))).tanh * \amp.kr(0.5) });

// Ndefs don't have metadata but you may add some specs ahead from creation
Spec.add(\sawFreq, \freq);
Spec.add(\damping, #[200, 20000, \exp, 0.0, 1000, " Hz"]);

// create the GUI
// have a look at the NodeProxy helpfile to see all possible arguments for cvcGui
Ndef(\sawTest).cvcGui;

// play the Ndef (turn the knobs if you don't hear anything immediately)
Server.default.waitForBoot{ Ndef(\sawTest).play };

// maybe play around with specs a bit...
#[lo, hi].do(CVCenter.cvWidgets[\sawFreq].setSpec(#[20, 220, \exp], _);
CVCenter.cvWidgets[\sawFreq].setSpec(#[17, 170, \exp], \lo);

// clean up
CVCenter.removeAll;
Ndef(\sawTest).clear(10);