Rust Audio

Opportunity: mp3 crate

Hey!

areweaudioyet repository just got an issue raised asking about the mp3 crate here

What’s the development status of it? Has anyone used it? What would be the next steps? What are the challenges? I noticed there’s a roadmap in the GitHub Issues on that project, but it hasn’t been updated in a moment.

I think this crate could have some great potential! mp3 is such an ubiquitous format these days, and apparently there’s no complete, pure Rust implementations yet on Crates.

What are the legal / licensing concerns of mp3 encoders and decoders these days? I am not a lawyer, but didn’t the patents already expire?

How could we get that crate forward? :slight_smile:

3 Likes

Found this gist: https://gist.github.com/mitchmindtree/9a3ead01aea3a2d7e7f5ba55837587f3 linked from this other thread: RustAudio GitHub Org - State of the repos

3 Likes

I did an investigation this week, and here are crates I found (all of them licensed under permissive licenses):

The most mature of these seem to be icefoxen/rinimp3 and Herschel/puremp3 . I’d be glad if one of them (with the best ideas included from the another one) would be developed further, and may be even moved under the RustAudio wings

1 Like

Breathing new life into an already existing crate (instead of creating a new crate) is indeed a good idea. A prerequisite is that the owner is open to it.

When you compare an existing crate with the ideal crate in your fantasy, it’s not a fair comparison. It’s only when you write a crate and it starts having a certain size that you realize just how much work it is to write a good crate.

For rsynth, I have started contributing to an already existing crate, rather than developing my own. There hasn’t been a single moment that I regretted this.

1 Like

Rinimp3 is probably about 80% done, and was mainly intended to be a proof of concept for the article more than something finished. If someone wants to take the codebase and run with it, feel free.

2 Likes

I will glady accept any PRs or even transfer ownership if someone is interested in puremp3. I would not recommend it for production work – there are definitely MP3s that it decodes incorrectly, and it lacks robust test suites. But basic functionality is there, and it could be a good starting point. Mainly I was looking for pure Rust MP3 decoders to make it easy to compile to wasm without dealing with C libs.

pdeljanov just recently approached me about their crate Sonata, which I was not aware of (it’s not on crates.io). I have no tried it yet, but it seems to have quite good progress for many codecs, and I’m looking forward to trying it in my projects.

1 Like

Thank you guys for your answers & opinions. I’m going to experiment with existing mp3 crates. Let’s see if there’ll be anything good as a result