Skip to content
 
 

Latest commit

 

History

1,773 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NullPerator

An eight-track music tracker for NullPerator hardware, iPhone, iPad, Android, and the web.

NullPerator combines a compact, controller-driven workflow with a shared C++ tracker engine. Compose songs from patterns, chains, phrases, and tables; work with samples or synthesized instruments; and move compatible projects between the supported targets.

NullPerator builds on the open-source picoTracker project and is developed by 203 Systems.

Features

  • Eight song tracks with 255 chains, 255 phrases, and 32 tables
  • 64 freely assignable instrument slots: Sample, MIDI, SID, OPAL, Drum, Stack, Chiptune, GB-Wave, GB-Pulse, and GB-Noise
  • 44.1 kHz stereo audio engine
  • Fast editing through physical controllers or on-screen controls
  • Separate project autosaves, sample import, and offline local storage
  • Shared 240×240 UI2 tracker interface across hardware, iOS, Android, and the web

Supported targets

Target Runtime Platform integration
NullPerator for iOS Native C++ core with a bundled Svelte presentation Core Audio recording and playback, CoreMIDI, Bluetooth MIDI, GameController, background audio, and Files
NullPerator for Android (experimental) Native C++ core with bundled Svelte controls AAudio playback and recording, system WAV picker and Files integration, ZIP backup, USB/system MIDI routing
NullPerator hardware Native C++ firmware ESP32-S3 hardware, display, controls, audio, MIDI, and storage
WASM workbench C++ core compiled to WebAssembly Browser storage, host-folder synchronization, Web MIDI, logs, and tracing

All targets share the application model, project format, audio engine, and UI2 renderer. Platform adapters provide audio, MIDI, input, display, and filesystem services without changing tracker behavior.

Build NullPerator for iOS

Requirements: Xcode, an iOS signing team for physical devices, and pnpm.

cd web
pnpm install --frozen-lockfile
cd ..
ios/scripts/package-web.sh
open ios/NullPeratorIOS.xcodeproj

Select the NullPeratorIOS scheme, choose an iPhone, iPad, or simulator, and run the app. The Xcode build phase compiles and links the native C++ core.

See the iOS build and architecture guide for runtime details.

Build NullPerator for Android

Requirements: JDK 17, pnpm, Android SDK 35 and NDK 28. The Gradle build bundles the shared Web UI and compiles the native audio/tracker core.

cd android
./gradlew :app:assembleDebug

See the Android build guide for SDK setup, installation, current limitations and device testing.

Run the WASM workbench

Requirements: the pinned Emscripten toolchain, Node.js, and pnpm.

cd web
pnpm install --frozen-lockfile
cd ..
tools/build-wasm.sh Release
cd web
pnpm dev

The development server prints the local URL after startup. See the WASM build guide for toolchain setup and production packaging.

Build the NullPerator hardware firmware

The hardware firmware targets ESP32-S3 and builds with ESP-IDF:

idf.py --project-dir sources -B sources/build/node -DNode=true build

See the hardware build guide for configuration, flashing, monitoring, and troubleshooting.

Run host tests

cmake -S tests -B build-host -DCMAKE_BUILD_TYPE=Release
cmake --build build-host --parallel
ctest --test-dir build-host --output-on-failure

Shared changes should also be validated on every affected product target.

Repository layout

Path Purpose
sources/ Shared C++ tracker engine, UI2, services, and platform adapters
ios/ Swift and Objective-C++ iOS host, native bridge, resources, and packaging scripts
android/ Java Android host, JNI integration, Gradle packaging and adapter tests
web/ Shared Svelte presentation and the WASM workbench
tests/ Host-side C++ tests
tools/ Build, verification, asset, and firmware acceptance utilities
docs/ Development, release, App Store, privacy, and WASM guides

Documentation

Hardware

Learn more about the physical NullPerator at 203 Systems.

Contributing

Read the developer guide and contribution guidelines before opening a pull request.

License

This project is distributed under the BSD 3-Clause License. See LICENSE for the picoTracker copyright history and the licenses of bundled third-party components. Web distribution notices are maintained in web/public/THIRD_PARTY_NOTICES.md.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

13 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages