• Stars
    star
    31
  • Rank 792,082 (Top 17 %)
  • Language
    Go
  • License
    BSD 2-Clause "Sim...
  • Created over 7 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Go Bindings for libsamplerate

libsamplerate binding for Golang

Go Report Card Cross Platform build codecov

This is a Golang binding for libsamplerate (written in C), probably the best audio Sample Rate Converter available to today.

A classical use case is converting audio from a CD sample rate of 44.1kHz to the 48kHz sample rate used by DAT players.

libsamplerate is capable of arbitrary and time varying conversions (max sampling / upsampling by factor 256) and comes with 5 converters, allowing quality to be traded off against computation cost.

API implementations

gosamplerate implements the following libsamplerate API calls:

not (yet) implemented is:

License

This library (gosamplerate) is published under the the permissive BSD license. You can find a good comparison of Open Source Software licenses, including the BSD license at choosealicense.com

libsamplerate has been republished in 2016 under the 2-clause BSD license.

How to install samplerate

Make sure that you have libsamplerate installed on your system.

On Mac or Linux it can be installed conveniently through your distro's packet manager.

Linux:

using apt (Ubuntu), yum (Centos)...etc.

    $ sudo apt install libsamplerate0

MacOS

using Homebrew:

    $ brew install libsamplerate

Install gosamplerate

    $ go get github.com/dh1tw/gosamplerate

Documentation

The API of gosamplerate can be found at godoc.org. The documentation of libsamplerate (necessary in order to fully understand the API) can be found here.

Tests & Examples

The test coverage is close to 100%. The tests contain various examples on how to use gosamplerate.

More Repositories

1

remoteAudio

Audio streaming application for Amateur Radio purposes
Go
151
star
2

pyhamtools

A Library with Amateur Radio specific Functions and Methods
Python
80
star
3

streamdeck

Golang API for the Corsair / Elgato StreamDeck
Go
68
star
4

remoteRotator

remoteRotator lets you expose a local antenna rotator (azimuth / elevation) to the network
Go
39
star
5

gorigctl

An opinionated drop-in replacement for Hamlib's rigctl(d)
Go
24
star
6

DX-Cluster-Parser

This python library is for Amateur Radio ("Ham Radio") purpose. The library parses the messages you receive from a DX-Cluster. It will return objects for Spots, Callsigns, WWV and Comments. It can also be used just for callsigns!
Python
22
star
7

goHamlib

Hamlib bindings for Golang
Go
20
star
8

remoteAudio-xcompile

Cross Compilation Containers for remoteAudio
Dockerfile
12
star
9

streamdeck-examples

A demo example application for the golang streamdeck driver
Go
11
star
10

remoteSwitch

remoteSwitch lets you expose and control switches (e.g. GPIO relay boards) over the network
Go
10
star
11

arsctl

Amateur Radio Rotator Control - WebInterface & Win-Test Gateway
CSS
5
star
12

sdrsharp-udp-signal-exporter

SDR# Plugin for exporting signal values via UDP
C#
2
star
13

repeaterControl

Control software for an automated VHF / UHF Repeater, running on Arduino UNO and Banana Pi
C++
2
star
14

remoteRadio

Protobuf / MQTT interface for Hamlib
Go
2
star
15

firmatator

Automatically exported from code.google.com/p/firmatator
C++
1
star
16

go-micro-error-broken

Go
1
star
17

remoteSwitch-playground

Dockerized playground for remoteSwitch
Dockerfile
1
star
18

acom2000

Golang library for controlling the Acom2000 HF amplifier
Go
1
star
19

hamlib-go

Package hamlib provides Go bindings for Hamlib (radio control toolkit).
Go
1
star
20

RTI-DDS-Chat-App

C++
1
star
21

vna-testboard

A handy PCB for experimenting and prototyping with Vector Network Analyzers
1
star
22

streamdeck-buttons

My custom library of buttons for the Elgato / Corsair Stream Deck using my golang driver
Go
1
star
23

natsProxy

Proxy UDP, TCP or sockets over NATS
Go
1
star