bang different object every time (line object)

R_Gol's icon

I have a patch with an line object that output a bang each time the ramp is complete.
I would like to send this bang each time to a different object.

How can I do so?

Many thanks

Dante's icon

Someone might be able to create a more efficient patch, but this works.

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

Floating Point's icon

same idea as dante, but a little simpler:

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

kLSDiz's icon

or even this:

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

;)

R_Gol's icon

thanks you all that was very helpful!
I've got another question regarding this picture:

now in the patch each time the ramp is finished there is a new value of the time is take the metro to arrive is max value . how can I make the metro go down from the max value to a min value (lets say 10 (bpm) ) in a different length each time ?

thanks

Floating Point's icon

instead of the message object going into line, send a 2-element list (destination_value, time)

R_Gol's icon

Hi,
I'm still really beginner so I got no idea what object creating a 2 element list.

Floating Point's icon

use pack:

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

R_Gol's icon

thanks for the help!
another question:
what is the best way to route a 8 different functions to control the amplitude of 8 different partials in additive synth ?
I would like that each time a different function shape will control a different partial amplitude.

Thanks

R_Gol's icon

I tried to route a function with router and it didn't work.


why ?

R_Gol's icon

Sorry, it is working~ but - every time I need to close and open again the ezdac~ in order that the route will work the the function will effect the amplitude. how to solve it ?

Floating Point's icon

you can't use router for signals; but I don't really understand why you want to use routing, when you can just hook up your line output directly to the amplitude control of each oscillator; also I strongly suggest you look into poly~ for further development of this patch

R_Gol's icon

I want to route the line to constantly change the amplitude of the harmonics its time with a different envelope. to create variations in amplitudes of the harmonics .

Floating Point's icon

use matrix~ instead of router for that-- but also you should still look at poly~

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

R_Gol's icon

what will be the best way to make the envelope move between all the partials that eace time a different envelope will control different partial ?

Floating Point's icon

here's one way to systematize your routing, but there's probably more sensible ways to sequence your data, if that's the direction you want to go

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

kLSDiz's icon

You probably don't want to add multiple envelopes for a single partial amp, so you can simplify the idea by setting matrixctrl attribute one/row and using listfunnel. Now you can provide just a list of numbers to select an env for each partial.

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


As FP pointed out, poly~ is a way to go for any serious additive synthesis. Depending on your idea, it may be easier to put separate line~s for each partial amp and sending them messages from function objects.

R_Gol's icon

Wow thank you both!
I learn here so much! max msp is indeed exiting :) cant wait for integrating a eurorack synth

R_Gol's icon

FLOATING POINT - I see the result of the patch you attached but I cannot fully understand thr maths behind it... any way to try to explain in in verbal written way ?

Floating Point's icon

it's a repeating pattern of 3 rows over a total of 12. each time it's updated the pattern gets offset by one, with the last row's state wrapping back to occupy the first row. This is where the modulus operator (%) comes in-- it limits any values coming in to between 0 and 11. Because the pattern is repeated 4 times throughout (4 blocks of 9 states) the uzi and counter are used to generate offsets to the index (row number).
To see what's happening in detail it can be useful to attach a print object to different parts of the patch, or put your patch into debug mode.
But KLSDIZ's method is far more elegant than mine.