Skip to content

synchro-driver/synchro.rs-temp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

synchro.rs

This is a package that can be used to synchronize the audio across all the devices connected to a LAN.

A custom protocol will be used to swnd the data over to the client systems by the server. This protocol is under testing and developmen.

COMPLETED:

  • Hello world

  • Organized the codebase

TODO:

  • Implement a TUI in the tui lib to serve a graphical interface for the user (Use tui-rs already imported)

  • Add support for sources other than synthically generated sin waves

  • Setup sinks

  • Make do proper error handling

  • Set up std::net (TCP) for both server and client

  • Make a trait for the protocol so it can be easily implemented by other structs

  • Serialize and Deserialize the protocol struct using serde.rs (already imported)

  • Figure out a way to get data from a source and add that corresponding type into the protocol struct

  • Document the code base

Rules to follow

  • Fork the repo

  • Dont push src/main.rs without concent

  • If any crates need to be added into the project ask me directly or make sure noone is working on that purticular lib

Compile Instructions

  • Use cargo to compile and run the Rust executable
  • Change the absolute path in audio-input/CMakeLists.txt install field /home/{path}/synchro.rs/audio-input/bin
  • audio-input contains input methods for extracting audio. To compile it:
    • Identify the audio service running on your device
    • Check if the service is supported by the input methods
    • These are the suppoted methhods
          + alsa
          + pulseaudio
          + portaudio
          + sndio
          + winscpa
          + fifo
      
    • Find the CMakeLists.txt in audio-input/input
    • Add the corresponding .c file into add_library()
    • Go to ../bin
    • Run cmake .. for producing the make file
    • Follow it by make to compile the files and generate the static lib

About

A software to syncronisze audio streams in devices connected to a network (LAN). This projects aims on minimal latency and proper synchronisation between all the clients.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C 92.6%
  • Rust 6.4%
  • CMake 1.0%