"Order"/"Assign" Arpeggiator Type

I was looking to see if anyone else had requested this, but didn’t see it come up. A pretty standard feature on many arpeggiators is to create a note sequence based on the order of the held notes of a chord that you want played as an arpeggiator — this is on everything from the Arturia Keystep to the Moog Matriarch. It would be really great, as it enables a lot of creativity without needing to create more hard coded patterns.

Also, I’m assuming there’s no open source component for pipes? I’d love to add a few more — I used to really enjoy several of the more interesting ones in Squarp’s Pyramid: Pyramid Manual | Squarp instruments

For example:

Direction of the arpeggiated pattern.

  • UP: plays notes from the lowest note to hightest.
  • DOWN: plays notes from the hightest note to lowest.
  • UP DOWN: plays notes from the lowest note to hightest, then to from hightest to the lowest.
  • RANDOM: plays notes in a random order.
    -ASSIGN: plays notes in the order they were played.
  • DOUBLE: notes are played twice with different velocities.
  • OCT UP: each note is followed by the same note, shifted one octave up.
  • OCT DOWN: each note is followed by the same note, shifted one octave down.
  • DRUNK: plays the three first notes, then plays three notes starting on the second note, and so forth, in a circular fashion.
  • FIFTHS: each note is immediately followed by its fifths.
  • ONE TWO: one note out of two is played twice.
  • SILENCE: one note out of two is a silence.
  • RUNNER: the pattern is played up and down alternatively.
  • DISCO: the first hit note will be played between every other inputed notes.
  • MARBLE: emulates a bouncing marble ball. The velocity decrease over time. Rate value of 1/64 is advised.
  • RHYTHM 1/2/3: these three arp styles are custom rhythms, with fixed lengths. They countan silences and velocity variations.

It seems like it wouldn’t be too hard to program a new type if there’s already code to parse the playing notes and then play them out as a specific pattern. I’d love to contribute if possible, midihub is a really cool device.

I looked at your list and you can create all of those with a combination of arps, delay, repeat, and note length(note off setting). Using the delay Sync while transforming midi into clock(with no clock pipe) gives a nice rubberband effect.

The disco arp probably would be a little tricker but off the top of my head I would try transforming a one shot lfo into a note and the note value would be mapped. The dispatcher does a round robin thing you could incorporate into a, arp before or/and after. Also adding sustain in the chain at different points creates interesting effects. You also have the velocity curves. You can lfo a cc, map that cc to the velocity curve pipe and get some interesting midi effects.

Really with the lfo you can map it to anything such as a note value or a delay value or an arp setting and get some really interesting morphing arps. You can even do pitch and modulation in your arp. Whatever arp you can think of midihub can do with enough pipes and sly mapping. It’s really all up to you to figure out what you desire then how you can put the building blocks together. Some of these you need to do physical loopbacks though but that’ll likely change one day.


Hey, Joey. Good points.

Going off OP’s topic for a moment, I was wanting to pick your brains about delays:

  • I went back to your Strum patch t’other day, hoping to see how to simply delay a stream of notes by a constant num m/s. Delay, I now realise, expects to chop off notes ready for next (even if 1 repetition & fixed length =OFF).

  • I’ve never got my head around Sync Delay; could one use that instead?


with the lfo you can map it to anything such as a note value or a delay value or an arp setting and get some really interesting morphing arps

That would make a good tutorial/how-to in the Tutorial Development slot if you’ve got time to throw down some specific examples to get the ball rolling…

1 Like

I got around that easily by using a sustain pipe after any delays and then mapping the on argument to a midi note. The way the delay is working now all the notes get chopped so I use either the sustain pipe or the note length pipe after a delay. One of my favorite things to do with an arp pipeline is lfo the note length setting so the length of the notes are varied. Or I’ll map the note length setting to note velocity which is very interactively fun and gives a nice touch of expressiveness.

I may make a few tutorials if I have some spare time, been quite busy lately but I’ll see what I can add.


Yeah I mean that’s all great, but I still would love just a basic “Order” mode above all of these — while I’m excited to experiment more with MIDI effects in hardware and build things that are more interesting and unique, sometimes I just want to make music :wink:. How would you go about doing creating an order/assign flow specifically?

I’m not sure I understand what you mean when you say assign basic order. Up, down, up-down, down-up, +1 octave, repetition, accent swing plus etc is all built into the arp. Put 2 arps in secession and you get even more utility from the basic functionalities of the arp.

Whatever the case the fact remains is Midihub at this time is a device that needs user programming. Once you program what you are after you won’t need to sit down and program for 20 minutes before making music. You just plug it in and make music.

Trust me, once you really start playing with arps in combinations of other pipelines and fiddling with everything and in different orders you’ll get how simple midi hub makes creating complexity. The fact is though with Midihub, you absolutely have to put in the work to make it shine. It seems daunting at first, but the UI turns complexity into very simple logic.

Just to touch further on the “sit down and make music” part. You can program a bunch of pipelines with different settings and then have a pipeline that will scroll activate/deactivate pipelines. Mapped to one cc you can have dozens of diffent arps in one patch and scroll through them live, in real time instantly, no fuss, no hassle. You can map one cc to for example the time division in all the arps so all the arps stay in time with each other as you are switching between them real time.

It’s going to be up to you to decide your use case but then really really up to you to decide how much ease of access you want to build into your patches. Midihub offers amazing possibilities but it requires users to put in effort on the front end before they get to a point of making it a musically creative device.

Ah, see the functionality I’m specifically referencing is when I hold down the notes of a chord the arpeggiator plays back the notes based on the order I played them. It’s a really standard feature on most arpeggiators. For some examples of this exact feature (it’s actually on most arpeggiators I own except Midihub’s pipe out of the box):

Moog Matriarch:

Arpeggiated notes will play in the same order they were originally played on the keyboard.

Ableton Live:

Play Order places notes in the pattern according to the order in which they are played. This is therefore only recognizable when more than one chord or note has been played.

Arturia Keystep:

I completely understand what you’re saying about programming — I have no problem doing that, and agree that it’s exciting (and the primary reason I bought this device!). But I think it’s pretty reasonable to ask for a very standard arpeggiator type as a feature request (the rest of the ones I mentioned are bonus points, and I take your point that it makes more sense to try exploring and combining pipes to create interesting patterns!).

But ultimately it saves a ton of programming for having this type out of the box that is highly flexible for a variety of musical goals.

If you have any suggestions of how to build this exact pipeline, I’m would love some ideas because I’m not groking how to do so right now.

1 Like

I’m not against adding desired functionality at all one bit. But the honest truth is… it’s going to be a longgggg wait if ever for a particular desired feature to make it’s way into Midihub unfortunately. That’s why I tend to advocate making due with what’s available now.

Ok I see. So you want an exact order of notes in the sequence you played them in. I’ll play with the arp a bit and see when I have time. But to push you towards the goal I would play around with the dispatcher. Every new note pressed goes to a new channel. You could separate each note to it’s own pipeline with it’s own arp and each successive channel would have a delay and then merge those channels back together.

The dispatcher is a bit weird with it’s channel cycling though so I can’t think about it how it’s cycling could affect your end goal at the moment. My solution to overcome the dispatcher cycling was to map the channels or the bypass to midi notes so it resets but a drawback with that is it sends a note off to all channels when reset.
I’ve worked out some ways to overcome that blanket note off message but each way has its own drawbacks so it depends on how you intend to use the arp.

1 Like

Just to add a thought.

To Simplify things, if you restrict the input of your notes to a certain number before releasing the arp, for example, only 3 notes ever being pressed together at one time, you would only need to restrict the number of channels in the dispatcher to 3 without mapping a reset. Playing less would start cycling channels in the dispatcher and I think playing more will just drop the new notes I believe.

Could you elaborate a bit on transforming midi to clock signal and controlling synced delay - are you converting midi note messages into clock? I’m not sure what youre converting to be clocking the synced delay to create rubberband effects but sounds very interesting!

1 Like