Developer Overview
Matrix OS can be extended in several ways. Start with the path that matches what you want to build, then use the API pages as reference once you have a working loop.
Start Hereβ
For most app and tooling work, start with Matrix OS Developer Toolkit. It gives you a browser-hosted Matrix OS runtime with input, LED, storage, Python, serial, MIDI, HID, logs, and automation tools.
Use the toolkit when you want to:
- try a Python snippet before copying it to device storage
- iterate on UI and LED behavior without flashing hardware
- inspect input events and LED frames
- run automation through the local JSON-RPC bridge
- debug whether a problem is in your app code or in the runtime
You should still test hardware-dependent behavior on a real device before release.
Choose What You Are Buildingβ
| Goal | Start With | Use When |
|---|---|---|
| Prototype locally | Matrix OS Developer Toolkit | You want to run Matrix OS in the browser, test Python snippets, inspect input/LED state, or automate checks before using hardware. |
| Write a Python app | Code Your Application (Python) | You want a shareable app, quick iteration, and direct Matrix OS APIs from Python. |
| Write a native app | Code Your Application (C++) | You need maximum performance, direct native APIs, or deeper integration with Matrix OS. |
| Build host software around a device | Interfacing Overview | You want a clean controller canvas, device metadata, app switching, or host automation around a physical Mystrix. |
| Read device info or issue system commands | System Remote API | You need device/app metadata, reboot/settings/app launch commands, or a way to enter Developer APP from a host. |
| Change Matrix OS firmware | Build Matrix OS | You want to build Matrix OS itself, flash custom firmware, or contribute changes to the Matrix OS source tree. |
Recommended Flowβ
- Open Matrix OS Developer Toolkit and make sure you can run the simulator.
- Pick Python or C++ based on the app you want to build.
- Run the smallest example first: set one LED, read one input, then add storage or MIDI.
- Keep the API reference open while you iterate.
- Test on hardware before relying on timing, USB, HID, MIDI, storage, or pressure-sensitive input behavior.
Host Control Modelβ
Matrix OS has two host-facing protocol layers:
- System Remote API is for device information and system-level control. Use it to read version/device/app metadata, reboot or open settings, and enter apps such as Developer APP.
- Developer APP is for controller-style software. Enter Developer APP first, then use its focused protocol for input reports and LED canvas writes.
Use System Remote API to get the device into the right app state. Use Developer APP when your host software wants Matrix OS hardware to behave like a clean controller surface.
Firmware Developmentβ
If you are changing Matrix OS itself, use Build Matrix OS for your operating system, then use Debug Your Application (C++) when you need development logs. New device support currently requires source-tree firmware work, so start with the Matrix OS repository and hardware build path.
API Modelβ
Matrix OS uses the Input API for keypad, touchbar, scalar controls, and future input types.
- C++ apps use
MatrixOS::Input,InputEvent, andKeypadInfo. - Python apps use
MatrixOS.Inputand dictionary-based input events. - Host tools use the protocol pages, but the event model maps back to the same input concepts.
What To Read Nextβ
- New to Matrix OS development: Matrix OS Developer Toolkit
- Writing a first Python app: Code Your Application (Python)
- Updating native app input handling: Input API
- Building host-side controller software: Interfacing Overview
- Device info and system control: System Remote API
- Building Matrix OS firmware: Build Matrix OS
- Debugging native app or firmware behavior: Debug Your Application (C++)
- Only if updating older C++ code: Migration From 3.x to 4.x
- API details: Matrix OS Application API (C++) and Matrix OS Application API (Python)
Comments