A small-footprint radioCD player, for Bluetooth speakers, headphones, car-audio systems,...
This personal project is geared towards simple & essential use-cases for casual listeners using Bluetooth speakers, and missing their good-old Audio CDs playback...
-
Audio-CD & web radio player
-
Sound output to any Bluetooth audio equipment, and available default audio port (can be HiFi DAC)
-
Simple remote control via Bluetooth keys and/or network mpc client
-
Focus on ease of use & efficiency under low memory & hardware requirements (based on AlpineLinux)
-
Headless operation, one-touch update
tiny-radioCD just relies on MPD, ALSA and bluez-alsa: it does not need to provide a graphical remote UI.
Typically runs in 50MB of RAM on a low-cost PiZero device (135 MB rootf suitable for RAM-only operation).
Check-out our minimalistic USB-powered PiZeroWed-Mac mini!
Though mostly tested on Pi, it would run on any AlpineLinux supported platform (diskless/data/sys modes).
Some ready-to-use images are available (Raspberry Pi armhf ram-only SD archive for instance).
Customized installs can be included as simple addon-scripts (refer to available Pi example).
Player control (play/pause/etc...) is naturally operated with bluetooth speaker/headphone built-in keys. Volume adjustment is set by speaker amplification stage.
Multimedia bluetooth remotes are a perfect match too, allowing extended use-cases.
Typically, the low-cost first-generation FireTV remote (& clone) works great (more info in Wiki).
USB Keyboards with multimedia keys are supported too.
With network availability, any mpc client application can easily connect to tiny-radioCD player with Avahi discovery, and provide convenient user interface.
MaximumMPD on iOS is a good example of such clients, but there are many other available on any platforms.
Hardware buttons (power on/off, eject) availability depend on actual devices running tiny-radioCD, and can easily be customized: i.e. on Pi, simple on/off push-button can be enabled with dtoverlay=gpio-shutdown
in usercfg.txt
.
mpc commands also work under console or ssh, as last resort...
If you don't use ready-made images, just do the following on your AlpineLinux device with internet access:
cd /tmp
wget -O tiny-radioCD.zip https://github.com/macmpi/tiny-radioCD/archive/master.zip
unzip -oq tiny-radioCD.zip
cd tiny-radioCD
chmod +x setup-tiny-radioCD
sudo ./setup-tiny-radioCD
After install, bluetooth speaker pairing (and eventual remote command pairing) may be done under console or ssh (alternatively, check easy-setup section in Wiki):
sudo bluetoothctl
After a scan, make sure you pair, connect and trust your bluetooth devices.
Take note of your speaker MAC address XX:XX:XX:XX:XX:XX
in your home directory with:
printf "XX:XX:XX:XX:XX:XX" > myspeaker
Then finish speaker setup with the below command:
sudo set-speaker myspeaker
this command may greatly help switching between paired speakers later.
(if running in diskless mode, do not forget to commit changes after pairing: lbu commit -d
)
Reboot to take advantage of your new tiny-radioCD!
0.5: (May 17th 2020)
- initial release, Alpine 3.11
Contributions are welcome in dev
branch.
Side note: several very generic & complete packages exist, with extensive feature-set & remote Web UI service (special credits to Volumio2): great stuff too, different use-cases focus.