Scriptex

1.0.0-rc.6

A metaplugin and microlib for the Scripter MIDI-FX Plugin.

Quick Start

/* Quickly prototype bespoke MIDI processors */
class Microtone extends GenericPlugin {

  /** @lends Scripter.NeedsTimingInfo */
  get needsTiming () {
    return false
  }

  /** @lends Scripter.ResetParameterDefaults */
  get needsDefaults () {
    return true
  }

  /** @lends Scripter.PluginParameters */
  get params () {
    return [
      {
        name: `< M i c r o t o n e >`
      , type: `text`
      }
    , {
        ID: `microtone`
      , name: ` `
      , type: `lin`
      , minValue: -8192
      , maxValue: 8191
      , defaultValue: 0
      , numberOfSteps: 16383
      }
    ]
  }

  /* intercept changes to the "microtone" parameter */
  set microtone (val) {
    this.applyMicrotone(val)
  }

  /* send a pitch bend each time the slider moves */
  applyMicrotone (val) {
    const pitchBend = new PitchBend()
    pitchBend.value = val
    this.sendMidi(pitchBend)  
  }
}

/* Deploy the plugin and trace its linked Scripter integration keys to console */
Microtone.deploy().forEach(Trace)
Scripter plugin view.
Code Editor view

Visit the docs

Requirements

Getting Started

Code Editor Workflow

  • Download the latest scriptex preset
  • Create a new Logic Pro X or Mainstage project
  • Add Scripter as a MIDI plugin a new instrument strip
  • Press Open Script in Editor
  • Add the compressed content of the Scriptex library (2kb) to Code Editor
  • Save the preset as "Scriptex-1.0.0-rc.6"
  • Use this preset as a template for making bespoke MIDI processors

IDE Workflow

  • Obtain an IDE of your choice
  • Create a new NodeJS project
  • Add the Scriptex package as an NPM package dependency
    npm i -D @objectkit/scriptex
    
  • Import classes as needed
    import { Plugin } from "@objeckit/scriptex"
    class MidiTrace extends Plugin {
      onMidi (event) {
        event.trace()
      }
    }
    

[standalone project template will coincide with 1.0.0 release]

License

Apache-2.0 © ObjectKit 2020