Script MIDI in Apple's Logic Pro using JavaScript and the MIDI FX Scripter Plugin
Kerri and Ash are deep diving into Logic Pro MIDI scripting this time.
===
But first! WiFi routers! š„±š“šŖ Because Ash is done with Eero yet has Mesh Needsā¢ļø. He's opted for the Asus ZenWiFi AX 6600 2-pack and things are good so far.
Aaand while we're in WiFi router corner, can we just pour one out for Apple AirPort Express? Ash's finally died a few years ago, but Kerri still has one doing its thing reliably.
===
For our main topic, Kerri introduces Ash to the world of MIDI scripting in Apple Logic Pro.
But not in the language you thi-iiiink: it's a JavaScript API!
Some links discussed:
- "Use the Scripter MIDI plug-in in Logic Pro" on Apple Support
- "Use the Scripter MIDI plug-in Script Editor in Logic Pro" on Apple Support
- "MIDI processing functions in Scripter MIDI plug-in in Logic Pro" on Apple Support (*this* is the API documentation)
- "An Introduction to Scripting in Logic X" on Envato Tuts+ (2015)
- andrewjhunt/logic-pro-scripter on GitHub
- LPX Scripts on GitHub
Gists of Kerri's plugins (these are conversions from other scripts for other DAWs; see each one's header for the original inspiration):
- Loud Note Correction Script for Logic Pro X (based on a script by herqX)
- Pitch-based Velocity Transform plugin for Logic Pro X (Based on this script by fraaly)
Kerri's general tips and tricks for getting started with Logic Pro scripting:
- Use the script sample source code to learn the APIāthere are a lot of them, and you'll find valuable snippets of information in each one!
- Find tutorials; the official docs are... sparse and unsearchableāthe links above are a great start.
- Find 3rd-party docs class-and-method references
- Set magic globals with *var*, not "const" or "let" (e.g.: var NeedsTimingInfo = true;)
- Click "Run script" to push your script changes to the app; saving alone will not push the changes
The takeaway? If you want to script MIDI in Logic Pro, this is your option. The API speaks the languages of MIDI and musical timing natively, which is a beautiful thing. But be prepared for a friction-heavy developer experience, especially if you're familiar with modern development environments such as Visual Studio Code.
===
Lastly, Kerri and Ash talk about developer experience as a general subject, in response to a nice Mastodon post by our mutual friend Pablo Klaschka.
Our co-hosts talk about the critical role documentation plays in DevEx, and particularly how important docs search is, despite the short shrift it is often given.
The DevOps.com article that Ash was recently interviewed for by Bill Doerrfeld is "Looking to the Future of Developer Experience".