# How to 'rate throttle' your device?

**URL:** <https://forum.electra.one/t/how-to-rate-throttle-your-device/1085>\
**Category:** General discussion\
**Created:** [November 13, 2021, 12:35pm UTC](https://forum.electra.one/t/how-to-rate-throttle-your-device/1085 "2021-11-13T12:35:24Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![Flyweight](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/flyweight/32/342_2.png) [@Flyweight](https://forum.electra.one/u/Flyweight)\
**Post date:** [November 13, 2021, 12:35pm UTC](https://forum.electra.one/t/how-to-rate-throttle-your-device/1085/1 "2021-11-13T12:35:24Z")

</div>

I see the device section supports ‘rate’.

but i cannot find documentation.

what value do i have to put in? is it in percentage or max updates per second?

---

<div class="post-metadata">

**Author:** ![martin](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/martin/32/145_2.png) [@martin](https://forum.electra.one/u/martin)\
**Post date:** [November 15, 2021, 6:46am UTC](https://forum.electra.one/t/how-to-rate-throttle-your-device/1085/2 "2021-11-15T06:46:02Z")

</div>

There is an optional `rate` attribute of the `device` object in the JSON. You can use it to specify the time lag between individual messages. The lag is specified in milliseconds. A snippet from the docs:

**rate**

A minimum wait time between sending MIDI messages to a device, specified in milliseconds.

- optional
- numeric
- min = 10
- max = 1000

```auto
"devices": [
   {
      "id": 1,
      "name": "My MKS-50",
      "instrumentId": "roland-mks50",
      "port": 1,
      "channel": 1,
      "rate": 20
   }
]

```

… sends messages in 20ms intervals.

---

<div class="post-metadata">

**Author:** ![Flyweight](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/flyweight/32/342_2.png) [@Flyweight](https://forum.electra.one/u/Flyweight)\
**Post date:** [November 15, 2021, 8:26am UTC](https://forum.electra.one/t/how-to-rate-throttle-your-device/1085/3 "2021-11-15T08:26:16Z")

</div>

Ah thanks, I guess I need glasses was really looking in the docs.  
This will be great for the DX11 template. No more midi buffer overflows I hope.

Cheers

TIm

---

<div class="post-metadata">

**Author:** ![studiobischof](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/studiobischof/32/430_2.png) [@studiobischof](https://forum.electra.one/u/studiobischof)\
**Post date:** [February 25, 2023, 7:05pm UTC](https://forum.electra.one/t/how-to-rate-throttle-your-device/1085/4 "2023-02-25T19:05:41Z")

</div>

Hej @martin,

I’m trying to get the snapshots working with my Ambika, but it seems, that the MIDI messages are sent to fast from the Electra to the Ambika. I tried to set another Rate [ms] in the editor, but the timestaps between MIDI commands (NRPN) seem not to change in my MIDI monitor when sending a snapshot besides different rates.

Does the option affect the snapshots?

---

<div class="post-metadata">

**Author:** ![martin](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/martin/32/145_2.png) [@martin](https://forum.electra.one/u/martin)\
**Post date:** [March 6, 2023, 10:38am UTC](https://forum.electra.one/t/how-to-rate-throttle-your-device/1085/5 "2023-03-06T10:38:27Z")

</div>

I will review that one. I am pretty sure that individual CCs of the NRPNs are not rate limited. Only the NRPNs as wholes. That is one thing to improve from the very beginning. I will get back to you on that.

---

<div class="post-metadata">

**Author:** ![oldgearguy](https://avatars.discourse-cdn.com/v4/letter/o/f4b2a3/32.png) [@oldgearguy](https://forum.electra.one/u/oldgearguy)\
**Post date:** [March 6, 2023, 11:44am UTC](https://forum.electra.one/t/how-to-rate-throttle-your-device/1085/6 "2023-03-06T11:44:42Z")

</div>

I think the issue is (also?) that when a snapshot is loaded, all the parameters are sent immediately?

I guess my question is - what happens when a snapshot is loaded?  
Do you just run through the parameterMap and send the saved values?  
That flood of MIDI may overrun some devices.

---

<div class="post-metadata">

**Author:** ![martin](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/martin/32/145_2.png) [@martin](https://forum.electra.one/u/martin)\
**Post date:** [March 6, 2023, 12:16pm UTC](https://forum.electra.one/t/how-to-rate-throttle-your-device/1085/7 "2023-03-06T12:16:35Z")

</div>

yes, snapshot is just a saved dump of the parameterMap. When you load a snapshot, you just populate all parameterMap entries and the messages are triggered. These messages go to the device outgoing queue which has the rate limiter. The problem is that eg. NRPN is considered to be one message. The individual ccs will go out without any limit. But as mentioned, I will review it. There were quite intense changes made between 2.n and 3.n firmware.

---

<div class="post-metadata">

**Author:** ![oldgearguy](https://avatars.discourse-cdn.com/v4/letter/o/f4b2a3/32.png) [@oldgearguy](https://forum.electra.one/u/oldgearguy)\
**Post date:** [March 6, 2023, 12:21pm UTC](https://forum.electra.one/t/how-to-rate-throttle-your-device/1085/8 "2023-03-06T12:21:05Z")

</div>

ok, that’s good to know that the messages all go through the standard queue and send process.

So a snapshot that sent a bunch of sysex messages should be fine, as well as the ‘normal’ note and CC stuff.

---

<div class="post-metadata">

**Author:** ![NewIgnis](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/newignis/32/767_2.png) [@NewIgnis](https://forum.electra.one/u/NewIgnis)\
**Post date:** [March 7, 2023, 11:42am UTC](https://forum.electra.one/t/how-to-rate-throttle-your-device/1085/9 "2023-03-07T11:42:25Z")

</div>

Does that mean, @martin , that as a workaround, one could set the throttle at a higher rate than needed for CC’s, just to get the NRPN pass thorugh well when changing snapshots?

---

<div class="post-metadata">

**Author:** ![studiobischof](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/studiobischof/32/430_2.png) [@studiobischof](https://forum.electra.one/u/studiobischof)\
**Post date:** [April 18, 2023, 10:29am UTC](https://forum.electra.one/t/how-to-rate-throttle-your-device/1085/10 "2023-04-18T10:29:46Z")

</div>

@martin A killer feature for the snapshots would be morphing between two for a performance!

I also tried giving names to snapshots via the console mac app, but they are not shown with firmware 3 anymore.

Looking forward for some updates 🙂

---

<div class="post-metadata">

**Author:** ![studiobischof](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/studiobischof/32/430_2.png) [@studiobischof](https://forum.electra.one/u/studiobischof)\
**Post date:** [April 23, 2023, 11:01pm UTC](https://forum.electra.one/t/how-to-rate-throttle-your-device/1085/11 "2023-04-23T23:01:23Z")

</div>

> [@studiobischof](#):
>
> I also tried giving names to snapshots via the console mac app, but they are not shown with firmware 3 anymore.

Just saw the snapshots part of the browser editor… so I can name them there.

---

<div class="post-metadata">

**Author:** ![szszoke](https://avatars.discourse-cdn.com/v4/letter/s/13edae/32.png) [@szszoke](https://forum.electra.one/u/szszoke)\
**Post date:** [September 7, 2023, 10:18pm UTC](https://forum.electra.one/t/how-to-rate-throttle-your-device/1085/12 "2023-09-07T22:18:55Z")

</div>

Would the “rate” property affect messages sent from Lua as well?

---

<div class="post-metadata">

**Author:** ![Flyweight](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/flyweight/32/342_2.png) [@Flyweight](https://forum.electra.one/u/Flyweight)\
**Post date:** [September 8, 2023, 7:21am UTC](https://forum.electra.one/t/how-to-rate-throttle-your-device/1085/13 "2023-09-08T07:21:21Z")

</div>

Hi yes it does.  
At least from my experience writing the LUA code for the Ensoniq Mirage Masos template.

---

<div class="post-metadata">

**Author:** ![SWK82](https://avatars.discourse-cdn.com/v4/letter/s/59ef9b/32.png) [@SWK82](https://forum.electra.one/u/SWK82)\
**Post date:** [May 23, 2025, 4:18pm UTC](https://forum.electra.one/t/how-to-rate-throttle-your-device/1085/14 "2025-05-23T16:18:36Z")

</div>

Hi,

I asked myself many times if the rate setting does properly work. To me it looks like it doesn’t change anything ? Or am I missing something ?

It would help a lot for some slow synths (not only very old ones) using only sysex controls for example and in particular with the super cool snapshots function.

---

<div class="post-metadata">

**Author:** ![martin](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/martin/32/145_2.png) [@martin](https://forum.electra.one/u/martin)\
**Post date:** [May 26, 2025, 8:02am UTC](https://forum.electra.one/t/how-to-rate-throttle-your-device/1085/15 "2025-05-26T08:02:56Z")

</div>

There’s something not right about the rate throttling. I worked on it during the 4.0 development but eventually decided leave it for later when 4.0 is out. I was worried that when I try to address everything in the firs 4.0 release, I would never complete it. I have it on my todo.
