festival
Symphonia
festival | Symphonia | |
---|---|---|
6 | 30 | |
259 | 2,173 | |
- | - | |
9.5 | 7.5 | |
3 months ago | 2 days ago | |
Rust | Rust | |
MIT License | 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.
festival
-
Announcing readable 0.10.0 - stack allocated human-readable strings
and others are used extensively in Festival, a music player I made.
- Festival is a music player for local album collections
-
Festival v1.0.0 - A local music player
is processed in around 2 seconds flat. That's around 257GB of audio data and images processed and displayed in the UI in 2 seconds. I made some charts and comparisons here: https://github.com/hinto-janai/festival/tree/main/comparison.
-
Festival v1.0.0 - A music player
I took some "interesting" decisions like foregoing a database and just using plain struct's, Box<[T]>, and other std types to represent all the (meta)data internally. This came with a lot of pros/cons and eventually lead me down the rabbit-hole of doubly-linked structures, raw pointers, and self-referential structs (please Polonius make it happen). I ended up settling with indices to refer to data cheaply.
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
-
Any libraries for Decoding AND Encoding to Opus audio codec?
Everything I can find on the internet seems to be abandoned. Opus-rs, Magnum, Magnum Opus, ect. Symphonia has been working on it for over 2 years, with work still ongoing. Heck, even FFMPEG seems to not have full support yet!. Is there any library that I have overlooked that provides this functionality?
-
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?
- Symphonia – a pure Rust audio decoding and media demuxing library
-
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
-
How do I create a video merging tool in rust?
You can look at symphonia for a pure Rust solution.
What are some alternatives?
servicer - A CLI to simplify service management on systemd
rodio - Rust audio playback library
daemonize - Library for writing system daemons
swyh-rs - Stream What You Hear written in rust, inspired by SWYH.
rescrobbled - MPRIS music scrobbler daemon
rust-id3 - A rust library for reading and writing ID3 metadata
readable - Human readable strings
gitoxide - An idiomatic, lean, fast & safe pure Rust implementation of Git
egui - egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native
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.
hifi.rs - a high resolution Qobuz streamer built in Rust
FFmpeg - Mirror of https://git.ffmpeg.org/ffmpeg.git