Hi guys
I am just wondering how a plugin should react if its polyphony is set to 1 (so no polyphony) and it receives multiple notes (for example coming from a chord player). Are there standards? Best practices?
I guess the question extend to polyphony set to N and it receives M notes with M > N.
How did you guys handle this use cases in your plugins?
Thanks
Yan
Best practices to handle monophony
-
- RE Developer
- Posts: 483
- Joined: 21 Apr 2016
- Location: Las Vegas
-
- Posts: 2599
- Joined: 03 May 2020
I'm not an RE dev but I know what you are asking. The term for what you are asking about is Note Priority.
Some synths, hard or soft, have it as a user setting offering a choice of some or all of:
- Highest Note
- Lowest Note
- First Note
- Last Note
In each case that is the note that is used when notes overlap. The one you usually want on a monosynth is last note priority so that the new note plays as soon as it sees it rather than hanging on to the previous note whilst your sluggish fingers release that key!
Some synths, hard or soft, have it as a user setting offering a choice of some or all of:
- Highest Note
- Lowest Note
- First Note
- Last Note
In each case that is the note that is used when notes overlap. The one you usually want on a monosynth is last note priority so that the new note plays as soon as it sees it rather than hanging on to the previous note whilst your sluggish fingers release that key!
-
- Posts: 45
- Joined: 10 Dec 2017
A great question, and one I've been thinking about myself on a 'back burner' level. The Quad Note Generator Player has a switch to select the Output mode, which I think would capture all the options commonly used, which include Poly (not relevant to this thread), Mono Hi, Mono Lo, Mono Last, and "Mono Line," which I feel is pretty specific to the Quad Note Generator itself and probably not applicable in most other cases. In the Quad Note Generator manual there are even illustrations of how these different modes work.
I'm working on an extension that outputs Note and Gate CV data and have been thinking about polyphonic data going into the device. In the code I've shamelessly stolen from the Hello World Tutorial to detect note events, it looks like it loops through the list of code notes. I've got my plugin's logic hinged on when one of those notes doesn't have a velocity of 0, and when I come across one, I take action and break out of the loop and effectively ignore any other notes that might be on above this first note. I'm guessing this would be a "Lowest Note" approach to monophony, and I could easily cobble together a "Highest Note" approach by just going through the note list from 127 to 0 rather than from 0 to 127. Last Note monophony I would have to think harder about, as I've not worried about time (YET) in my extension beyond basic use of the RenderBatch method.
I'm working on an extension that outputs Note and Gate CV data and have been thinking about polyphonic data going into the device. In the code I've shamelessly stolen from the Hello World Tutorial to detect note events, it looks like it loops through the list of code notes. I've got my plugin's logic hinged on when one of those notes doesn't have a velocity of 0, and when I come across one, I take action and break out of the loop and effectively ignore any other notes that might be on above this first note. I'm guessing this would be a "Lowest Note" approach to monophony, and I could easily cobble together a "Highest Note" approach by just going through the note list from 127 to 0 rather than from 0 to 127. Last Note monophony I would have to think harder about, as I've not worried about time (YET) in my extension beyond basic use of the RenderBatch method.
-
- Information
-
Who is online
Users browsing this forum: CommonCrawl [Bot] and 0 guests