From c0565038635496a09584e01f8d2b7af7e3739147 Mon Sep 17 00:00:00 2001 From: dvdsk Date: Wed, 2 Apr 2025 15:30:55 +0200 Subject: [PATCH 1/3] requirements: support embedded targets --- requirements.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/requirements.md b/requirements.md index 3a23c18..519e1fb 100644 --- a/requirements.md +++ b/requirements.md @@ -4,6 +4,7 @@ Becoming the standard audio stack for Rust requires us to support near all neede To that end we start with features supported by popular Rust audio engines like *Kira* & *Rodio*. Requests of those engines also point to needed use-cases. Finally we hope to learn from looking at large projects using audio like *Bevy* and *Fyrox*. ### Supported by Kira + - Smoothly adjusting properties of sounds without pops (via [tween](https://docs.rs/kira/latest/kira/struct.Tween.html)) - Change the settings of effects automatically [modulate](https://docs.rs/kira/latest/kira/modulator/index.html) - Apply audio effects: @@ -79,3 +80,10 @@ Needs we have ourselves or features we have seen requested but can not link too. - Microphone as input node to the audio graph @dvdsk. - Add an output to the OS, any audio send to it enters the audio graph. @dvdsk - Add an input to the OS, it gets audio from an output of the audio graph. @dvdsk +- Support features on capable embedded hardware where possible. With capable hardware we mean the target: + - Supports 32 bit floating points. + - Has 32 bit float atomics. + This would allow applications such as: + - (battery operated) Alarm clocks + - Light portable audio players + We might make this a soft requirement, meaning we attempt to achieve this if it does not take too much extra effort. From bdb581269a22502a73e5f29c5557bee83e3edb60 Mon Sep 17 00:00:00 2001 From: dvdsk Date: Fri, 4 Apr 2025 13:01:34 +0200 Subject: [PATCH 2/3] relax atomics and float demands on embedded platforms --- requirements.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.md b/requirements.md index 519e1fb..013940c 100644 --- a/requirements.md +++ b/requirements.md @@ -81,8 +81,8 @@ Needs we have ourselves or features we have seen requested but can not link too. - Add an output to the OS, any audio send to it enters the audio graph. @dvdsk - Add an input to the OS, it gets audio from an output of the audio graph. @dvdsk - Support features on capable embedded hardware where possible. With capable hardware we mean the target: - - Supports 32 bit floating points. - - Has 32 bit float atomics. + - Can supports 32 bit floating points through [libm](https://crates.io/crates/libm). + - Has 32 bit float atomics via [portable-atomics](https://crates.io/crates/portable-atomic). This would allow applications such as: - (battery operated) Alarm clocks - Light portable audio players From 9aae9601e14d4c568fafa56c8027924d8c0d1154 Mon Sep 17 00:00:00 2001 From: dvdsk Date: Fri, 4 Apr 2025 14:24:03 +0200 Subject: [PATCH 3/3] mention no_std in embedded requirement --- requirements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.md b/requirements.md index 013940c..1a3106a 100644 --- a/requirements.md +++ b/requirements.md @@ -80,7 +80,7 @@ Needs we have ourselves or features we have seen requested but can not link too. - Microphone as input node to the audio graph @dvdsk. - Add an output to the OS, any audio send to it enters the audio graph. @dvdsk - Add an input to the OS, it gets audio from an output of the audio graph. @dvdsk -- Support features on capable embedded hardware where possible. With capable hardware we mean the target: +- Have (partial) functionality on `no_std` targets. Such as capable embedded hardware. The targets need to at least: - Can supports 32 bit floating points through [libm](https://crates.io/crates/libm). - Has 32 bit float atomics via [portable-atomics](https://crates.io/crates/portable-atomic). This would allow applications such as: