# midi delay fx

**URL:** <https://forum.bome.com/t/midi-delay-fx/7936>\
**Category:** Translation Projects\
**Tags:** midi-translator\
**Created:** [August 31, 2026, 10:17pm UTC](https://forum.bome.com/t/midi-delay-fx/7936 "2026-08-31T22:17:12Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Philip.Henzi](https://forum.bome.com/letter_avatar_proxy/v4/letter/p/e5b9ba/32.png) [@Philip.Henzi](https://forum.bome.com/u/Philip.Henzi)\
**Post date:** [August 31, 2026, 10:17pm UTC](https://forum.bome.com/t/midi-delay-fx/7936/1 "2026-08-31T22:17:12Z")

</div>

Hi, did anybody attempt to program a polyphonic midi delay, possibly with delay time and feedback control via CC ?

---

<div class="post-metadata">

**Author:** ![SteveC](https://forum.bome.com/user_avatar/forum.bome.com/stevec/32/8250_2.png) [@SteveC](https://forum.bome.com/u/SteveC)\
**Post date:** [August 31, 2026, 10:19pm UTC](https://forum.bome.com/t/midi-delay-fx/7936/2 "2026-08-31T22:19:53Z")

</div>

Hi and welcome to the Bome community!

You might search the forum on “chord”. That might get you started. For instance, to recognize a chord, you would have to interpret the arrival of several notes (polyphonic), to determine the incoming chord and of course, since it would take time to interpret the chord, a delay would be necessary.

Steve Caldwell  
Bome Customer Care

* * *
_Also available for paid consulting services: bome@sniz.biz_

---

<div class="post-metadata">

**Author:** ![helen.marsh](https://forum.bome.com/letter_avatar_proxy/v4/letter/h/7bcc69/32.png) [@helen.marsh](https://forum.bome.com/u/helen.marsh)\
**Post date:** [September 1, 2026, 9:06am UTC](https://forum.bome.com/t/midi-delay-fx/7936/3 "2026-09-01T09:06:08Z")

</div>

Worth separating two problems here: repeating notes, and doing it polyphonically without stuck notes.

The repeat part is the easy half — a translator on Note On that outputs the same note with a Delay, then re-triggers itself with a decreasing velocity, gives you feedback taps. The velocity scaling is your feedback amount, and you stop re-triggering once velocity drops below a threshold, otherwise it runs forever.

The polyphony part is where people usually come unstuck. Each voice needs its own timer/delay identity, so use the note number as part of the timer name rather than one global timer — otherwise a new note cancels the tail of the previous one. Same for Note Off: send a matching Note Off after each delayed tap, or you’ll get hanging notes as soon as you play chords.

For CC control, keep delay time in a global variable and read it when scheduling rather than baking a fixed number into the delay, so turning the knob affects the next taps instead of nothing.

One caution from experience: at short delay times with a lot of feedback you can generate a lot of MIDI very quickly. Cap the number of taps explicitly rather than relying on the velocity floor alone.
