awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
RustAudio avatar

RustAudio/cpal

0
View on GitHub↗
3,551 stars·477 forks·Rust·apache-2.0·14 views

Cpal

cpal is a low-level Rust audio hardware abstraction layer and cross-platform API. It serves as a unified interface for managing audio input and output streams across Windows, macOS, and Linux hardware, acting as a device driver wrapper to discover audio hosts and configure hardware devices.

The project functions as a real-time audio streamer, utilizing a high-priority callback system to stream audio samples to hardware devices with minimal latency.

The library covers audio hardware integration, including the discovery and configuration of sample rates and channel counts. It supports audio input capture and cross-platform playback, providing tools for digital signal processing workflows through audio sample format conversion.

Features

  • Cross-Platform Audio APIs - Provides a unified cross-platform API for managing audio input and output streams across Windows, macOS, and Linux.
  • Audio Hardware Management - Provides a low-level abstraction layer for configuring and managing audio device settings across different operating systems.
  • Audio Hardware Interfaces - Provides a low-level framework for managing audio hardware, sound cards, and driver interfaces.
  • Audio Input Capture - Enables recording raw audio data from microphones or other input hardware.
  • Sample-Based Buffer Callbacks - Implements a requested-buffer callback mechanism to feed raw PCM samples to hardware backends.
  • Real-Time Audio Threading - Requests elevated execution priority for audio threads to minimize playback latency and glitches.
  • Callback-Driven Streaming - Utilizes a high-priority callback system to stream audio samples to hardware with minimal latency.
  • Cross-Platform Audio Engines - Implements a consistent cross-platform engine for streaming and playing audio across different OS hardware.
  • Raw Audio Sample Streaming - Opens a non-blocking flow of raw PCM float samples to audio backends via high-priority callbacks.
  • Real-Time Audio Processing - Provides a high-priority callback system for low-latency audio stream processing suitable for professional software and synthesizers.
  • Hardware Device Discovery - Queries system APIs to enumerate available audio hardware devices and their supported configurations.
  • Audio Stream Property Controls - Allows defining sample rates and channel counts to ensure compatibility with hardware before streaming.
  • Hardware Abstraction Layers - Acts as a low-level hardware abstraction layer providing a consistent API for interacting with diverse audio drivers.
  • Audio Device Enumerators - Provides utilities for discovering and listing available audio hardware endpoints for system-wide routing.
  • Hardware Configurations - Implements tools to discover audio hosts and configure hardware sample rates and channel counts.
  • Hardware Backend Abstractions - Provides a unified trait-based interface to target different operating system sound servers.
  • Audio Playback - Offers controls to start, pause, or stop the flow of audio data to hardware.
  • Audio Signal Processing Workflows - Manages the workflow of converting audio sample formats and data streams to prepare sound for playback.
  • Sample Format Conversion - Provides tools for changing sample width and channel counts of audio segments to ensure hardware compatibility.
  • Non-blocking IO Architectures - Handles audio playback and capture in separate threads to prevent blocking the main application loop.
  • Audio And Music - Low-level cross-platform audio IO.
  • Media & Communication - Low-level cross-platform audio I/O library.

Star history

Star history chart for rustaudio/cpalStar history chart for rustaudio/cpal

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does rustaudio/cpal do?

cpal is a low-level Rust audio hardware abstraction layer and cross-platform API. It serves as a unified interface for managing audio input and output streams across Windows, macOS, and Linux hardware, acting as a device driver wrapper to discover audio hosts and configure hardware devices.

What are the main features of rustaudio/cpal?

The main features of rustaudio/cpal are: Cross-Platform Audio APIs, Audio Hardware Management, Audio Hardware Interfaces, Audio Input Capture, Sample-Based Buffer Callbacks, Real-Time Audio Threading, Callback-Driven Streaming, Cross-Platform Audio Engines.

What are some open-source alternatives to rustaudio/cpal?

Open-source alternatives to rustaudio/cpal include: mackron/miniaudio — miniaudio is a single-file C audio library used for audio playback, capture, and hardware interfacing across multiple… google/oboe — Oboe is a native C++ library designed for building high-performance, low-latency audio applications on Android. It… juce-framework/juce — JUCE is a comprehensive C++ audio framework and digital signal processing library used to build cross-platform audio… createjs/soundjs — SoundJS is a JavaScript audio library and asset manager designed to load and play audio across different browsers… naudio/naudio — NAudio is a .NET audio library that provides playback, recording, format conversion, and signal processing… librespot-org/librespot — librespot is an open-source audio streaming client and library used to implement custom music players that…

Open-source alternatives to Cpal

Similar open-source projects, ranked by how many features they share with Cpal.
  • mackron/miniaudiomackron avatar

    mackron/miniaudio

    6,905View on GitHub↗

    miniaudio is a single-file C audio library used for audio playback, capture, and hardware interfacing across multiple operating systems. It functions as an audio hardware abstraction layer, an audio processing engine, an audio synthesis engine, and a codec and resampler. The project implements a node-graph based system for routing digital audio signals, mixing, and 3D spatialization. It also includes a programmatic generator for noise patterns and basic waveforms used for sound creation and signal testing. The library covers digital signal processing, including audio format conversion and sa

    C
    View on GitHub↗6,905
  • google/oboegoogle avatar

    google/oboe

    4,069View on GitHub↗

    Oboe is a native C++ library designed for building high-performance, low-latency audio applications on Android. It serves as a unified wrapper and native API for managing audio streams, sample rates, and hardware routing across different Android operating system versions. The library provides a consistent interface by automatically selecting the most efficient audio backend at runtime, switching between AAudio and OpenSL ES to ensure the lowest possible latency. It enables exclusive-mode hardware access to bypass the system mixer and utilizes a high-priority asynchronous pull model for audio

    C++
    View on GitHub↗4,069
  • juce-framework/jucejuce-framework avatar

    juce-framework/JUCE

    8,579View on GitHub↗

    JUCE is a comprehensive C++ audio framework and digital signal processing library used to build cross-platform audio applications, audio plug-ins, and high-performance user interfaces. It serves as a development kit for creating audio processors compatible with industry-standard plugin formats for digital audio workstations, as well as a tool for MIDI and Open Sound Control communication between musical hardware and software. The framework is distinguished by its ability to maintain a single codebase for native desktop and mobile applications across multiple operating systems. It provides a f

    C++aaxauaudio
    View on GitHub↗8,579
  • createjs/soundjsCreateJS avatar

    CreateJS/SoundJS

    4,569View on GitHub↗

    SoundJS is a JavaScript audio library and asset manager designed to load and play audio across different browsers using a consistent API. It serves as a wrapper that abstracts the Web Audio API and HTML5 Audio to provide a cross-platform playback system. The project ensures consistent sound across devices by supporting Web Audio, HTML5, and mobile plugins. It includes specific mechanisms for mobile environments, such as unlocking audio playback on iOS via user-initiated touch events and managing playback continuity during screen locks. The library covers asset management through the registra

    JavaScript
    View on GitHub↗4,569
  • See all 30 alternatives to Cpal→