aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Runge <dave@sleepmap.de>2021-01-01 13:36:41 +0100
committerDavid Runge <dave@sleepmap.de>2021-01-01 13:36:41 +0100
commit3d97d8760ae4e13e1821b2e5f175b368dc99ae37 (patch)
tree58c3d145149f32e3cc73d683b21343679693cfa9
parent7f0d95d34b412322f0af17dc55db9dab4fd6d0cb (diff)
downloadzzz-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.rst80
1 files 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
<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>
-