Plugin idea

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

you could run 16 polyphony perhaps,
if each channel was playing a different mono note
to a different instrument instance.
Then pitch bend could be used polyphonically on the mono channel/instrument instance
Pitch bend is per channel

16 instruments on different channels would have to be loaded,
or a multi-timbral one

Maybe the channels could be dynamically allocated somehow, otherwise
I wonder what I want in here
-actually, my lucky number seems to be 126

Post

nix808 wrote: Sat Jan 31, 2026 9:51 am you could run 16 polyphony perhaps, if each channel was playing a different mono note
to a different instrument instance. ... 16 instruments on different channels would have to be loaded
That sounds like a nightmare - for the musician (because it would be very inconvenient) as well as the computer (because loading so many plugin instances taxes RAM and CPU much more)! I think, we would be way better off using a standard MIDI 2.0 message dedicated to note pitch per note, if such a thing exists. I'm not yet very familiar with the MIDI 2.0 spec, but according to this article:

https://www.soundonsound.com/music-busi ... ng-midi-20

there could something in MIDI 2.0 that fits the requirements. In the section "MIDI 2.0 Messages", it says:

"There are also per-note controllers, for polyphonic expression or note-by-note modulation, with extremely fine pitch or value control"

That sounds like something that could fit the bill. The plugin would have to sit before the instrument, analyze the incoming note events, then pass them through to the instrument and then also merge its own, internally generated, per-note pitch bend (or detune or however they are called) messages into the outgoing MIDI event stream.
Last edited by Music Engineer on Sat Jan 31, 2026 1:59 pm, edited 2 times in total.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

I had heard about that capability too from somewhere.

I can't manipulate midi2,
unless Flowstone implements it

yes, midi2 should be the fit here,
shoehorning midi1 with channels seems exclusively difficult
I wonder what I want in here
-actually, my lucky number seems to be 126

Post

Music Engineer wrote: Sat Jan 31, 2026 10:17 am
nix808 wrote: Sat Jan 31, 2026 9:51 am you could run 16 polyphony perhaps, if each channel was playing a different mono note
to a different instrument instance. ... 16 instruments on different channels would have to be loaded
That sounds like a nightmare - for the musician (because it would be very inconvenient) as well as the computer (because loading so many plugin instances taxes RAM and CPU much more)! I think, we would be way better off using a standard MIDI 2.0 message dedicated to note pitch per note, if such a thing exists. I'm not yet very familiar with the MIDI 2.0 spec, but according to this article:

https://www.soundonsound.com/music-busi ... ng-midi-20

there could something in MIDI 2.0 that fits the requirements. In the section "MIDI 2.0 Messages", it says:

"There are also per-note controllers, for polyphonic expression or note-by-note modulation, with extremely fine pitch or value control"

That sounds like something that could fit the bill. The plugin would have to sit before the instrument, analyze the incoming note events, then pass them through to the instrument and then also merge its own, internally generated, per-note pitch bend (or detune or however they are called) messages into the outgoing MIDI event stream.
You would need 16 open instances just if the instrument is monotimbral, majority nowadays are multitimbral, Pitch bend (midi 1) is the most basic system to do this but it would be the most compatible. For suported synths we could use MPE (midi 1) or MTS (midi 1).

Post

Music Engineer wrote: Fri Jan 30, 2026 5:01 am It would indeed be nice to have a thread that can serve as a central hub to collect all sorts of ideas. It could then possibly link to more specific threads that flesh out a particular idea in more detail.
Thanks for the recommendations. Synthesizing cymbals is something I am very interested in, primarily to reconstruct tracks butchered by MP3 encoding.

I would love to have a thread to dump all kinds of plugin ideas into, at least to see if there's something out there that already does the job. An example of mine can be found here: viewtopic.php?p=9175462#p9175462

I can make it in SynthEdit or FlowStone but that's nothing compared to real C++ performance. I always think about all the amazing programmers who put out incredible plugins in the early 2000s. It's insane how much they managed to achieve. Some of those plugins don't even reach 100 kb filesize. I wished I had that skill and knowledge but I don't have the time to dig this deep into programming.

Post

Music Engineer wrote: Sat Jan 31, 2026 9:32 am What do you mean by "for polyphonic we would be using multichannel" and "You send a correspondent pitch bend right after the note".
You use at most one concurrent note per channel, which then means you have a separate pitchbend for each note (because there is only one note on any channel). For this to work the instrument in question has to actually support multiple channels properly (ie. not just a simple "omni-mode" where the channel is completely ignored), but it's doable.

ps. Oops, I didn't realize there were more pages of messages. Leaving this "as-is" anyway 'cos the point about the instrument having to actually support this properly (which is not a given) still stands.

Post

Music Engineer wrote: Sat Jan 31, 2026 10:17 am That sounds like a nightmare - for the musician (because it would be very inconvenient) as well as the computer (because loading so many plugin instances taxes RAM and CPU much more)!
You're over-thinking it.

If you're doing the micro-tuning in a plugin (acting as a MIDI filter) then that plugin can also do the voice allocation over the different channels. You don't necessarily need separate instruments either, you just need an instrument that keeps track of the channels of the notes and the different channel parameters separately. As far as I understand, some instruments do this while others don't although I can't name any examples right now.

Post

mystran wrote: Tue Feb 03, 2026 2:40 pm...you just need an instrument that keeps track of the channels of the notes and the different channel parameters separately. As far as I understand, some instruments do this...
So, the instrument keeps track of the midi channel on which it received the note-on and then the pitch-bend messages for that note will also come on this channel and then the channel is used to dispatch the pitchbend messages to the different notes? That is rather interesting. I wasn't aware that some instruments do this. Yea...this could indeed work.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

mystran wrote: Tue Feb 03, 2026 2:40 pm If you're doing the micro-tuning in a plugin (acting as a MIDI filter) then that plugin can also do the voice allocation over the different channels. You don't necessarily need separate instruments either, you just need an instrument that keeps track of the channels of the notes and the different channel parameters separately. As far as I understand, some instruments do this while others don't although I can't name any examples right now.
I am doing this since nearly two decades. It first appeared in FireBird and is advertized as IQM "intelligent microtuning".

https://www.tone2.com/icarus.html
https://www.tone2.com/tone2-electra3.html
https://www.tone2.com/nemesis.html

But it is *very* tricky. There are tons of special cases. And things can run out of tune quickly.
https://www.tone2.com
Our award-winning synthesizers offer true high-end sound quality.

Post

+1 on what mystran said — handling voice allocation in a MIDI filter plugin is the practical approach for MIDI 1.0.

That said, I've been implementing MIDI 2.0 support in an FM synthesis engine (Swift/CoreMIDI) and the per-note controllers in UMP make this so much
cleaner. No channel splitting hacks, no separate instrument instances — just per-note pitch bend and per-note CC directly in the protocol.
The real bottleneck right now is host support. Most DAWs are still MIDI 1.0 internally even if the OS supports UMP. So for anything shipping today, mystran's MIDI filter approach is probably the way to go, with MIDI 2.0 native support as a future path.

Post

Multi-channel !MIDI interceptor" plugins *can* work well for microtuning in MIDI 1. Entonal and Infinitone seem like the most well-developed ones to me.

The strategy generally suffers from some consistency issues in my experience. And there's the potential for user error because the pitch bend range must match between the MIDI interceptor. Not optimal. But some people use them to great effects.

The base problem is MIDI 1 has no unambiguous way to specify pitch per-note. MIDI 2 fixes that.

For now, I find MTS-ESP the most effective strategy by far. It lets you syncronize tunings between plugins, and tuning can change dynamically on the fly. It's an open standard so anyone can develop for it. There's a bunch of examples of MTS-ESP masters by now. I have had *so many* inexplicable experiences like: "huh, why is this render out-of-tune, it was fine on DAW playback" with MIDI pitch-bend based solutions, and way fewer of those since I started using MTS-ESP. Plus I'm spending way less time setting up the tuning for each and every instrument individually. YMMV of course.

Post Reply

Return to “DSP and Plugin Development”