PocketDAW v0.4.5 — SDK Control Navigation System + Gamepad Control Pass
PocketDAW v0.4.5 — SDK Control Navigation System + Gamepad Control Pass
We are excited to release v0.4.5, a major SDK update that transforms how you navigate and control every plugin with a gamepad.
SDK v5.0 — Control Navigation System
The new control navigation system gives plugins a declarative way to define their UI structure, enabling smart D-pad navigation that just works.
Control Orientation
Plugins declare their control axis type:
- PD_ORIENT_VERTICAL — for vertical sliders and lists
- PD_ORIENT_HORIZONTAL — for horizontal faders and rows
- PD_ORIENT_RADIAL — for knobs and rotary controls
The SDK auto-derives the correct D-pad navigation axis from these declarations.
Navigation Groups
Controls are grouped with layout hints:
- PD_GROUP_HORIZONTAL — controls in a row
- PD_GROUP_VERTICAL — controls in a column
- PD_GROUP_GRID — 2D layout (piano roll, sequencer)
The SDK auto-resolves neighbor links between controls based on these groups.
Focus State Model
Three distinct edit modes communicated via PdDrawContext.editMode:
- PD_EDIT_NAVIGATE — highlight mode, move focus with D-pad
- PD_EDIT_PARAM_SEL — parameter selection, pick what to edit
- PD_EDIT_VALUE — value adjustment, tweak the parameter
NavTable Engine (src/nav.h)
New navigation engine with three core functions:
- buildNavTable() — builds per-plugin navigation map from manifest metadata
- resolveNav() — resolves neighbor links between controls
- navigateNav() — handles D-pad navigation with focus state transitions
Cross-group navigation connects adjacent groups with the same layout, giving you perpendicular neighbor links for intuitive navigation.
Backward compatible: legacy plugins auto-infer navigation from widget type.
Gamepad Control Pass — All 13 Plugins
Every plugin now has a polished gamepad control experience:
3-Level Focus (Multi-Group Plugins)
Plugins like ReQ use three levels:
- Band Navigate — move between parameter bands
- Param Select — pick which parameter to edit
- Value Edit — adjust the value
Press B to back out to the previous level.
2-Level Focus (Single-Group Plugins)
Plugins like JT Sidechain and Tape Delay:
- Navigate — move between parameters
- Value Edit — adjust values
Fine-Tune Acceleration
- Y button — ultra-fine (0.001x)
- L1 Trigger — fast (0.1x)
- Hold duration — ramp acceleration over time
Hint Bar
Contextual controls shown on-screen:
- A = SELECT
- B = CLOSE
- L1 = FAST
- Y = ULTRA-FINE
Visual Feedback
Editing state shown with > prefix and yellow highlight for the currently focused control.
Plugin Manifest Rollout — All 13 Plugins
Every plugin updated with full manifest declarations:
- JT Sidechain
- ReQ
- ReCorder
- Tape Delay
- PD Synth
- Drum Machine
- FM Synth
- Granular
- Wavetable
- Pitcher
- Re-Pitcher
- Simple Sampler
- JT Synth
Each declares widget type, orientation, navGroup, and navOrder for consistent navigation.
Fixes
Sample Edit Preview Fix
One-shot playback now plays the sample once (was infinite loop with loops=-1).
Arrangement Loop Fix
- Seamless looping — samples use SDL_mixer native looping, eliminates click/gap
- FX tail preservation — reverb/delay state preserved across loop boundary (note-off with release, not hard kill)
Download v0.4.5
Get the latest version for your platform:
- Anbernic RG35XX: Extract to SD/MUOS/application/
- Linux Desktop: Run the executable directly
- Windows Desktop: Drop it in your folder and launch
Download PocketDAW v0.4.5 | SDK Documentation
SDK Docs
SDK documentation updated at docs.pocketdaw.net with full navigation API reference.
Happy navigating.