What's a monophonic plugin you'd like to play polyphonically?

Hey Guys,

I’m working on a MIDI filter that can voice allocate incoming notes to a set of MIDI Channels. The idea is to allow playing multiple notes on monophonic synths by having multiple instances.

Seems to be working quite well, but I’m struggling to find many monophonic synths to test with. Any suggestions?

Brad

I can’t think of any that don’t already have a poly mode… But you could try say Arturia MiniMoogV in its mono mode. Same with Diva.

Here are some free ones:
https://www.vst4you.com/monophonic%20synth%20vst.html

Like Fred said, most have a poly mode since vsts came along.

U-he Repro 1

2 Likes

These too- I actually like the Sonic Six!

http://www.vst4free.com/index.php?dev=Elektrostudio

The Sonic is duophonic and you can have gliss on only one oscillator giving a really nice fat sound, almost like the Toto Oberheim brass thing in a lead sound. Having that be poly could be pretty weird.

1 Like

Hey Brad,

Here are some freebies I use already …

https://www.gvst.co.uk/gsinth2.htm

https://www.fullbucket.de/music/monofury.html

GSinth is true mono, the u-he models have poly/mono capability

I use the Legend MINI Moog sim from Synapse and it has mono/poly capabilty as well

Dave

Coming soon…

5 Likes

nice!

+1000. This is the best Mono VST that I know of.

Or the other one is the 32 bit only but works fine in Cantabile 64 and JBridge is the donationware is my favourite Taurus emulation

2 Likes

The Roland Cloud SH-2, SH-101 and ProMars are all mono. I must confess that I suggested this feature specifically owing to the desire to have polyphonic versions of these VSTs.

I’ve seen/heard it done within Ableton live using Max. The result s can be quite beautiful.

I like!
This gives me an idea: @brad: could you expand this a bit with a “Unison mode”? This means: as long as only one note is played, the same note is sent to ALL selected output channels; when multiple notes come into play, notes get divided up; maybe with “top to bottom” or “bottom to top” priority.

This would be a blast for more realistic brass sections and “single note unison” - somewhat like what NIs Session Horns is doing internally…

Just dreaming…

Cheers,

Torsten

4 Likes

The only complexity about this mode would be that if you hold one mono note for a brass section (all four instruments playing unisono) and then stack another one, you’d need to steal one from the currently held notes, send a note-off and a new note on for that instrument. Once you add another one, you’d need to (depending on priority) re-shuffle the active notes again, so the trombone doesn’t cross above the trumpet.

Not unsurmountable, but a bit more complex than just a round-robbin polyphony algorithm…

@Torsten EXACTLY! Brass, strings, woodwinds … Although one can do a lot with split keyboards, I was thinking of a mixed WW quartet. Bassoon, Clarinet, Oboe, Flute. Or a better version of Cello, Viola, V2, V1, or Bari, Tenor, Alto saxes, etc.

I had a record producer tell me he loved the “As Tears Go By” string sounds. Can mostly simulate it with splits, but with THIS!!!

Should be possible but I have questions:

  1. Would it need special logic to handle playing a single note at a time, but where there’s a small overlap where two consecutive notes are held because you just happen to be playing legato. In that case wouldn’t you wane all target channels to play that one note. I guess there’d need to be some time threshold - which makes it more difficult since the MIDI filter mechanism can’t currently generate events at arbitrary times - only in response to an incoming event.

  2. The current algorithm isn’t round-robin, it’s: least recently used inactive channel and if all are active steal from the least recently used active channel. (ie: it’s already doing the note stealing and sending the required note off events). Not sure I fully understand how the top-to-bottom/bottom-to-top logic should work.

  3. “so the trombone doesn’t cross above the trumpet”. Does this mean it needs special knowledge about each channels and/or the assignment logic varies channel by channel?

(original question) - NI Monark?

Hmmm, interesting! But difficult to implement without latency, methinks. How should Cantabile know at the moment of Note-on - you’d have to buffer and wait for the “legato window” to end. Not sure if this is worth the pain…

My idea would be: in any “multitimbral” situation (when it arises due to an additional note-on or a joint note-on (chord)), notes are distributed across the available MIDI channels sorted by note number (channel 1 gets lowest, channel 4 gets highest - for my 4-piece brass section). Top-to-bottom for unison means that in case of only two notes played, the higher note gets played by channels 2-4, the lower note by channel 1. Bottom-to-top would mean that for two notes, channels 1-3 get the lower note, channel 4 the higher note.

When adding another note on top of the two notes, this means re-shuffling the notes in bottom-to-top mode, because now channel 4 plays the new higher note, channel 3 gets the note previously held by channel 4, and the other two channels stay as they are. In top-to-bottom-mode, channels 1 and 2 take over the new note, channel 3 stays on the previous higher (now middle) note, channel 4 stays on the lowest note.

Overall, this means that channel 4 always has the highest, channel 1 always has the lowest note (so the trumpet never crosses below the trombone), but the assignment of the notes in between and the necessity of notes being stopped and retriggered on a new channel changes.

So no need for individual channel assignment logic, just allocation of voices to MIDI channels along their key number (and the need to re-allocate / re-trigger voices when new notes get added to a chord).

Makes sense?

Cheers,

Torsten

P.S.: we could also discuss a third mode “equal distribution” - the algorithm tries to distribute the notes evenly, so for four voices and two notes, both upper and lower note get two channels. Same with three notes and five / six instruments (for five: two for highest, two for lowest, one in between?), and so on… Easy to go completely wild with divisi assignment :wink:

1 Like

+1000 @Torsten,

I had the exact same dream when I saw @Brad’s post about this new filter.
Smart splitting chord voices into different midi channels to feed monophonic section instruments (Strings or brass) (did I say Swam?)

But yes, it needs f…ing tricky algorithms!
Sorting notes by pitch, retriggering and redistributing channels when adding voices, etc… you spotted this.

I don’t think a unique algorithm could face any playing situation. (chords playing,legato, etc…)
The player should choose among different options and adapt his paying to a particular technique.
Polyphonic legato is rocket science!

And yes, latency.
We have to measure time here. (Are those keys pressed “almost” simultaneously to be treated as a chord?.. what is the threshold of “almost”?.. Legato detection is also a time measurement)

Since KSP coders manage to do some of those things in Kontakt, can the dream come true in Cantabile?

Here are two free midi vst’s I tried for this purpose:

https://jstuff.wordpress.com/js-midi-tools/
The last one.

https://www.kvraudio.com/forum/viewtopic.php?t=300566
The midiPolyphony one.

Cheers.

Igor

OK, so I think the biggest barrier to implementing this as a MIDI filter is the time based aspect of overlapping notes and I don’t think it’s worth adding this to Cantabile’s filter framework for this one case - probably better implemented as a MIDI plugin.