This code allows to use Raspberry Pi 4 as a USB gadget composite of multichannel Audio input/output and Ethernet, meaning it can transform an iPad (or any other UAC2 compatible device) into a VST effect/instrument integrated into a desktop DAW – the Pi 4 is powerful enough to run Reaper (armv7l) and its ReaStream plugin with low latency over the built-in Ethernet.
brew bundle # install dependencies
# export $SDCARD=diskX
# diskutil unmountDisk /dev/$SDCARD
# sudo dd bs=1m if=~/Downloads/2021-05-07-raspios-buster-armhf-lite.img of=/dev/r$SDCARD; sync
# sudo diskutil eject /dev/r$SDCARD
# on the boot partition:
# config.txt – add new line to the bottom: dtoverlay=dwc2
# cmdline.txt – insert after rootwait: modules-load=dwc2,libcomposite
# create empty file: touch ssh
# connect Ethernet cable and/or configure WiFi via wpa_supplicant.conf
# insert SD card and boot Pi
PI_IP=$(host raspberrypi)
echo $PI_IP
PI_IP=${PI_IP##* }
ssh pi@$PI_IP
pass: raspberry
# change password, or add ~/.ssh/authorized_keys and disable password auth
# ./deploy.sh
BlackHole Drivers are no longer required, but still useful.
sudo -i
apt update
apt full-upgrade
raspi-config # Advanced Options / Bootloader Version / Latest
A recent update to the Raspberry Pi 4 bootloader not only enables the low power mode for the USB hardware, allows the enabling of Network boot and enables data over the USB-C port. The lower power means it should run (without any hats) with the power supplied from a laptop.
Details of how to check/update the bootloader can be found here.
– source
# Pi
apt install jackd2 xserver-xorg fontconfig libgtk-3-dev
# Mac
open -a xquartz # "Allow network" in Preferences / Security
scp ~/.Xauthority pi@pi4:.
export DISPLAY=:0 ; ssh -v -X -S none pi@pi4
sudo nice -n -20 sudo -u pi reaper_linux_armv7l/install-reaper.sh # [R]un REAPER
- Audio / Device
- Audio system: JACK
- Input channels: 4
- Output channels: 2
- Auto-start jackd, launch command: /home/pi/jack.sh
Once configured, Reaper can run without GUI:
- Route USB audio channels (not sure why they called
Playback/Capture Inactive
) in AUM, or Audiobus, or whatever ./start.sh
- Dante AVIO Adapter – seems cool and pricey
- iConnectivity AUDIO4c – multifunctional, key features include "routes audio digitally between two computing devices"
- Apple IDAM – wired output only, lossless
- Audreio – seems outdated without Audiobus integration
- studiomux – compatibility issues, redundant features
iOS restriction that per device we can only use 1 MIDI Network Session and it's an iOS behavior that copies the data over / merges them to all connected MIDI Network Sessions under the hood
– source
Seems to be the same problem on iPadOS. But if there is a better RTP MIDI implementation for the Raspberry Pi OS, it may be used to relay the multiple different MPE sessions, presented as a USB MIDI ports.