See the rest of then plugin here: T’s Musical Tools
Spellbook is a module to sequence pitch and control voltage (CV) patterns in a eurorack-style environment using a plain text syntax I call RhythML.
It has 16 outputs (and a polyphonic output which combines all of them), each of which outputs a voltage determined by the corresponding column in formatted text input. Spellbook is not yet in the VCV Rack Library version of this plugin; check Releases to install the preview build.
Sequencing with RhythML
Spellbook sequences are programmed using the RhythML format, a syntax to define pitch and CV patterns in plain text. Each line in the text input represents a sequence step, triggered sequentially by the clock input. Columns in the text represent the 16 outputs, allowing for complex configurations across multiple hardware modules.
Syntax
- Decimal Voltages: Directly specify voltage outputs by writing decimal numbers.
- Gate and Trigger Commands: Use
X
/_
for gate-with-retrigger,T
/^
for a 1ms trigger pulse, orW
/|
for a full-width gate; as shorthand for rhythmic sequences. - Scientific Pitch Names: Specify pitches using standard note names (e.g.,
C4
,G#3
,Fb4
), and they are translated to 1V/oct standard. - MIDI numbers, prefixed with
m
(e.g.m60
for C4) - Percentages ending in
%
(e.g.50%
or12.5%
), which are scaled so that 100% = 10.0v. - Hertz in the format
<Frequency>Hz
(e.g.440Hz
) - Semitones (relative to C4) in the format
s<Number>
(e.g.s7
) - Cents (relative to C4) in the format
<Number>ct
(e.g.100ct
)
Refer to RhythML Syntax for comprehensive guidelines on writing sequences for Spellbook.
Usage Example
Here’s a simple RhythML sequence to get started:
E4 ? Pitch, X ? Gate, 10 ? Velocity
C5 , X , 8
D5 , X , 6
B4 , X , 5
In this example, each step sets a pitch in column 1, uses column 2 for gating, and controls a velocity CV in column 3. The sequence plays a C major arpeggio, holding the first note for a full beat, and gradually lowering the velocity on each note. The labels, like ? Pitch
, are ignored because of the ?
.
Here’s the same arpeggio, but with a little more rhythmic variation:
E4 ? Pitch, X ? Gate, 10 ? Velocity
, | ,
, | ,
C5 , X , 8
D5 , X , 6
, ,
B4 , X , 5
, ,
Notice the way this pattern holds notes by using consecutive gates over several steps, using Retriggers to ensure a new rising edge after a prior gate.
You could also do things like treat each row as a sequence, played through a sequential switch like my Ouroboros module.
Would love to hear feedback from anyone that helps test it. There are a few more quality of life changes I want to make before I submit to the library, so this is a good time for other suggestions and fixes.