How to randomly delay notes?

Dear Community,

I’m still quite inexperienced in using the Midihub and so far I’m trying unsuccessfully to find out if it would be possible to delay incoming MIDI notes by a randomly changing time interval.

Would you have any ideas on how to implement something like this?

One obvious solution seems to me to be to use the Delay object (100% wet, 0% feedback, unsynced) for this. However, if I understand this correctly, I would lose the information about the note length. Are there any alternatives?

Can I use an internal LFO to modulate an internal parameter? How?


Hey, @skusku and welcome to Midihub forums.

here’s a few thoughts which might give you some sort of solution depending on the particulars of your intended playing style.

First, Delay:

[Caveat: Anything I say below might have a better solution from folk like @JoeyButters who’s done a lot with the pipe and @Giedrius who wrote the code!]

The ‘note length’ issue is more to do with Delay wanting to send out a new note if you’re holding beyond the delay time – you can get a double note_off; one triggered by Delay cos it wants to send the next note_on, then the second when you release.
(Check this out with a 1sec delay and short notes –that’ll be fine– vs a 0.05sec delay)

So, one workaround for that might be sthg like this…


  • the two Delay pipes are identical, maybe this:

    Screen Shot 2023-05-02 at 10.31.53
    (see Caveat!)

  • the first Delay line filters out Note Off

  • the 2nd Delay line only allows Note Off,
    then uses Transform to replace it by Note On and, after Delay
    …filters out its Note Offs…
    … and transforms the (now delayed) Note On back to Note Off

this should delay both Note On and Note Off
…but of course the delay time might get randomised again inbetween

Which may be more Random than you can live with!

Random change

Can I use an internal LFO to modulate an internal parameter? How?

Yes, but this requires a physical loopback .
This is described in a vid by synthdad.
(I’ll post a link if you can’t find it)
Also search “physical loopback” here.

If you were exploring this route, you might also want to consider creating your delay time random value from the Note On s:
Screen Shot 2023-05-02 at 10.59.52

here Note OffCC (value 64) → Random(full range) → Rescale(clamp to values to give delays ranges you want)

This will reset the random value every Note Off
Note OffCC (value 64) → … for every Note On
(one might suit your style more than the other)

PS Last line is just from this Loopback Mapping Tool | Patchstorage used to set the mappings