Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. PortAudio

PortAudio

MITGo

Go bindings for the PortAudio audio I/O library, enabling audio input/output operations in Go applications.

GitHubGitHub
842 stars109 forks0 contributors

What is PortAudio?

gordonklaus/portaudio is a Go language binding for the PortAudio audio I/O library, enabling developers to handle audio streams in Go applications. It provides cross-platform audio input and output operations, making it suitable for building audio processing, recording, and playback tools.

Target Audience

Go developers working on audio-related applications such as audio processing software, recording tools, or playback systems that require real-time audio stream management.

Value Proposition

Developers choose this package for its clean, idiomatic Go bindings that make PortAudio's powerful audio capabilities accessible while maintaining compatibility with the underlying C library, offering a straightforward way to integrate cross-platform audio I/O in Go projects.

Overview

Go bindings for the PortAudio audio I/O library

Use Cases

Best For

  • Building cross-platform audio recording applications in Go
  • Developing real-time audio processing tools with Go
  • Creating audio playback systems that work on Linux, macOS, and Windows
  • Implementing device enumeration and selection for audio hardware in Go
  • Integrating PortAudio's audio I/O capabilities into Go-based projects
  • Developing Go applications that require low-level audio stream management

Not Ideal For

  • Projects needing pure Go solutions without C dependencies for easier deployment
  • Applications requiring high-level audio APIs with built-in effects or processing libraries
  • Real-time audio systems where Go's garbage collection could introduce unacceptable latency
  • Teams looking for out-of-the-box audio recording/playback with minimal setup

Pros & Cons

Pros

Cross-Platform Compatibility

Works on Linux, macOS, and Windows where PortAudio is available, enabling consistent audio I/O across operating systems as stated in the key features.

Idiomatic Go Interface

Provides clean, idiomatic Go bindings that make PortAudio's capabilities accessible without sacrificing Go's conventions, aligning with the project philosophy.

Device Enumeration Support

Supports discovering and selecting available audio devices and host APIs, facilitating flexible audio hardware management as highlighted in the key features.

Stream Management Capabilities

Enables creation and control of audio streams for real-time processing, essential for audio recording and playback tools as described.

Cons

C Dependency Overhead

Requires installation of PortAudio development headers and libraries, adding complexity to setup and deployment compared to pure Go packages, as noted in the README.

Limited High-Level Features

Focuses on low-level bindings, so developers must implement audio processing logic themselves, lacking built-in effects or advanced audio utilities beyond PortAudio's scope.

Sparse Documentation

The README is brief and primarily points to package documentation, which may require additional effort for newcomers to understand usage and troubleshooting.

Frequently Asked Questions

Quick Stats

Stars842
Forks109
Contributors0
Open Issues7
Last commit6 months ago
CreatedSince 2015

Tags

#audio-io#go-bindings#real-time-audio#golang-library#audio-processing#portaudio#cross-platform#audio

Built With

G
Go
P
PortAudio
C
C++

Included in

Go169.1k
Auto-fetched 1 day ago

Related Projects

OtoOto

♪ A low-level library to play sound on multiple platforms ♪

Stars1,948
Forks153
Last commit3 days ago
beepbeep

A little package that brings sound to any Go application. Suitable for playback and audio-processing.

Stars585
Forks27
Last commit1 year ago
music-theorymusic-theory

Go models of Note, Scale, Chord and Key

Stars462
Forks47
Last commit7 months ago
GoAudioGoAudio

Go tools for audio processing & creation 🎶

Stars428
Forks40
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub