Musicbox
Start dit hoofdstuk met een nieuwe reservekopie van de Basisimage.
Natuurlijk kan je zelf voor muziek zorgen, maar wie wat testmateriaal nodig heeft, kan musicbox.zip downloaden.
Als je de gelukkige eigenaar van een Raspberry Pi bent, maak je toch gewoon je eigen streaming-audiosysteem? Je sluit je Pi eenvoudigweg op je luidsprekers en op het netwerk aan, waarna je het minicomputertje muziek van internet of van je lokale netwerk streamt. Je audiosysteem stuur je draadloos aan via je smartphone, tablet of browser.
Geluidsweergave testen en aanpassen
Na het aansluiten van de audio-uitgang op een versterker, hoofdtelefoon, monitor, enz., test je de geluidsweergave met de opdracht:
pi@raspberrypi:~ $ aplay /usr/share/sounds/alsa/Front_Center.wav
Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono
De geluidsweergave werkt als je een stem Front Center hoort zeggen.
Je kunt de geluidsweergave bij de System Options configureren met de opdracht:
pi@raspberrypi:~ $ sudo raspi-config
Of deze rechtstreeks aanpassen via het snelmenu van het luidsprekerknopje in het systeemvak.
Soms staat het analoge volume niet hoog genoeg, schakel om het analoge volume te verhogen, even naar HDMI en terug naar Analoog.
Je kunt het analoge volume (Headphone) ook aanpassen met de terminal opdracht alsamixer
.
Mopidy
Om een MusicBox te maken, gebruiken we Mopidy, een uitbreidbare muziek server geschreven in Python. Standaard speelt Modipy muziek vanaf een lokale schijf of radio streams, via uitbreidingen heeft Modify toegang tot Spotify, SoundCloud, Google Play Music, enz. Je kunt de afspeellijst aanpassen vanaf een smartphone, tablet of computer met behulp van MPD- en web clients.
Mopidy is een Python applicatie die in de opdrachtregel (terminal) of in de achtergrond werkt op Linux en MacOS die met een netwerk verbonden zijn en een audio-uitgang hebben. Strikt gezien is Mopidy een MPD en HTTP server. Extra bedieningsmogelijkheden kunnen via extensies toegevoegd worden.
Modipy's uitbreidingen ondersteunen Python, JSON-RPC en JavaScript-API's waardoor Mopidy geschikt is om eigen projecten mee te bouwen.
Mopidy installatie
Zoals altijd zorgen we dat het besturingssysteem up to date is.
pi@raspberrypi:~ $ sudo apt update && sudo apt upgrade -y
Geraakt:1 http://security.debian.org/debian-security bullseye-security InRelease
Geraakt:2 http://deb.debian.org/debian bullseye InRelease
Geraakt:3 http://deb.debian.org/debian bullseye-updates InRelease
Geraakt:4 http://archive.raspberrypi.org/debian bullseye InRelease
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar
Alle pakketten zijn up-to-date.
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar
Opwaardering wordt doorgerekend... Klaar
0 opgewaardeerd, 0 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
En installeren we Mopidy:
pi@raspberrypi:~ $ sudo apt install mopidy
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar
De volgende extra pakketten zullen geïnstalleerd worden:
fonts-font-awesome fonts-lato gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 gstreamer1.0-plugins-ugly gstreamer1.0-pulseaudio
gstreamer1.0-tools libopencore-amrnb0 libopencore-amrwb0 libsidplay1v5 python3-gst-1.0 python3-pykka python3-tornado
sphinx-rtd-theme-common
Voorgestelde pakketten:
sidplay-base mopidy-doc python3-pycurl python-tornado-doc python3-twisted
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
fonts-font-awesome fonts-lato gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 gstreamer1.0-plugins-ugly gstreamer1.0-pulseaudio
gstreamer1.0-tools libopencore-amrnb0 libopencore-amrwb0 libsidplay1v5 mopidy python3-gst-1.0 python3-pykka python3-tornado
sphinx-rtd-theme-common
0 opgewaardeerd, 15 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 10,6 MB aan archieven opgehaald worden.
Na deze bewerking zal er 25,4 MB extra schijfruimte gebruikt worden.
Wilt u doorgaan? [J/n]
Ophalen:1 http://security.debian.org/debian-security bullseye-security/main arm64 gir1.2-gst-plugins-base-1.0 arm64 1.18.4-2+deb11u1 [1.436 kB]
Ophalen:2 http://deb.debian.org/debian bullseye/main arm64 fonts-lato all 2.0-2.1 [2.696 kB]
Ophalen:3 http://archive.raspberrypi.org/debian bullseye/main arm64 gstreamer1.0-pulseaudio arm64 1.18.4-2+deb11u2+rpt1 [1.361 kB]
...
Ophalen:13 http://deb.debian.org/debian bullseye/main arm64 sphinx-rtd-theme-common all 0.5.1+dfsg-1 [995 kB]
Ophalen:14 http://deb.debian.org/debian bullseye/main arm64 python3-pykka all 2.0.3-1 [89,1 kB]
Ophalen:15 http://deb.debian.org/debian bullseye/main arm64 mopidy all 3.1.1-1 [104 kB]
10,6 MB opgehaald in 1s (7.683 kB/s)
Voorconfigureren van pakketten ...
Voorheen niet geselecteerd pakket fonts-lato wordt geselecteerd.
(Database wordt ingelezen ... 96925 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../00-fonts-lato_2.0-2.1_all.deb wordt voorbereid...
Bezig met uitpakken van fonts-lato (2.0-2.1) ...
...
Voorheen niet geselecteerd pakket mopidy wordt geselecteerd.
Uitpakken van .../14-mopidy_3.1.1-1_all.deb wordt voorbereid...
Bezig met uitpakken van mopidy (3.1.1-1) ...
Instellen van python3-tornado (6.1.0-1+b1) ...
Instellen van gir1.2-gstreamer-1.0:arm64 (1.18.4-2.1) ...
...
Instellen van python3-pykka (2.0.3-1) ...
Instellen van mopidy (3.1.1-1) ...
Bezig met afhandelen van triggers voor fontconfig (2.13.1-4.2) ...
Bezig met afhandelen van triggers voor desktop-file-utils (0.26-1) ...
Bezig met afhandelen van triggers voor gnome-menus (3.36.0-1) ...
Bezig met afhandelen van triggers voor libc-bin (2.31-13+rpt2+rpi1+deb11u5) ...
Bezig met afhandelen van triggers voor man-db (2.9.4-2) ...
Bezig met afhandelen van triggers voor mailcap (3.69) ...
Mopidy MusicBox Webclient
Aangezien Mopidy enkel een server is, hebben we nog een client nodig om de server te bedienen, m.a.w. muziek af te kunnen spelen. Uit de vele clients installeren we de populaire Mopidy-MusicBox-Webclient:
pi@raspberrypi:~ $ sudo pip3 install Mopidy-MusicBox-Webclient
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting Mopidy-MusicBox-Webclient
Downloading https://www.piwheels.org/simple/mopidy-musicbox-webclient/Mopidy_MusicBox_Webclient-3.1.0-py3-none-any.whl (1.4 MB)
|████████████████████████████████| 1.4 MB 1.2 MB/s
Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from Mopidy-MusicBox-Webclient) (52.0.0)
Requirement already satisfied: Pykka>=2.0.1 in /usr/lib/python3/dist-packages (from Mopidy-MusicBox-Webclient) (2.0.3)
Requirement already satisfied: Mopidy>=3.0.0 in /usr/lib/python3/dist-packages (from Mopidy-MusicBox-Webclient) (3.1.1)
Installing collected packages: Mopidy-MusicBox-Webclient
Successfully installed Mopidy-MusicBox-Webclient-3.1.0
Mopidy starten en stoppen
Start Mopidy:
pi@raspberrypi:~ $python3 /usr/bin/mopidy &
[1] 2641 pi@raspberrypi:~ $ INFO 2023-08-30 16:27:33,089 [2641:MainThread] mopidy.__main__ Starting Mopidy 3.1.1 INFO 2023-08-30 16:27:33,173 [2641:MainThread] mopidy.config Loading config from builtin defaults INFO 2023-08-30 16:27:33,176 [2641:MainThread] mopidy.config Loading config from command line options INFO 2023-08-30 16:27:33,186 [2641:MainThread] mopidy.internal.path Creating dir file:///home/pi/.cache/mopidy INFO 2023-08-30 16:27:33,187 [2641:MainThread] mopidy.internal.path Creating dir file:///home/pi/.config/mopidy INFO 2023-08-30 16:27:33,188 [2641:MainThread] mopidy.internal.path Creating dir file:///home/pi/.local/share/mopidy INFO 2023-08-30 16:27:33,190 [2641:MainThread] mopidy.config Loading config from builtin defaults INFO 2023-08-30 16:27:33,192 [2641:MainThread] mopidy.config Loading config from command line options INFO 2023-08-30 16:27:33,212 [2641:MainThread] mopidy.internal.path Creating file file:///home/pi/.config/mopidy/mopidy.conf INFO 2023-08-30 16:27:33,213 [2641:MainThread] mopidy.__main__ Initialized file:///home/pi/.config/mopidy/mopidy.conf with default config INFO 2023-08-30 16:27:33,596 [2641:MainThread] mopidy.__main__ Enabled extensions: musicbox_webclient, m3u, http, softwaremixer, file, stream INFO 2023-08-30 16:27:33,596 [2641:MainThread] mopidy.__main__ Disabled extensions: none INFO 2023-08-30 16:27:33,821 [2641:MainThread] mopidy.commands Starting Mopidy mixer: SoftwareMixer INFO 2023-08-30 16:27:33,825 [2641:MainThread] mopidy.commands Starting Mopidy audio INFO 2023-08-30 16:27:33,829 [2641:MainThread] mopidy.commands Starting Mopidy backends: FileBackend, M3UBackend, StreamBackend INFO 2023-08-30 16:27:33,841 [2641:MainThread] mopidy.internal.path Creating dir file:///home/pi/.local/share/mopidy/m3u INFO 2023-08-30 16:27:33,853 [2641:Audio-2] mopidy.audio.actor Audio output set to "autoaudiosink" INFO 2023-08-30 16:27:33,871 [2641:MainThread] mopidy.commands Starting Mopidy core INFO 2023-08-30 16:27:33,884 [2641:MainThread] mopidy.commands Starting Mopidy frontends: HttpFrontend INFO 2023-08-30 16:27:33,886 [2641:HttpFrontend-8] mopidy.http.actor HTTP server running at [::ffff:127.0.0.1]:6680 INFO 2023-08-30 16:27:33,886 [2641:MainThread] mopidy.commands Starting GLib mainloop INFO 2023-08-30 16:27:33,894 [2641:HttpServer] mopidy.internal.path Creating dir file:///home/pi/.local/share/mopidy/http^C
Het &-teken na de mopidy opdracht zorgt ervoor dat mopidy op de achtergrond als server start, waardoor we verder opdrachten kunnen intypen en uitvoeren.
Merk op dat de prompt verschijnt voor mopidy klaar is met het op het scherm plaatsen van informatie.
Als je daar niet op let, kan je denken dat de terminal nog niet klaar is om een volgende opdracht te ontvangen.
Druk Ctrl+c (^C
in de voorbeeld hierboven) om de prompt terug weer te geven.
Mopidy stop je met de volgende opdracht:
pi@raspberrypi:~ $pkill -f mopidy
INFO 2023-08-30 16:32:02,032 [2641:MainThread] mopidy.commands GLib mainloop got SIGTERM. Exiting... pi@raspberrypi:~ $ INFO 2023-08-30 16:32:02,034 [2641:MainThread] mopidy.commands Stopping Mopidy frontends INFO 2023-08-30 16:32:02,041 [2641:MainThread] mopidy.commands Stopping Mopidy core INFO 2023-08-30 16:32:02,043 [2641:MainThread] mopidy.commands Stopping Mopidy backends INFO 2023-08-30 16:32:02,045 [2641:MainThread] mopidy.commands Stopping Mopidy audio INFO 2023-08-30 16:32:02,047 [2641:MainThread] mopidy.commands Stopping Mopidy mixer^C
[1]+ Klaar python3 /usr/bin/mopidy
Lokale muziek afspelen
Zorg op de Raspberry Pi voor muziek in de Music map. Bijvoorbeeld door musicbox.zip te downloaden en uit te pakken. Verplaats de vier mappen met muziek na het uitpakken naar de Music map. Telkens je nieuwe muziek aan jouw muziekmap hebt toegevoegd, moet je Mopidy daarvan op de hoogte brengen.
Opnieuw installeren we daarvoor een Mopidy uitbreiding:
pi@raspberrypi:~ $ sudo pip3 install Mopidy-Local
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting Mopidy-Local
Downloading https://www.piwheels.org/simple/mopidy-local/Mopidy_Local-3.2.1-py3-none-any.whl (30 kB)
Collecting uritools>=1.0
Downloading https://www.piwheels.org/simple/uritools/uritools-4.0.1-py3-none-any.whl (10 kB)
Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from Mopidy-Local) (52.0.0)
Requirement already satisfied: Pykka>=2.0.1 in /usr/lib/python3/dist-packages (from Mopidy-Local) (2.0.3)
Requirement already satisfied: Mopidy>=3.0.0 in /usr/lib/python3/dist-packages (from Mopidy-Local) (3.1.1)
Installing collected packages: uritools, Mopidy-Local
Successfully installed Mopidy-Local-3.2.1 uritools-4.0.1
Eerst kijken we welke muziek er bij kwam:
pi@raspberrypi:~ $ python3 /usr/bin/mopidy local scan
INFO 2023-08-30 16:46:10,585 [3329:MainThread] mopidy.__main__
Starting Mopidy 3.1.1
INFO 2023-08-30 16:46:10,685 [3329:MainThread] mopidy.config
Loading config from builtin defaults
INFO 2023-08-30 16:46:10,689 [3329:MainThread] mopidy.config
Loading config from file:///home/pi/.config/mopidy/mopidy.conf
INFO 2023-08-30 16:46:10,690 [3329:MainThread] mopidy.config
Loading config from command line options
INFO 2023-08-30 16:46:10,989 [3329:MainThread] mopidy.__main__
Enabled extensions: http, local, file, softwaremixer, stream, m3u, musicbox_webclient
INFO 2023-08-30 16:46:10,989 [3329:MainThread] mopidy.__main__
Disabled extensions: none
INFO 2023-08-30 16:46:11,204 [3329:MainThread] mopidy.internal.path
Creating dir file:///home/pi/.local/share/mopidy/local
INFO 2023-08-30 16:46:11,205 [3329:MainThread] mopidy_local.commands
Finding files in file:///home/pi/Music ...
INFO 2023-08-30 16:46:11,238 [3329:MainThread] mopidy_local.commands
Found 42 files in file:///home/pi/Music
INFO 2023-08-30 16:46:11,239 [3329:MainThread] mopidy_local.schema
Creating SQLite database schema v7
INFO 2023-08-30 16:46:11,341 [3329:MainThread] mopidy_local.commands
Checking 0 tracks from library
INFO 2023-08-30 16:46:11,342 [3329:MainThread] mopidy_local.commands
Removing 0 missing tracks
INFO 2023-08-30 16:46:11,349 [3329:MainThread] mopidy_local.commands
Found 34 tracks which need to be updated
INFO 2023-08-30 16:46:11,349 [3329:MainThread] mopidy_local.commands
Scanning...
INFO 2023-08-30 16:46:11,415 [3329:MainThread] mopidy_local.storage
Creating file file:///home/pi/.local/share/mopidy/local/images/137aabfbce939e8a2e5923a5ccd3af05-400x400.jpeg
INFO 2023-08-30 16:46:11,419 [3329:MainThread] mopidy_local.storage
Creating file file:///home/pi/.local/share/mopidy/local/images/1d53721aa6f2bf45dc8002409e75ea3b-460x460.jpeg
WARNING 2023-08-30 16:46:12,013 [3329:MainThread] mopidy_local.commands
Failed scanning file:///home/pi/Music/Danielle%20Helena%20-%20Like%20Sunrise%20-%20158365%20---%20Jamendo%20-%20MP3/playlist.m3u: gst-stream-error-quark: This appears to be a text file (5)
INFO 2023-08-30 16:46:12,052 [3329:MainThread] mopidy_local.storage
Creating file file:///home/pi/.local/share/mopidy/local/images/94f2c130d9353ad4d93dc6119b1722de-400x400.jpeg
INFO 2023-08-30 16:46:12,054 [3329:MainThread] mopidy_local.storage
Creating file file:///home/pi/.local/share/mopidy/local/images/8e74551994342dde3778e72263b6989b-600x600.jpeg
WARNING 2023-08-30 16:46:12,311 [3329:MainThread] mopidy_local.commands
Failed scanning file:///home/pi/Music/Oleg%20Fokin%20-%20JAZZZ%20-%20159770%20---%20Jamendo%20-%20MP3/playlist.m3u: gst-stream-error-quark: This appears to be a text file (5)
INFO 2023-08-30 16:46:12,340 [3329:MainThread] mopidy_local.storage
Creating file file:///home/pi/.local/share/mopidy/local/images/0197d2906af9de072acf865a87596030-400x400.jpeg
INFO 2023-08-30 16:46:12,342 [3329:MainThread] mopidy_local.storage
Creating file file:///home/pi/.local/share/mopidy/local/images/9d1a645427c5070bbc715ad080446142-1200x1078.jpeg
WARNING 2023-08-30 16:46:12,610 [3329:MainThread] mopidy_local.commands
Failed scanning file:///home/pi/Music/Pascalb%20_%20Pascal%20Boiseau%20-%20Dans%20le%20vent%20-%20160174%20---%20Jamendo%20-%20MP3/playlist.m3u: gst-stream-error-quark: This appears to be a text file (5)
INFO 2023-08-30 16:46:12,641 [3329:MainThread] mopidy_local.storage
Creating file file:///home/pi/.local/share/mopidy/local/images/a35baf389a50d2f1bc86372f8d16ffb1-400x400.jpeg
INFO 2023-08-30 16:46:12,643 [3329:MainThread] mopidy_local.storage
Creating file file:///home/pi/.local/share/mopidy/local/images/3139df363b2d77b5cf3f24600857af20-600x600.jpeg
WARNING 2023-08-30 16:46:12,755 [3329:MainThread] mopidy_local.commands
Failed scanning file:///home/pi/Music/Re-Lab%20-%20J.S.Bach_%20BWV584%20-%20159624%20---%20Jamendo%20-%20MP3/playlist.m3u: gst-stream-error-quark: This appears to be a text file (5)
INFO 2023-08-30 16:46:12,755 [3329:MainThread] mopidy_local.commands
Scanned 34 of 34 files in 1.406s.
INFO 2023-08-30 16:46:12,755 [3329:MainThread] mopidy_local.commands
Done scanning
INFO 2023-08-30 16:46:12,819 [3329:MainThread] mopidy_local.storage
Cleaning up image directory
Tijdens het scannen werden enkele tekstbestanden gevonden, dit zijn uiteraard geen muziekbestanden, waardoor de modipy scanner deze niet kan verwerken en je daarvan op hoogte brengt. Om de scanresultaten of andere veranderingen aan Mopidy door te geven, herstart je Mopidy. Daar Mopidy reeds gestopt was, start je Mopidy terug op.
Mopidy bedienen
- http://icecast.vrtcdn.be/radio1-high.mp3
- http://icecast.vrtcdn.be/ra2ant-high.mp3
- http://icecast.vrtcdn.be/ra2lim-high.mp3
- http://icecast.vrtcdn.be/ra2ovl-high.mp3
- http://icecast.vrtcdn.be/ra2vlb-high.mp3
- http://icecast.vrtcdn.be/ra2wvl-high.mp3
- http://icecast.vrtcdn.be/klara-high.mp3
- http://icecast.vrtcdn.be/klaracontinuo-high.mp3
- http://icecast.vrtcdn.be/stubru-high.mp3
- http://icecast.vrtcdn.be/mnm-high.mp3
- http://icecast.vrtcdn.be/mnm_hits-high.mp3
- http://icecast.vrtcdn.be/ketnetradio-high.mp3
- http://progressive-audio.lwc.vrtcdn.be/content/fixed/11_11niws-snip_hi.mp3
Zorg voor grafische toegang tot uw Raspberry Pi (RDP, VNC of scherm, toetsenbord en muis). Start de browser en surf naar http://localhost:6680. Klik op de koppeling naar de musicbox_webclient.
Lokale muziek speel je af door ernaar te bladeren (Browse > Local media). Open een muziekmap en klik op een song om deze af te spelen. Na het beëindigen van de song wordt de volgende song afgespeeld.
Internetradio en andere streams beluister je via de knop Streams. In het tekstvak URI typ je het URI-adres van het te beluisteren station, voor CROOZE.fm: http://streams.crooze.fm:8000. In het tekstvak Name typ je de naam van het station. Klik op Play om het station te beluisteren. Informatie over de muziek verschijnt in de balk onderaan het scherm. Sla het station met bijhorende URI op in Mopidy met de knop Save.
Met de Fullscreen maak je van je Raspberry Pi een echte MusicBox. Waarop een volumeregelaar niet ontbreekt.

Mopidy configureren
Je kunt de huidige configuratie opvragen met:
pi@raspberrypi:~ $ python3 /usr/bin/mopidy config
[core]
cache_dir = $XDG_CACHE_DIR/mopidy
config_dir = $XDG_CONFIG_DIR/mopidy
data_dir = $XDG_DATA_DIR/mopidy
max_tracklist_length = 10000
restore_state = false
[logging]
verbosity = 0
format = %(levelname)-8s %(asctime)s [%(process)d:%(threadName)s] %(name)s\n %(message)s
color = true
config_file =
[audio]
mixer = software
mixer_volume =
output = autoaudiosink
buffer_time =
[proxy]
scheme =
hostname =
port =
username =
password =
[musicbox_webclient]
enabled = true
musicbox = false
websocket_host =
websocket_port =
on_track_click = PLAY_ALL
[local]
enabled = true
max_search_results = 100
media_dir = $XDG_MUSIC_DIR
scan_timeout = 1000
scan_flush_threshold = 100
scan_follow_symlinks = false
included_file_extensions =
excluded_file_extensions =
.cue
.directory
.html
.jpeg
.jpg
.log
.nfo
.pdf
.png
.txt
.zip
directories =
Albums local:directory?type=album
Artists local:directory?type=artist
Composers local:directory?type=artist&role=composer
Genres local:directory?type=genre
Performers local:directory?type=artist&role=performer
Release Years local:directory?type=date&format=%25Y
Tracks local:directory?type=track
Last Week's Updates local:directory?max-age=604800
Last Month's Updates local:directory?max-age=2592000
timeout = 10
use_artist_sortname = false
album_art_files =
*.jpg
*.jpeg
*.png
[file]
enabled = true
media_dirs =
$XDG_MUSIC_DIR|Music
~/|Home
excluded_file_extensions =
.directory
.html
.jpeg
.jpg
.log
.nfo
.pdf
.png
.txt
.zip
show_dotfiles = false
follow_symlinks = false
metadata_timeout = 1000
[http]
enabled = true
hostname = 127.0.0.1
port = 6680
zeroconf = Mopidy HTTP server on $hostname
allowed_origins =
csrf_protection = true
default_app = mopidy
[m3u]
enabled = true
base_dir = $XDG_MUSIC_DIR
default_encoding = latin-1
default_extension = .m3u8
playlists_dir =
[softwaremixer]
enabled = true
[stream]
enabled = true
protocols =
http
https
mms
rtmp
rtmps
rtsp
metadata_blacklist =
timeout = 5000
Eigenlijk zou het wel handig zijn om Mopidy vanaf elke computer, laptop, tablet of smartphone te bedienen. Standaard kan je Mopidy enkel vanaf de Raspberry Pi bedienen, dit is veiliger, maar niet zo gebruiksvriendelijk. Daarvoor moeten we zelf een configuratiebestand aanmaken met eigen voorkeuren. Dit configuratiebestand moet in de map ~/.config/mopidy staan. Het ~ teken staat voor de gebruikersmap (verkorte notatie). De Mopidy configuratiemap maak je met:
pi@raspberrypi:~ $ mkdir ~/.config/mopidy
mkdir: kan map ‘/home/pi/.config/mopidy’ niet aanmaken: Bestand bestaat al
De opdracht meldt dat de map reeds bestaat. Lees steeds de uitvoer van opdrachten, meestal wordt enkel getoond wat uw aandacht verdiend. Nu we weten dat configuratiemap reeds bestaat kunnen we het configuratiebestand aanmaken of aanpassen met:
pi@raspberrypi:~ $ nano -B ~/.config/mopidy/mopidy.conf
Als je Raspberry Pi is aangesloten aan een HDMI-scherm wordt het geluid automatisch via HDMI digitaal naar het beeldscherm gestuurd.
Heeft uw scherm echter geen luidsprekers, dan moet je het geluid omleiden naar de audio jack aansluiting.
Daarvoor pas je in de sectie [audio]
de optie output
aan van autoaudiosink naar alsasink
.
Zolang er een # voor deze optie staat is deze inactief, m.a.w. verwijder het # voor de output optie.
In de sectie [http]
staat de optie hostname
.
Schakel deze optie in door het # voor de regel te verwijderen.
De optie hostname kan de volgende waarden hebben:

- 127.0.0.1
- Ook wel localhost of loopback genoemd. Je hebt enkel toegang vanaf de Raspberry Pi zelf. De veiligste instelling en dus standaard.
- ::1
- Localhost voor IPv6. Dus terug enkel toegang vanaf de Raspberry Pi zelf.
- 0.0.0.0
- Toegang vanaf alle IPv4 adressen.
- ::
- Toegang vanaf alle IPv4 en IPv6 adressen.
Na het herstarten van Mopidy kan je vanaf elke computer naar Mopidy op de Raspberry Pi surfen.
Praktijk opdracht
- Daar de bediening van Mopidy via een webspeler uitbreiding loopt, kan je deze eenvoudig aanpassen door een andere webspeler te installeren.
- Installeer op dezelfde manier als de Mopidy-MusicBox-Webclient de Mopidy-Iris uitbreiding.
pi@raspberrypi:~ $
sudo pip3 install Mopidy-Iris
- Test na het herstarten van Mopidy de nieuwe webspeler.
- Maak het browservenster smaller om te testen of deze webspeler ook goed op een smartphone kan gebruikt worden.
- Installeer op dezelfde manier als de Mopidy-MusicBox-Webclient de Mopidy-Iris uitbreiding.
Radio luisteren met TuneIn:
- Installeer de Mopidy-TuneIn uitbreiding.
- Zorg dat Mopidy de Mopidy-TuneIn uitbreiding gebruikt.
- Als je TuneIn test, wees dan geduldig, sommige zenders zijn soms overbelast en reageren dan zeer traag. Luister voor de test naar een Lokale zender (Browse > TuneIn > By Location > Europe > Belgium > Bruges) zoals JoeFM, deze reageren namelijk een stuk sneller.
- Voor een overzicht van alle Mopidy uitbreidingen kan je terecht op M Extensions.
- Streaming naar Bluetooth luidsprekers, hoofdtelefoon of oortjes.
- Zorg dat je Bluetooth apparaat niet gekoppeld is, aan een ander apparaat (smartphone, enz.).
- Activeer het Bluetooth menu en start de opdracht Add Device....
- Zorg dat je Bluetooth apparaat zichtbaar is voor de Raspberry Pi.
- Selecteer uw Bluetooth apparaat en klik op de knop Pair.
- Bevestig het succcesvol koppelen van de Raspberry Pi met jouw Bluetooth apparaat.
- Klik met de rechter muisknop op het Luidspreker knopje in de taakbalk en selecteer jouw Bluetooth apparaat.
- Herstart voor de zekerheid Mopidy en test het geluid via het Bluetooth apparaat.
- Nu Mopidy goed werkt, kunnen we dit bij het starten van de Raspberry Pi automatisch laten uitvoeren.
- Dit doen we door in de verborgen configuratiemap een autostart map aan te maken:
pi@raspberrypi:~ $
mkdir .config/autostart
- Alle in deze map geplaatste startbestanden (.desktop bestanden) worden automatisch bij het opstarten van de Raspberry Pi uitgevoerd.
Het autostart mopidy.desktop bestand maken we aan met nano:
pi@raspberrypi:~ $
nano -B .config/autostart/mopidy.desktop
- Met de volgende inhoud:
[Desktop Entry] Type=Application Exec=python3 /usr/bin/mopidy
- Herstart de Raspberry Pi en controleer of Mopidy nu automatisch opstart.
- Dit doen we door in de verborgen configuratiemap een autostart map aan te maken:
- Android gebruikers hebben de app Mopidy Mobile.
Dit is eigenlijk een webpagina in een app.
iOS gebruikers kunnen dezelfde interface krijgen door de Mopidy-Mobile uitbreiding in Mopidy te installeren.
Met deze uitbreiding surf je dan naar de Raspberry Pi met Mopidy en maak je er een websitesymbool op het beginscherm plaatsen om er ook een schermvullende app van te maken.
Deze methode werkt ook op Android apparaten.
- Wie nog verder wil gaan, kan meer informatie en handleidingen vinden op de website van Mopidy. Mopidy kan je verder nog combineren met andere software om bijvoorbeeld een Multi-room (Snapcast, Shoutcast) systeem te bouwen.
- Een andere aanpak zien we bij Volumio Audiophile Music Player.
Deze Audio speler bestaat uit een volledig besturingssysteem met de nodige software.
Het voordeel is duidelijk, sneller van start gaan.
Maar heeft ook nadelen, namelijk afhankelijkheid van de producent en minder vrijheid om deze speler te combineren met andere projecten.
- Om het meest recente Volumio besturingssysteem op de SD kaart te schrijven, gebruik je Raspberry Pi Imager:
- Klik op de knop .
- Klik op de categorie Media player OS.
- Scroll naar de subcategorie Volumio en klik erop.
- Klik op het item Volumio (The Audiophile Music Player and Streamer).
- Klik op de knop en klik op het item met jouw SD kaart.
- Klik op de knop .
- Lees de waarschuwing en klik op de knop om het Volumio OS besturingssysteem op de SD kaart te schrijven.
- Verwijder de SD-kaart veilig uit de computer.
- Start de Raspberry Pi met de Volumio SD-kaart.
- De eenvoudigste manier om Volumio in het netwerk op te nemen, is een netwerkkabel aansluiten.
Indien Volumio opstart zonder netwerkkabel, maakt Volumio een Wireless Acces Point aan.
Om Volumio te configureren, moet je dus eerst jouw computer koppelen aan het Volumio WiFi Station.
Het Volumio WiFi Station gebruikt geen wachtwoord.
- Volumio configureer en bedien je via een webpagina. We kunnen die bereiken via de standaard hostname volumio.local (of kortweg volumio) of het IP adres van de Raspberry Pi.
- Surf naar jouw Volumio Player.
- Selecteer en bevestig jouw taalkeuze.
- Inloggen met een account is enkel nodig voor extra diensten, voor de oefening mag je klikken.
- Kies een unieke netwerknaam voor de Volumio speler.
- Controleer en pas indien nodig de Audio Uitvoer aan.
- Koppel indien je geen netwerkkabel gebruikt de Volumio speler aan jouw eigen WiFi Netwerk.
- De muziek gaan we straks via een USB Stick aanbieden. Het scheiden van het systeem met de software (Volumio) en de gebruikersgegevens (de muziek) is een gekende methode om het onderhoud van zowel het systeem en de muziekbibliotheek te vereenvoudigen. Daarenboven kunnen zo verschillende gezinsleden elk hun eigen muziekverzameling eenvoudig aanbieden.
- Schakel de automatische updates in en klik .
- Accepteer na het lezen en akkoord gaan de algemene voorwaarden.
- Plaats op een USB Stick muziek (bijvoorbeeld de 4 mappen uit musicbox.zip).
- Verwijder de USB Stick veilig en sluit deze aan op de Volumio Player.
- Speel via de knop Bladeren > Muziekbibliotheek een lied van de USB Stick af.
- Verken de Volumio Speler en bepaal hoe je het volume (knop Zones en uitgangen) kunt regelen en een lied aan een afspeellijst kunt toevoegen.
Om alle mogelijkheden van Volumio te ontdekken, raadpleeg je best de handleiding.
- Luister naar jouw favoriete VRT radiozender.
- Laat Volumio naar Media Servers in het netwerk scannen. Luister indien aanwezig naar de muziek die door gevonden Media Servers wordt aangeboden.
- De Volumio Speler kan ook bediend worden via een Android of iOS app.
- Sluit de Volumio Player en de Raspberry Pi af via de webpagina. De handleiding van Volumio vermeld nergens hoe je het standaard wachtwoord kunt aanpassen. Dit is op zich een veiligheidsprobleem, hoewel dit in een veilig thuisnetwerk wel beperkt is.
- Om het meest recente Volumio besturingssysteem op de SD kaart te schrijven, gebruik je Raspberry Pi Imager:
- De moOde audio player gebruikt standaard Raspberry Pi OS, maar biedt de software aan in een kant en klaar image bestand.
Ook deze keer kunnen we snel van start gaan.
En kunnen we daarenboven de moOde speler combineren met andere projecten, want de basis is Raspberry Pi OS.
- Om het meest recente moOde besturingssysteem op de SD kaart te schrijven, gebruik je Raspberry Pi Imager:
- Klik op de knop .
- Klik op de categorie Media player OS.
- Scroll naar de subcategorie moOde audio player en klik erop.
- Klik op het item moOde audio player 8.3.5 (64-bit).
- Klik op de knop en klik op het item met jouw SD kaart.
- Aangezien moOdle gebaseerd is op Rapberry Pi OS kunnen we moOde nu reeds configureren. Klik op de knop met het tandwiel om de Geavanceerde instellingen te openen.
- Geef jouw moOde een passende hostnaam. In de cursus gebruiken we de standaard hostnaam moode.local door het vinkje niet te activeren.
- Activeer de optie SSH inschakelen en zorg dat SSH gebruik maakt van wachtwoord authentificatie.
- Maak een gebruiker aan met:
- Een Gebruikersnaam: in de cursus gebruiken we pi.
- En een bijhorend Wachtwoord: zorg dat je dit wachtwoord straks nog weet, schrijf het desnoods op.
- Indien je geen netwerkkabel gebruikt, activeer je de optie Wifi instellen en vul je de SSID (WiFi naam), bijhorende Wachtwoord en Wifi land in.
- Activeer de optie Regio instellingen en vul de Tijdzone in waarin je woont. Selecteer de door jouw gebruikte Toetsenbord indeling.
- Klik op de knop .
- Klik op de knop .
- Lees de waarschuwing en klik op de knop om het moOde besturingssysteem op de SD kaart te schrijven.
- Verwijder de SD-kaart veilig uit de computer.
- Start de Raspberry Pi (4 aansluiten op HDMI0) met de moOde SD-kaart.
- Ook moOde configureer en bedien je via een webpagina. We kunnen die bereiken via de hostname moode.local (of kortweg moode) of het IP adres van de Raspberry Pi.
- Surf met behulp van het gevonden IP adres of de hostnaam (http://moode/) naar jouw moOde Player.
- In de linkerkolom met muziekbronnen, selecteren we het testgeluid LR Channel And Phase (allerlaatste item).
- Klik op de Play knop (driehoek) om de Stereo Test af te spelen.
Boven de Play knop zien we een tijdlijn in een cirkel.
De onderste cirkel is het volume, klik op de plus/min tekens om het volume te regelen.
- Als je niets hoort, open je rechts bovenaan het moOde menu en start je de opdracht Configure.
- Activeer het onderdeel Audio en zet de Output device op de correcte uitgang. De moOde speler ondersteunt verschrikkelijk veel audio uitbreidingskaarten (HAT's). Vergeet niet op de Set knop te klikken om de aanpassing te activeren.
- Hardware aanpassingen vragen meestal een herstart via het moOde menu en de opdracht Power > Restart.
- Indien je op de Raspberry Pi geen beeld hebt, open je rechts bovenaan het moOde menu en start je de opdracht Configure.
- Activeer het onderdeel System en activeer Local Display.
- Luister naar een standaard radiostream naar keuze.
- Regel het volume.
- Verander bij Configuration Settings > System de unieke naam voor jouw systeem naar moodeVooNaa (waarbij Voo de eerste drie letters van jouw voornaam zijn, Naa de eerste drie letters van jouw naam).
- En het toetsenbord naar een Belgisch toetsenbord.
- Herstart moode en controleer de juist uitgevoerde configuraties.
- Om terug de startpagina van moOde weer te geven, klik onderaan op de afspeelbalk naast de knoppen of op de knop met het huisje.
- Om de inhoud van een USB stick af te spelen, moeten we Moode toegang geven tot USB opslagapparaten:
- Activeer bij Configuration Settings > Library de optie Auto-update database (USB drive).
- Plaats een USB Stick met muziek in de Raspberry Pi.
- Open de moOde bestandsbeheerder (klik op de cover op de startpagina).
- Vernieuw indien nodig de inhoud.
- Speel een lied op de USB Stick af.
- Een voorbeeld van hoe je de weergave kunt aanpassen:
- Open de moOde bestandsbeheerder (klik op de cover op de startpagina).
- Selecteer met de keuzelijst Library (links bovenaan) Radio.
- Gebruik het tandwielknopje om de radio's te sorteren en te groeperen op Genre.
- Na een klik op de knop kom je terug bij het overzicht met radio's. Om de nieuwe instelling te activeren, moet je soms vernieuwen.
- Zoek en luister naar een Jazz radio.
- Zoek en luister naar een VRT zender naar keuze.
- Om het meest recente moOde besturingssysteem op de SD kaart te schrijven, gebruik je Raspberry Pi Imager:
- Je kunt muziek die lokaal (bijv. op USB opslag) beschikbaar is voor moOde ook delen in het netwerk.
Dit gaat als volgt:
- Activeer bij Configuration Settings > Library op het tabblad Renderers de optie DLNA Media Server Service.
- Even geduld terwijl de Database wordt opgebouwd.
- Start op jouw computer een DLNA compatibele Media speler zoals Windows Media Player of VLC.
- Laten we als voorbeeld VLC starten.
- Activeer via het menu Weergave de Afspeellijst.
- Activeer in de linkerkolom (met schuifbalk) bij Lokaal netwerk de categorie Universele Plug'n'Play.
Indien jouw systeem een firewall gebruikt, zal deze de muziek afkomstig van een ander apparaat blokkeren.
In Windows krijg je dan een melding, reageer gepast (zie afbeelding).
- Open in het rechterpaneel de map Moode DLNA, navigeer naar de muziek en speel een song af.
- Ook het omgekeerde kan, luisteren naar muziek in gedeelde netwerkmappen zoals op een NAS:
- Activeer in de Configuration Settings het onderdeel Library.
- Klik op de knop CREATE om een nieuwe muziekbron toe te voegen.
- Klik op de knop SCAN om in het netwerk naar gedeelde mappen met muziek te zoeken.
- Open de keuzelijst Path om een server te selecteren. Vul Path aan met een gedeelde map op die server.
- Voor onbeveiligde bronnen gebruik je het Userid
Guest
zonder wachtwoord. - Geef de nieuwe muziekbron een naam (Name) en bevestig met de Save knop.
- Speel indien mogelijk een lied in een gedeelde netwerkmap af

Raspberry Pi Bluetooth Audio Receiver
Op de website van Plugable staat mooi beschreven hoe je van jouw Raspberry Pi een Audio receiver maakt. De uitleg maakt gebruik van een aparte Bluetooth dongle, maar dat hoeft niet, met de ingebouwde Bluetooth ontvanger werkt het ook. In zijn meest eenvoudige vorm, gaat het als volgt:
- Zet een up to date en geconfigureerd Raspberry Pi OS op een SD kaart (Basisimage).
- Bekabel en start de Raspberry pi.
- Start een terminal.
- Download het project met de opdracht:
pi@raspberrypi:~ $
wget -q https://github.com/nicokaiser/rpi-audio-receiver/archive/main.zip
- Pak het gedownloade ZIP-archief uit met de opdracht:
pi@raspberrypi:~ $
unzip main.zip
Archive: main.zip db0ef633122728212d066695220c7d76d5425b0a creating: rpi-audio-receiver-main/ extracting: rpi-audio-receiver-main/.gitignore inflating: rpi-audio-receiver-main/LICENSE inflating: rpi-audio-receiver-main/README.md inflating: rpi-audio-receiver-main/enable-hifiberry.sh inflating: rpi-audio-receiver-main/install-bluetooth.sh inflating: rpi-audio-receiver-main/install-shairport.sh inflating: rpi-audio-receiver-main/install-spotify.sh inflating: rpi-audio-receiver-main/install.sh - Nu het ZIP-archief is uitgepakt, kunnen we het verwijderen:
pi@raspberrypi:~ $
rm main.zip
- Open de uitgepakte map:
pi@raspberrypi:~ $
cd rpi-audio-receiver-main
- De volgende stap houdt een risico in.
Je gaat namelijk een installatiescript als systeembeheerder (root) uitvoeren dat afkomstig is van het internet.
Iemand met slechte bedoelingen kan zo veel schade aanrichten.
Doe dit dus enkel als je de aanbieder vertrouwt.
Veel projecten zijn open source, waardoor je de broncode kunt bekijken (controleren) en zelf compileren.
Voor de begeleide installatie moeten we
sudo
(Super User Do) gebruiken:pi@raspberrypi:~/rpi-audio-receiver-main $
De Hostname is de naam van ons apparaat zelf, en de Pretty hostname is wat we daadwerkelijk zullen zien in onze Bluetooth-lijst wanneer we onze apparaten proberen te verbinden. De Pretty hostname mag verschillen van de hostname als je dat wilt. In dit voorbeeld houden we het op Soundwave als Hostname en Pretty hostname. Zodra je je namen hebt gekozen, begint de installatie.sudo ./install.sh
Hostname [raspberrypi]:Soundwave
Pretty hostname [Raspberry Pi]:Soundwave
Updating packages Geraakt:1 http://deb.debian.org/debian bullseye InRelease Ophalen:2 http://deb.debian.org/debian bullseye-updates InRelease [44,1 kB] Ophalen:3 http://security.debian.org/debian-security bullseye-security InRelease [48,4 kB] Ophalen:4 http://archive.raspberrypi.org/debian bullseye InRelease [23,6 kB] Ophalen:5 http://archive.raspberrypi.org/debian bullseye/main arm64 Packages [308 kB] Ophalen:6 http://archive.raspberrypi.org/debian bullseye/main armhf Packages [314 kB] 645 kB opgehaald in 2s (412 kB/s) Pakketlijsten worden ingelezen... Klaar Boom van vereisten wordt opgebouwd... Klaar De statusinformatie wordt gelezen... Klaar Alle pakketten zijn up-to-date. Pakketlijsten worden ingelezen... Klaar Boom van vereisten wordt opgebouwd... Klaar De statusinformatie wordt gelezen... Klaar Opwaardering wordt doorgerekend... Klaar 0 opgewaardeerd, 0 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd. Installing PulseAudio Pakketlijsten worden ingelezen... Klaar Boom van vereisten wordt opgebouwd... Klaar De statusinformatie wordt gelezen... Klaar pulseaudio is reeds de nieuwste versie (14.2-2+rpt1). pulseaudio staat ingesteld op handmatig geïnstalleerd. 0 opgewaardeerd, 0 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd. Created symlink /etc/systemd/system/multi-user.target.wants/pulseaudio.service → /etc/systemd/system/pulseaudio.service. Created symlink /etc/systemd/user/pulseaudio.socket → /dev/null. Installing components
- Geweldig, alles is goed ingesteld!
Installeer Bluetooth Audio (PulseAudio) - dit moet worden geïnstalleerd.
Voer y in voor ja.
Do you want to install Bluetooth Audio (PulseAudio)? [y/N]
y
Pakketlijsten worden ingelezen... Klaar Boom van vereisten wordt opgebouwd... Klaar De statusinformatie wordt gelezen... Klaar pulseaudio-module-bluetooth is reeds de nieuwste versie (14.2-2+rpt1). pulseaudio-module-bluetooth staat ingesteld op handmatig geïnstalleerd. Aanbevolen pakketten: bluez-obexd De volgende NIEUWE pakketten zullen geïnstalleerd worden: bluez-tools 0 opgewaardeerd, 1 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd. Er moeten 136 kB aan archieven opgehaald worden. Na deze bewerking zal er 1.055 kB extra schijfruimte gebruikt worden. Ophalen:1 http://deb.debian.org/debian bullseye/main arm64 bluez-tools arm64 2.0~20170911.0.7cb788c-4 [136 kB] 136 kB opgehaald in 0s (1.903 kB/s) Voorheen niet geselecteerd pakket bluez-tools wordt geselecteerd. (Database wordt ingelezen ... 96925 bestanden en mappen momenteel geïnstalleerd.) Uitpakken van .../bluez-tools_2.0~20170911.0.7cb788c-4_arm64.deb wordt voorbereid... Bezig met uitpakken van bluez-tools (2.0~20170911.0.7cb788c-4) ... Instellen van bluez-tools (2.0~20170911.0.7cb788c-4) ... Bezig met afhandelen van triggers voor man-db (2.9.4-2) ... Created symlink /etc/systemd/system/multi-user.target.wants/bt-agent@hci0.service → /etc/systemd/system/bt-agent@.service. - De optionele Shairport Sync Airplay 1 Audio Receiver installeren we niet.
Dit is enkel nodig om met Apple apparaten of iTunes software te gebruiken.
Do you want to install Shairport Sync AirPlay 2 Audio Receiver (shairport-sync v4.2)? [y/N]
N
- Ook de Spotify Connect installatie voeren we niet uit:
Do you want to install Spotify Connect (Raspotify)? [y/N]
N
- Als je een HiFiBerry Hat uitbreiding hebt, voer je de volgende installatie uit, anders niet:
Do you want to enable HiFiBerry device tree overlay and ALSA configuration? [y/N]
N
- Om alle geïnstalleerde onderdelen te activeren, herstart je de Raspberry Pi:
pi@raspberrypi:~/rpi-audio-receiver-main $
sudo shutdown -r now
- Hoewel het volgende ook grafische kan, gaan we toch verder met opdrachten in de terminal.
De volgende bluetoothctl opdrachten schakelen Bluetooth in, maken de Raspberry Pi zichtbaar voor andere apparaten, zorgt dat andere apparaten kunnen koppelen met de Raspberry Pi en sluit uiteindelijk de Bluetooth controller software af.
De Bluetooth instellingen blijven daarbij wel actief.
pi@Soundwave:~ $ sudo bluetoothctl Agent registered [DEL] Device F8:DF:15:A5:CD:CC F8-DF-15-A5-CD-CC [bluetooth]# power on Changing power on succeeded [bluetooth]# discoverable on Changing discoverable on succeeded [bluetooth]# pairable on Changing pairable on succeeded [bluetooth]# exit
- Koppel een ander apparaat aan de Raspberry Pi en speel muziek af.
De muziek moet je nu horen via de Raspberry Pi.
De afbeeldingen tonen een gekoppelde Android apparaat en een Linux Desktop.
Opgelet: Je kunt maart één toestel koppelen met de Raspberry Pi.
Om een ander apparaat te koppelen, moet je dus het eerste apparaat ontkoppelen (verwijderen) en pas na een tijdje proberen het nieuwe apparaat te koppelen.
- Wie op een plezante manier wil leren programmeren, kan dit muzikaal met Sonic Pi in de grafische omgeving van Raspberry Pi OS.
- Zet een up to date en geconfigureerd Raspberry Pi OS op een SD kaart (Basisimage).
- Bekabel en start de Raspberry pi.
- Installeer de software
sonic-pi
. - Start via het Startmenu > Programmeren de toepassing Sonic Pi.
- Dit programma heeft wat tijd nodig om te starten, wees dus geduldig.
- Sluit het venster Welkom bij Sonic Pi.
- In het onderste linker deelvenster staat voorbeelden, je kunt deze kopiëren naar het editor deelvenster en ontdek hoe je al programmerend muziek kunt maken.
- Wie liever met een online leerboek werkt, kan de Sonic Pi - Tutorial gebruiken.