Beep
A little package that brings sound to any Go application. Suitable for playback and audio-processing.
Install / Use
/learn @faiface/BeepREADME
*****NOTICE*****
This repo is not under active development anymore and has been archived. Continued development has been migrated to gopxl/Beep. A big thank you to faiface for creating this awesome library and for all the hard work put into it. We encourage old and new users to check out the new repo and contribute to it.
Beep

A little package that brings sound to any Go application. Suitable for playback and audio-processing.
go get -u github.com/faiface/beep
Features
Beep is built on top of its Streamer interface, which is like io.Reader, but for audio. It was one of the best design decisions I've ever made and it enabled all the rest of the features to naturally come together with not much code.
- Decode and play WAV, MP3, OGG, and FLAC.
- Encode and save WAV.
- Very simple API. Limiting the support to stereo (two channel) audio made it possible to simplify the architecture and the API.
- Rich library of compositors and effects. Loop, pause/resume, change volume, mix, sequence, change playback speed, and more.
- Easily create new effects. With the
Streamerinterface, creating new effects is very easy. - Generate completely own artificial sounds. Again, the
Streamerinterface enables easy sound generation. - Very small codebase. The core is just ~1K LOC.
Tutorial
The Wiki contains a handful of tutorials for you to get started. They teach the fundamentals and advanced topics alike. Read them especially if you call speaker.Init every time you play something.
- Hello, Beep!
- Composing and controlling
- To buffer, or not to buffer, that is the question
- Making own streamers
Examples
| Speedy Player | Doppler Stereo Room |
| --- | --- |
|
|
|
Dependencies
For playback, Beep uses Oto under the hood. Check its requirements to see what you need to install for building your application.
Running an already built application should work with no extra dependencies.
Licence
Projects using beep
Related Skills
xurl
343.3kA CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.
qqbot-channel
343.3kQQ 频道管理技能。查询频道列表、子频道、成员、发帖、公告、日程等操作。使用 qqbot_channel_api 工具代理 QQ 开放平台 HTTP 接口,自动处理 Token 鉴权。当用户需要查看频道、管理子频道、查询成员、发布帖子/公告/日程时使用。
docs-writer
99.7k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
343.3kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
