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>
29 lines
503 B
Plaintext
29 lines
503 B
Plaintext
SIZZLETRACKER-SNG 1
|
|
NAME=demo
|
|
TEMPO=120.0
|
|
SIG=FOUR_FOUR
|
|
SCALE=MINOR
|
|
ROOT=9
|
|
ACTIVE=0
|
|
[PATTERN id=0 name=LEAD len=16]
|
|
0,0,57,128,1
|
|
0,4,60,128,1
|
|
0,8,64,110,1
|
|
0,12,60,120,1
|
|
1,0,45,90,2
|
|
1,8,45,90,2
|
|
[ARRANGEMENT len=16 loop=0]
|
|
0,0,0
|
|
0,1,0
|
|
0,2,0
|
|
0,3,0
|
|
[REGION A en=0 s=0 e=0 r=2]
|
|
[REGION B en=0 s=0 e=0 r=2]
|
|
[MIXER]
|
|
0,0,-1,-1,-1,-1,1,0.8,0,0
|
|
1,-1,-1,-1,-1,-1,2,0.8,0,0
|
|
2,-1,-1,-1,-1,-1,3,0.8,0,0
|
|
3,-1,-1,-1,-1,-1,4,0.8,0,0
|
|
[TOOLBOX]
|
|
0=NES_SYNTH;Lead;wave=Pulse25,attack=0.01,decay=0.15,sustain=0.6,release=0.1
|