Polyphonic patches and output levels


#1

A general question: I often find that with polyphonic patches (MPE in my case) I get a clipping type of distortion when playing many notes simultaneously. I guess that's normal, given that the voices get all added up on the output. The same patch will be clean and pristine if only one or two notes are played at the same time.

I'm curious if people have a general solution for this, like attenuating the signal depending on the number of voices, or using a limiter, or some such thing.


#2

there is a setting (saturate output) in the sub patches setting menu, try that to see if it makes a difference.


#3

@lokki No it doesnt, see this thread. Thanks for the suggestion, but I'm really asking for tried and true strategies people are using already.


#4

ok.

lowering the output of each voice is the easiest way to go, at the expense of decreased resolution, since you're not using all bits on single voices. it is what most of my digital synths do though. blofeld, preenfm2 etc.
limiting and compression always sound "strange" to me for final output.

that being said, i never had this problem with the mpe patches that i tried on axoloti (up to 8 voices)


#5

what I seem to remember doing on my mpe patches was

  • turn off saturation on the voice patch
  • reduce the gain of each individual voice

I think you can leave saturation on the main patch, but I think I usually turn this off too, and instead adjusted the gains on the voices to get the overall levels I wanted.

this is not really an issue with Axoloti, nor really MPE, I have the same with pure data on polyphonic patches - its simply caused by summing the output of many voices.

I think the 'proper' solution is:

  • you need to ensure that individual voices do not clip
  • also they are not clipped when you sum them, hence why you need to reduce gain, in proportion to the max number of voices played.
  • 'sympathetic' compression (!)

without any compression this will tend to mean the patch sounds quiet, when you only play a few voices (or single), so to 'fix' this you probably need to use compression BUT the issue with this is that this can screw with the dynamics, not something you want with expressive controllers , i.e. overly aggressive compression , and you find you cannot play softly. also compression works on a 'time window' , and that creates lag, again not something you want with expressive controllers.

so I tend to find expressiveness and compression end up competing with each other... so I tend to leave compression off... but probably with more time/effort I could do some more sympathetic compression, which is a compromise between the two.

yeah, this concerned me too... I guess ideally what we could do is have a multi voice mixer/compressor, so the voices came in at full gain on separate inputs, and then the object then both mixed and compressed - either by determining the compression ratio before mixing (so keeping 32bit), or by summing in 64 bit, then compressing back to 32 bit.
(id assume the former is more efficient but more complex to code :slight_smile: )
of course, when multiple voices are used, this would still reduce their detail, but that's ok its louder.. but means for less voices, or when played quieter, you keep the detail.


#6

@thetechnobear
that's why i think that a few Axolotis playing the same patch, 1 or 2 voices per unit, and a passive summing mixer for them all, is the best and the most universal polyphonic solution. (which easily works as multitimbral too.)
and what is even better, the passive mixer output can be fed to a compressor.
(we discussed this recently in another topic)


#7

but this in turn will only work if you have a master axoloti that effectively spreads the voices among them. would be great to have support for this in firmware...(via digital connection, to lower latency)


#8

yes, i have exactly that concept, at least in my head :alien:
there should be some master entity that takes care of this.


#9

spreading over multiple axolotis doesn't solve or even change the the issue (unless you include an external compressor), you'll still have to manage the gain structure. i.e if you send out max gain from all axoloti you'll peak the mixer.
ok, that's not necessarily true it may be the mixer has higher output levels, and so more headroom...
but even then, if you go back into the another axoloti (say for master effects), you'll be limited by the input gain on axoloti.

… so all your going really is doing is moving where you put your gain control, not eliminating them.

I do agree, with multiple axoloti being useful, Ive suggested from the beginning, that I thought Johannes could sell more axolotis if users could combine them like 'voice cards', but whilst some work has been done on this, its not really been a priority I don't think... which is a pity, but perhaps one day...


#10

the point is not eliminating gain control, which is impossible i suspect, but simplifying it.
the less voices per device, the simpler gain control is required.
complex gain control per device also would eat more precious DSP cycles.
so, «voice cards» approach (i definitely like this term) is not a panacea, but the best possible tradeoff.