Possible MIDI thinning on playback that disappears on export

This is a peculiar one. I’m in the middle of a cello quartet. There are lots of glissandi in it. In playback, I’m hearing what sounds like MIDI thinning. The glissandi aren’t smooth, and often don’t get quite to target. There’s also a bit of snapback effect when the pitch-bend is reset while the decay of the note is still ringing. I’ve been thinking about how I could improve it, but I needed to get a test together along with renders demonstrating the problem and the solution…

…but a funny thing happened. I found a nice example of the problem and put it in a flow by itself. It still showed the problem during playback. Then I exported it, first as high-quality mp3 and then as 32-bit BWAVE. The problem disappeared. The glides were all smooth, reached completion and the pitch-bend stayed in place until the notes had died away. It sounded really good. But playback still has the issues. I’ve not touched the key-editor FWIW.

I put on my diagnostics hat and brought up activity monitor to see if I was running out of cycles. Nope. My computer’s coasting. The run length of the piece is currently about 6 minutes, but the render takes only about half a minute. In other words, render’s going at 12x realtime. So I’ve got cycles to spare.

I can understand that there might be some MIDI thinning during playback. It might be necessary on a more heavily loaded system. But I don’t see anything in the documentation that allows me to control it or turn it off. My machine’s high spec enough that it would still be idling playing back without thinning.

It’s probably worth listing relevant stuff about my system:

  • Mac M1 Studio Ultra (128GB integrated memory). Mac 2026.6.2
  • SWAM celli on VEPRo 8. This is running locally, so there aren’t any network-related issues. Not that it matters in this case, but I’m using my own expression maps for SWAM.

Is this an issue anyone else has bumped into? Thanks,

Michael

What is MIDI thinning?

When there’s a large burst of information from a particular controller, some of those data are removed. This is thinning. For example, if there’s a lot of CC#1, perhaps every other value will be removed. The idea is that you shouldn’t make an audible difference because there’s a lot of stuff going on at once. This goes back to the time when a MIDI studio was made up of lots of synths on cables. Each MIDI cable could only run at a maximum rate of 31.25 KBaud (roughly one command per millisecond). And a lot of synths couldn’t even handle that!

There’s one thing in the MIDI spec that allow a substantial reduction if a single CC had a burst. It’s called “running status” and allows a series of commands to be reduced from three bytes each down to two bytes. But if didn’t take that many devices to be in a situation where data had to be thrown away completely. This is what thinning does, and it can lead to uncertain results.

These days with VIs, the cables are mainly gone and MIDI commands travel a lot faster. But we make up for that by adding more and more VIs :wink: What I’m hearing might be something else, but it sounds more like thinning than anything else I can think of.