Post by nic on May 13, 2019 8:13:27 GMT
Originally this was just going to be a bug fix release, but we got carried away and this update is packed with new features!
First, there are now 16 individual controls in the CUSTOMISABLE GUI control box. Each of those controls can be configured to be a slider (as before) or a drop down menu or a button. Drop down menus can be styled to be numeric, note names or boolean. Buttons can either be momentary or latched. Or you can hide a control. The controls are customised using StreamByter rules.
Second, we have responded to the criticism that the StreamByter language is ‘assembler’ like. You can now use long form keywords instead of the original 3 character short forms. Coupled with a relaxation on case convention, this makes code look much more readable and easier to craft and understand. The language has been enhanced allowing the use of custom names for variables, simple macros, fully blown parameterised subroutines and code includes. Despite the new improvements, everything is backwards compatible, so existing code written in short form will work just fine.
Third, we have produced a series of articles for the StreamByter University‘ that guide both the novice and beginner alike in getting to grips with writing your own MIDI FX.
Full details of this release are:
- 16 customisable controls over two pages of 8
- long form keywords with no more forcing to upper case (e.g. assign, send, while, math, include, subroutine)
- use (yamaha convention, C-2 to G8) note literals, prefixed by '^' character (eg: ^C-2, ^Bb6, ^G#3, ^Ab3, ^C3) in rules
- use ‘alias’ keyword to give your variables and literals custom names (eg. alias I0 myCounter, assign myCounter = 0)
- use ‘block’ keyword to block an event (same as XX = XX +B)
- use ‘exit’ keyword to terminate the processing immediately
- use ‘while CONDITION’ as synonym for ‘if CONDITION +loop’
- define code macros with ‘define’ (e.g.. define control_changed m0 == F0 7D 01, if control_changed ...)
- create multi rule subroutines with parameters (‘subroutine’ rule) callable from anywhere (including nested calls)
- include rules from saved presets (or the web) to use in your code. Standard include file shipped as factory preset
- new 'W (wide) array of 16x128 of unsigned 16 bit integers
- new 'P' (precision) array of 256 *signed* 32 bit integers for higher precision maths
- new 'BPM' variable contains the current (host/clock) BPM
- send any arbitrary message (eg. OSC) over UDP using send +udp
- note ons with velocity of zero (NVR-nil velocity rewrite) are rewritten to note offs by default (no more 9X XX 00 = 8X)
- name your script and supporting hosts (e.g.. AUM) will show that name under the icon
- hide/close the controls panel from code
- hide/expose any control on the controls box from code
- use spaces in your block labels and control names
- new factory presets from the boutique bundled with the app: Blue Velvet, Poly Fudge and Panic
Plus… literally hundreds of bug fixes and improvements.
First, there are now 16 individual controls in the CUSTOMISABLE GUI control box. Each of those controls can be configured to be a slider (as before) or a drop down menu or a button. Drop down menus can be styled to be numeric, note names or boolean. Buttons can either be momentary or latched. Or you can hide a control. The controls are customised using StreamByter rules.
Second, we have responded to the criticism that the StreamByter language is ‘assembler’ like. You can now use long form keywords instead of the original 3 character short forms. Coupled with a relaxation on case convention, this makes code look much more readable and easier to craft and understand. The language has been enhanced allowing the use of custom names for variables, simple macros, fully blown parameterised subroutines and code includes. Despite the new improvements, everything is backwards compatible, so existing code written in short form will work just fine.
Third, we have produced a series of articles for the StreamByter University‘ that guide both the novice and beginner alike in getting to grips with writing your own MIDI FX.
Full details of this release are:
- 16 customisable controls over two pages of 8
- long form keywords with no more forcing to upper case (e.g. assign, send, while, math, include, subroutine)
- use (yamaha convention, C-2 to G8) note literals, prefixed by '^' character (eg: ^C-2, ^Bb6, ^G#3, ^Ab3, ^C3) in rules
- use ‘alias’ keyword to give your variables and literals custom names (eg. alias I0 myCounter, assign myCounter = 0)
- use ‘block’ keyword to block an event (same as XX = XX +B)
- use ‘exit’ keyword to terminate the processing immediately
- use ‘while CONDITION’ as synonym for ‘if CONDITION +loop’
- define code macros with ‘define’ (e.g.. define control_changed m0 == F0 7D 01, if control_changed ...)
- create multi rule subroutines with parameters (‘subroutine’ rule) callable from anywhere (including nested calls)
- include rules from saved presets (or the web) to use in your code. Standard include file shipped as factory preset
- new 'W (wide) array of 16x128 of unsigned 16 bit integers
- new 'P' (precision) array of 256 *signed* 32 bit integers for higher precision maths
- new 'BPM' variable contains the current (host/clock) BPM
- send any arbitrary message (eg. OSC) over UDP using send +udp
- note ons with velocity of zero (NVR-nil velocity rewrite) are rewritten to note offs by default (no more 9X XX 00 = 8X)
- name your script and supporting hosts (e.g.. AUM) will show that name under the icon
- hide/close the controls panel from code
- hide/expose any control on the controls box from code
- use spaces in your block labels and control names
- new factory presets from the boutique bundled with the app: Blue Velvet, Poly Fudge and Panic
Plus… literally hundreds of bug fixes and improvements.