unison effect with poly~

stoersignal's icon

i ve got a 16 voice poly with 4 oscillators in it.
since today i did the unison effect with just copying the sound generator of
1 osc four times. in the bpatcher for osc 1 i can choose unison 1 to 4 . so when i have that set, lets say to 2, two of the 2d.wave objects inside oscillator 1 get muted and 2 are playing.
today i thought of packing my osc modules inside polys~ inside the big poly. but now i don`t know how to detune each of the unison voices.
i know it should be possible with send~/receive~ but isn`t there a more elegant way.
they always get detuned equally but in different directions (+/-)

thanks in advance and sorry for my english
andreas

stoersignal's icon

nobody?????

lul's icon

Hello,

By packing your osc in a dedicated unison poly~, you could use the thispoly~ voice number information to add an offset to the tuning of the actual voice in the unison.
This offset being controlled in the main patch as an amount of detuning.
You could, for instance, make use of the even/uneven number of that voice, as well .
A lot of things to test.

stoersignal's icon

Can you post maybe an Example of that? I know how to get the Voice number from poly, but i don't Know how to accomplish that Offset for Dach Voice?
Thanks in Advance
Andreas

Peter McCulloch's icon

Use a receive called "MasterTuningOffset" (for example),

then in the poly~ patch, have it loadbang the thispoly~ voice number.

Run that into a scale 0. #_of_unison_voices 0. value_of_MasterTuningOffset

Take the thispoly voice number and take it % 2 to find even or odd, then scale into a -1. 1 range, then multiply by the output of the other scale.

(I'm doing this in halfsteps)

stoersignal's icon

What do you mean with halfsteps?

lul's icon
Max Patch
Copy patch and select New From Clipboard in Max.

Here's the idea.
The higher the voice number, the higher the detuning.
With the same system, implementing spreading is equally a breeze

Bye

Peter McCulloch's icon
Max Patch
Copy patch and select New From Clipboard in Max.

Here's how to do it using half-steps. Lul's solution will work, but it does it in Hz, and I generally find that half-steps work better unless you're trying to create a specific timed beating effect.

stoersignal's icon

big thanks to both of you!