A collection of explorations and mods for the Ableton Push 3 Standalone.
DISCLAIMER: All of this is under construction. I'm still figuring things out and new releases of AbletonOS and/or Push software can make any of this information obsolete. I'm taking notes in the hope of helping others navigate and explore what is possible on Push Standalone.
Information is up to date as of Live 12.4.x / Push 2.x.
Reference for various terms used throughout these documents:
| Term | Abbreviation |
|---|---|
| Push 3 Standalone | P3SA |
This is an essential first step. You will need to ssh onto the Linux machine running on Push to do any of the work outlined in this repo.
- Generate an SSH key via
ssh-keygenor similar. - Start Push in standalone mode.
- Ensure your computer and Push are both on the same network.
- Navigate to
http://push.local/sshin your web browser. - Copy the content of your SSH public key file to your clipboard.
- Follow the instructions on the Push SSH webpage.
- SSH onto Push with
ssh ableton@push.local.
Recommended SSH config entry:
Host push
HostName push.local
User ableton
ableton-os-devcontainer is a reverse engineered devcontainer targeting C/C++ programs and kernel modules for AbletonOS / Push 3 Standalone. Newer OS updates may change things and break compatibility, make sure to use the appropriate release tag for this project to ensure compatibility. If the latest tag doesn't match the latest AbletonOS version, please check issues and if one does not exist for the target version, please create a new issue.
root@push:~# cat /proc/version
Linux version 5.15.48-intel-pk-preempt-rt (ci@abletonos-linux-noble-00) (x86_64-oe-linux-gcc (GCC) 11.5.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP Tue Jun 21 16:59:08 UTC 2022
root@push:~# cat /proc/sys/kernel/osrelease
5.15.48-intel-pk-preempt-rt
root@push:~# uname -a
Linux push 5.15.48-intel-pk-preempt-rt #1 SMP Tue Jun 21 16:59:08 UTC 2022 x86_64 x86_64 x86_64 GNU/LinuxAdd this repo as a submodule to your project:
git submodule add <push-dev repo url> ./external/push-devUse this project structure:
.
|-- .env
|-- build/
|-- external/
| -- push-dev/
|-- src/
See project devcontainer template to include and use this dev container base image in your projects. Key takeaways:
- The paths are resolved from the consuming project root, not from the
push-devsubmodule. - The reusable devcontainer config lives at
push-dev/ableton-os-devcontainer/.devcontainer/devcontainer.jsonand should follow the pattern outlined in the template project devcontainer file. - Consuming projects can either reference that config from their own
.devcontainer/devcontainer.json, or run the compose file directly for one-off usage.
In VS Code, use the command pallette to spin up the dev container from the project folder.
Or run Docker Compose from the consuming project root:
docker compose The Docker image builds a minimal prefixed kernel toolchain from GNU sources and validates it against the Push kernel tool versions:
x86_64-oe-linux-gcc (GCC) 11.5.0
GNU ld (GNU Binutils) 2.38.20220708
Once the container is running, enter the dev container and follow the build proccess outlined in your project. Typically this would be a bash script, makefile, or similar mechanism.
A list of links I've found useful while exploring what sort of work can be done on Push 3 Standalone.