This is a fork of MrLumps 'Fundamental' repo, and has been changed so that it ends up as a plugin called MrLumps for use in VCV Rack, with both the euclidean sequencer and VCS modules.
All credit is due to Ian Kerr (MrLumps). Daniel Iel organized the three modules into one GitHub repository and tidied up a bit. Nik Jewell’s Mac Build Monitor script helped move the code to VCV Rack 0.4.0. Jeff Tsukuru’s script helped move the code to VCV Rack 0.5.0. David Peterson fixed the lights and tidied up a little more. Thanks to Martin Lueders for identifying a sample rate change bug in SEQ-Euclid and for proposing a solution with onSampleRateChange().
David Peterson added a High Contrast option, replaced the PNG panel images with SVG images, fixed an onSampleRateChange bug, and made MrLumps compliant with VCV Rack’s Community Package manager in release 0.5.2.
David Peterson migrated the MrLumps plugins to VCV Rack’s 0.6.0 API in release 0.6.0. He also contributed the updates to VCV Rack’s 1.0.0 API in release 1.0.0 and VCV Rack’s 2.0.0 API in release 2.0.0.
This plugin has been built against VCV Rack 0.6.0 on Linux, MacOS, and Windows.
Just type make
in the plugin folder. The version is now included in the VCV
Rack plugin Makefile framework and does not need to be given on the command
line.
A 4 channel Euclidian sequencer for VCV Rack based on the SEQ3 built in sequencer.
This uses ideas from the paper The Euclidean algorithm generates traditional musical rhythms from Proceedings of BRIDGES: Mathematical Connections in Art, Music, and Science by Godfried T. Toussaint.
If you are interested in trying this yourself I would recommend looking at the Bjorklund paper The Theory of Rep-Rate Pattern Generation in the SNS Timing System SNS-NOTE-CNTRL-99 for implementation information.
The basic idea is that you select a bank to use, enter a pattern fill amount, a pattern length, a probability amount and wire the output to something that needs gates or triggers.
The algorithm created by Bjorklun that's created these patterns will take pattern length and evenly place fill amount of beats in it.
For example 5 and 7 will result in a pattern of 1011011 while 5 and 12 results with 100101001010.
If fill is greater than length the sequencer will output nothing but beats at the given BPM eg 1111111....
You can make things more interesting by using the probabilty and jog controls. The probably knob at far right will allow all beats to pass, at 12 noon 50% of beats and far left 0 beats. The jog control will allow you to step that bank's pattern forward by one step to allow you to offset patterns.
Top left is a BMP indicator and control knob. Use to set speed.
You can wire up an external clock source to the input under the BPM next to the clock icon
Reset either by trigger signal or button push will reset all internal counters to 0. This has the effect of starting all banks off at the beginning of their sequences. This is useful if you want to be sure your patterns are lined up as you expect.
This will allow you to change the length of the gates sent by the sequencer. At full right close beats eg patterns like 11101 the gate signals will bleed into each other. Dial back for individual beats. I found this handy for driving the modal synth.
Shows current fill amount
Allows changing the fill amount from 0 to 256
Shows current fill amount
Allows changing the length amount from 0 to 256
Allows changing the % chance that a beat will be sent out. Far left 0% far right 100%.
Sends gate signals out
Sends trigger signals out
If there is any gate active in banks 1 through 4 a gate will be sent.
If there is any trigger active in banks 1 through 4 a gate will be sent.
This will blink for the duration of each gate signal.
Right-click (Windows/Linux) or Control-Click (Mac) on the panel to access the context menu. Click High Contrast to select easy-to-read, black-on-white colors for the numeric display panels.
Some voltage controlled switches for VCV Rack.
The 1x8 and 2x4 modules both work the same way. You apply a trigger to the trigger input and a signal in to the signal input.
Then you wire up as many outputs as you'd like.
Recieving trigger events will cause the module to switch to the next active output plug.
The 2x8 module has 1 trigger input and 2 signal inputs and 4 outputs per input.