polyphony varies amplitude

wak's icon

I am working on a polyphonic synthesizer and I am wondering if there is
a generally accepted way (method and degree) for automatically
lessening the output volume as the number of sounding voices increases
in order to avoid distortion.

Thank you, community, for your help; and thank you, Cycling '74, for
the new web site and forms.

-ian

wak's icon

If I understand what you're proposing, the voice number output by poly
does not necessarily = the number of voices. However, I have worked up
a patch that does indeed divide the the amplitude by the number of
voices (derived from the busymap thru iter which may be a round about
way for all I know)).

This curve 1 1/2 1/3 1/4 . . . sounds too drastic to me though. Before
I get into experimenting with different curves, I thought that I would
see if there was a standard that I could Simply adhere too.

I will try out normalize~, it hadn't occurred to me.

thank you,

-ian

Peter Castine's icon

Try sqrt(1), sqrt(1/2), sqrt(1/3)...

On around Jan 17, 2006, at 2:11, walbers said something like:
> This curve 1 1/2 1/3 1/4 . . . sounds too drastic to me though. Before
> I get into experimenting with different curves, I thought that I would
> see if there was a standard that I could Simply adhere too.
>
-------------- http://www.bek.no/~pcastine/Litter/ --------------
Peter Castine | ^
| Litter Power & Litter Bundle for Jitter
pcastine@gmx.net |
pcastine@bek.no | iCE: Sequencing, Recording, and Interface Building
4-15@kagi.com | for Max/MSP
| Extremely cool
| http://www.dspaudio.com
| http://www.dspaudio.com/software/software.html

dlurk's icon

that's a better andwer, but tim place's [tap.elixir~] is very nice.

wak's icon

i have worked up a method that iterates and counts a busymap from
poly~. i am happy with the sqrt(1) sqrt(1/2) curve but since it's not
at audio rate, it is not near as smooth as tap.elixir~. i haven't been
able to think of another method of determining the # of voices sounding
in a polly~. i still haven't tried normalize~, which may be my best
bet.

-ian