Monorepo for Aesthetic.Computer aesthetic.computer
core ac-m4l
2 folders · 25 files

README.md

AC Max for Live Devices #

This directory contains Max for Live device source files for Aesthetic Computer.

AC Notepat #

A Max for Live instrument that embeds the Aesthetic Computer notepat piece using jweb~ (audio-enabled web browser).

Building #

# Build the .amxd file
python3 build.py

# Build and install to Ableton User Library (Mac)
python3 build.py --install

Files #

  • AC-Notepat.amxd.json - Source JSON for the M4L device
  • AC Notepat.amxd - Built M4L device (binary)
  • build.py - Build script

How it works #

  1. jweb~ loads https://localhost:8888/notepat?daw=1
  2. Web Audio from the page is captured by jweb~'s signal outlets
  3. Audio routes through plugout~ to Ableton's mixer

Configuration #

Key settings in the JSON source:

{
  "openrect": [0.0, 0.0, 400.0, 169.0],  // Device width (height fixed at 169px by M4L)
  "devicewidth": 400.0,                   // Explicit device width
  "presentation_rect": [0.0, 0.0, 401.0, 170.0],  // jweb~ display size
  "latency": 32.0,                        // Audio latency buffer (ms)
  "url": "https://localhost:8888/notepat?daw=1"   // URL to load
}

Remote Relay Playback #

notepat now understands relay subscription parameters for live note playback from ac-native sources:

https://localhost:8888/notepat?daw=1&relayHandle=jeffrey
https://localhost:8888/notepat?daw=1&relayHandle=jeffrey&relayMachine=ac-1234abcd
https://localhost:8888/notepat?daw=1&relayAll=1

You can also retarget a running jweb~ instance with postMessage:

window.postMessage({ type: "notepat:midi:set-source", handle: "jeffrey" }, "*");
window.postMessage({ type: "notepat:midi:set-source", handle: "jeffrey", machineId: "ac-1234abcd" }, "*");
window.postMessage({ type: "notepat:midi:sources" }, "*");

Requirements #

  • Ableton Live with Max for Live
  • Max 9+ (for jweb~ audio support)
  • Aesthetic Computer dev server running on localhost:8888

Development #

To modify the device:

  1. Edit AC-Notepat.amxd.json
  2. Run python3 build.py --install
  3. Reload the device in Ableton

Or edit directly in Max:

  1. Open the device in Ableton
  2. Click the wrench icon to edit in Max
  3. Make changes and save
  4. Extract updated JSON with: cat "AC Notepat.amxd" | tail -c +37 > updated.json

GAME SIGNALS #

Build and install the MIDI receiver plus its sample-free Drum Rack:

python3 build.py oskiewar --install
python3 build-game-signals-rack.py --install

Put AC 🎹 game-signals (aesthetic.computer) before GAME SIGNALS on one MIDI track. The rack has labeled pads for every stable /oskiewar/* event on MIDI notes 36–56. Drop a sample or instrument on any pad; the preset contains no copyrighted or machine-local audio. Rebuilds validate the rack map against the Max patch so the two artifacts cannot silently drift.