From 3d97d8760ae4e13e1821b2e5f175b368dc99ae37 Mon Sep 17 00:00:00 2001 From: David Runge Date: Fri, 1 Jan 2021 13:36:41 +0100 Subject: Make README more generic README.rst: Make information more generic by providing non-device-specific examples. Remove .addVCO() from examples (this needs to be reworked in the context of ZZZDevice class expansion. Add ES-8 to the list of supported devices. --- README.rst | 80 +++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/README.rst b/README.rst index ba1cff0..992941a 100644 --- a/README.rst +++ b/README.rst @@ -7,15 +7,18 @@ Supported devices ----------------- * |es-3| +* |es-8| Features -------- -* convenience methods to convert between midi, frequency, amplitude and - corresponding output voltage -* **ZZZConstant**: a *SynthDef* for constant pitch (use helper functions to - convert your input to amplitude - the *\mul* parameter) -* **ZZZClock**: a *SynthDef* for clock signals. Responds to Frequencies +* **SynthDefs** for specific types of signals (clock and gate). +* Class methods to convert between MIDI notes, frequency, amplitude and + corresponding output voltage. +* Instance methods to add, set and remove clock and gate signals on specific + hardware outputs. +* Documentation (in *.schelp* format) for the **ZZZ**, **ZZZDevice** and + **ZZZError** classes. Installation ------------ @@ -26,56 +29,51 @@ installation corresponds to |quark_installation|. Usage ----- -ES-3 -____ - -To create a new object interfacing your |es-3|, instantiate the *ZZZES3* class -with an Array holding your eight ADAT output channels: +To create an object interfacing your hardware device, instantiate the +**ZZZDevice** class with an Array of Integers representing your eight ADAT +channels connected to the module and the server instance in use: .. code:: supercollider - // RME Babyface example - ~es3 = ZZZES3(Array.series(8, 4, 1)); + // RME Babyface example, when creating output bus channels for all hardware + // outputs of the audio interface + ~device = ZZZDevice.new(server: s, channels: Array.series(8, 4, 1)); .. note:: - | The instantiation of *ZZZES3* conveniently makes the outputs of the - |es-3| available in a numbering range from 1-8 (as displayed on the + | The instantiation of *ZZZDevice* conveniently makes the outputs of the + device available in a numbering range from 1-8 (as displayed on the hardware). | Generally, in |supercollider| channel numbering starts with 0, though! -To interface with your module on one of the eight |es-3| outputs, you can use -one of the *SynthDefs* added by the *ZZZ* class, such as *\ZZZConstant* (for -constant pitch) or *\ZZZClock* (for clock): - - .. code:: supercollider - - // start Synth \ZZZClock at ES-3 output 8 with a speed of 240bpm (defaults - // to 120bpm) - ~es3.addClock(8, (240/60)); +To interface with your module on one of the eight outputs, you can make use of +the *SynthDefs* added by the *ZZZ* class: .. code:: supercollider - // start Synth '\ZZZConstant' at ES-3 output 7 with a multiplication factor - // corresponding to the note C5 - ~es3.addVCO(7, ZZZ.cpsamp(523.251)); - - -Just like with any other *Synth* instance, you can now change their settings: + // create a tempo (240bpm), which can be used by e.g. multiple clocks on outputs + ~device.addTempo(slot: 1, tempo: (240/60)); + + // the tempo can be changed manually + ~device.setTempo(slot: 1, tempo: (180/60)); + + // start clock on output 8 using the tempo at slot 1 + ~device.addClock(output: 8, slot: 1); + + // remove the clock + ~device.removeClock(output: 8); .. code:: supercollider - // change clock speed at output 8 to 300bpm - ~es3.setClock(8, (300/60)); - - .. code:: supercollider - - // change constant pitch on output 7 to A4 - ~es3.setVCO(7, ZZZ.midiamp(69)); + // start a gate on output 7 + ~device.addGate(output: 7); +Both tempos and gates can be altered using control *Busses* exposed in +*.tempoBusses* and *.gateBusses* (respectively). Background ---------- + | Modular synthesizers are controllable through several ranges of voltage. | However, |cv_gate| as defined by |doepfer| in the |a100_manual| might not be coherently used throughout all Eurorack modules. @@ -89,6 +87,11 @@ Background filters or oscillators), you might have to make some adjustments to your module, to get "in tune". +License +------- + +This code is licensed under the terms of the GPL-3.0-or-later. + .. |supercollider| raw:: html SuperCollider @@ -101,6 +104,10 @@ Background ES-3 +.. |es-8| raw:: html + + ES-8 + .. |quark_installation| raw:: html the way quarks are installed @@ -120,4 +127,3 @@ Background .. |c_musical_note| raw:: html range of 12 octaves - -- cgit v1.2.3-70-g09d2