Editing each voice individually

midi

#1

Forgive me but I'm bad with proper lingo and terms but I will try my best!

If I've created a 4 voice synth and want to change parameters of each voice (lets say I want each voice's oscillators to be tuned differently for example) how would I go about doing this? orrr is it even possible?

In theory I guess I could assign a midi controller channel to each voice and fiddle with them that way but how would I edit each individual voice to listen for input from each one of those channels?

It seems like when I make a polyphonic patch by creating an object (./subpatchname) then im stuck with just one instance of the subpatch...editing the subpatch means editing every voice...


#2

I'm not at my computer right now but just thought of something....saving multiple copies of my subpatch and naming them like sub1, sub4, sub3, sub4

then setting each one up so the controls for each one are controlled by midi channels 1-4...

Then sending the audio for each patch to patch/output objects

Then adding each one into my main patch as seperate objects..... ./sub1, ./sub2, ./sub3, ./sub4

And running them all through a mixer....

I think this method might work?


#3

adding each subpatch (sub1, sub2, sub3, sub4) then running them through a mixer freakin worked! Totally able to fiddle with each individual voice using differen midi channels...

downside is that it seems to be very cpu intensive though in order to get polyphony...you have to select the number of voices for each subpatch which is like...bananers...gotta be a better way....


#4

how do you want to discern which midi note should be applied to which polyphony voice? do you send one voice per channel? then you just need a monopatch per channel


#5

Maybe you could try with the poly index object?

check:


#6

you could indeed do this with the polyindex module (patch folder)
This will output the index number of the voice that is currently playing.
But I'm not totally sure whether this will actually do what you want, as there are multiple ways to allocate voices in a polyphonic patch and I'm not totally sure which way the axoloti is using..
Best thing would be "round robbin", where the voices are selected one by one and the next voice is the one after the current one: current+1 and wrap back to 0 when max voices is reached, skipping voices that are still in use. As this way allows each voice the longest time for the release stage. But I'm not sure whether this is the way it is currently done (could also be the lowest unused voice-index).

To use this module to select from different values for each voice, you could use a table that you can update outside of the polyphonic patch:
-add a table module of size 4 to your main patch
-add a table readout inside the polyphonic embedded patch and add the name of the table module with ../ added before the name to let it read the table outside the embedded patch: ../allocate32b
-use the polyindex module to select the read-index.
-use a table write module to fill the table with the desired values. You could also edit this module like this for direct control of each voice by adding a set of knobs and by changing the k-rate page like:
attr_table.array[0]=param_p1;
attr_table.array[1]=param_p2;
attr_table.array[2]=param_p3;
attr_table.array[3]=param_p4;


#7

polyphonic parameter control.axp (30.0 KB)
before using this patch, please sync libraries. I've editted an oscillator module in my library to be able to externally control the waveform selection.

it shows:
-how to use tables to have different parameter settings for different voices
-how to get the maximum voices as info for your patch (see polyphonic synth voice patch) and use it to select the right parameter from the table.
-randomise all voices&parameters
-save&load your voice-parameter-settings to SD-card for future recall
-initiate the voices (see init-text on table allocator)
-have just three controls to select between all available parameters and voices and set their values.
-get the last used poly-index and reset the order of polyindex->preset, so next voice will use preset 1.

in the synth-patch you could even use different audio outputs and a demux to send each voice to it's own output for different fx routings


#8

shhhhwing! cant wait to try this out! Today and tomorrow are my days off so I'm going to give it a shot.