Repository navigation
Required hardware and setup
My own hardware is the following:
- Raspberry PI : 3B (I've taken the regular GUI version, as it is more simple to setup and provides great performance)
- an external USB numeric keypad (mine costs less than 10 EUR), used to activate main functions of COMPO
- a midi keyboard: mine is AKAI MPK mini (mk II)
- a midi control surface: mine is Novation Launchpad mini (mk II)
- optionally groovebox for MIDI CLOCK (and great drums!): Novation Circuit
- a soundcard connected to audio OUT: mine is small USB-jack audio out costing less than 5 EUR
Of course, any model of Raspberry greater or equal to 3B should work. Similarly, any USB soundcard will work; any keyboard, provided it has a MIDI output; and any MIDI control surface, as long it is MIDI. However, some parts of code are very hardware-dependent, so code adjustments should likely be done to accommodate other hardware.
Diagram of the setup:

Diagram of the jack connections:

-
Use RPI imager (link) to install regular PI OS on your raspberry.
-
Remember to click CTRL+SHIFT+X when in Imager to access the advanced options, or click the relevant button. From there, you can enable VNC, SSH, WIFI, and set locales.
-
Boot your RPI and update current system:
sudo apt update
sudo apt upgrade
- Essential software such as qjackctl and qsynth should be installed already. If not, you should do:
sudo apt install qjackctl
sudo apt install qsynth
- Install essential software: a2jmidid, ncurses, cJSON
sudo apt install a2jmidid
sudo apt install libncurses5-dev libncursesw5-dev
sudo apt install libcjson1 libcjson-dev
- Setup autostart, as described in https://forums.raspberrypi.com/viewtopic.php?t=294014
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
should have :
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
@bash /home/pi/compo.sh
- Create a compo/save directory under /home/pi
cd /home/pi
mkdir compo
mkdir save
- Copy compo.a and compo.sh file to /home/pi folder
-
Configure jack for your audio device and so it runs a2jmidi at startup

-
Configure qsynth so jack is used as midi and audio driver; remove "autoconnect midi inputs"

-
Also configure qsynth to remove effects, and add a drum track to channel 9

-
compo.sh should now run at startup of RASPI. Enjoy playing with COMPO!