craigmillard.com
  • Home
  • About
  • Archives
  • Contact / Bookings

On this page

  • The Music and Recording
  • Products and Libraries
  • My Code

Sweetwater – A 3D Player Piano

Art
Music
A multi-voice piano arrangement inspired by Westworld, built with MIDI, After Effects, and custom scripting.
Published

September 13, 2021

The Music and Recording

This is an arrangement I made featuring four voices. I originally got the idea from the player piano from the Westworld intro, but I wanted to expand on it — having it move through space on three axes. To make things even more compelling I wanted a time-synced effect with each voice.

After I recorded the performance on a green screen and 4K camera, I used After Effects, Visual Studio Code + Adobe plugin, and Tone.js to render the MIDI data. The mixing was done in Ableton.

Green screen and Seaboard RISE 25

Products and Libraries

  • ROLI Seaboard RISE 25
  • Tone.js
  • Types for Adobe
  • Visual Studio Code
  • Node.js
  • Adobe After Effects
  • ExtendScript Debugger for VSCode

I also used Premiere/Media Encoder for the final render. The ExtendScript debugger was pretty rough to use, as was walking the property arrays within After Effects to figure out how to render rectangles from MIDI data. I’ll consider alternatives. I love AE, but a good scripting interface is a must these days.

My Code

To be fair to those who wrote the extension, it’s probably not as bad as this code that drew the rectangles from the MIDI data (generated object by Tone.js). However, I haven’t found a better documented way for drawing rectangles, so I may take some time to refactor this — it’s something I’m sure other people would like to do too.

https://github.com/craigmillard/sweetwater-visuals/

MIDI rectangles drawn into AE

© 2025 Craig Millard