docb / dbRackSequencer

GNU General Public License v3.0
18 stars 6 forks source link
vcvrack

dbRackSequencer

A collection of sequencers. Some modules of this plugin are inspired by the XOR plugin which is not available in Rack v2.

New modules in 2.4.0: SEQ22, Map, Swen

New modules in 2.3.0: µMatrix, HexSeqP2

New modules in 2.2.2: ASEQ, TXVI,M16, S16, M16S

New modules in 2.2.0 PMod,Carambol

New modules in 2.1.0: P16A, P16B, P16S, UnoA, CCA, CCA2, Ant, TME, SigMod, MouseSeq, Preset, CDiv, CSR

See also the demo patches on PatchStorage or on youtube

Table of Contents

Voltage addressable Sequencers

This type of sequencer does not have any clock inputs. The current steps are selected via voltage inputs, similar to using the step CV input from Bogaudio's ADDR sequencer. However, the plugin provides some modules which do the job of addressing based on a clock. But every other module or combinations which outputs step functions (e.g. S&H) can be used.

AG

Some use cases of the module:

ACC

If the step param is set to 0.1V ACC can be used to drive AG, Chords, Faders, P16, P16A.

Chords

The ACC module can be used to drive a chord sequence.

TD4

This module provides 16 Tracks of a 4x4 Grid Sequencer. It is intended to be a building block for simulating hardware sequencers like Rene or Z8000. It is inspired by the Z8K and the Renato module from the XOR plugin.

The top two input rows are the 16 CV address inputs. The 16 steps are addressed in the range of 0-10V i.e. 10/16V per step. Below there is the 4x4 Grid with 16 CV value knobs. The range of the knobs is configurable in the menu. The values can also be quantized to semi notes. The 16 lights per step show the position of each track and the polyphonic gate output besides the knob reflects the status of the lights.

Below that there are two rows of polyphonic gate inputs. With these, the steps for each track can be muted separately which is reflected by the next two rows of monophonic gate outputs, the lights and the output besides the cv knob.

The next two rows are the monophonic CV outputs for each track.

On the bottom there are some additional polyphonic inputs and outputs.

Here are some modules which are suited for a clocked addressing of the TD4 but not limited to.

P4

Some patching to illustrate

NB: The videos have sound which could be turned on.

Simulating a Z8000 Sequencer

This example illustrates the use of four P4. The second (from right) connected P4 has an offset of 4, so it will go through the second row. The third P4 is set to Y and offset 4, so it goes through the second column. The forth P4 is set to Y and offset 12, so it goes through the forth column.

The use of AG is also shown to mute some steps via the Gate inputs.

https://user-images.githubusercontent.com/1134412/167461678-ca6a8c83-2a86-48d4-830f-3fba07001cec.mp4

A complex 16-step sequence

This example shows how to make a complex 16-step sequence with three P4 modules. Only the right most P4 is connected to the TD4. The left most is clocked x4 and controls the permutation selection and the middle P4 (also clocked x4) controls the offset - by set to direction Y it always moves the address by 4 steps.

https://user-images.githubusercontent.com/1134412/167403636-a7df029f-7f20-447d-914b-bb02f3699082.mp4

P16

The P16 module provides 100 predefined 16-Step Sequences (ok, some kind of tiny collection compared to the possible 20922789888000 permutations). But at least the direction (back or forth) and an offset can be selected per sequence. However, e.g. an S&H or Towers+SwitchN1 or like in the example above can be used to make the rest. NB: This size should be 16 for TD 4. Here an example of the first 10 sequences.

https://user-images.githubusercontent.com/1134412/167461717-dcd016cd-858e-4bdb-9e3b-25aaaae53013.mp4

P16A

A variant of P16 with editable patterns and some extras:

P16B

This is a variant of the TME module for generating CV addressing patterns. The output is built by (A*1+B*2+C*4+D*8) * 10/size where A (B,C,D) is zero or one reflecting if the clock dividers are on or off at the position of A (B,C,D)

P16S

P16S sequences the values provided by the polyphonic In port according to the method given by the dir param. It can also used as sequential switch (like 23volts SwitchN1)

UnoA

This is a 16 step Uno with polyphonic inputs for probability and sequence reset (SR) suited for addressing.

Example Usage:

https://user-images.githubusercontent.com/1134412/198848122-db6a0e34-0f93-4179-af81-bff62eb621ce.mp4

PXY

PXY is a 2D walker controlled by X+,Y+,X-,Y- Trigger inputs. The start point can be controlled and the maximum length in each direction where wrapping around will occur. This size should be 16 for TD 4.

Here an example:

https://user-images.githubusercontent.com/1134412/167461807-b4f6fbb2-5726-4762-abbb-8dfcab86d55c.mp4

PMod

Generates address sequences by multiplying the step number (increased by the clock input) with the value of the Mult parameter and modulo the value given by the Mod parameter.

C42

A universal sequencer. Vaguely inspired by the o88o module from the XOR plugin.

CAUTION: This module will trick you into spending a lot of time. Consider taking a walk in nature instead.

Menus:

Gate/Trigger Sequencer

Creating melodies

There is additionally an expander C42E which provides additional outputs:

A general alternative is to combine the outputs via the Sum module (see below) and its SE Expander or any other module which processes multiple polyphonic inputs.

Generate Chaos

Examples

Classic Sequencing

Here is a demo showing classic sequencing. The melody and bass are made with one play head driven by a P16 by using the Col-Top and Col-Bottom output. The middle line where the play head is moved and which is not counted in Col-Top or Col-Bottom is used for adding some gates triggering an ADSR/filter cutoff. The level parameter is set to 1/7 (+a bit more) and the mode of Quant is "equi-likely" so that one more counted cell will move up by one position of the scale and an octave is exactly 7 counted cells.

On the second C42 one P16 and three P4 are used to make a 3-voice 32-step drum sequence.

(Due to the limited size of the video the sound quality is not so good).

https://user-images.githubusercontent.com/1134412/167498725-c5f50865-482a-4753-905a-3c2e5e11c66f.mp4

Chaos

In this example a period-16 oscillator in conways life is used. Four playheads are placed randomly via RndH. The M+A (main diagonal + anti diagonal) output of the C24E expander is used to make the CV. The trigger output triggers an ADSR/Filter cutoff.

https://user-images.githubusercontent.com/1134412/167783412-6dd213e9-b0b4-4d48-86a2-25c285fb9923.mp4

TheMatrix

Similar to C42 TheMatrix provides a grid of size 32x32 where up to 16 play heads can be placed via the CvX/CvY params and inputs. But on each cell there can be edited an ascii char in the range from 32 (space) to 126 (~). The polyphonic CV output is built in the following way if a play head is on a cell which is no space: First an integer number is looked up from the following table:

char value char value char value
! -47 A -15 a 17
" -46 B -14 b 18
# -45 C -13 c 19
$ -44 D -12 d 20
% -43 E -11 e 21
& -42 F -10 f 22
' -41 G -9 g 23
( -40 H -8 h 24
) -39 I -7 i 25
* -38 J -6 j 26
+ -37 K -5 k 27
, -36 L -4 l 28
- -35 M -3 m 29
. -34 N -2 n 30
/ -33 O -1 o 31
0 -32 P 0 p 32
1 -31 Q 1 q 33
2 -30 R 2 r 34
3 -29 S 3 s 35
4 -28 T 4 t 36
5 -27 U 5 u 37
6 -26 V 6 v 38
7 -25 W 7 w 39
8 -24 X 8 x 40
9 -23 Y 9 y 41
: -22 Z 10 z 42
; -21 [ 11 { 43
< -20 \ 12 | 44
= -19 ] 13 } 45
> -18 ^ 14 ~ 46
? -17 _ 15
@ -16 ` 16

Then this number is multiplied by the level parameter value and passed to the output.

So if the level parameter is set to 1/12 then we have a semi note range from C#-2 to B-3 and the letter 'A' denotes A-2.

A space will cause that the gate output is set to 0V, every other character causes the gate output set to 10V.

This seems to be a bit complicated, but there are some editing features which make life easy:

The editor supports also selecting a rectangular region with cut/copy/paste operations. Text can also be pasted from the system clipboard.

The editor is also connected to the undo/redo system of VCVRack.

The Rnd Button or a trigger on the Rnd input will fill the grid or the selection with random characters in the range set by the Range parameters min and max. The dens parameter or input controls how many spaces are generated.

Here an impression what can be done with multiple playheads:

https://user-images.githubusercontent.com/1134412/198893701-24a33a29-0b95-4325-b53b-31a91c0a0682.mp4

µMatrix

Same as TheMatrix but with only four columns.

CCA

A one dimension continuous cellular automaton voltage addressable sequencer.

Here an example with one playhead driven by Walk2 and switching the function parameter with AddrSeq. The initial values are randomly chosen.

https://user-images.githubusercontent.com/1134412/199918183-bbc5518b-632d-49e4-a298-79926b29c9ff.mp4

CCA2

A two-dimensional variant of continuous cellular automaton. Similar to C42. The rule is defined by a function and a parameter.

Here an example: 4 playheads are placed static on the grid and the clock drives the generation.

https://user-images.githubusercontent.com/1134412/198815185-18c993f1-2439-45ca-8715-29882053e671.mp4

Ant

A 2D turing machine also known as Langton's Ant.

Here is a simple example with 3 Ants configured in the menu with the rule LLRRRLRLRLLR, where it is not clear in which time this sequence would repeat.

https://user-images.githubusercontent.com/1134412/198703138-915d2495-e716-4cb7-9cbd-be547074b18c.mp4

Here an example configured with the ants and rule input (BBBRLBFB).

https://user-images.githubusercontent.com/1134412/198720606-a42da3ca-bc6c-4c92-b1da-49ea7be213b6.mp4

Some other sequencers

The following sequencers are reimplementations with additional/different features of some sequencers of the XOR plugin.

Uno

Uno is a reimplementation of the qu4ttro sequencer of the XOR plugin. With the default values this is a normal 8-step sequencer. However, this sequencer answers the question of what happens if a probability can be set for skipping a step.

Differences/Additions to the original:

Here an example showing the effect of the Rst button:

https://user-images.githubusercontent.com/1134412/168129909-76ae9c21-6e5a-4e34-a107-bf9f9eb173e2.mp4

Klee

You know, it may be better to take a walk in nature ...

This module is a reimplementation of the Klee module of the XOR plugin with a bunch of additional features. It simulates a Klee like sequencer - please read carefully the PDF first you will find if you type 'klee sequencer pdf' in your search engine to understand what this is all about. There are also tutorials on youtube for the hardware klee (search for 'klee sequencer')
and you also will find a three years old great tutorial from Omri Cohen about the XOR Klee.

The additional features:

NB: this module needs a bunch of tutorials or may be better taking a walk ....

Here is an example how to use the Klee without a quantizer connected to the CV outputs but still staying in a scale. With a script (can be run with node klee.js in the project root if node.js is installed) there are precomputed scales which would occur if only three values of 16 are not zero or its octaves. It shows that e.g the semi notes 2-5-9 and its octaves make a major scale 0,2,4,5,7,9,11 whch will not be left regardless of the bit pattern. It requires more bits in the pattern to get a sequence which covers most of the scale. The video also shows the use of the polyphonic CV input.

https://user-images.githubusercontent.com/1134412/168665134-d6fbbb24-1278-4fd4-afe9-92c217cbfe2d.mp4

M851

This module is a reimplementation of the M581 of the XOR plugin.

Things change dramatically if the repetition values are set to a higher value than one. The step then will stay for the number of repetitions. This will make the sequence longer (however the sequence length can be held constant via the rst input). Now the gate mode parameter comes into play:

If the glide button is on, there will be a portamento with speed adjustable by the glider knob. If the step is turned off it will be skipped.

CYC

CYC is a reimplementation of the Spiral sequencer of the XOR plugin.

N3

N3 is a reimplementation of the Nag-Nag-Nag sequencer from the XOR plugin with the following differences:

Here an example how to use N3 as 16-step trigger sequencer by setting the degrees to 22.5 .

https://user-images.githubusercontent.com/1134412/169410926-7ad989b9-d5fe-4d3f-9039-793251da9c1b.mp4

Here an example of increasing the degree parameter via the degrees input while modulating all Rotate and Skew parameters with a RndC.

https://user-images.githubusercontent.com/1134412/169410966-ff140fd2-2877-47cc-abd2-93af830ad472.mp4

Note that in the Exact mode (exact hits) the Skew,Rotate and Degree parameters should somehow fit together to get overall some hits, e.g. could be integers.

Some further sequencers

SEQ22

Map

Swen

This module is a port from the QWELK N.E.W.S module (Copyright 2017 Parsa 'raincheque' Jamshidi) with unchanged functionality of the original.

HexSeqP2

This is version 2 of HexSeqP from dbRackModules.

Enhancements:

ASEQ

ASEQ is a 16-step sequencer with some fine-grained possibilities for random variation over time.

TXVI

TXVI is a 16 step sequential or voltage addressable switch which also can be used as sequencer, track and hold, sample and hold.

Carambol

A billiard simulation for sequencing and modulation.

Params:

Outputs:

Inputs:

Here an example showing the case with all connected inputs and the effect of cconnecting a clock.

https://user-images.githubusercontent.com/1134412/207141868-d20c34ad-bdb9-4165-a912-8ae4c2c1e2ca.mp4

The simulation was ported and adapted from Ten Minute Physics -- Copyright 2021 Matthias Müller.

TME

A Triadex Muse Emulator (see e.g. here).

Here an example of changing the scale.

https://user-images.githubusercontent.com/1134412/198822402-09162005-72b9-4659-880a-378d2ab2c5ef.mp4

In the following example the CV output is used for addressing the TD4 sequencer. The Level must be set to 10/16V to have 16 steps in 0-10V.

https://user-images.githubusercontent.com/1134412/198822450-cddd8ef5-4e0a-44fe-9389-a5469b538bcf.mp4

SigMod

SigMod has a 16 value shift register (SR) with 5 tabs which can be placed inside the SR via the Pos parameters (Pos1,Pos2,Pos3,PosR,PosO). On a clock trigger the first three tabs are used for making a decision if either the incoming signal (through the IN input) is read and put into the SR or the value inside the SR at the read position (PosR) is taken. The decision is build as follows:

!(v1<Cmp1 XOR v2<Cmp2) XOR v3<Cmp3

where v1,v2,v3 are the values of the SR at the tab positions Pos1,Pos2,Pos3. The 'less than' decision can be inverted in the menu for each comparator separately.

Here an example. It shows how the original sequence is scrumbled but still there somehow.

https://user-images.githubusercontent.com/1134412/198817855-d4cc421a-d1b8-493b-b96d-0abde74013b1.mp4

MouseSeq

A sequencer, solo player driven by the mouse.

How to use:

Then press and move the mouse on the green pad. The current clock input can be switched with the keyboard z,x,c,v. The sales can be switched via a,s,d,f. Here an example:

https://user-images.githubusercontent.com/1134412/198819843-25800021-1423-41da-b80b-4b2a301cdc4f.mp4

Preset

Utilities

Sum

This module does the same as Sum Mk 3 from the ML Modules plugin, but it has 12 polyphonic inputs and a chainable expander which reduces the amount of cables if different sums are built from the same inputs.

CV

CV is another discrete CV value source. The number on the selected button is multiplied by the level value and passed to the output. The original idea for this module was born after watching the video about the octave sequencer from Jakub Ciupinski. With the CV module it looks like this:

It basically behaves like the OCT module of the Fundamental plugin. It can be used without a quantizer as the level can be set to 1/12.

PwmClock

Yet another clock generator module. The purpose of this module is to have many clock generators with different ratios and adjustable pwm. You may need it when working with the sequencers described above.

The BPM input X (range -1 to 2) expects the frequency in HZ via 2^X i.e

The BPM output delivers vice versa.

CDiv

Clock dividers. Why another?

I needed some with a reliable reset behaviour and divisions up to 100. The dividers are always in sync even while changing the division.

CSR

A 16 value shift register (used also in SigMod).

M16

A 2HP module to merge 16 mono channels into a poly output.

S16

A 2HP module to split a polyphonic input into 16 mono outputs.

M16S

Like M16 but it provides stereo inputs and outputs. The left inputs are normalized to the right if not connected. Additionally, if an input has more than one channel it is summed up (can be turned off in the menu). Can be used as stereo mixer like this: