Polyphonic synth with adsr routing..

Julien Bayle's icon

Hi there,

I'd need to customize a synthesizer patch I designed.
I'd need to add a feature to route adsr as the same time as the pitch to each voices.

example:
I'm sending a long attack envelope & the pitch 64.. it produces the midi note 64 with a long attack
But if I send just after that a short attack envelope & the pitch 45, it will produce a short attack sound related to the midi note 45.

How can I do that with poly~ ?

FP's icon

hello, here's a starting point.

Max Patch
Copy patch and select New From Clipboard in Max.

save as "p-test_cycle" :

Max Patch
Copy patch and select New From Clipboard in Max.

main patch :

Julien Bayle's icon

many thanks.
target is a nice way to route the adsr values
I know my idea could be strange, but the generative music machine I'm currently designing requires to have different values of adsr for pitch/velocity triggered.

so, again, mayn thanks :)

The final target will be a pure data patch I'd use as source for libpd. there isn't poly~ object but I'll try to translate it.

FP's icon

de rien. au plaisir de se croiser. :-)

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

Target definitely works, though if you want something less verbose, you can also pack it into a big list and use this: (this is great for things like velocity controlled attack, etc. because it puts the control logic outside of the actual synth!)

FP's icon

hello,
bravo Peter. :-)

so to summarize :

Max Patch
Copy patch and select New From Clipboard in Max.

poly~ "p-test_cycle"

Max Patch
Copy patch and select New From Clipboard in Max.

main patch

Julien Bayle's icon

the challenge to pack/unpack in pure data gave some constraints but it works very fine.
and YES, and again, thanks Peter!

FP's icon

funny exercice. thx. :-)

Peter McCulloch's icon

I'd also recommend using zl nth to get the values out of the list rather than unpack. Makes it easy to choose what order you want to access the values. (this is especially useful in granular synths)

I do:
t l l l l l l l

zl nth 6 zl nth 3 zl nth 2 and so forth...

Julien Bayle's icon

I'm using pure data on that one (libPD especially) and I'm a bit constraint, which is also a power :)

for that one in max I would have done it following your way !!