ZZZ

Interface with Expert Sleepers Eurorack modules

ZZZ

SuperCollider classes to interface with Expert Sleepers devices.

Supported devices

Features

  • 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

The classes are an extension of the SuperCollider language (sclang), therefore their installation corresponds to how Quarks are installed.

Usage

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:

// 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 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 outputs, you can make use of the SynthDefs added by the ZZZ class:

// 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);
// 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 <https://en.wikipedia.org/wiki/CV/gate> as defined by Doepfer in the A100 manual might not be used coherently throughout all Eurorack modules.
The ZZZ classes nonetheless try to adhere to the standard, while at the same time providing convenience functions to low-level conversion.
By default the helper functions are able to convert frequencies in the range of twelve octaves (between C-2 and C10) to an output between -5V and 7V (adhering to the 1V/octave scheme) - the MIDI note range being a subset of it.
As the range is not fixed, but can be moved up and down (e.g. when using 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 (see LICENSE).

ZZZ
Project
Source file
Extension
Superclass:
ZZZDevice
Project
Source file
Extension
Superclass:
ZZZ
ZZZError
Project
Source file
Extension
Superclass:
Error
0.1.1
Date
2021-01-04
Git hash
7ab700b4d9a7c988ceadfd7ea28dc4a618424768
0.1.0
Date
2021-01-02
Git hash
9939a0bd4357a8dcc66a8c0c409fc77be7324334

Installation

Repository

URL

https://gitlab.com/dvzrv/zzz

Since

2017-04-30

Last update

2021-01-04

Current version

0.1.1

Quark info

url

https://sleepmap.de/software/zzz/

name

ZZZ

schelp

ZZZ

license

GPL-3.0-or-later

summary

Interface with Expert Sleepers Eurorack modules

version

0.1.0

copyright

David Runge 2018-2021

dependencies

[]

Possible dependcies

Possible dependants