Skip to content

leodurandfr/Milo

Repository files navigation

Milō

⚠ Currently in work in progress — Available soon

Transform your Raspberry Pi into a multiroom audio system with Spotify Connect, Internet Radio, Bluetooth, AirPlay 2, Podcasts, CD playback, and Mac streaming.

Audio Sources

Spotify
Spotify Connect receiver — see what's playing with artwork, and control playback directly
Radio
Browse 50,000+ stations, save favorites, add custom stations, their image, and identify tracks with Shazam
Bluetooth
Pair any device and stream audio
AirPlay
Stream from any Apple device (iPhone, iPad, Mac)
Podcasts
Search, subscribe, and resume episodes with variable speed (0.5x–2x)
CD Player
Play audio CDs with automatic track listing and metadata lookup
Mac
Stream your Mac's system audio with low latency (requires Milō Mac)

Features

Multiroom Audio
Synchronized playback across speakers with zone management and per-speaker volume
Equalizer
10-band parametric EQ with presets, compressor, and loudness compensation (CamillaDSP)
Settings
Control how Milō reacts: now playing, volume management, and more
8 Languages
English, French, German, Spanish, Portuguese, Italian, Chinese, Hindi
OTA Updates
Check and install updates autonomously, including multi-room client speakers

Hardware

Board
Raspberry Pi 4 or 5 (64-bit)
Audio
HiFiBerry HAT — Amplifiers (Amp2, Amp4, Amp4 Pro, Amp100, Beocreate) or DACs (DAC2 HD, DAC+ Pro)
Display
Waveshare 7" USB or 8" DSI (optional)
Volume
Rotary encoder (optional)
CD Player
USB CD drive (optional)

Installation

Quick Start (Recommended)

  1. Download the latest .img.xz from Releases
  2. Flash it with Raspberry Pi Imager (select "Use custom" → choose the .img.xz file)
  3. Insert the SD card and power on your Raspberry Pi
  4. Connect to the Milō WiFi network that appears (open, no password)
  5. A setup page opens automatically — follow the wizard to configure language, WiFi, audio card, and screen
  6. Milō reboots and is ready to use

After setup:

  • Web interfacehttp://milo.local
  • Spotify → Select "Milō" in Spotify app
  • AirPlay → Select "Milō" in your iPhone/iPad/Mac AirPlay outputs
  • Bluetooth → Connect to "Milō · Bluetooth"
  • Mac → Install Milō Mac, then select "Milō" in audio outputs

Multiroom (Additional Speakers)

Flash the same image on additional Raspberry Pis. On first boot, the device detects your existing Milō server on the network and automatically configures itself as a client.

Manual Installation (Advanced)

Install from Raspberry Pi OS Lite instead of using the pre-built image

Flash Raspberry Pi OS (64-bit) Lite (Debian Trixie) with Raspberry Pi Imager. In "Edit Settings", set hostname and username to milo.

wget https://raw.githubusercontent.com/leodurandfr/Milo/main/install.sh
chmod +x install.sh
./install.sh

For multiroom clients, set hostname and username to milo-client:

wget https://raw.githubusercontent.com/leodurandfr/Milo/main/milo-client/install-client.sh
chmod +x install-client.sh
./install-client.sh

Uninstall:

./install.sh --uninstall         # Server
./install-client.sh --uninstall  # Client

Companion Apps

Control Milō from your other devices:

macOS Menu Bar app + audio output Milō Mac
iOS Fullscreen web interface Milō iOS
Android Fullscreen web interface Milō Android

Built With

Backend Python, FastAPI, asyncio
Frontend Vue 3, Pinia, Vite
Audio ALSA, CamillaDSP, Snapcast, mpv, go-librespot, shairport-sync, bluez-alsa, ROC
Platform Raspberry Pi OS (64-bit), systemd

Documentation

License

GPL-3.0

About

Milo is an audio application for Raspberry Pi that turns your device into a versatile audio platform.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors