Rust Audio

Any ideas on supporting `no_std` environments?

Hi! I’m new there, but I’m recently working on embedded devices. Most embedded chips have I2S protocol, where we write wave data to connected external sound devices. This requires an audio format decoder in no_std environment, where resources should be reduced to minimum if possible (there’s even no alloc crate for dynamic allocated memory). Is there any chance to implement rodio or other associated crates into embedded environment? Thanks :slight_smile:

I’m definitely interested in this topic and at one point was working on (porting) a no_std/microcontroller-friendly (Pure Data) synthesis engine:

One thing worth noting is that dasp supports no_std (to a degree):

However this is a bit problematic:

Please note that some of the crates require the core_intrinsics feature in order to be able to perform operations like sin , cos and powf32 in a no_std context. This means that these crates require the nightly toolchain in order to build in a no_std context.

It would be nice if dasp could use a crate like micromath (fast floating point approximations of e.g. trig functions) in microcontroller environments.

3 Likes