Overview
Add platform-layer audio device abstraction that enumerates available audio
output devices and initializes a default playback device. This is the
foundational building block for all audio functionality.
Current State
No audio support exists in lambda-rs or lambda-rs-platform. The engine cannot
produce any sound output.
Scope
Enumerate available audio output devices on the system
- Initialize a default audio output device
- Provide
AudioDeviceBuilder following existing builder patterns - Abstract platform audio via
lambda-rs-platform
Non-Goals:
- Audio input/recording
- Sound playback
- Audio effects processing
Proposed API
// crates/lambda-rs-platform/src/audio/device.rspubstructAudioDevice{/* platform handle */}pubstructAudioDeviceBuilder{sample_rate:Option<u32>,channels:Option<u16>,label:Option<String>,}implAudioDeviceBuilder{pubfnnew() -> Self;pubfnwith_sample_rate(self,rate:u32) -> Self;pubfnwith_channels(self,channels:u16) -> Self;pubfnwith_label(self,label:&str) -> Self;pubfnbuild(self) -> Result<AudioDevice,AudioError>;}pubfnenumerate_devices() -> Vec<AudioDeviceInfo>;Acceptance Criteria
Affected Crates
lambda-rs-platform
Notes
- Consider wrapping
cpal for cross-platform audio device access - Sample rate defaults: 44100 or 48000 Hz
- Channel defaults: stereo (2 channels)
Overview
Add platform-layer audio device abstraction that enumerates available audio
output devices and initializes a default playback device. This is the
foundational building block for all audio functionality.
Current State
No audio support exists in lambda-rs or lambda-rs-platform. The engine cannot
produce any sound output.
Scope
Enumerate available audio output devices on the system
AudioDeviceBuilderfollowing existing builder patternslambda-rs-platformNon-Goals:
Proposed API
Acceptance Criteria
AudioDeviceBuildercreates a working audio output deviceenumerate_devices()returns available system audio devicesAffected Crates
lambda-rs-platform
Notes
cpalfor cross-platform audio device access