Synthesizer polyphony explained.

After my recent foray into serious synthesis I decided that maybe, just maybe

I should do some research into polyphony, duophony and paraphonic methods

before I burn out my iPad.

This article is a good read on the subject.


Comments

  • Thanks man /, I was about to ask exactly for an article about voices and polyphony - thanks

  • Even though I've messed around with Drambo for quite a while I'm still failing to do proper 'paraphony'.

    The idea is very simple 1-4 oscillators and each 'note' (when multiple are held) feeds it's pitch to one of the oscillators, if only one note is held all 4 oscillators will trigger with the same pitch. These are then fed thru one filter and amp controlled by one set of ADSRs which are in one mode triggered by the first note, and any note that gets triggered after the first one.

    In practice this could be doable if the 'voice selector' module only outputted from a pool of actually held notes even when requesting notes that would be silent due to no note being held down.(ie. even if I select 'voice 4' and no 4th note is held it would output note 1).

    I'll experiment further and see what I can cook up...

    Cheers!

  • As an example this should work if the voice selector module outputted voice 1 where where voice 3 is selected if no note of voice 3 is present.


  • I found that the morph module makes Drambo's polyphony a bit more complicated. Modulating some parameters with the morph module is polyphonic, and others are only valid for the first voice.

    Specifically, most parameters with a small triangle in front of them are polyphonic, and most parameters without a small triangle are monophonic. But this is not a certainty, you need to try it to know.

  • @samu this works:

    @ZhouJing yes this has been a frustration for me - morph does indeed make some patches effectively paraphonic if you add in modulation to the morph knob. Maybe there could be some warning if any of the routings you have are reducing your polyphony or introducing paraphony of some kind.

    .


  • Partially yes, but let's say I want to do 'real' para-phony like on Moog SubSequents as an example?

    In the case of the Moog, if ONE note is played both oscillators play/use the played note as a reference note.

    If TWO notes are played oscillator 1 plays note 1 and oscillator 2 plays note 2 as long as the second note is held down, when released it reverts to playing the pitch of note one. Both oscillators can use their own waveforms but share the amp and filter.

    This would be doable in Drambo if the voice selector had some built-in logic, like if a voice is selected where no note is present use the one that is present, ie. the note for Voice 1. If there's no note for Voice 1 no other voice selector gets any notes, last held note will always be Note 1.

    This lends it self to some wonderful whacky sounds when using sync or ring-modulation between the oscillators.

    When one note is played it's like ok, this is two synced oscillators playing in sync, play the send note somewhere else and boom you get a drone and play the sync-harmonics with the second note...

    Same when applying ring-mode, you play a low note with note one, and the second note plays the frequency at for ring-modulation.

    I admit this fascination for para-phony originates from my obsession with the SID where I could sequence each of the 3 voice independently and still make them interact via ring-modulation, sync or both at the same time in different configurations.

    My current work-arounds for this obsession is using the Graphical Envelopes and Modulators a 'sequencers' where each oscillator in a voice is controlled by them. But it can't be 'played' in real-time using the keyboard...

    I know it's an 'edge case' but still something that should be doable 😎

  • edited March 2023

    polyphony explained in one sentence.

    there is mono, there is poly, there is rubbish to save costs on hardware. 😈 ^^

  • @samu ah some additional voice allocation of how to spread pitch based on how many keys are being pressed? I did something like this once. I will try and reconfigure it :) you sum gates to mono so you know how many active voices there should be.

  • edited March 2023

    I have to admit that playing the duophonic sync interval via keyboard has something to it,

    but since we are in a modular playground we can use a cv sequencer to do that ...


    paraphony I dont find very musical,

    you can't play anything you want ... because it shares the amp envelope. its poor mans polyphony ...

  • edited March 2023

    I really like paraphony in some implementations. Like 4 voices into 4 vca with long decay into one filter with envelope. Each voice gets its own vca so it’s not fully retriggering with every new note, but with each new note you get the filter opening back up so these lovely note trails stay.

    this is rough, but it’s along the lines of what @samu is describing. We’d have to mess with how long a voice stays “active” and retains its pitch after releasing the key.

  • Paraphonic filter with trails


  • I get wrong notes at times. I wonder if it's even possible to do it without using multiple MIDI2CV modules (representing 1, 2, 3, 4 keys played) because you never know which voice a played note lands on. And extracting the exact notes played now will need even more logic I guess.

    An interesting subject.

  • @rs2000 yeah its very complicated. Its coming back to me a bit - I think I used the graphic shaper to better define at which point adding in new keys distributed voices up. you have to use first in, last out voice allocation mode, but that way you can allocate notes in an orderly way. you would need a different graphic shaper for each total number of notes, like for 4, 8, 16.


  • The 'voice selector' method would work if the 'logic' was built-in into the Voice selector module.

    It's a fairly simple one, if I 'request' Voice/Note 3 using the Voice Selector module and no Note 3 is held it should output the first available note which could be either 'Note 2' or 'Note 1'. Note 2 if only two notes are held, Note 1 if only one note is held.

    This would mean that if I only hold down ONE note selecting Voice 1,2 or 3 using the Voice Selector would only output note ONE regardless of which voice is selected in the module since only one note is available in total.

    It may be possible to do it with conditions like if voice count is less than 3 use input from voice 2, and for voice 2 if the voice count is less than 2 use input from voice 1.

    I find chaining logic condition modules in Drambo a bit challenging...

  • @samu You can sum the all gates with Poly to Mono, then run that back through Mono to Poly to mult it. I think you'd then divide that summed gate by total possible voices. you can than do the voice logic with voice selectors and graphic shapers, using the multedand divided number of voices as an index. its not straightforward, but im fairly certain this is possible. I'll experiment some more later.

  • Thus a basic logic addition to the Voice Selector module would be way more practical 😎

    If the user holds down ONE note and requests information for 'Voice 3' give them the information from 'Voice 1'.

    If he user holds down TWO notes and requests information for 'Voice 3' give them the information from 'Voice 2'.

    If the user holds does THREE notes and request information for 'Voice 3' give them information for 'Voice 3'.

    Pretty basic but overly complicated to patch no?

    The point here is that I would 'pre patch' Voice Selector 1 to OSC 1, Voice Selector 2 to OSC 2 and Voice Selector 3 to OSC3

    (Just like in the example image I posted).

    The ADSR Gate comes from the 'Main' Midi to CV thing with ONE note polyphony.

    The easier the solution the better, this should not have to be 'complicated'.

    Cheers!

  • I'll keep on re-patching and see where things go...

    ...noticed a few ??? already so it might be solvable.

    Cheers!

  • @samu

    "The point here is that I would 'pre patch' Voice Selector 1 to OSC 1, Voice Selector 2 to OSC 2 and Voice Selector 3 to OSC3"

    This is also a good way to bring multiple external oscillators into play.

    I've got a patch called a "Voyager" that I had put together in dRambo

    and I wanted to replace the dRambo oscillators with the MiRack ones.

    The most straight forward way was to assign a Voice selector per oscillator.

    Worked a charm.

    Theoretically one could do this with any sound source.

Sign In or Register to comment.