Gravity delay

This is a creative MIDI delay that physically models incoming notes based on their velocity, and retriggers them as though they were bouncing with gravity. It tends to produce a few distinct echoes before softening into a quiet trill. It can be helpful for breaking out of quantized time or adding organic feeling to a piece.

NOTE: To reduce processor load, this effect only sends MIDI Note On messages. For instruments that expect MIDI Note Off messages, chain this through my “Dedupe” script (

Gravity Delay comes with 4 separate delay busses, which can be toggled and combined. Select a different delay bus by holding SHIFT and clicking one of the toggle buttons.

Each delay has 4 toggle settings:

β€’ ACTIVE: Enables this delay; bypassed if off.
β€’ SEND VELOCITY: Sends the physically modelled velocity alongside corresponding notes. If this toggle is off, the initial note velocity is sent with each retrigger.
β€’ REVERSE: Imagine playing a video of a bouncing ball backwards; the delay starts out quiet and tightly spaced, then grows louder and sparser.
β€’ MIRROR: Adds a mirror tail to your delay.

Here are their effects visualized:

STANDARD ACTIVE DELAY: β–ˆ β–ˆ β–ˆ β–ˆ β–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
w/ VELOCITY: β–ˆ β–‡ β–† β–… β–„ ▃▂▂▁▁
w/ REVERSE: β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆ β–ˆ β–ˆ β–ˆ β–ˆ
w/ REVERSE+VELOCITY: ▁▁▂▂▃ β–„ β–… β–† β–‡ β–ˆ
w/ MIRROR: β–ˆ β–ˆ β–ˆ β–ˆ β–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆ β–ˆ β–ˆ β–ˆ β–ˆ
w/ MIRROR+VELOCITY: β–ˆ β–‡ β–† β–… β–„ ▃▂▂▁▁▁▂▂▃ β–„ β–… β–† β–‡ β–ˆ
w/ MIRROR+REVERSE: β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆ β–ˆ β–ˆ β–ˆ β–ˆ β–ˆ β–ˆ β–ˆ β–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
w/ MIRROR+REVERSE+VELOCITY: ▁▁▂▂▃ β–„ β–… β–† β–‡ β–ˆ β–‡ β–† β–… β–„ ▃▂▂▁▁

There are also a few knob settings:

β€’ GRAVITY: Acceleration due to gravity in the physical model. Lower values cause longer gaps between bounces.
β€’ FRICTION: How much velocity is lost at each bounce. Lower values cause the delay tail to last longer.
β€’ πŸ”BOUNCES: Caps the number of MIDI Note On messages sent per note in. Use this if CPU is spiking, or if your synth is flooded with incoming notes.
β€’ +RANDOM: Increases gravity or friction settings by a random amount per note, up to the selected value. For instance, if FRICTION is set to 7 and its corresponding +RANDOM knob is set to 4, the resulting range will be from 7 to 11.

Here are their effects visualized:

LOW GRAVITY: β–ˆ β–‡ β–† β–… β–„ β–ƒ β–‚ β–‚ ▁▁
HIGH GRAVITY: β–ˆ β–‡ ▆▅▄▃▂▁
LOW FRICTION: β–ˆ β–ˆ β–‡ β–‡ β–† β–† β–… β–… β–„ β–„ ▃▃▂▂▂▁▁▁▁
HIGH FRICTION: β–ˆ β–… ▃▂▂▁▁

Note: the current delay bus number is indicated in the title. For instance, β€œGravity delay [bus 1]” means the visible settings correspond to bus 1. Hold SHIFT to quickly view which delay busses are active. Highlighted busses are active. The bus emphasized with β€œ^^^^^^^” is the currently selected page.

Note 2: Since you’ve read this far… click the XY pad for an easter egg. The timing isn’t perfect, but the number of bounces should accurately match the visible bus settings.

Feel free to leave questions, comments, and bug reports at You can find more of my work at

Version history:
β€’ v1.0.0: Initial release.

2 comments on “Gravity delay
  • gandrasg on said:

    thanks , this is great

  • os68ng on said:

    Funny, had the same idea for this kind of Mozaic patch and did already some investigations on it. But you have pushed it much further. Thank You!

  • Leave a Reply

      319 PM
    • Platform:
    • Category: Effect Other Sequencer
    • Revision: 1.0.0
    • License: Do What The F*ck You Want To Public License
    • Modified: 3 years ago
    • Views: 447
      Likes: 7
      Downloads: 45