Skip to content

gopdsdk v0.9.0 - Complete Offline Sound

Latest

Choose a tag to compare

@Djunichi Djunichi released this 12 Aug 10:37
b6e38fc

gopdsdk v0.9.0

This release completes gopdsdk’s offline Playdate sound surface.

Highlights

  • Owned audio samples with loading, reloading, borrowed data inspection, copying, decompression, playback ranges, and loop callbacks
  • Streaming file-player buffering, loop ranges, reload, and underrun controls
  • Explicit audio channels, routing, volume, pan, effects, and modulation
  • Headphone, headset-microphone, and speaker-output state and control
  • Wavetable and custom-generator synthesis
  • Envelope controls, LFOs, control signals, instruments, tracks, and sequences
  • Bounded update-thread PCM and custom-generator callbacks
  • Fixed native callback pools and 4,096-frame rings that prevent Go re-entry from the audio thread
  • Sequence, track, note, signal, and controller introspection

Raw generator userdata/function pointers remain intentionally omitted in favor
of bounded portable Go contracts. setMP3StreamSource is also omitted because
Playdate SDK 3.1.1 does not document a shipping-device contract for it;
packaged MP3 playback remains available through FilePlayer.

Compatibility and verification

The verified Windows profile uses:

  • Go 1.26.5
  • Playdate SDK 3.1.1
  • TinyGo 0.41.1 with LLVM 20.1.1
  • Arm GNU Toolchain GCC 15.3.1

The release checkout passes the full Go test and vet suites, formatting and
diff checks, Simulator c-shared compilation and packaging, and conservative
hard-float device compilation, linking, relocation checks, and packaging.

Final P9 acceptance covers routing, headphone states, samples, wavetable and
custom synthesis, callbacks, underruns, lifecycle cleanup, conservative-GC
soak, bounded memory growth, and unchanged post-run device logs.

macOS and Linux native Go CI remain supported; official SDK, Simulator, device
build, USB, and physical-device integration on those hosts remain unverified.

See CHANGELOG.md, API.md, MIGRATING.md, and COMPATIBILITY.md for the
complete contracts and evidence.