MODEP - MOD Emulator for Pisound
MOD or Musician Operated Device is “a multi-effects pedal that pushes the limit of your guitar, bass, keyboard or any other instrument to craft the sounds you want and reproduce them instantly at home, studio or on stage.”
MOD is based on Linux SBC and LV2 plugins ecosystem. It has an intuitive drag-and-drop web-based interface so you can assemble your pedalboards as you do in real life. You can find more information about MOD workflow here.
As it should be clear for you by now, MODEP is an emulator that will allow you to play around with MOD system using your Raspberry Pi and Pisound board.
By the way, MOD is not only software, it’s also a nice piece of hardware and the MOD team has done a remarkable job for the whole Linux audio open-source community, so if you like this emulator you should get the real thing @ https://moddevices.com.
Default user details:
- Mount your freshly baked SD card to your Pi.
- Power up your Raspberry Pi.
- Connect to it via ‘Pisound' Wi-Fi hotspot using your computer or tablet (psw:blokaslabs).
- Open your browser and go to this address http://172.24.1.1 (you should see a similar view to the image below).
- That’s it. Now you can start building your pedalboards.
Note that Jack is running as 'root' user, in case you'd like to manually run jack_capture or other jack utils, it should be done as 'root' too.
Connecting to the Device via ssh
ssh firstname.lastname@example.org(if connected to Pisound WiFi, otherwise see below to find the RPi's IP to use in place of 172.24.1.1)
- Enter the password: blokaslabs
Editing Configuration Files
Here's a quick guide on how to modify system configuration files, such as
jack.service. Once connected via
ssh, use a text editor to edit the file, the most popular ones are covered here:
- nano: A simple text editor with familiar user interface to GUI based notepads.
sudo nano /usr/lib/systemd/system/jack.service
- Make your changes using cursor keys to navigate.
- Hit Ctrl+X to close, press 'Y' to confirm saving your changes.
- vi: A modal commands based text editor with rich features.
sudo vi /usr/lib/systemd/system/jack.service
- Navigate to the place you want to change using h, j, k, l keys.
- Enter 'insert mode' by pressing i key.
- Make your changes.
- Hit Esc key to go back to command mode.
- Type :wq to write the changes and quit the editor.
Alternative jack Settings
There's many different possible layouts of effects possible with very different processing requirements from one another, so tradeoffs between stability and latency have to be made when defining the default audio settings. If you'd like to try and achieve a lower latency or more stability (less XRUNs) for your use case, you may try one of alternative configurations out, see here for editing instructions.
In a nutshell, the lower the audio buffer (based on -n and -p arguments), the lower is the latency, but also the lower is the stability. Same goes with the higher is the sampling rate (-r, acceptable values are 48000, 96000, 192000). So you have to balance these values to best accommodate your use case.
For more details on the arguments, see Jack's documentation.
The line to edit in
jack.service is this one:
ExecStart=/usr/bin/jackd -v -t 2000 -P 75 -d alsa -d hw:pisound -r 48000 -p 128 -n 2 -X seq -s -S
Try replacing with one of the below:
ExecStart=/usr/local/bin/jackd -v -t 2000 -s -d alsa -d hw:pisound -r 96000 -p 256 -n 3 -X seq
Once the config is changed, you must either restart the system or at least the MODEP's services:
sudo systemctl stop mod-ui mod-host jack sudo systemctl daemon-reload sudo systemctl start jack mod-host mod-ui
Here is the list of functions you can achieve using Pisound’s button.
|Click betwen 1 and 8 times||Load the pedalboard from the first bank on your list at index corresponding to the number of clicks (see the image below).|
|Hold between 3 and 5 seconds||Turn Wi-Fi hotspot mode on/off.|
|Hold between 5 and 7 seconds||Turn your Raspberry Pi off.|
At the moment MODEP image comes with 294 LV2 plugins ranging from synths to heavy guitar distortion plugins.
Quick and Dirty Debug Tricks
Determining the IP Address of Raspberry Pi
- If your Pi is connected to your local network via a network cable:
- Login into your local router via its webgui (usually something like http://192.168.1.254)
- Go to network map or network overview.
- Look up a device called raspberrypi or modep.
- The IP should be listed somewhere there.
- Connect a screen and a keyboard to your Pi.
- You should see a text-based terminal (the linux cli).
- Login in with user 'modep', password 'blokaslabs'.
ifconfig -ato show all network interface configurations.
- If connected via WiFi look up the entry for "wlan0" field "inet".
- If connected via ethernet cable look up the entry for "eth0" field "inet".
- This is the IP-Address of your device.
Test Connectivity Between Pi and PC/Laptop
- In a terminal window (
cmdon Windows), run
- If connectivity is good, you should see response times getting logged.
- On Windows, by default 4 ping requests are made and the utility exits.
- On other OSes, by default you have to manually quit by hitting Ctrl+C.
Web-GUI Is Reachable, but No Sound Or "Add Device Error" happens
First of all, check input and output cables, volume and gain level.
If this fails, then try restarting the MODEP software:
- Login via
sudo systemctl stop mod-ui mod-host jack sudo systemctl start jack mod-host mod-ui
After the services are restarted, the browser should reload automatically.
Check status of the services:
sudo systemctl status jack sudo systemctl status mod-host sudo systemctl status mod-ui
The status should be active (running). If it's not, try checking the service logs for any errors:
sudo journalctl -u jack sudo journalctl -u mod-host sudo journalctl -u mod-ui
- First check if Clip LED is lit up while audio input signal is playing.
- If it is:
- Turn down 'GAIN' knob until the Clip LED no longer gets turned on. If the 'GAIN' is at minimum, turn down the output volume of the device connected to Pisound's Audio Input.
- If you still get distorted sound after above is resolved:
- Check XRUNS-Status at the lower right corner of your browser window.
- Try experimenting with jack settings defined in
jack.service, in particular the -n, -p, -r values. See here for instructions on how to edit it.