Chainable One-shot Sequencers

I was inspired by a video that @RobertSyrett posted: https://discourse.audulus.com/t/the-flashbulb-algorithmic-piano/422?u=stschoen and created something similar in Audulus. Today I made some minor modifications to the sequencers and added a few more switching goodies. I labeled everything well enough that I think you should bet able to get the general idea. Hold down the start button until things get going. I put labeled copies of all the units down the left hand side of the patch. The idea is that as each unit finishes it starts the next one in line. By looping and using the various switches you can build quite complex arrangements. This runs at about 60% on my Air 2 but if you have problems the reverb and diode ladder are not strictly necessary. I’ve used a variety of sound generators in the patch. The quad lines connecting the chain are pretty simple internally. Ch1 is the clock, Ch2 is the start pulse (one frame pulse), Ch3 is currently unused but is wired through and Ch4 is the reset line.
54%20PM
The 1.2 version has been superseded. See below:

6 Likes

I was making a new patch and discovered that the current version of these sequencers creates an annoying little glitch when switching between chained units. The o output drops to zero very briefly when switching units which causes a very short “A” to sound. I believe I have finally come up with a fix but haven’t had a chance to build and test it. Should be soon. Just wanted to let anyone using them know.

2 Likes

Here’s version 2.0. I fixed most of the glitches from the sequencers and added some new repeat and delay modules based on clocks rather than start pulses. It turned out that getting a smooth sequence from connected sequencer modules was more difficult than I anticipated. It required using a second quad connection to carry all the necessary signals. (If only I had a 12 channel). The original “chain” I renamed to bus to hopefully avoid confusion. The bus carries the clock, reset and start pulse from unit to unit. All the delays, flip-flops, switches etc. operate on the bus signal. The chain carries the information to properly control multiple sequencers connected as a signal unit and also provides a looping mechanism. The only remaining issue occurs if you have a chain of sequencers that is not looped and you send a new start pulse before the chain has finished. The beginning sequencer will restart while the later sequencer is still running. Not a major problem but can lead to unexpected sequences. The sequencers use more CPU than I would like (doesn’t everything!) and I have some ideas that may allow me to simplify the logic, but at this point I’m not sure how it will work out. Here’s the current collection:


One shot sequencer Collection V2.0.audulus (443.6 KB)
And two demos. The first one runs at about 45% on my Mac and definitely won’t run on my iPad. It was 4.5 MB so I had to compress it. The second runs on my Air 2:
One-shot Sequencer 2.0 demo.audulus.zip (889.9 KB)
One-shot Sequencer 2.0 demo iPad.audulus (2.6 MB)

5 Likes

Fantastic presentation. I like this format of presentation as an alternative to tables for a situation like this where it’s actually several modules working in concert. I will get busy making some sequences with these and play them on the eurorack modular!

2 Likes

I added tags to facilitate easy searching.

2 Likes

Very nice stuff here. One thing I noticed; I couldn’t figure out why when I replicated your patching, the chainable sequencers weren’t firing right. Then I noticed that it really matters what order the connections are made in. So, even if you patch everything right, it may be a matter of unhooking and reconnecting some cables in order for the machine to work right. I thought I would mention this in case anyone else was having a similar issue.

1 Like

You need to press the reset for a few seconds after changing connections in order for the modules to return to the rest state. Since the sequencers have internal counters that control their operation, changing their connections without a reset can lead to some peculiar results. You can also close and re-open the patch which will also reset things.

1 Like

i didn’t realize I could use attenuate offset in between octave inputs! :relaxed:

55%20AM

Also, this uFSK dual osc is really well done. Are these uModules documented somewhere?

1 Like

I haven’t posted them on the new forum, but there should still be something on the old one. I’ll try to post something this week if you’re interested. They can make some neat sound and aren’t very CPU heavy. Basically it’s two oscillators with a crossfade. The link switch links the 1 per octave inputs, and the int/ext switch selects either an external fsk signal (frequency shift keying) or internal from oscillator A. The switching is crossfaded rather than hard switched so you can use different waveforms as modulators. The fsk output is the switched signal. The As, AB, and Bs signals are ring modulation outputs. The module that’s doing the scaling and offset is actually designed for 1 per octave signals. It has a much larger range than the attenuate/offset module intended for use with most modulation signals. It will offset +/- 4 octaves and scale up to 8 times. It’s useful for scaling sequencers and other units that output 0-1 signals. Otherwise you’re stuck with the one octave from middle A up.

2 Likes

43%20PM

I was expecting the flip-flip to produce an alternating trigger between the two outputs but it just seems to fire the top one. I looked at your two example patches and neither seemed to use this module in the signal chains, but maybe I am blind. I am I doing something incorrect?

**Edit…

So I see now that the start button creates a flip, but not the clock pulse. Getting a flip off of the start pulse using a reset trigger is actually really useful for sequencing sequencers. Much appreciated.

2 Likes

Most of the intermediate nodes operate on start pulses rather than clocks. If you watched the video linked at the beginning of the thread, you can see that each node triggers the next in line, and in some paths, alternates between two outputs. The non-sequencer nodes are intended to give you flexibility in determining when a series of sequencers is triggered. I found I used the random node more than I had expected. Particularly if it is set to a low value, it can introduce some variability into the composition.By using the breakout node that demuxes the clock and start pulse, you can also incorporate other elements in the patch. I’m working on one that uses a Turing machine to introduce some additional randomness. I did create a delay and repeat that are clock based, primarily so that I could delay the start of sequencers at the start of a series. For example the bass line in the demo. Originally I used a sequencer that wasn’t connected to a sound producer as a delay, but the clock delay uses less CPU. I’m hoping that I can come up with a sequencer design that’s a little more CPU friendly, since it generally takes a fair few to build something interesting.

1 Like

Well the quantizers eat up a bunch of cpu as well, which surprises me. I thought that they would be light objects. I makes it challenging to build an orchestra.

1 Like

I agree. The quantizer design I’m using is complex primarily because it supports arbitrary scales and selects the closest note to the input. Actually this version is quite a bit better than the one before it for CPU usage. There is a chromatic quantizer in the library that is way more efficient because it simply splits the octave into 12 equal steps. It’s not as convenient to use but at least with sequencers, where the output is fixed, you can still get the notes you want. When I’m trying to be more efficient I’ll use that one.

3 Likes

I just tried the demo on my iPad Pro 12.9 2nd Gen and it ran well. 51% I can imagine the newer iPad Pros will be even stronger.

3 Likes