{"id":36463804,"url":"https://github.com/dh1tw/remoteaudio","last_synced_at":"2026-01-12T00:00:02.268Z","repository":{"id":77272356,"uuid":"73324511","full_name":"dh1tw/remoteAudio","owner":"dh1tw","description":"Audio streaming application for Amateur Radio purposes","archived":false,"fork":false,"pushed_at":"2025-12-26T20:08:48.000Z","size":7331,"stargazers_count":179,"open_issues_count":6,"forks_count":25,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-12-28T10:15:16.910Z","etag":null,"topics":["amateur-radio","audio","audio-devices","golang","hamradio","nats","opus","protocol-buffers"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dh1tw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-11-09T21:57:04.000Z","updated_at":"2025-12-26T20:08:46.000Z","dependencies_parsed_at":"2024-06-20T05:41:49.744Z","dependency_job_id":"c8554fc7-20ab-455f-a3c1-a43a4ddfd04b","html_url":"https://github.com/dh1tw/remoteAudio","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/dh1tw/remoteAudio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dh1tw%2FremoteAudio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dh1tw%2FremoteAudio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dh1tw%2FremoteAudio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dh1tw%2FremoteAudio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dh1tw","download_url":"https://codeload.github.com/dh1tw/remoteAudio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dh1tw%2FremoteAudio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28328613,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T22:11:01.104Z","status":"ssl_error","status_checked_at":"2026-01-11T22:10:58.990Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amateur-radio","audio","audio-devices","golang","hamradio","nats","opus","protocol-buffers"],"created_at":"2026-01-12T00:00:00.599Z","updated_at":"2026-01-12T00:00:02.263Z","avatar_url":"https://github.com/dh1tw.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# remoteAudio\n![Build Status](https://github.com/dh1tw/remoteAudio/workflows/Cross%20Platform%20build/badge.svg?branch=master)\n[![Go Report Card](https://goreportcard.com/badge/github.com/dh1tw/remoteAudio)](https://goreportcard.com/report/github.com/dh1tw/remoteAudio)\n[![MIT license](http://img.shields.io/badge/license-MIT-brightgreen.svg)](http://opensource.org/licenses/MIT)\n[![GoDoc](https://godoc.org/github.com/dh1tw/remoteAudio?status.svg)](https://godoc.org/github.com/dh1tw/remoteAudio)\n\nremoteAudio is a cross plattform audio streaming application, built for Amateur\nRadio purposes. The most typical use case for this software is the remote\noperation of an amateur radio station. remoteAudio is written in [Go][1].\n\nremoteAudio supports multiple users and multiple audio sources (e.g. radios).\nThis means that with a single click a user can switch between audio sources.\nAt any time multiple clients can listen simultaneously on the same radio,\nalthough remoteAudio only allows one user to transmit.\n\n**ADVICE**: This project is **under development**. The parameters, ICD and the\nbehaviour is still **not stable** and subject to change.\n\n## Supported Codec\n\n- [OPUS][2]\n- extensible for other codecs (e.g. PCM)\n\n## Supported Transportation Protocols\n\n- [NATS][10] with [go-micro][11] on top\n- extensible for P2P protocol (UDP/TCP/ZEROMQ)\n\n## Supported Platforms\n\nRemoteAudio has been tested on the following CPU architectures:\n\n- AMD64\n- i386\n- ARMv7 (e.g. Raspberry Pi 2)\n- ARMv8 (e.g. Raspberry Pi 3)\n\nand the following operating Systems:\n\n- Linux (Ubuntu, Raspian, Armbian)\n- MacOS\n- Windows (7 and 10)\n\nUsers have reported performance issues with remoteAudio on\nsingle core ARMv6 SoCs, in particular the Raspberry Pi 1.\nUsage of the Raspberry Pi 1 is therefore not recommended.\n\n## Download\n\nYou can download a tarball / zip archive with the compiled binary for MacOS,\nLinux (ARM/AMD64) and Windows from the [releases][8] page. remoteAudio is\njust a single exectuable.\n\n## Installation / Dependencies\n\nremoteAudio depends on some 3rd party libraries which can be installed on\nLinux and MacOS with the respective packet managers. On Windows the 3rd party\nlibraries are included in the zip archive.\n\n### Linux (Ubuntu \u003e= 14.04)\n\n```bash\n$ sudo apt-get install -y pkg-config libsamplerate0 libopus0 libopusfile0 libportaudio2\n```\n\n### MacOS\n\n```bash\n$ brew update\n$ brew install pkg-config opus opusfile portaudio libsamplerate\n```\n\n## Requirements\n\nIn order to operate remoteAudio you need to either run your own NATS Broker\nwhich can be downloaded [here][3] for a lot of platforms \u0026 operating systems.\n\n## Getting started\n\n### List audio devices\n\nIf you are not sure about the name of your audio devices and their parameters,\nyou can easily list the available devices:\n\n```bash\n$ remoteAudio enumerate\n```\n\nBy default the standard input / output devices defined in your OS will be used.\n\nYou can find further tips about configuring your audio devices in the [Wiki][9].\n\n### Configuration\n\nBoth, the server and the client provide extensive configuration possibilities,\neither through a configuration file (TOML|YAML|JSON), typically located in\nyour home directory `/home/your_user/.remoteAudio.toml`. or through pflags.\n\nAn example configuration file named ```.remoteAudio.toml```is included in the\nrepository.\n\nAll parameters can be set through pflags. The following *example* shows the\noptions for\n\n```bash\n$ remoteAudio server nats --help\n```\n\n```\nNATS Server for bi-directional audio streaming\n\nUsage:\n  remoteAudio server nats [flags]\n\nFlags:\n  -p, --broker-port int     Broker Port (default 4222)\n  -u, --broker-url string   Broker URL (default \"localhost\")\n  -h, --help                help for nats\n  -P, --password string     NATS Password\n  -Y, --radio string        radio name to which this audio server belongs (e.g. 'ts480')\n  -U, --username string     NATS Username\n\nGlobal Flags:\n  -f, --audio-frame-length int           Amount of audio samples in one frame (default 480)\n      --config string                    config file (default is $HOME/.remoteAudio.yaml)\n      --input-device-channels int        Input Channels (default 1)\n      --input-device-latency duration    Input latency (default 5ms)\n  -i, --input-device-name string         Input device (default \"default\")\n      --input-device-samplerate float    Input device sampling rate (default 48000)\n      --opus-application string          profile for opus encoder (default \"restricted_lowdelay\")\n      --opus-bitrate int                 Bitrate (bits/sec) generated by the opus encoder (default 32000)\n      --opus-complexity int              Computational complexity of opus encoder (default 9)\n      --opus-max-bandwidth string        maximum bandwidth of opus encoder (default \"wideband\")\n      --output-device-channels int       Output Channels (default 2)\n      --output-device-latency duration   Output latency (default 5ms)\n  -o, --output-device-name string        Output device (default \"default\")\n      --output-device-samplerate float   Output device sampling rate (default 48000)\n  -R, --rx-buffer-length int             Buffer length (in frames) for incoming Audio packets (default 10)\n```\n\n## Execute Audio Server\n\n```bash\n$ remoteAudio server nats\n```\n\n## Execute Audio Client\n\n```bash\n$ remoteAudio client nats\n```\n\n## WebUI\n\nThe Client provides a minimal Web Interface for basic control of the\nclient and server side audio streams. Open a Webbrowser at:\n[http://localhost:9090](http://localhost:9090) to access the WebUI.\n\n![Alt text](ScreenshotWebUI.png?raw=true \"Screenshot remoteAudio WebUI\")\n\n## How build remoteAudio\n\nThe [Wiki][9] contains detailed instructions on how to build remoteAudio\nfrom source code on Linux, MacOS and Windows.\n\n## Integration with 3rd party software\n\nThe remoteAudio client can be fully controlled through a REST API.\nCheck the [Wiki][9] for more details.\n\n## Troubleshooting\n\nremoteAudio does it's best to check if your sound hardware is compatible with\nthe parameters you have set. However it's not entirely possible to check all\nthe Settings.\n\nInexpensive (USB) Soundcards usually operate at 48kHz. They play the audio in\nStereo and Record the Audio in MONO.\n\nThe [Wiki][9] contains a Troubleshooting section.\n\nFeel free to [open an issue][12] if you encounter problems.\n\n\n[1]:https://golang.org\n[2]:https://opus-codec.org\n[3]:https://nats.io/download/nats-io/nats-server\n[5]:https://golang.org/dl\n[6]:https://github.com/google/protobuf/releases\n[7]:https://github.com/GeertJohan/go.rice\n[8]:https://github.com/dh1tw/remoteAudio/releases\n[9]:https://github.com/dh1tw/remoteAudio/wiki\n[10]:https://nats.io\n[11]:https://github.com/asim/go-micro\n[12]:https://github.com/dh1tw/remoteAudio/issues\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdh1tw%2Fremoteaudio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdh1tw%2Fremoteaudio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdh1tw%2Fremoteaudio/lists"}