2.19 KB
Newer Older
# Karapulse <a href=''><img width='100' alt='Download on Flathub' src=''/></a>
Guillaume Desmottes's avatar
Guillaume Desmottes committed
2 3 4 5 6 7 8 9 10

<div align="center">
  <img src="data/icons/karapulse.svg" width="20%" />

Karapulse is a Linux karaoke player supporting CDG/MP3 as well as video files. It provides a self-served web application that singers can use with their phone to search for and queue their favorite songs.

## Features

- Support CDG/MP3; automatically match `.mp3` and `.cdg` files if they have the same basename
Guillaume Desmottes's avatar
Guillaume Desmottes committed
12 13 14 15 16 17 18 19 20
- Support all video formats.
- Smart songs queueing algorithm ensuring a fair turn distribution among singers.
- Built-in web mobile friendly client usable on desktop as well.
- Full remote control, once setup no need for mouse or keyboard.
- Free Software ([GPLv3](
- Written in [Rust]( using [GStreamer](

## Setup

21 22
- The easiest way to install Karapulse is using [the official Flatpak package from Flathub](
- Alternatively see []( explaining how to build Karapulse from sources.
Guillaume Desmottes's avatar
Guillaume Desmottes committed
23 24
- First you need to index your songs collection. This can take a while if you have a lot of songs but needs to be done only once.
flatpak run --command=karapulse-manage-db org.karapulse.Karapulse add-dir $HOME/karaoke
Guillaume Desmottes's avatar
Guillaume Desmottes committed
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
- Then start the `karapulse` binary, you can use the 'f' key to toggle fullscreen mode.
- Connect to the displayed URL using any web browser and use the web interface to search and queue songs.
- Grab some drinks and start singing!

## Hardware

Karapulse currently doesn't have any support for microphone. I'm using [this kit]( to receive sound from the microphones, mix it with the sound from my laptop and output it to my sound system.

## Screenshots
### Player
![Video playback](data/screenshots/playback-video.png "Video playback")
![CDG playback](data/screenshots/playback-cdg.png "CDG playback")

### Client
![Mobile search](data/screenshots/mobile-search.png "Mobile search")