This is brand new alpha software.
Pisound provides the digital signal processing and the Raspberry Pi runs LV2 effects. A USB foot pedal switches between digital effects.
The USB foot pedal is essentially a USB keyboard with only a few keys.
MODEP is a front end for LV2. It facilitates setting chains of effects with an intuitive web app front end.
-
On a Raspberry PI with modep, modep-mod-ui, and all the associated LV2 plugins
-
Install
mod-host
in/home/patch
and build usingmake PREFIX=/home/patch/mod-host
andmake PREFIX=/home/patch/mod-host install
-
Clone this repository into
/home/patch
-
Compile driver:
make zip
in/home/patch/ModHostPedal
-
Set up some pedals (see
Configuring the Pedal
below) -
Run
./EffectsStart
in/home/patch/ModHostPedal
Using https://blokas.io/modep/ set up some pedal boards and save them into the library
In a terminal switch to the ModHostPedal directory
Run ./EffectsStart
as root
To restore Modep/mod-host
run ./EffectsStop
as root
The pedal is a USB keyboard with three keys. 'A', 'B', and 'C'
They load instructions from the files in PEDALS
Put a link in PEDALS from 'A' -> WhateverPedalFile and the left most pedal will trigger loading that pedal
The script EffectsStart
stops the Modep/mod-host
process and starts this pedal's process. EffectsStop
stops the software for this pedal and restarts the Modep/mod-host
process
- The scripts setpedals03.sh and setpedals04.sh are example scripts for changing the pedal board. They must be run as root (to access the led on the Pisound. Otherwise they could be run as the
patch
user)
A design goal is sub 10,000 micro seconds, one hundredth. This has not nearly been achieved.
Using data the driver writes into /tmp/driver.log
the following averages
grep Implemen /tmp/driver.log |cut -d ' ' -f 2-3|sort |perl -e 'while(<>){/^(..)\s+(\d+)\s*$/ or die $_; defined $cnt{$1} or $cnt{$1} = 0; $cnt{$1}++; defined $reg{$1} or $reg{$1} = 0; $reg{$1} += $2; } print join("\n", map{"$_ => " . ($reg{$_}/$cnt{$_})} sort keys %reg)."\n";'
A: => 63489.3333333333
B: => 51726.6666666667
C: => 82500.1666666667
Ridiculously precise! And there is quite a bit of variation.