Welcome to the Polyend Tracker Community Edition repository!
Built directly from the original Polyend firmware source code, Tracker CE opens up the Polyend Tracker platform to musicians, sound designers, and developers around the world. Whether you are here to flash the latest Community Edition firmware, want to build your own idea on the Tracker, design custom themes and fonts, write Sample Editor plugins, or build new synthesizer engines, we are excited to have you here.
This unified codebase powers all three hardware instruments in the Tracker family:
- Original Polyend Tracker (
NXP Kinetis MK66FX1M0, Cortex-M4F @ 180 MHz) - Polyend Tracker+ & Tracker Mini (
NXP i.MX RT1051/RT1064, Cortex-M7 @ 600 MHz)
See CHANGELOG.md for the full list of new features and improvements.
A Quick Note Before Flashing or Modifying Firmware
Thanks to the Tracker's isolated bootloader and hardware emergency recovery button (see Flashing on Hardware & Emergency Recovery), experimenting with Community Edition builds is very safe. Even if a custom build fails to boot, you can easily re-flash a stable
.ptfimage from your microSD card. That said, we still need to include the standard legal disclaimer just in case:
- Provided "AS IS" Without Support Obligation: While the foundation of this repository was originally developed and released by Polyend, the Polyend Tracker Community Edition (CE) firmware, source code, and any community-developed modifications or plugins are provided "AS IS", without warranty of any kind, express or implied. Polyend has no obligation to provide official technical support, maintenance, bug fixes, or customer service for Community Edition firmware or custom builds.
- Use at Your Own Risk: Flashing, modifying, or running custom firmware is done at your own discretion and risk. Polyend is not liable for any data loss, project corruption, malfunction, or hardware damage (including "bricking" a device or issues caused by code modifications) arising from the use of this software.
- Out-of-Warranty Repairs Available: In the unlikely event that something ever goes wrong with your hardware while using custom firmware, it is not covered under standard warranty. However, Polyend is always happy to help get your instrument back up and running through its official out-of-warranty repair service (standard service, parts, and shipping fees apply. See How to Contact Polyend Customer Support).
.
├── Makefile # Unified top-level build & version management
├── version.mk # Centralized version & build number configuration
├── CHANGELOG.md # Release history & feature highlights
├── CONTRIBUTING.md # Contribution rules & hardware testing workflow
├── LICENSE # PolyForm Noncommercial 1.0.0 (+ Music Use & MIT for .ptfx SDK)
├── NOTICE.md # Third-party open-source attributions
├── core/ # Shared Tracker application, audio engine, UI & open synth engines
├── platforms/
│ ├── mk66/ # Original Tracker (Kinetis MK66) HAL, drivers & linker scripts
│ └── imx/ # Tracker+ & Tracker Mini (i.MX RT1051) HAL, drivers & linker scripts
├── synth/
│ ├── include/PolySynth/ # PolySynth public headers & Open Synth SDK (synth/include/PolySynth/sdk/)
│ └── lib/ # Precompiled libPolySynth.a & libPolyDSP.a + LICENSE-PROPRIETARY.txt
├── util/ # Shared C++ utility headers & third-party header libraries (ETL, magic_enum)
├── editor-fx-sdk/ # .ptfx Sample Editor plugin SDK, builder & effects/ sources
└── docs/ # User guides, SDK tutorials & architecture documentation
This repository prioritizes workflow continuity: our aim is to respect existing muscle memory, introduce features, optimizations and improvements that fit the original vision of the device, while fixing bugs along the way.
If you have ideas for major workflow adjustments or structural changes, please open a GitHub Discussion or a topic on the Polyend Backstage Forum first, so we can align on direction together with the community.
For radical experiments or reimagined interfaces, we actively encourage community forks!
We welcome community contributions! ❤️
From bug fixes and workflow improvements to new open-source synth engines and .ptfx Sample Editor plugins. Please read CONTRIBUTING.md for our project philosophy, pull request rules, hardware testing workflow, and technical checklist before opening a Pull Request.
- GNU Arm Embedded Toolchain
10.3-2021.10:- Direct official downloads from Arm:
- Linux (
x86_64):gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 - Linux (
aarch64/ ARM64):gcc-arm-none-eabi-10.3-2021.10-aarch64-linux.tar.bz2 - macOS (
x86_64/ Apple Silicon via Rosetta):gcc-arm-none-eabi-10.3-2021.10-mac.tar.bz2 - Windows (ZIP):
gcc-arm-none-eabi-10.3-2021.10-win32.zip
- Linux (
- Ensure
arm-none-eabi-gccis on yourPATH, extract the toolchain into./agt/10.3/, or passTOOLCHAIN=/path/to/arm-none-eabi-tomake.
- Direct official downloads from Arm:
make(for building firmware) andpython3(used bymake ptfxto package.ptfxSample Editor plugins and by themake bump-*version helpers; standard library only).
From the repository root:
# Build all three devices (Original Tracker, Tracker+, Tracker Mini)
make all
# Or build a single target:
make original # -> build/PolyendTracker_CE_1.0.0.ptf
make plus # -> build/TrackerPlus_CE_1.0.0.ptf
make mini # -> build/TrackerMini_CE_1.0.0.ptf
# Build reference .ptfx Sample Editor effects into editor-fx-sdk/build/Effects/:
make ptfx
# Clean all build directories:
make cleanAll firmware version numbers are defined in version.mk. The Build identifier displayed on the hardware under Config > Firmware > Build is automatically populated from the short Git commit hash (git rev-parse --short=7 HEAD):
# Show current version, Git build hash & output filenames
make version
# Increment patch version (e.g. 1.0.0 -> 1.0.1)
make bump-patch TARGET=all # or TARGET=original | TARGET=plus | TARGET=mini
# Increment minor version (e.g. 1.0.x -> 1.1.0)
make bump-minor TARGET=all # or TARGET=original | TARGET=plus | TARGET=mini- Copy the generated
.ptffile frombuild/(PolyendTracker_*.ptf,TrackerPlus_*.ptf, orTrackerMini_*.ptf) to the/Firmware/folder on your Tracker's microSD card.- Note: Keep
.ptffilenames at 31 characters or fewer so the Original Tracker's 32-byte/Firmware/_fwinfobootloader buffer remains null-terminated.
- Note: Keep
- On the device, open Config > Firmware > Firmware update, select the
.ptffile, and confirm.
Bootloader Resilience & Emergency Firmware Recovery:
- The Polyend Tracker bootloader is isolated from the application firmware:
- On the Original Tracker (
MK66), the bootloader runs on a separate dedicated microcontroller (kBootloaderTrig).- On Tracker+ and Tracker Mini (
IMX), the bootloader resides in a protected region at the bottom of QSPI Flash (0x60000000–0x6002FFFF), while.ptfapplication builds are linked starting at0x60030000(do not modify the flashORIGINaddress in the linker scripts).- Emergency Recovery: If a custom firmware build ever hangs or fails to boot into the UI, you can always recover your device:
- Place a known-good, stable
.ptffirmware file for your device inside the/Firmware/folder on your microSD card (ideally as the only.ptffile in/Firmware/).- Insert the microSD card into your Tracker and power it on.
- Use a paperclip or SIM-eject pin to press the recessed hardware Reset / Emergency Bootloader pinhole button (located on the bottom of the Original Tracker / Tracker+, or next to the USB-C port on Tracker Mini). The hardware bootloader will automatically pick up the
.ptffile from/Firmware/and flash it.
Full user and developer documentation is available in docs/ and on the repository Wiki:
- User Guides:
- Developer & Architecture Guides:
This repository is part of a growing open-source ecosystem around the Polyend Tracker family:
polyend/tracker-theme-editor(Live Web App): Browser-based visual Theme & Font Editor with a hardware screen simulator.polyend/tracker-lib: Open-source library and tools for reading, writing, and inspecting Polyend Tracker project (.mt), pattern (.mtp), and instrument (.pti) files.- Polyend Backstage Forum: Community forum for sharing custom themes, fonts,
.ptfxplugins, synth engines, and discussing workflows. - The Tracker Overflow (Discord): Unofficial Polyend Tracker Discord where users and developers can join, chat, and find like-minded people.
-
Firmware Source Code, Headers, Open Synth SDK (
synth/include/), and Documentation (docs/): Licensed under the PolyForm Noncommercial License 1.0.0 with Polyend Additional Permissions (seeLICENSE).- Musicians & Creators: Using the firmware for commercial music production, albums, paid live performances/gigs, sample packs, and monetized streaming/YouTube content is expressly permitted.
- No Selling of Firmware or Competing Products: Selling the firmware or derivative software, or embedding any part of the codebase into competing commercial hardware or software products, is prohibited.
-
.ptfxSample Editor FX SDK (editor-fx-sdk/): Licensed under the MIT License (see Part 3 ofLICENSE). Developers may freely build, distribute, and sell.ptfxplugins. -
Precompiled Synth & DSP Libraries (
synth/lib/libPolySynth.a,synth/lib/libPolyDSP.a): Provided under the Polyend Precompiled Synthesizer & DSP Library License for building firmware targeting authentic Polyend hardware. -
Third-Party Components: See
NOTICE.md.