Chainable sequencer
  • The live stream the other day got me to thinking about an extendable sequencer. The concept was a sequencer you could chain together to create a sequence of arbitrary length. After a considerable number of false starts due to race conditions in the feedback loop, I finally came up with a workable solution. There is a primary and secondary module. You can chain from zero to as many of the secondary modules as required. The clock input is on the primary module, as is the octave signal out for the chain. I chose to use a pre-quantized sequencer, but the principle could easily be adapted to a more traditional unit. The chain output from the primary is connected either to it's own input for a single unit, or to chain input on the secondary module. The chain out for the final module is connected back to the primary. Each module has a local octave signal out and a gate that's high when the module is active. The sequencer itself is a work-in-progress and I plan to add an octave select and note duration in the final version. I thought the chaining module might be of interest.
    Chaining Sequencer.audulus
    Screen Shot 2017-07-16 at 3.42.57 PM.png
    1537 x 583 - 288K
  • That looks awesome! I especially like the note display. I look forward to taking a peak inside it when I get back home.
  • It took me a minute or two to figure out that the knobs are arranged in cascading columns so I thought maybe adding some guidelines and leds on the knobs might lend some visual clarity. It kinda bothers me that I can't snap to the center of the leds, but oh well.
    Chaining Sequencer Modified.audulus
    Screen Shot 2017-07-17 at 9.50.17 AM.png
    583 x 511 - 116K
  • The design was an interim one. I'm working on a more complete unit with octave control and note durations. It was really a proof of concept. I discovered another bug this evening. The step control doesn't work for a single unit. I'm working on a fix to the sequencer drive.
  • Excellent! I look forward to the developments :) I was wondering how would this counter set up handle a backwards and forward/backward modes? Per the expansion module or controlled by the primary?
  • I have a fix for the bug in the sequencer drive. This seemed like a simple project, but it turned out to be much harder than it looked. I'll post it in the morning ( I'm on the iPad). I like the lights on your mod. I adopted a vertical layout for the larger unit rather than the cascade since each step now has multiple controls. Backwards might be possible, but forward is trouble enough for the moment.
  • I know the feeling, I definitely respect the people who design crazy sequencers, because there are so many opportunities for errors.
  • I've fixed the bug in the original sequencer and also applied it to @RobertSyrett's modified version. I chose to take the octave output out of the chain signal since it was available at each module anyway, and I needed the channel for the bigger unit. The o output for the slave modules is switched between the o input and the internal sequencer based on whether the module is active. That make the output of the whole chain available at the final octave output if you connect the individual units together. I'm posting the fixed version of Robert's modification. I'm still working on fixing a few bugs in the larger unit. I hope to have it finished soon. Here's a screen shot of the current state. Suggestions on the UI are welcome.
    Chaining Sequencer Modified - fixed.audulus
    Screen Shot 2017-07-18 at 2.58.45 PM.png
    1694 x 755 - 247K
  • Wow! This thing is getting massive. Is the triplet and dotted just gate duration? How does that work?
  • I wanted something that would allow for different note values so I decided that instead of a fixed clock, I would simply have a beats per minute input and generate my own clock. I decided that a sixty-fourth note was the shortest that I could possibly need to accomodate, so in order to have an even number of clock pulses for the triplets and dotted notes I generate six clock pulses for a sixty fourth note, twelve for a thirty second and so on. That way a dotted sixty fourth note becomes nine pulses and a sixty fourth triplet becomes four pulses (a dotted 64th triplet is also six). There is a "note on" gate output, but the length of each sequencer step changes with the note duration. At the moment I'm having trouble figuring out how to sync the master and slave modules. The approach I used for the earlier model depended on a single counter in the master module, but I'm not sure if that's going to work in this case. The master works fine on it's own, but in order to program a reasonably long song I will need several modules. It's really more an exercise in seeing what I can build since I could easily record a midi stream in my DAW and feed it into Audulus. I've always loved puzzles and programming is the best puzzle of all.