Jackcast is a device used to stream/cast line-in (auxiliary input) audio to a wireless device. Use this device to cast audio from a record player or other old sound systems.
This software is intended to run on a computer like a Raspberry Pi that can be permanently connected to the audio device. Jackcast includes a webapp to control the wireless device such as the volume and which device to stream too. Jackcast has no concept or control of where the line-in audio is coming from which is why there are no controls to play, pause and change the track.
Initial motivation video and demo.
This project is stable but a work in progress.
- Sonos
- Chromecast (future: PRs welcome)
- Bluetooth (future: PRs welcome)
The plan is to eventually host an image users can write to their SD card. In the meantime you can manually install it. Some of the tasks have been automated but a number are still manual. The following assume you don't have an extra keyboard/mouse/monitor. It may be easier to setup if you have these devices. Please report any issues with these instructions.
- Use the Raspberry Pi Imager to install Ubuntu Server 20.04
- Enable SSH on a headless Raspberry PI
by placing a file named
ssh
in the boot partition of the SD card. - Connect the Raspberry Pi to an ethernet port on your router.
- Log into using the default username
ubuntu
and passwordubuntu
. - Configure wifi following these https://raspberrypi.stackexchange.com/a/111787/120469.
- Install the dependencies,
wget https://raw.githubusercontent.com/wil3/jackcast/master/platforms/ubuntu/install.sh .
chmod +x install.sh
sudo install.sh
- Clone the repo and install Jackcast
sudo mkdir -p /srv/www
cd /srv/www
sudo git clone https://github.com/wil3/jackcast.git
sudo chown -R $USER:$USER jackcast
cd jackcast
sudo apt-get install python3-venv
python3 -m venv env
source env/bin/activate
pip3 install wheel # Is needed by gevent
pip3 install .
- Configure Nginx
sudo rm /etc/nginx/sites-enabled/default
cp /srv/www/jackcast/platforms/ubuntu/etc/nginx/sites-available/jackcast
/etc/nginx/sites-available/
sudo ln -s /etc/nginx/sites-available/jackcast /etc/nginx/sites-enabled
- Install the Jackcast service
sudo cp /srv/www/jackcast/platforms/ubuntu/etc/systemd/user/jackcast.service
/etc/systemd/user/
- Reboot
sudo reboot
- Jack cast should now be accessible by a browser at
jackcast.local
.
Note this has only been tested on Android 10 Firefox 68.8.1, and Ubuntu 18.04 Firefox 69.0.2. I have experienced issues not being able to resolve the local domain via mDNS on Android 6. In this case you need to access by IP address.
- Raspberry Pi 4
- Ubuntu Server 20.04
- Nginx
- Gunicorn
- Flask
- JQuery + Materialize CSS
Total Cost: $55.47