Polyphony Power User Tips


#1

As some of you might have noticed one can get in a mighty row discussing Axoloti's polyphony issues but even when a novice cracks that nut and accepts it's inherent limitations it stays a fact that one single Axoloti is quickly stretched to it's polyphonic limits.

If we compare processing power limitations to yesteryears hardware limitations a possible compromise suggests itself. It is called PARAPHONY. Beside a whole generation of string and brass instruments synthesizers like the PolyMoog, the Korg Mono/Poly and Poly 800 used it to keep complexity and thus cost down.

Simply put one creates a polyphonic section (then mostly based on organ type top down division oscillators) and grafts a monophonic filter/ VCA/ effects, etc. line on it's output. Not very efficient for playing piano concerto's but for simple chordal stuff it can be quite effective.

The screen shot shows a synthesizer that is a sort of a mix between the Yamaha CS80 and the Polymoog with an extra basic “resonator modeling” section (WHOT?) replacing the CS80's second channel.

Such esoteric choices aside (see my Holy Grail ranting elsewhere) this layout provides 2 clear advantages:
1. It's a “full” 8-voice poly. During normal polyphonic use 3 to 4 voices would be the maximum.
2. It keeps virtually all controls live in the main instrument page.

In other words this synth is reasonably high in voice count AND can be fully tweaked life.

Is there no price to pay? Yes there is. That is why I mentioned the Polymoog in the comparison.

Just like the Polymoog this synth is actually not full polyphonic. It exists somewhere between polyphonic and paraphonic (I just came up with the term dynaphonic but that will probably not stick after all these years). The difference with a normal paraphonic is that its amplitude “VCA's” still work per voice and are fully programmable. The downside is that there are only 4 filters in all, namely a low and a high pass in series per channel (Very CS indeed).

In other words: While the individual notes are fully articulated volume-wise (VCA ADSR'd so to speak) the filter setup acts more as an overall performance layer. The filters will still trigger every time a new note is played but single notes do not receive an individual filter treatment. You can even setup your MIDI-keyboard in such a way that the legato notes do not trigger the filter while non-connected notes always trigger the filter. (In my development setup I am a the moment using the Korg Prophecy, which is so friendly to provide this function automatically, at the same time proving that it actually has a polyphonic keyboard).

The actual trick I am using here is to reverse the pathway and place the amplifiers (calling them VCA's in a digitally coded instrument is actually wrong!) in front of the filters. That is not as crazy as it sounds. It used to be necessary to place the amplifiers last to avoid circuit noise bleeding through. Every voice that faded out by closing a VCA would thus also loose its full residual noise tail. In our ”noisefree” digital world this is however not of much consequence anymore. So one can just as swell put all the amplifiers before the filters and compensate eventual differences with setting up the EG's slightly differently.

In Axoloti speak these tips basically boils down to the following:

Create a keyboard object and program a subpatch into it that only contains the oscillators, a PWM control for the pulse oscillator, an oscillator submixer and a “VCA” with an envelope generator attached to it. Thus all voices in the subpatch will have a full oscillator mix and a full volume envelope. One could compare the setup with a basic electronic organ/piano but one with full waveform and ADSR control. This relatively small set of features can then be reflected on the subpatch object (right-click the mouse on the function in the subpatch and choose “parameter on parent”) without the need for an endless row of additional controls. (see overall screenshot).

Some additional remarks:
- Attention: You'll have to create a keyboard object in both the main screen and in the subpatch since you need keyboard trigger inputs in both.
- Only oscillator detuning must in this example still be performed DEAF in the subpatch screen. The tuning controls could also have been included on the subpatch module surface but I wanted to keep that as uncluttered as possible.
- When you have made everything work in mono you can try out how many voices the Axoloti's subpatch can produce. My example instrument produces 8 voices at a DSP load of just over 90 % in spite of it's rather elaborate layout (There are even 2 extra processor hungry delay type effects in it, for God's sake!).
- if you play it mono you will actually not hear any difference with a normal monophonic. If you do however insist on single note triggering you can of course still bring the voice count in the subpatch back to 1.

Yes, it's still not a true polyphonic but to trick this thing out you will still have to play some serious stuff. And if you believe an instrument like this does not amount to much you should have a listen to all the Polymoog stuff on Return To Forever / Chick Corea's Romantic Warrior album.

As far as I am concerned the biggest bummer is the lack of polyphonic aftertouch per note. I am a real sucker for that. But hey, until a more powerful version of the Axoloti comes along (please!) this is surely a reasonable alternative.

Or is it?


Free Yamaha CS80
Basic polyphonic synth - The Hera
#2

Some actual paraphony can be achieved by coding/optimising oscillator banks. But it is quite a challenge.

See for example library/community/tiar/GM/052-Synth-Strings-2-tiar and 020-Church-Organ-tiar


Using a common dynamic filter is really reminiscent of these vintage instruments as well as combo italian organs Farfisa used in Italo disco music :slight_smile:


"midi/in/keyb touch" provides the polyphonic after touch.


Put aside the Axoloti limitations, the problem with massive/paraphonic poly aftertouch is the MIDI bottleneck, i'm not sure the slow MIDI DIN from the GEM S3 can handle such amount of data.

You can test this with this paraphonic aftertouch patch :
ParaphonicAfTouch.axp (13.5 KB)

It is based on a hard coded object I use to test my pressure sensitive enclosure.



Polyphonic aftertouch
#3

I assume you mean ACTUAL paraphony in the sense that an instrument is able to play as many notes as there are keys on the keyboard?

Using a common dynamic filter is really reminiscent of these vintage instruments as well as combo italian organs Farfisa used in Italo disco music :slight_smile:>

Absolutely! The Italians where for a time king at getting the best out of paraphony, which was no wonder since they moved into synthesizers very much from an organ technology standpoint.

Put aside the Axoloti limitations, the problem with massive/paraphonic poly aftertouch is the MIDI bottleneck, i'm not sure the slow MIDI DIN from the GEM S3 can handle such amount of data.

It surely can! I use it on my Starship One setup to drive the WSA synth engines by letting the MIDIMIXFIX processor split the note and poly aftertouch info out over one MIDI channel per voice. It has the expected vagueness of MIDI latency when compared to internal use of the poly aftertouch in the S3 but that is much more a peformance aspect then one of reproduction in the sense that the latency is just high enough to make the reponse feel a bit "distant" from what your fingers are doing.

In every other aspect it works quite well so that is only a small price to pay. I have however not yet tried to run poly aftertouch in a buzy multichannel sequencer arrangement environment. That might indeed be a bit stiff for traditional DIN MIDI.

You can test this with this paraphonic aftertouch patch :
ParaphonicAfTouch.axp1 (13.5 KB)
It is based on a hard coded object I use to test my pressure sensitive enclosure.

The next step for me is to find out how to get all the regular MIDI stuff connected to an Axoloti instrument. So seeing the above AXP file got me very exited. I am however affraid I do not get this thing to work. It goes live but no sound is coming out.

You must understand that I, although I have a rather wide knowledge of synthesis, am still getting to grips with the Axolot's specifics.

My next goal is for instance to "simply" get velocity and the pitch bend wheel working and use aftertouch an / or the mod wheel to control the frequency of 1 or both of the low pass filters.

So how to get the MIDI control info to work in conjunction with other modules? If I want to use the aftertouch information to modulate the filters frequency, the assigned envelope generators already use the filters frequency midulation input. So I will have to merge both input streams. How do I do that?

Any help would be very much apreciated.

Back to my above solution: I just realized that although polyphonic per note filter control is not feasible it should still be possible to use poly aftertouch to control the individual note volumes even after initial velocity triggering. :thinking:

Marc


#4

You can also control individual vibrato depth.


#5

Good one but the problem with vibrato on aftertouch is that it always travels in only one direction. So you are basically vibrating upwards or downwards from the set pitch but never around it.

Furthermore vibrato via pressure feels less natural to me anyhow. Left to right is much better. Many an old Yamaha Electone organ used to provide it, although only for some specific sections and always in mono. Then there are the new Hakan / Linn etc. XYZ controllers. They can indeed do polyphonic vibrato as well. Jummy!

On my own setup I tend to use the ribbon contoller for fingered vibrato, although normally only on monophonic lines. Mono vibrato on chords always sounds extremely cheesy to me. Ah well, you can't have it all, eh?

Talking about which: Here are the latest screen shots.

I have by now been able to incorporate velocity and poly aftertouch on the "VCA's" and mono aftertouch on the filters. Again: Within its limitations it all works surprisinly well. As expected the typcial paraphonic overall filter retriggering can sometimes be a nuisance because the only way to avoid that is to do some very precise legato fingering. But agian: One can't have it all.

By the way. It turns out that the non-filter-trriggerig during legato playing is "hardwired" into the Axoloti's software itself. Good choice!


#6

Ii think that "gate" and "gate2" allows you to choose retrigger or legato.


#7

Aha! A good reminder. Thank you. I think I saw there is a difference between both in one of Matthew Tyas' excellent videos but forgot what it actually was. So I basically did it right rightaway by accident. :blush:


#8

unless you use a high pass filter on it, the deviation will be proportional to the aft changes.
There is a series of control rate filters in factory/kfilter you can experiment with.


#9

I do not fully get that. Can you explain it in a bit more detail?


#10

A high pass filter removes the steady aka slow moving part of a signal.

It only let pass its variations not its value.

If the pressure is increasing, you will have a positive value
it the pressure is steady, the output of the hpf will return to zero.
if the pressure decreases, the output of the hpf will be negative.


A low pass kfilter can also be used (in series) to avoid the highpass to accentuate MIDI steps.

I mean something like:

Pitch  -------------------------------------->  Mix 1 bus in     ---> osc pitch
Aft -->    High pass    ---> Low pass     --->  Mix1 input
          cutoff 4Hz          cutoff 15Hz       with knob at 0.5

#11

Very, very interesting! Could you give a working Axoloti patch example?


#12

For further insights and an actual instrument download please also visit my FREE YAMAHA CS80 post :slight_smile: