Implements the free and open audio codec Opus in Rust.

Overview

opus-native

Latest version Documentation BSD-3

Overview

Implements the free and open audio codec Opus in Rust.

Status

This crate is under heavy development. Most functionality is not working.

TODO

  • Decoder
  • Encoder
  • SIMD optimization
  • Repacketizer
  • Multistream decoder
  • Multistream encoder

Not supported Opus features

To decrease the implementation complexity, we don't support the following rarely used features:

  • Fixed point arithmetic - This library only supports float point arithmetic (only affects cheap MCU without proper floating point support).
  • Custom modes - The Opus specification allows the usage of custom modes (custom sample rates or custom frame sizes) as an optional feature. Since this breaks the compatibility with other programs, leads to worse encoding quality and is extremely rarely used, we decided to not support this optional feature.

If you need these Opus features, you must stick to the reference implementation.

Target feature optimization

This crate enables SIMD intrinsics for the x86 and x86_64 targets on the stable Rust compiler for SSE automatically.

You can activate the following x86 / x86_64 target features for further optimizations:

  • avx
  • fma

If you wish to use SIMD intrinsics on non x86 and x86_64 platforms, you need to use the nightly feature described below.

Crate features

  • nightly - Enables target specific SIMD intrinsics that are only currently available on the nightly Rust compiler. Affected target features: neon for arm / aarch64

Credits

This crate is a direct port of the Opus reference implementation written in C:

Reference implementation

It implements the following specifications:

License

Licensed under BSD-3-Clause.

You might also like...
Rust audio playback library

Audio playback library Rust playback library. Playback is handled by cpal. MP3 decoding is handled by minimp3. WAV decoding is handled by hound. Vorbi

Rust bindings for the soloud audio engine library

soloud-rs A crossplatform Rust bindings for the soloud audio engine library. Supported formats: wav, mp3, ogg, flac. The library also comes with a spe

Rust - Augmented Audio Libraries
Rust - Augmented Audio Libraries

Augmented Audio Libraries In this repository I'll push some experiments trying to use Rust for audio programming. Goals Goal 1: Learn & have fun This

CLI Rust Audio Visualizer
CLI Rust Audio Visualizer

crav Console-based Rust Audio Visualizer It can run in the terminal but also has a 3D accelerated backend implemented in wgpu. demo compatibility The

MVC audio plugin framework for rust

__ __ | |--.---.-.-----.-----.-----.| |.--.--.-----. | _ | _ |__ --| -__| _ || || | | _ | |

A simple GUI audio player written in Rust with egui. Inspired by foobar2000.

Music Player A simple GUI music player inspired by foobar2000 written in Rust using egui. The goal of this project is to learn about making gui/ nativ

Rust Audio Player Daemon

Rust Audio Player Daemon Cause mpd was annoying What rapd trys to do Rapd is not a spotify client, or an advanced music player. Its an audio/music dae

API-agnostic audio plugin framework written in Rust

Because everything is better when you do it yourself - Rust VST3 and CLAP framework and plugins

Cross-platform audio for Rust

quad-snd High-level, light-weight, and opinionated audio library. Web: WebAudio Android: OpenSLES Linux: Alsa macOS: CoreAudio Windows: Wasapi iOS: Co

Owner
Nils Hasenbanck
Nils Hasenbanck
An open-source and fully-featured Digital Audio Workstation, made by musicians, for musicians

Meadowlark An open-source and fully-featured Digital Audio Workstation, made by musicians, for musicians. *Current design mockup, not a functioning pr

Meadowlark 1k Jan 7, 2023
Symphonia is a pure Rust audio decoding and media demuxing library supporting AAC, FLAC, MP3, MP4, OGG, Vorbis, and WAV.

Pure Rust multimedia format demuxing, tag reading, and audio decoding library

Philip Deljanov 1k Jan 2, 2023
A library and application for lossless, format-preserving, two-pass optimization and repair of Vorbis data, reducing its size without altering any audio information.

OptiVorbis A library and application for lossless, format-preserving, two-pass optimization and repair of Vorbis data, reducing its size without alter

OptiVorbis 27 Jan 3, 2023
Simple examples to demonstrate full-stack Rust audio plugin dev with baseplug and iced_audio

iced baseplug examples Simple examples to demonstrate full-stack Rust audio plugin dev with baseplug and iced_audio WIP (The GUI knobs do nothing curr

Billy Messenger 10 Sep 12, 2022
DSP real time audio synthesis, effect algorithms and utilities for Rust

synfx-dsp synfx-dsp DSP real time audio synthesis, effect algorithms and utilities for Rust Most of the algorithms and implementations in this library

Weird Constructor 8 Nov 23, 2022
A low-overhead and adaptable audio playback library for Rust

Awedio   A low-overhead and adaptable audio playback library for Rust. Examples Play a single sound file: let (mut manager, backend) = awedio::start()

10 Buttons 20 May 25, 2023
Rust-crate with functions and helpers for working with music / audio, inspired by computer music languages.

music-math This crate contains common functions and helpers for working with music / audio in Rust. Most of these are inspired by similar functions fo

Mads Kjeldgaard 3 Apr 10, 2024
An experimental audio visualizer combining fractals and particle simulations.

fractal_sugar About the project fractal_sugar is an experimental audio visualizer combining fractals and particle simulations. It is cross-platform, w

Ryan Andersen 4 Nov 25, 2022
A CLI and library to convert data to sound, and vice versa (dependency-free)

Data to sound A simple crate to convert data to sound, and sound to data. The sound file format is wave (.wav). You can use it as a library or as a co

Awiteb 8 Feb 28, 2023
Cross-platform audio I/O library in pure Rust

CPAL - Cross-Platform Audio Library Low-level library for audio input and output in pure Rust. This library currently supports the following: Enumerat

null 1.8k Jan 8, 2023