Skip to content

JGuzak/push-dev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

push-dev

A collection of explorations and mods for the Ableton Push 3 Standalone.

Abstract

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

AbletonOS Docs

First Time Setup

SSH Access

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.

  1. Generate an SSH key via ssh-keygen or similar.
  2. Start Push in standalone mode.
  3. Ensure your computer and Push are both on the same network.
  4. Navigate to http://push.local/ssh in your web browser.
  5. Copy the content of your SSH public key file to your clipboard.
  6. Follow the instructions on the Push SSH webpage.
  7. SSH onto Push with ssh ableton@push.local.

Recommended SSH config entry:

Host push
  HostName push.local
  User ableton

Ableton OS Devcontainer

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/Linux

Include In A Project

Add this repo as a submodule to your project:

git submodule add <push-dev repo url> ./external/push-dev

Use 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-dev submodule.
  • The reusable devcontainer config lives at push-dev/ableton-os-devcontainer/.devcontainer/devcontainer.json and 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.

Start The Devcontainer

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

Build Kernel Modules

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.

References

A list of links I've found useful while exploring what sort of work can be done on Push 3 Standalone.

About

Explorations and insights for the OS running on Ableton Push 3 Standalone

Topics

Resources

Stars

Watchers

Forks

Contributors