|
1 | | -# go-audio-resampler |
2 | | - |
3 | | -[](https://github.com/tphakala/go-audio-resampler/actions/workflows/ci.yml) |
4 | | -[](https://codecov.io/gh/tphakala/go-audio-resampler) |
5 | | -[](https://pkg.go.dev/github.com/tphakala/go-audio-resampler) |
6 | | -[](https://goreportcard.com/report/github.com/tphakala/go-audio-resampler) |
7 | | -[](https://scorecard.dev/viewer/?uri=github.com/tphakala/go-audio-resampler) |
8 | | - |
9 | | -The **only pure Go** high-quality audio resampling library (that I know of) - **no CGO dependencies** required. |
| 1 | +<h1 align="center">go-audio-resampler</h1> |
| 2 | + |
| 3 | +<p align="center"> |
| 4 | + <em>The only pure Go, high-quality audio resampler (that I know of). No CGO, no C toolchain, no build headaches.</em> |
| 5 | +</p> |
| 6 | + |
| 7 | +<p align="center"> |
| 8 | + <!-- Project status --> |
| 9 | + <img alt="Release" src="https://img.shields.io/github/v/release/tphakala/go-audio-resampler?sort=semver&label=release&color=blue"> |
| 10 | + <a href="LICENSE"><img alt="License: LGPL-2.1" src="https://img.shields.io/badge/license-LGPL--2.1-blue.svg"></a> |
| 11 | + <img alt="Go version" src="https://img.shields.io/github/go-mod/go-version/tphakala/go-audio-resampler?label=go&logo=go&logoColor=white"> |
| 12 | + <img alt="Pure Go, no CGO" src="https://img.shields.io/badge/pure%20Go-no%20CGO-00ADD8?logo=go&logoColor=white"> |
| 13 | + <img alt="Platforms" src="https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20Windows%20%7C%20WASM-lightgrey"> |
| 14 | +</p> |
| 15 | + |
| 16 | +<p align="center"> |
| 17 | + <!-- CI and code quality --> |
| 18 | + <a href="https://github.com/tphakala/go-audio-resampler/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/tphakala/go-audio-resampler/actions/workflows/ci.yml/badge.svg"></a> |
| 19 | + <a href="https://github.com/tphakala/go-audio-resampler/actions/workflows/govulncheck.yml"><img alt="govulncheck" src="https://github.com/tphakala/go-audio-resampler/actions/workflows/govulncheck.yml/badge.svg"></a> |
| 20 | + <a href="https://codecov.io/gh/tphakala/go-audio-resampler"><img alt="codecov" src="https://codecov.io/gh/tphakala/go-audio-resampler/branch/master/graph/badge.svg"></a> |
| 21 | + <a href="https://pkg.go.dev/github.com/tphakala/go-audio-resampler"><img alt="Go Reference" src="https://pkg.go.dev/badge/github.com/tphakala/go-audio-resampler.svg"></a> |
| 22 | + <a href="https://goreportcard.com/report/github.com/tphakala/go-audio-resampler"><img alt="Go Report Card" src="https://goreportcard.com/badge/github.com/tphakala/go-audio-resampler"></a> |
| 23 | + <a href="https://scorecard.dev/viewer/?uri=github.com/tphakala/go-audio-resampler"><img alt="OpenSSF Scorecard" src="https://api.scorecard.dev/projects/github.com/tphakala/go-audio-resampler/badge"></a> |
| 24 | +</p> |
| 25 | + |
| 26 | +<p align="center"> |
| 27 | + <!-- Community --> |
| 28 | + <a href="https://github.com/sponsors/tphakala"><img alt="Sponsor" src="https://img.shields.io/github/sponsors/tphakala?label=Sponsor&logo=github&color=ea4aaa"></a> |
| 29 | + <a href="CONTRIBUTING.md"><img alt="PRs welcome" src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg"></a> |
| 30 | +</p> |
10 | 31 |
|
11 | 32 | Based on [libsoxr](https://sourceforge.net/projects/soxr/) (the SoX Resampler library) by Rob Sykes, this is a complete Go reimplementation delivering professional-grade quality without any C code or external dependencies. |
12 | 33 |
|
13 | 34 | The library implements polyphase FIR filtering with Kaiser window design for professional-grade sample rate conversion, following the multi-stage architecture that makes libsoxr one of the highest-quality resamplers available. |
14 | 35 |
|
| 36 | +## Contents |
| 37 | + |
| 38 | +- [Features](#features) |
| 39 | +- [Installation](#installation) |
| 40 | +- [Quick Start](#quick-start) |
| 41 | +- [Quality Presets](#quality-presets) |
| 42 | +- [Precision Modes (float32 vs float64)](#precision-modes-float32-vs-float64) |
| 43 | +- [Architecture](#architecture) |
| 44 | +- [API Reference](#api-reference) |
| 45 | +- [Command-Line Tools](#command-line-tools) |
| 46 | +- [Performance](#performance) |
| 47 | +- [Dependencies](#dependencies) |
| 48 | +- [Contributing](#contributing) |
| 49 | +- [Sponsor](#sponsor) |
| 50 | +- [License](#license) |
| 51 | +- [Acknowledgments](#acknowledgments) |
| 52 | + |
15 | 53 | ## Features |
16 | 54 |
|
17 | 55 | - **100% Pure Go** - No CGO, no external C libraries, no build complexity. Just `go get` and build anywhere |
@@ -475,6 +513,14 @@ Contributions are welcome! Please: |
475 | 513 | 4. Ensure `go test ./...` passes |
476 | 514 | 5. Submit a pull request |
477 | 515 |
|
| 516 | +## Sponsor |
| 517 | + |
| 518 | +Pure Go audio DSP is a small niche, and keeping this library correct, fast, and matched to libsoxr quality takes ongoing work. If it saves you from wrestling with CGO and C toolchains, please consider sponsoring its development. |
| 519 | + |
| 520 | +[](https://github.com/sponsors/tphakala) |
| 521 | + |
| 522 | +Every sponsorship, large or small, is appreciated and helps me dedicate time to maintenance, new features, and support. |
| 523 | + |
478 | 524 | ## License |
479 | 525 |
|
480 | 526 | This library is licensed under the **GNU Lesser General Public License v2.1 (LGPL-2.1)**. |
|
0 commit comments