AU: voice picker in the header #7

Merged
peterswimm merged 1 commit from feat/au-voice-picker into main 2026-10-14 23:33:24 +00:00
Owner

Summary

The AU's header gets a menu for choosing a voice, so you can pick a HEXAWE voice without going through the host's preset menu.

  • The menu offers Init (the wavetable engine) first. Below that is one submenu per release, or per song for albums, listing that release's instruments.
  • Placement: the menu sits in the header beside the UDG pages rather than on them, so udg_parity is unchanged.
  • Staying in step with the host: voicePath is now KVO-observable, so the header updates when the host changes presets or restores state. A restore also sets currentPreset to the factory preset it matches, with a KVO notification.
  • Voice data: O1NKVoicePreset now stores the release group and the instrument separately, and the preset name is built from them. The names are unchanged.

Testing

  • tests/lgpt/run.sh: all checks pass. au_check now also covers three things:
    • every voice has a release group and an instrument
    • a restore reports the matching factory preset
    • choosing a preset notifies voicePath observers
  • udg_parity: passes.
  • Build: xcodebuild for the iOS Simulator succeeds.
  • Not tested visually: the o1nk host app doesn't show the AU's view, so I haven't seen the menu rendered. It needs a look in an AU host such as AUM or GarageBand.
## Summary The AU's header gets a menu for choosing a voice, so you can pick a HEXAWE voice without going through the host's preset menu. - **The menu** offers Init (the wavetable engine) first. Below that is one submenu per release, or per song for albums, listing that release's instruments. - **Placement:** the menu sits in the header beside the UDG pages rather than on them, so `udg_parity` is unchanged. - **Staying in step with the host:** `voicePath` is now KVO-observable, so the header updates when the host changes presets or restores state. A restore also sets `currentPreset` to the factory preset it matches, with a KVO notification. - **Voice data:** `O1NKVoicePreset` now stores the release group and the instrument separately, and the preset name is built from them. The names are unchanged. ## Testing - **`tests/lgpt/run.sh`:** all checks pass. `au_check` now also covers three things: - every voice has a release group and an instrument - a restore reports the matching factory preset - choosing a preset notifies `voicePath` observers - **`udg_parity`:** passes. - **Build:** `xcodebuild` for the iOS Simulator succeeds. - **Not tested visually:** the o1nk host app doesn't show the AU's view, so I haven't seen the menu rendered. It needs a look in an AU host such as AUM or GarageBand.
The AU view's header gets a menu of the HEXAWE voices: Init (the
wavetable engine), then a submenu per release (per song for albums)
listing its instruments. It sits beside the UDG pages, not on them, so
udg_parity is unchanged.

The header follows the AU: voicePath is now KVO-observable, so host
preset changes and state restores update it, and a restore also sets
currentPreset to the factory preset it matches. Voices carry their
release group and instrument separately; the preset name is built from
them as before.

Co-Authored-By: Claude <noreply@anthropic.com>
peterswimm deleted branch feat/au-voice-picker 2026-10-14 23:33:24 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
peterswimm/01nk!7
No description provided.