Skip to content

FOSS Android application designed for music broadcasting and synchronized multi-device listening.

License

Notifications You must be signed in to change notification settings

capullo-tech/RadioCapullo

Repository files navigation

RadioCapullo

Build status Latest Release Platform Minimum Android Version Compiled Android SDK Version Kotlin

RadioCapullo is a free, open-source Android application designed for music broadcasting and listening in a synchronized multi-device environment. It leverages a star topology to create an immersive audio experience, allowing multiple Android devices to play music simultaneously, enhancing volume and depth of field.

Features

  • Dual Functionality: Acts as both a Snapserver and Snapclient for music broadcasting and listening.
  • Spotify Integration: Streams Spotify content seamlessly via librespot-java.
  • Multiroom Audio Sync: Ensures synchronized playback across devices for an immersive listening experience.

Architecture

RadioCapullo integrates librespot-java for Spotify content streaming and Snapcast for synchronized multiroom audio playback. This combination allows any Android device to become a Spotify speaker and part of a synchronized audio network.

                             +---------------+
                             |  Spotify App  |
                             +-------+-------+
                                     |
                                     | Initiates Playback 
                                     v
                          +---------------------+
                          | Android Device      |
                          | (Server & Client)   |
                          |---------------------|
                          | Server Control UI   |
                          | librespot-java      |
                          | FIFO Queue          |
                          | Snapserver &        |
                          | Snapclient          |
                          | Broadcasts & Plays  |
                          | Audio               |
                          +----------+----------+
                                     | LAN Broadcast
          +--------------------------+-----------------------------+
          |                          |                             |
+---------v---------+      +---------v---------+         +---------v---------+
|  Android Device   |      |  Android Device   |         |  Android Device   |
|    (Client 1)     |      |    (Client 2)     |         |    (Client N)     |
|-------------------|      |-------------------|         |-------------------|
| Client Control UI |      | Client Control UI |  . . .  | Client Control UI |
| Audio Output      |      | Audio Output      |         | Audio Output      |
| (Speakers, Sync   |      | (Speakers, Sync   |         | (Speakers, Sync   |
| via Snapclient)   |      | via Snapclient)   |         | via Snapclient)   |
+------------------ +      +-------------------+         +-------------------+

Server and Client Roles

  • Server: Broadcasts audio and plays it simultaneously.
  • Client: Connects to the server to play the broadcasted audio in sync.

Getting Started

Prerequisites

  • All devices must be connected to the same network (WLAN, Hotspot).

Running a Broadcaster

  1. Open RadioCapullo and press the Broadcast button.
  2. Use a Spotify app to select the device as a speaker and play music.
  3. RadioCapullo will start broadcasting and playing the music locally.

Running a Listener

  1. Open RadioCapullo on another device and enter the broadcaster's IP.
  2. Click Play to start listening to the synchronized broadcast.

Contributing

Contributions are welcome! Please fork the repository, make your changes, and submit a pull request.

Disclaimers

Fair use of Spotify

Important

RadioCapullo's Spotify integration via librespot-java is intended for personal use within the bounds of Spotify's terms of service. RadioCapullo does not endorse or encourage any form of illicit use or misuse of the application.

Acknowledgments

About

FOSS Android application designed for music broadcasting and synchronized multi-device listening.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages