docs/USER_GUIDE.md: a full walkthrough of every screen — Tracker (transport,
grid, note-offs, scrolling), the punch-in keyboard, Arrangement, Mix
(channels, FX routing, recording), Toolbox (tile gestures, Synth/Sampler/
SF2-XI editors, effects, presets) and Setup (projects, audio routing, themes,
input bindings). Also covers the four input methods incl. the new
hold-to-repeat, file formats, recording, and default keyboard/gamepad/MIDI
maps. 11 on-device screenshots under docs/screenshots/, linked from README.
Also refresh the README's stale "NES synth" wording to "3-oscillator synth"
(renamed in v0.5.0).
Docs only — no code change, so no version bump or rebuild.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Global rename of the app/package identifier from
com.reactorcoremeltdown.sizzletracker to space.rcmd.android.sizzle:
- build.gradle.kts: applicationId + namespace.
- Move the Kotlin source tree (main + test) and rewrite every package/import.
- native_audio.cpp: JNI symbol names (Java_space_rcmd_android_sizzle_...) so the
Oboe callback still links against the relocated NativeAudioBridge.
- docs: package/file-map header.
The desktop-project GitHub URLs (github.com/reactorcoremeltdown/sizzletracker)
and the Reactorcoremeltdown copyright/SPDX author identity are intentionally left
unchanged. Note: the new applicationId installs as a separate package (existing
installs won't upgrade in place).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Add GPL-3.0 LICENSE and SPDX headers (GPL-3.0-or-later) to every source file
(58 Kotlin, the C++ file, and the sample-pack HTML tool).
- README: state the GPL-3.0-or-later license (+ badge); fix stale "256 beats"
-> "256 bars"; fix build instructions (the Gradle wrapper is committed);
mention master recording and the sample-pack tool.
- DEVELOPER_HANDOVER: resync with the codebase — corrected the wrapper note,
architecture diagram, full file map, the add-instrument/effect guide, Oboe
(now default with fallback, not an opt-in toggle), moved SF2/XI to implemented,
and added recently shipped features with an honest remaining/optional list.
- Fix a pre-existing broken unit test: SngFormatTest called the old
SngFormat.import(text); the API is importInto(project, text). Tests compile
and pass again.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
A retro, grid-based music tracker for Android (Kotlin + Jetpack Compose,
single Activity) with four equally-capable input methods (touch, keyboard,
gamepad, MIDI) and four tabs: tracker, mixer, toolbox, settings.
Highlights:
- Tracker: Canvas-drawn 4-track pattern grid over an 8-lane arrangement roll,
with a glyph cache and draw-phase state reads so the playhead and edits
redraw without per-frame recomposition.
- Audio: sample-accurate sequencer feeding a shared AudioEngine, driven by
either a Kotlin AudioTrack loop or native Oboe/AAudio via JNI (16 KB-aligned
native libs). media3 MediaSession for lock-screen/headset transport.
- Toolbox: 16 instrument/effect slots with a 2-octave audition keyboard;
single-tap select, double-tap edit, long-press clear.
- Note entry: long-press cell popups (piano keyboard / value steppers) plus
keyboard/gamepad stepping that resumes from the last note/channel entered.
Velocity capped at 0x7F, channel at 16.
- Selection/clipboard (cut/copy/paste/delete) and .sng import/export
compatible with the reference desktop tool.
- A `profile` build type (non-debuggable, debug-signed) for realistic
on-device performance testing.
- Developer handover documentation under docs/.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>