Skip to content
master
Go to file
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
net
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Cornrow

Cornrow is an audio sink daemon designed for low-powered boards like the Raspberry Pi. It accepts bluetooth audio sources and transforms your computer into a bluetooth speaker.

It is made for Debian based environments and compatible with Ubuntu 18.04 Bionic and Debian Stretch (and later). This means that this service runs as a dedicated user and can be cleanly installed and removed using Debian package management.

I am willing to provide an easy out-of-the-box solution for anyone. So, your experience with this little daemon is very appreciated. Please leave your comments and issues using it. Thanks a lot.

The daemon has a built-in equalizer which can be remote controlled via this app: corocomo alt text

Installation (binary)

Compiled debian/ubuntu packages are available for armhf and amd64. Also a special version for Raspberry Pi exists rpi-armhf, which supports multichannel audio output via HDMI.

Get dependencies first

sudo apt update
sudo apt install ./cornrowd__<version>_<your_arch>.deb
sudo systemctl unmask cornrowd.service              # unmask service
sudo systemctl start cornrowd.service               # start-up service. You should now be able to connect any bluetooth audio device.
sudo systemctl enable cornrowd.service              # start-up service on each reboot.

Installation (from source)

Consider downloading the release tarballs. Master might be broken from time to time.

For Debian users

sudo apt install \
  debhelper libtool \
  cmake extra-cmake-modules \
  libasio-dev \
  libasound2-dev \
  libavahi-compat-libdnssd-dev \
  libavcodec-dev \
  libavutil-dev \
  libboost-system-dev \
  libsbc-dev \
  qtconnectivity5-dev \
  libqt5websockets5-dev # get dependecies
wget https://github.com/mincequi/cornrow/releases/download/v0.7.0/cornrowd_0.7.0.tar.gz
tar xf cornrowd_0.7.0.tar.gz
cd cornrowd
dpkg-buildpackage -us -uc -nc                       # build unsigned debian package
cd ..
sudo apt install ./cornrowd_0.7.0_<your_arch>.deb  # install package
sudo systemctl unmask cornrowd.service              # unmask service
sudo systemctl start cornrowd.service               # start-up service. You should now be able to connect any bluetooth audio device.
sudo systemctl enable cornrowd.service              # start-up service on each reboot.

Arbitrary distro

Get the dependencies. Basically, these are ffmpeg (libav*), qt5bluetooth, qt5websockets

git clone --recursive https://github.com/mincequi/cornrow
cd cornrow
mkdir build
cd build
cmake ..
make

Donations

Cornrow is free to use and developed during personal free time. If you like it and/or have a feature request, consider a donation. If you click on the button below, you will be taken to the secure PayPal Web site. You don't need to have a paypal account in order to make a donation.

paypal

Known issues

Raspberry Pi 3 Model B (BCM43143)

Firmware issues

Apparently, there are issues with on-board Bluetooth. Depending on the installed firmware i get stuttering Bluetooth audio playback. Additionally, there seem to be issues when operating in classic Bluetooth and Low Energy simultaneously. Here is an incomplete list of working/non-working firmware versions (https://github.com/Hexxeh/rpi-firmware/commits/master). Use the rpi-update to flash your Raspberry Pi to the according version:

sudo rpi-update <commit-id>
Commit Date Working
6aec73e 2019-01-09 OK
883750d 2019-02-05 OK
29952e8 2019-03-08 NOK

UART issues

A lot of Bluetooth packets seem to be dropped when CPU usage is low. As soon as the system is put under load, bluetooth packet reception is a lot better. This seems to be related to core frequency scaling (https://www.raspberrypi.org/documentation/configuration/uart.md).

GCC-9

Currently, this does not compile with GCC9 and higher.