Watatribz ES2
Watatribz‑ES2 is an open firmware project for the Korg Electribe 2 Sampler (ES‑2). It aims to unlock the full potential of the hardware by re‑flashing the device with a lightweight RTOS and a completely new audio engine, sequencer and performance interface.
Features
The project currently implements the core building blocks of a modern groovebox:
- Audio HAL with minimal latency (48 kHz/24 bit, 64‑sample blocks) and ping‑pong DMA scheduling.
- Waveform oscillators including classic VA (saw, square, triangle) and wavetable morphing with linear interpolation between tables.
- Sequencer supporting 16 tracks × 128 steps, per‑step conditions, parameter locks and pattern chaining.
- Effects router with series, parallel and side‑chain buses. A set of built‑in effects (delay, reverb, chorus, distortion, EQ, compressor and bit‑crusher) is included.
- Sampler engine (work in progress) for recording, slicing and looping samples in real time.
- Lua scripting API exposing sequencer and parameter primitives for generative composition and live modulation.
Building
This repository is organised for cross‑compilation on ARM (i.MX28). A typical toolchain consists of GCC 10 with NEON support and CMake. To build on a host machine, run:
mkdir build && cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/arm-none-eabi.cmake
make
Due to the limitations of this development environment, the project has not yet been built here. You will need to install an ARM cross‑compiler and linker (e.g. from the GNU Arm Embedded Toolchain) and provide the Korg Electribe 2 hardware headers and linker script. See docs/ for details.
Flashing
Flashing is performed via a two‑partition scheme. The stock Korg firmware remains on the internal eMMC and a new image is written to a second partition. A loader script will detect the new firmware and boot into Watatribz‑ES2; a hardware button combination allows reverting to the original OS if something goes wrong.
Contributing
Contributions are welcome! Please open issues or pull requests on GitHub. All code is licensed under the GNU Affero General Public License v3.0 unless otherwise noted.
