diff options
author | David Runge <dave@sleepmap.de> | 2021-01-01 13:36:41 +0100 |
---|---|---|
committer | David Runge <dave@sleepmap.de> | 2021-01-01 13:36:41 +0100 |
commit | 3d97d8760ae4e13e1821b2e5f175b368dc99ae37 (patch) | |
tree | 58c3d145149f32e3cc73d683b21343679693cfa9 | |
parent | 7f0d95d34b412322f0af17dc55db9dab4fd6d0cb (diff) | |
download | zzz-3d97d8760ae4e13e1821b2e5f175b368dc99ae37.tar.gz zzz-3d97d8760ae4e13e1821b2e5f175b368dc99ae37.tar.bz2 zzz-3d97d8760ae4e13e1821b2e5f175b368dc99ae37.tar.xz zzz-3d97d8760ae4e13e1821b2e5f175b368dc99ae37.zip |
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.
-rw-r--r-- | README.rst | 80 |
1 files changed, 43 insertions, 37 deletions
@@ -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 <a href="https://supercollider.github.io/" target="_blank">SuperCollider</a> @@ -101,6 +104,10 @@ Background <a href="http://www.expert-sleepers.co.uk/es3.html" target="_blank">ES-3</a> +.. |es-8| raw:: html + + <a href="http://www.expert-sleepers.co.uk/es8.html" target="_blank">ES-8</a> + .. |quark_installation| raw:: html <a href="https://github.com/supercollider-quarks/quarks#installing-a-quark" target="_blank">the way quarks are installed</a> @@ -120,4 +127,3 @@ Background .. |c_musical_note| raw:: html <a href="https://en.wikipedia.org/wiki/C_(musical_note)" target="_blank">range of 12 octaves</a> - |