Lots of Code Repo Updates
musictechscriptercodeA lot of updates to the Scripter book's code repo have been made over the past year.
Example Scripts
These are the showcase scripts which really show off Scripter's power. Some of these scripts are recreations of existing functionality in MIDI Effects Plug-Ins, and because these are done in Scripter customizations can be made which goes beyond what the plug-ins are capable, like much shorter or much longer cycles and the ability to apply effects to other parameters in a track. Others are wholly original and mainly focus on generative music.- oc_guided_random_generation.js shows how to use Markov Chains to generate (mostly) aesthetically pleasing chord progressions during playing or recording.
- oc_guided_random_generation_2.js expands upon the first script by including the ability to parse chord notation (Roman Numeral and common informal notations) to build more complex chords and chord maps for more dynamic chord progressions.
- oc_live_chord_generator.js creates diatonic chords based on a single root note within a particular scale and modifies them based on specific musical needs, like pop chords (VII/I) and shell chords (3rd and 7th voices only).
- oc_live_velocity_transform.js is a live version of the "Fixed Velocity" and "Velocity Limiter" MIDI transformations.
- oc_scripter_adsr.js recreates the ADSR modulator envelope in the Modulator MIDI Effects plug-in.
- oc_scripter_modulator.js recreates the Modulator MIDI Effect in Scripter.
Scripter Tricks
These are typically quick one-offs which highlight an implementation of a common use case in Scripter.- simple_transposition.js moves notes by octave up or down based on a fulcrum pitch. Useful for inverting chords on the fly.
- transpose_by_pitch.js is a Scripter version of the Reverse Pitch transformation which performs the same task but during play. The Simple Script Tricks folder has several of these remakes.
Code Snippets
- lpxs_example_script_template.js is the template used in the book and in the code repo for most scripts. I've made refinements to the template as needed in specific scripts, but this template provides a solid organization for most uses.
Design Patterns
- oc_custom_cc_messages.js shows how to take advantage of undefined control changes in the MIDI 1.0 spec to send complex information across scripts (and by extension across tracks). This is really just a POC on how to handle encoding music information, and there will be more to come with this.
Numerous refinements and bug fixes to the above. Detailed walkthroughs of what I consider to be interesting implementations of these scripts will be coming soon.
¶