Skip to content

Add SDL-style WAV playback - #39

Merged
corepunch merged 2 commits into
mainfrom
feature/wav-audio
Oct 4, 2026
Merged

corepunch merged 2 commits into
mainfrom
feature/wav-audio

Conversation

@corepunch

@corepunch corepunch commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Add an SDL-style audio API: load a WAV, open a paused playback device, queue samples or install a callback, then unpause. axAudioMix uses SDL's 0–128 volume scale.
  • WAV support is uncompressed PCM (8/16/24/32-bit), IEEE float 32, A-law, and mu-law. Microsoft and IMA ADPCM are not supported.
  • Backends are AudioQueue (macOS/iOS), waveOut (Windows), and ALSA (Linux when libasound is present). WebGL and hosts without a device can still load and mix; axAudioOpen fails there.
  • Remove the unsupported CAEAGLLayer.colorspace assignment so iPad builds compile with the iOS SDK. Drawable configuration remains on the supported OpenGL ES drawable properties.
  • Use a portable audio fixture path so the WAV round-trip test runs on Windows as well as Unix.

Validation

  • Native API, message queue, timer, network, filesystem, and audio tests pass on macOS.
  • CI builds pass on Linux with ALSA, Linux/X11, macOS, Windows, and WebGL.
  • Fresh Groove device and Simulator builds link against this dependency successfully.

corepunch and others added 2 commits October 3, 2026 06:57
Load RIFF PCM, IEEE float, A-law, and mu-law, and play the result through
a paused-by-default device with queue or callback feeding. Hardware output
is AudioQueue on Apple, waveOut on Windows, and ALSA on Linux; other
targets keep load and mix working and fail device open. ADPCM is not
supported.
@corepunch
corepunch merged commit 05ffb1c into main Oct 4, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant