Skip to content

Ron-Zilber/RemoteStudioLive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RemoteStudioLive

RemoteStudioLive is a real-time audio communication application built using Go. It enables two users to communicate live in a high-fidelity audio conversation with very low latency for musical jam sessions. The project leverages the Opus codec for audio encoding and decoding, and efficiently uses Go's features like channels and Goroutines.

This project is developed as my final project in the Electrical and Computer Engineering BSc program at Ben-Gurion University with the supervision of professor Chen Avin.

Features

  • High-Fidelity Audio: Utilizes the Opus codec to ensure high-quality audio communication.
  • Low Latency: Designed to minimize latency for real-time musical jam sessions.
  • Efficient Go Implementation: Makes use of Go's concurrency features like channels and Goroutines for efficient audio processing and streaming.

Installation

Prerequisites

  • Linux operating system for both server and client
  • Go 1.15 or higher
  • Opus library
  • ALSA (for Linux users)
  • PortAudio

Steps

  1. Clone the repository:

    git clone https://github.com/Ron-Zilber/RemoteStudioLive.git
    cd RemoteStudioLive
  2. Install dependencies:

    go get -u github.com/gordonklaus/portaudio
    go get -u github.com/hraban/opus
  3. Build the project:

    go build -o remotestudiolive main.go

Usage

To start the application, run the following commands:

  1. In /RemoteStudioLive/LocalServer, run the server with:
./run_server

The execution will return a string in the form of: Listening udp on: <server-ip>:<server-port>

  1. In /RemoteStudioLive/LocalServer/Client, run the client with:
./run_client <server-ip>

About

Collaborative Music Creation and Recording Platform

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published