General
Absynth Performance control
Started by auralsculpture on .
Sign in or create an account to join the conversation.
I'm trying to build a controller for the Perform Controls page in Absynth. For those unfamiliar it is a set of 14 CC controls plus an xy pair. Sounds simple, but the problem is that these controls are assignable in Absynth, and fader 1 couple be CC1 or CC21 etc, and programmers have made full use of this ..
I just spent an hour with my very limited knowledge trying to set the cc number of a fader with another fader - only to discover this is not possible ....
So is there a work-around? I found a thread suggesting multiple faders with a "show / hide" function to select appropriate but this seems rather unwieldy. Can the output be captured and filtered? eg ccx, val y translated to cc(changed) val y???
help me and I'll post the finished product!!
Dr Colin Webber
I just spent an hour with my very limited knowledge trying to set the cc number of a fader with another fader - only to discover this is not possible ....
So is there a work-around? I found a thread suggesting multiple faders with a "show / hide" function to select appropriate but this seems rather unwieldy. Can the output be captured and filtered? eg ccx, val y translated to cc(changed) val y???
help me and I'll post the finished product!!
Dr Colin Webber
Here's a "proof of concept" of 8 midi mappable faders via a pop-up matrix selector for the midi channel and the CC of each fader....
Not bi-directional at the moment but it just took 10 minutes to make....Probably with an on MIDI script you can also build feedback back into Lemur
note: didnt test this as Im currently not having the iPad with me but I dont think there's any reason it wouldnt work.
mappablefaders.jzml
Not bi-directional at the moment but it just took 10 minutes to make....Probably with an on MIDI script you can also build feedback back into Lemur
note: didnt test this as Im currently not having the iPad with me but I dont think there's any reason it wouldnt work.
mappablefaders.jzml
Forgot to mention, its initialised with faders mapped to 21-28 CC on channel 1 but you can easily change these settings (the initial mapping after loading the template) by changing the CC and Ch vectors.
minor improvement on the way pop-up works.....Selecting a different fader to edit is now possible while the pop-up is open, you close it by tapping on the "being edited" fader selector
mappablefaders2.jzml
mappablefaders2.jzml
Hi Softcore
very cool
rather beyond my coding skills - still figuring out how it works
what was the channel selector fix, the only thing I can see is the default channel set to 1...
very cool
rather beyond my coding skills - still figuring out how it works
what was the channel selector fix, the only thing I can see is the default channel set to 1...
The logic:
We create a vector out of the Faders x values, named FXs.
We create a vector to be used as CC settings for each fader, named CC.
We create a vector to be used as midi channel settings for each fader, named Ch.
We then create pads which change the above CC and Ch vector values, at the position (index) specified by what Fader we have selected for editing with the selector pads - we also store the selection with the sel expression (sel).
We then create a single custom midi out, including all our calcuated CC and Ch to be triggered whenever a Fader.x value is changed (FXs are both used as value and as triggers in the custom midi)
To get how it works observe the custom midi out script....
Notice that in the first example selecting midi channel 1 would produce midi channel 0 in the script.... (Ch=firstof(x))
In the fix, midi channel is calculated as Ch=firstof(x)+1, thus, selecting Midi channel 1 (firstof(x)=0) produces the correct result, 1
Finally notice that CC, Ch and FXs are all vectors and not single numbers (singletons).
So, for example when moving Fader1 (FXs[0]), then CC[0] is triggered, on channel Ch[0], when moving Fader5 (FXs[4]) then CC[4] is triggered on channel Ch[4].
We create a vector out of the Faders x values, named FXs.
We create a vector to be used as CC settings for each fader, named CC.
We create a vector to be used as midi channel settings for each fader, named Ch.
We then create pads which change the above CC and Ch vector values, at the position (index) specified by what Fader we have selected for editing with the selector pads - we also store the selection with the sel expression (sel).
We then create a single custom midi out, including all our calcuated CC and Ch to be triggered whenever a Fader.x value is changed (FXs are both used as value and as triggers in the custom midi)
To get how it works observe the custom midi out script....
Notice that in the first example selecting midi channel 1 would produce midi channel 0 in the script.... (Ch=firstof(x))
In the fix, midi channel is calculated as Ch=firstof(x)+1, thus, selecting Midi channel 1 (firstof(x)=0) produces the correct result, 1
Finally notice that CC, Ch and FXs are all vectors and not single numbers (singletons).
So, for example when moving Fader1 (FXs[0]), then CC[0] is triggered, on channel Ch[0], when moving Fader5 (FXs[4]) then CC[4] is triggered on channel Ch[4].
Ok I just now had the chance to check the above the templates and the midi channel settings are not working as they should - all the faders transmit on the midi channel which is set for the first fader.
If you want to have different midi channels for each fader a different approach is needed.
If you want to have different midi channels for each fader a different approach is needed.
This is great, and thanks for the mini-tutorial above. I am now modifying to my exact requirements for absynth and I'll post to the the user community once its done.
Absynth also lets you tie any two "faders" into an xy pad - so I'll see if I can figure a way to have a separate bank of 4 xys.
Absynth also lets you tie any two "faders" into an xy pad - so I'll see if I can figure a way to have a separate bank of 4 xys.
The easiest way to go about it would be to "tie" your xy pads to your faders using a menu object to select which fader to tie to the x or y of the MultiBall.
For example a script in xy pad
on expression {x,y} any
Fader1.x=x;
Fader2.x=y;
ties the XY pad (multiball object) to faders 1 and 2.
Now, if you use two menus to select the fader to tie to x and to y, you can alter the above script with if statements (which will be "looking" up the menu selections) and you are set to go.
For example a script in xy pad
on expression {x,y} any
Fader1.x=x;
Fader2.x=y;
ties the XY pad (multiball object) to faders 1 and 2.
Now, if you use two menus to select the fader to tie to x and to y, you can alter the above script with if statements (which will be "looking" up the menu selections) and you are set to go.