rotary
Symphonia
Our great sponsors
rotary | Symphonia | |
---|---|---|
4 | 30 | |
72 | 2,060 | |
- | - | |
5.8 | 7.9 | |
25 days ago | 3 days ago | |
Rust | Rust | |
Apache License 2.0 | Mozilla Public License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
rotary
-
Symphonia v0.5.2: Audio decoding in safe Rust, now often faster than FFmpeg!
One major difference between the audio crate and Symphonia's buffers is that the audio crate doesn't (currently) convey the sample rate with the buffer, but that could be added. If you find anything else missing, feel free to open an issue on https://github.com/udoprog/audio/issues.
Regarding improving the API for 0.6, something that bugs me about the current Rust audio ecosystem is that everyone is reinventing the wheel with their own audio buffer types each with their own API that downstream users have to learn. This makes it more of a hassle to pass audio data from one library to another than it should be. I've been contributing to the audio crate which provides buffer structs and traits for working with audio buffers with a common API regardless of their layout in memory. I have a work-in-progress branch for Rubato refactoring it to use the audio crate, though there's a bit more work to do in the audio crate to complete that. Would you be interested in using the audio crate in Symphonia?
-
Continuous Looper - Deep dive into an open-source live-looper and sampler written mostly in Rust
Something that bugs me about the current state of the Rust audio ecosystem is that everyone is rolling their own audio buffer structs, which makes it cumbersome to pass audio data between crates. I hope the audio crate can help with this, but the author is waiting for GATs to stabilize before developing it further.
-
Miri can now run doctests :)
Sweet! No more duplication just to get my code checked by miri.
Symphonia
-
Festival v1.0.0 - A music player
Symphonia for an amazing audio library
-
Streaming audio from url
Are you trying to play audio from something like an internet radio station where the stream has an infinite length? The content length header is optional. It uses that to support seeking within the file. Symphonia, one of the underlying backends for Rodio, has an option to tell the decoder that the source is not seekable if the size of the file is not known. Unfortunately, Rodio currently hardcodes this setting to true https://github.com/RustAudio/rodio/blob/master/src/decoder/read_seek_source.rs#L19. I actually wrote this code a few years ago so I should know this, but I can't remember why exactly. I think there was no easy way to communicate this information to Rodio since the other backends don't have a setting like this. The other Rodio backends may handle this differently. There's a lot of great info in this discussion on the Symphonia repo about this use case which helped me with my implementation: https://github.com/pdeljanov/Symphonia/discussions/153
-
Announcing zune-jpeg: Rust's fastest JPEG decoder
In other areas, miniz_oxide is faster than miniz, Symphonia is faster than ffmpeg on most codecs, the not-yet-announced zune-png beats both libpng and the more heavily optimized libspng, and the png crate is getting considerable improvements too and also beats libpng.
-
What would you rewrite in Rust?
i think op means https://github.com/pdeljanov/Symphonia
-
Symphonia v0.5.2: Audio decoding in safe Rust, now often faster than FFmpeg!
Symphonia is an audio decoder framework in 100% safe Rust supporting the most popular media formats (MP4/M4A, OGG, MKV/WebM, WAV) and audio codecs (AAC-LC, ADPCM, ALAC, FLAC, MP1/2/3, Vorbis, PCM).
-
Introducing the Music Player: A High-Performance, Extensible Application for Digital Audio Playback
The Music Player is based on Rodio, which is a high-performance audio playback library for Rust, and Symphonia, which is a Rust library for working with music metadata and audio decoding. This allows the Music Player to provide high-quality audio playback and management.
- BWF WAV Reading/Processing/Writing
-
Extracting frames from an .mp4 file
There is also https://github.com/pdeljanov/Symphonia
-
ffmpeg port in Rust.
I am rather more interested in projects like https://github.com/pdeljanov/Symphonia that implement format decoding in safe Rust, guaranteeing memory safety in the most critical part of the process.
What are some alternatives?
rodio - Rust audio playback library
swyh-rs - Stream What You Hear written in rust, inspired by SWYH.
rust-id3 - A rust library for reading and writing ID3 metadata
gitoxide - An idiomatic, lean, fast & safe pure Rust implementation of Git
not-yet-awesome-rust - A curated list of Rust code and resources that do NOT exist yet, but would be beneficial to the Rust community.
FFmpeg - Mirror of https://git.ffmpeg.org/ffmpeg.git
libnyquist - :microphone: Cross platform C++11 library for decoding audio (mp3, wav, ogg, opus, flac, etc)
lofty-rs - Audio metadata library
rust-async-coap - A flexible, asynchronous library for using and serving CoAP resources in Rust.
raui - Rust implementation of Renderer Agnostic User Interface
crates.io - The Rust package registry
rust-vst2 - VST 2.4 API implementation in rust. Create plugins or hosts.