I confess that have used the Layers App presently available. My intention is to utilize Stream Byter to create midi layers in Cubasis tracks. I would like Stream Byter to limit the midi keys response to be variable for the lower and upper limits. i.e. Bass form 00 to 52, piano for 00 to FF.
As a fan of Stream Byter, I lack the experience and knowledge and would appreciated any assistance.
Post by redheronmusic on Jan 12, 2023 13:39:55 GMT
Which specific code are you referring to? The "Keyboard Splitter" code in the StreamByter factory presets? Or another? The "keyboard splitter" code already has a remote controllable split point for two layers.
Thank you for your response. I am interested in setup a range keys from a low note of i.e. C3 to a high of C5. The notes\ range would then be applied to a specific instrument/ track in Cubasis. AUM has this filter feature built in.
I prefer using Cubasis but would like to filter notes an instrument would respond to.
I was looking for SB code titled Layers, now I see that is an App.
SB has built in keyboard splitter code.
This code will generate 0-4 assignable layers.
# Red Heron Music, Jan 12, 2023 # redheronmusic.com
# Generate 1-4 layers from input MIDI stream # Configured for control from the StreamByter Menu # For each of four layers, you can select off or channel, min, and max notes in the layer # Other menu selections are input channel, block input message, and panic # Layers can overlap
# If you change a control while keys are held, you may need the panic, as you # disconnect note off from the assigned layer
# This could be reconfigured for Cc control instead of the menu and Q array. Will add to to-do list
Define Note_min $21 # Minimum MiDI note value = A0 Define Note_max $108 # Maximum MIDI note value = C8
Set Q0 Layer_A_0=Off 0 $16 Menu Set Q1 Layer_A_Min Note_min Note_max +N Set Q4 Input_Channel 1 $16 Menu Set Q5 Layer_A_Max Note_min Note_max +N
Set Q2 Layer_B_0=Off 0 $16 Menu Set Q3 Layer_B_Min Note_min Note_max +N Set Q6 Block_input? +T Set Q7 Layer_B_Max Note_min Note_max +N
Set Q8 Layer_C_0=Off 0 $16 Menu Set Q9 Layer_C_Min Note_min Note_max +N Set QC +H Set QD Layer_C_Max Note_min Note_max +N
Set QA Layer_D_0=Off 0 $16 Menu Set QB Layer_D_Min Note_min Note_max +N Set QE Panic? +T Set QF Layer_D_Max Note_min Note_max +N
Alias J0 Inp_chan Alias J1 Temp Alias J2 Loop1 Alias J3 Loop2
Mat Inp_chan = Q4 - 1
If MT < A0 # Note Event, process If MC == Inp_chan
If Q0 != 0 # Layer A If M1 >= Q1 If M1 <= Q5 Mat Temp = Q0 - 1 Mat Temp = Temp + MT Snd Temp M1 M2 End End End
If Q2 != 0 # Layer B If M1 >= Q3 If M1 <= Q7 Mat Temp = Q2 - 1 Mat Temp = Temp + MT Snd Temp M1 M2 End End End
If Q8 != 0 # Layer C If M1 >= Q9 If M1 <= Q0D Mat Temp = Q8 - 1 Mat Temp = Temp + MT Snd Temp M1 M2 End End End
If QA != 0 # Layer D If M1 >= QB If M1 <= QF Mat Temp = QA - 1 Mat Temp = Temp + MT Snd Temp M1 M2 End End End
If Q6 == 1 Block End End End
If M0 == F0 7D 01 04 # Input channel changed Mat Inp_chan = Q4 - 1 End
# Panic # Since we only allow MIDI notes 21-108, this only needs to loop for those values # But, the inner loop kicks out after 128 cumulative passes, even though the loop has reset # So loop for all 128 possible MIDI note values, where the kick out is aligned with the loop If M0 == F0 7D 01 0E # If QE == 1 # only execute for on action Ass Loop1 = 0 While Loop1 <= F Mat Temp = 80 + Loop1 Ass Loop2 = 0 While Loop2 <= 7F Snd Temp Loop2 00 Mat Loop2 = Loop2 + 1 End Mat Loop1 = Loop1 + 1 End End End