Tables & Waves
Monome Grid + Electron + Live Tutorial
Posted: July 8, 2023
This is a tutorial for writing an Electron JavaScript app that acts as a bridge between a monome grid and Ableton Live.
Overview
How to Use the Tutorial
Experienced Developers
If you have experience with the skill sets listed below, consider just using the companion git repository for this tutorial:
https://github.com/tablesandwaves/grid-electron-live
At the time of writing, this repository has both a commit per tutorial step and tag per tutorial step. You can use the commit diffs to review the changes from one step to another. You can also simply use the repository HEAD to run the final version of the app, but note that you will need to configure your monome grid serial number in a YAML file. See the README for the brief details.
For Those That Want to Take it One Step at a Time
If you are new to this particular development environment, this tutorial is designed to provide you with cut-and-paste versions of all the code you need to update throughout the tutorial.
At the end of the web page for each step is a section, Code Updates for Step N. For most of the code examples, you will update an entire file of code, replacing the file's entire contents. Occassionally, when the updates are simple enough, a small snippet of code is provided. The heading beneath each file being updated will note whether it is a partial update.
Prerequisites
Hardware & Software Requirements
- monome grid
- Ableton Live with Max for Live
- A Unix-style command line interface (CLI)
- Mac: use the default Terminal app
- Windows: may be possible using GitBash or other *nix terminal emulator (untested)
Basic Skills Assumed
While the tutorial is intended to be a cut-n-paste set of instructions, it is beyond the scope of this tutorial to teach all the skillsets required. If you are completely new to intermediate computer programming, especially web development, here are a few areas worth investigating:
- Working in a Unix-style command line terminal
- git version control
- Basic web development using HTML, CSS and JavaScript (JS)
- Focus on using element class and ID attributes integrated with CSS rules
- Object-oriented JavaScript code using class declarations
- Contemporary JavaScript that uses
const
,let
and arrow functions
- The basics of building a Node.js app: installing and using third party libraries
- The basics of creating a Max for Live object