====== StreamByter: Channel Filter with GUI ====== Here’s a StreamByter script that allows to filter for a specific input channel range, only midi events that are inside this range will be echoed to the output of the script. # === Midi Channel Filter with GUI === # Version: 1 / 01.03.2020 # Author: -ki https://forum.audiob.us/profile/_ki # # Instructions: # Use the sliders for channel setup and then store/recall # the settings together with the hosts session. # # ——— No need to modify anything in the script itself ——- # ———————-———————-———————————————————————- Alias & Define alias F0 SYSEX_MSG alias MT MIDI_CMD alias MC MIDI_CHANNEL alias M0 MIDI_DATA alias M3 MIDI_SL_NUM alias Q1 beg_channel alias Q2 end_channel alias I0 tmp define SYSEX_SLIDER_MSG F0 7D 01 define SYSEX_END_INJECT F7 +I # ———————-———————-———————————————————————- All except sysex if MIDI_CMD < SYSEX_MSG math tmp = MIDI_CHANNEL + 1 if tmp < beg_channel block end if tmp > end_channel block end end # ———————-———————-———————————————————————- Slider Sysex if MIDI_DATA == SYSEX_SLIDER_MSG if MIDI_SL_NUM == 1 if end_channel < beg_channel assign end_channel = beg_channel end end if MIDI_SL_NUM == 2 if beg_channel > end_channel assign beg_channel = end_channel end end set LB0 beg_channel +D set LB1 end_channel +D end # ———————-———————-———————————————————————- Initialization if LOAD # Persistant slider vars assign beg_channel = 1 +P assign end_channel = $16 +P # Label and scale the sliders set Q0 Channel_Filter +BUTTON set Q1 First_CH 1 $16 set Q2 Last_CH 1 $16 set Q3 +HIDE set Q4 +HIDE set Q5 +HIDE set Q6 +HIDE set Q7 +HIDE set SLIDER_DISPLAY 1 set LB0 beg_channel +D set LB1 end_channel +D end {{tag>StreamByter midi_scripting}}