opus
cmake-rs
Our great sponsors
opus | cmake-rs | |
---|---|---|
25 | 2 | |
2,069 | 270 | |
3.4% | 3.7% | |
9.7 | 2.5 | |
10 days ago | 16 days ago | |
C | Rust | |
GNU General Public License v3.0 or later | Apache 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.
opus
-
Permutation Iteration and Random Access
There is a pattern here (that also goes with the author's prior article on inverting gauss' sum formula): Generally if if you can make a formula that counts the combination of things you can convert that into a code to encode and decode those combinations into indexes.
So for example the opus audio codec needs to encode/decode vectors of dimension n whos absolute values sum to k. https://github.com/xiph/opus/blob/master/celt/cwrs.c#L74
Or this rolling cuckoo filter that optimally encode/decode four sorted numbers in a range 0..2N with the constraint that the they span a range of N. https://github.com/sipa/bitcoin/blob/202006_cuckoo_filter/sr...
If you're lucky there will be closed form expressions for the encoding and decoding equations. (There for both of the above, at least for some parameters, but in both those examples the implementations use small tables because for the ranges involved the tables end up being faster than sqrts).
-
Multiple tags with the same name in metadata
If there are multiple tags with the same name, Ffmpeg will only use the last tag. If you really need to have multiple tags with the same name in your OPUS files, use opusenc instead (https://opus-codec.org/). Beware that some playback software does not display multiple artists gracefully.
-
I built a Zoom clone 100% IN RUST
AFAIK ogg isn't really suitable for low latency audio streaming. Consider the Opus codec instead.
-
Hey r/audioengineering, I made an app that makes it easier to get feedback on your mix or song idea
I'm not writing anything myself. The decoder I'm using the C implementation (libopus) compiled to webassembly by this guy.
-
Windows HEVC video codec from Microsoft costs $0.99
> The only reason you wouldn't use HEVC is if your hardware lacks support
No, the main problem with HEVC is that it is not licensed under royalty-free terms. In contrast, almost all commonly used internet formats and protocols are licensed under royalty-free terms so everyone is free to use and implement them without paying a licensing fee. Video has been an anomaly.
Imagine if HTML wasn't licensed under royalty-free terms. Or TCP/IP or HTTP or SMTP or any other internet format or protocol that you (probably) use every day. There's no reason why video needs to be a special case here.
Fortunately, video formats like AV1 (https://aomedia.org/) and audio formats like Opus (https://opus-codec.org/) exist for high quality, royalty-free video and audio coding. These formats are deployed in the real world right now. YouTube, for example, makes extensive use of both.
-
A maximally-dense encoding for n-choose-k
At the heart of the opus audio codec is a maximally-encoding for combinations with replacement and sign[1], which is n-choose-k where n can be reused and there is a sign for each chosen dimension. Or stated another way, n dimensional integer vectors where the sum of absolute values add to k.
This enumeration can be implemented with the same kind of recursion as in the link, with a little bit of elaboration. Though interestingly, it (and the formula in the link) can also be be implemented with recursive table lookups quite efficiently, and for small fixed N with closed form formula (also true for the simpler combination code in the link).
These maximally dense algebraic codes can be designed for a great many possible applications.
For example, for a generational rolling cuckoo filter Pieter Wuille and I came up with an algebraic code for coding 4 sorted generation numbers with the requirement that all 4 are within a window of half the total range[2]. In prior published work on cuckoo filters used a large table of all possible values of combinations with replacement (to efficiently pack small sorted numbers). We found the algebraic code to be faster than a big dumb table, presumably due to cache locality, even though our fastest encoder/decoder still use tables but only tiny ones (at least for the sizes we were considering).
A challenge for implementing these sorts of functions is that their inverses often require operations like integer square or cube roots which are not particularly fast unless the ranges are small enough to implement them with tables.
[1] https://github.com/xiph/opus/blob/master/celt/cwrs.c#L74
-
M1 Users - How are you Cross Compiling?
Got it, that makes sense -- thanks for the help! Another commenter pointed out some of those oddities in the flags; It looks like something opus is computing/setting in their makefile which the dependency is invoking.
- [OC] ytmdl now supports getting metadata from Spotify as well. ytmdl v2021.08.01 Release
-
I won't be posting any more preimages against neuralhash for now
My name is Greg Maxwell. I am a retired. My main areas of interest are cryptography, digital signal processing, error correcting codes, and computer networking. Well known organizations I previously worked at include Juniper Networks and Mozilla. I am one of the authors of the Opus audio codec (among other codecs). I've contributed to many open source protocols and packages. I mostly entertain myself with recreational mathematics and reading. In the distant past I achieved some minor notoriety for my contributions to cracking the CSS protection scheme for DVDs and for publishing a huge cache of historical and public domain academic documents that JStor was keeping behind a paywall. I was one of the earliest developers of Bitcoin and developed numerous parts of the system including the cryptographic code and many of the privacy protocols used there. Some peer reviewed publications I've coauthored include 1, 2, 3, and 4. My partner is an attorney for creative commons and has previously served on the board of organizations such as Wikimedia and the Free Software foundation.
-
Opus – an open source parallel corpus
Opus is also the name of an incredibly well compressed audio codec: https://opus-codec.org
cmake-rs
-
M1 Users - How are you Cross Compiling?
Opened https://github.com/alexcrichton/cmake-rs/pull/136 to make it easier without resorting to `CMAKE_TOOLCHAIN_FILE`.
What are some alternatives?
libvorbis - Haskell binding for libvorbis, for decoding Ogg Vorbis audio files
go-m3u8 - Parse and generate m3u8 playlists for Apple HTTP Live Streaming (HLS) in Golang (ported from gem https://github.com/sethdeckard/m3u8)
argos-translate - Open-source offline translation library written in Python
vorbis - Reference implementation of the Ogg Vorbis audio format.
vgmstream - vgmstream - A library for playback of various streamed audio formats used in video games.
libopenaptx - Open Source implementation of Audio Processing Technology codec (aptX)
vgmstream - vgmstream - A library for playback of various streamed audio formats used in video games. [Moved to: https://github.com/vgmstream/vgmstream]
HanBaoBao - Mandarin Chinese text segmentation and mobile dictionary Android app (中文分词)
audiopus_sys - Rust FFI-binding of Opus.
AppleNeuralHash2ONNX - Convert Apple NeuralHash model for CSAM Detection to ONNX.
homebrew-macos-cross-toolchains - macOS cross compiler toolchains
concentus.oggfile - Implementing support for reading/writing .opus audio files using Concentus