Thanks so much! This series was super helpful. I have a programming background, as well as a musical background. This really helped to pull it all together.
I mean, if you like clipping, you can reinitialize the script with set_snapshot_type(1). Then just hang on to everything with persistence. Can't think of why you'd want this, maybe to reboot the engine for some reason, as a failsafe for the user?? But it can be done
Hey Robert, that's a good tip. I mean, sometimes I've worked on a script without the actual instrument as that is being put together or developed by someone else, so a technique like this could help get the settings that the other person has used, then set those as persistent. I always use a get_engine_par to set the knob values in the on init for example, then set persistence. The code is useless after the first application into the library, but so worth it to make everything work seamlessly when handing your script to a third party.
You have some great instructional videos. I'm trying to work out if its possible to map the CC11 ( expression) from my instrument . I have a digital organ , 2 manual keyboard plus pedals Upper keyboard Ch1 Lower Channel 2 Bass Pedals Channel 3 The yamaha instrument I have sends CC11 (expression) on Channel 16 If I create 3 x new instrument banks it automatically assigns them to Ch1 for 1st bank Ch2 for 2nd and Ch3 for 3rd. That's great because I can now drop my sounds/samples in those slots and they play fine using my instrument Let's say for example I put a flute in the 1st bank it pjays on my upper keyboard, strings in the 2nd plays on my lower and a bass sound 3rd bank it plays them fine on the organ. This is what I want, however because my keyboard sends cc11 on Channel 16 it won't obviously control the expression of these channels . I used the KSP in the top right and went to the transform tab which allowed me to map my controller CC11 to a different channel . So now I can get expression on 1 channel but not the other 2 . So my question is , is it possible to map my expression pedal controller CC11 on Channel 16 to channels 1 , 2 & 3 ? I used to use a midi events processor years ago with a sound module and if I remember I programmed it as follows with 3 settings Map CC 11 on CH16 to CC11 on CH1 Map CC11 on Channel 16 to CC11 on 2 Map CC11 on Ch16 to CC11 ch3 Will using the transform function only allow me to map 1 of those 3 channels ?? Or is there any option to map all incoming channels to CC11 so I can get the expression/volume control on all 3 midi out channels from my organ ? If I select the " omni " then obviously I get everything playing on the sames channels. Sorry for the essay & thanks again for your helpful videos
Hey, sorry for the delayed response, I've been swamped in work recently. This is an interesting question indeed and I'm not entirely sure on the answer. Ideally, you want your CC11 control to be performed as "omni" (playing on all midi channels simultaneously), but I'm not sure if your instrument has the capability to set each keyboard to its own channel but the CC11 control to all channels (this may require some manual diving on your end for your organ). A potential solution, though this would require an investment, would be to use an additional controller of some sort. I myself have a little VS Faderbox, which has 4 100mm faders in it, which can be set to any CC value I like. This allows me to perform my CC11 and CC1 easily when playing my keyboard controller (which has small faders on the wrong side for my playing style). If you had your CC11 controller on a physically different device, you could set that fader controller device to "omni" and leave your digital organ on its current setup. It is a bit of an investment of course, so depends on what you want to do, but that's the only way I can think of doing it unless your digital organ has the ability to send your CC controls across all channels.
Many thanks for these amazing videos. How can I add a value edit to put CC number other than 1 to control this $cut knob?? for example I want to use CC 102, but not writing CC 102 directly into the script, I want to put the 102 in a value edit. Many thanks
Hey Ra'id, if I understand you correctly, I think the best way may be to use a ui_menu. You can create a drop down list of different CC numbers, like 101, 102 and 103 for example, and then write the MIDI CC code to insert the menu's value as the CC number, like %CC[$menu_value]. That may be the best way to get flexibility in which CC number you assign. The other way of course is to let the user do it on the front end. If the control you want to control with MIDI CC is on the UI, then all the user has to do is right click and assign the MIDI CC automation. I often direct users to do this when I want them to choose which controller they want to use. Hope this helps.
Thanks so much! This series was super helpful. I have a programming background, as well as a musical background. This really helped to pull it all together.
My pleasure, so glad you found it useful!
I mean, if you like clipping, you can reinitialize the script with set_snapshot_type(1). Then just hang on to everything with persistence. Can't think of why you'd want this, maybe to reboot the engine for some reason, as a failsafe for the user?? But it can be done
Hey Robert, that's a good tip. I mean, sometimes I've worked on a script without the actual instrument as that is being put together or developed by someone else, so a technique like this could help get the settings that the other person has used, then set those as persistent. I always use a get_engine_par to set the knob values in the on init for example, then set persistence. The code is useless after the first application into the library, but so worth it to make everything work seamlessly when handing your script to a third party.
You have some great instructional videos. I'm trying to work out if its possible to map the CC11 ( expression) from my instrument .
I have a digital organ , 2 manual keyboard plus pedals
Upper keyboard Ch1
Lower Channel 2
Bass Pedals Channel 3
The yamaha instrument I have sends CC11 (expression) on Channel 16
If I create 3 x new instrument banks it automatically assigns them to Ch1 for 1st bank Ch2 for 2nd and Ch3 for 3rd.
That's great because I can now drop my sounds/samples in those slots and they play fine using my instrument
Let's say for example I put a flute in the 1st bank it pjays on my upper keyboard, strings in the 2nd plays on my lower and a bass sound 3rd bank it plays them fine on the organ. This is what I want, however because my keyboard sends cc11 on Channel 16 it won't obviously control the expression of these channels .
I used the KSP in the top right and went to the transform tab which allowed me to map my controller CC11 to a different channel . So now I can get expression on 1 channel but not the other 2 .
So my question is , is it possible to map my expression pedal controller CC11 on Channel 16 to channels 1 , 2 & 3 ?
I used to use a midi events processor years ago with a sound module and if I remember I programmed it as follows with 3 settings
Map CC 11 on CH16 to CC11 on CH1
Map CC11 on Channel 16 to CC11 on 2
Map CC11 on Ch16 to CC11 ch3
Will using the transform function only allow me to map 1 of those 3 channels ?? Or is there any option to map all incoming channels to CC11 so I can get the expression/volume control on all 3 midi out channels from my organ ? If I select the " omni " then obviously I get everything playing on the sames channels.
Sorry for the essay & thanks again for your helpful videos
Hey, sorry for the delayed response, I've been swamped in work recently. This is an interesting question indeed and I'm not entirely sure on the answer. Ideally, you want your CC11 control to be performed as "omni" (playing on all midi channels simultaneously), but I'm not sure if your instrument has the capability to set each keyboard to its own channel but the CC11 control to all channels (this may require some manual diving on your end for your organ). A potential solution, though this would require an investment, would be to use an additional controller of some sort. I myself have a little VS Faderbox, which has 4 100mm faders in it, which can be set to any CC value I like. This allows me to perform my CC11 and CC1 easily when playing my keyboard controller (which has small faders on the wrong side for my playing style). If you had your CC11 controller on a physically different device, you could set that fader controller device to "omni" and leave your digital organ on its current setup. It is a bit of an investment of course, so depends on what you want to do, but that's the only way I can think of doing it unless your digital organ has the ability to send your CC controls across all channels.
Many thanks for these amazing videos. How can I add a value edit to put CC number other than 1 to control this $cut knob?? for example I want to use CC 102, but not writing CC 102 directly into the script, I want to put the 102 in a value edit.
Many thanks
Hey Ra'id, if I understand you correctly, I think the best way may be to use a ui_menu. You can create a drop down list of different CC numbers, like 101, 102 and 103 for example, and then write the MIDI CC code to insert the menu's value as the CC number, like %CC[$menu_value]. That may be the best way to get flexibility in which CC number you assign. The other way of course is to let the user do it on the front end. If the control you want to control with MIDI CC is on the UI, then all the user has to do is right click and assign the MIDI CC automation. I often direct users to do this when I want them to choose which controller they want to use. Hope this helps.