Goal: this guide shows you step by step how to start a compact music project. It covers everything from choosing the basic hardware to producing your first sound. You will learn to balance performance and latency so you can play without frustration.
We will build a small MIDI-controlled sound module, synthesizer, and drum machine. The setup uses a USB audio interface and free software. JACK will route and mix the audio and MIDI streams.
The guide follows a simple order: prepare the hardware, install the system, configure JACK, optimize for real-time use, and establish a practical workflow. The LinuxMAO site will serve as a reference for tutorials and free sound libraries, updated in June, August, and beyond.
Benefits: an affordable, modular setup that is easy to expand with effects and controllers. The aim is latency suitable for playing, without necessarily chasing extremely low latency at the expense of session stability.
Prepare the hardware and foundation of your music production project
Preparing the hardware makes testing easier and prevents interruptions during a session. Gather the essentials first, then organize your storage and connections.
Essential components
Choosing a board: for a good balance, consider a 3B+ because of its faster processor and USB bus. A model 2 or 3 is also possible, depending on your budget.
microSD card, storage, and swap space
Allow for a 16 to 32 GB microSD card for the system. Add an SSD or USB flash drive if you store large sound libraries.
Swap space: create a 1 GB swap file (fallocate, chmod 600, mkswap, swapon) to support compilation and demanding tasks.
Display, outputs, and MIDI/USB connections
An HDMI display makes the setup easier to use. For a compact synth, a DSI or GPIO touchscreen is practical.
- Audio interface: start with a class-compliant USB interface; HAT boards (HiFiBerry, IQAudio, DACBerry) are alternatives, though their latency varies.
- Check the outputs (jack, RCA, HAT) and have a USB MIDI interface ready if you need a DIN-5 connection.
- A stable 5 V/3 A power supply and a ventilated case help prevent the processor from throttling.
For ready-to-use options, consult documented projects tested in June or August, or explore the Zynthian alternative on Hackaday.
Install Raspbian and configure audio: from JACK to QJackCtl
Prepare the system before adjusting JACK. Update the image, create the user, and connect to the network. Flash the card, boot, and apply the basic fixes for a stable project.
For newer versions, edit /etc/apt/sources.list by replacing “stretch” with testing. Then:
- sudo apt-get update && sudo apt-get -y dist-upgrade
- Install apt-listbugs to receive bug warnings.
Install QJackCtl: sudo apt-get install qjackctl. The package installs jackd and offers real-time priorities during installation. If necessary, re-enable real-time operation with dpkg-reconfigure -p high jackd.
In QJackCtl, select the correct audio device, sample rate, and buffer size. Enable -Xseq to test MIDI routing and check your connections.

Example command for an RPi 3B+ with a HiFiBerry DAC+: /usr/bin/jackd -P90 -p32 -t2000 -dalsa -dhw:sndrpihifiberry -r48000 -p128 -n3 -s -Xseq -P — useful when aiming for about 8 ms without xruns.
- Start at 48 kHz, p128, n=3 to confirm stability.
- Export your QJackCtl settings and keep a configuration file.
- Consult the LinuxMAO site for advice updated in June and August.
Optimize performance and real-time latency
To achieve stable latency, first set a fixed processor frequency and disable unnecessary services.
Stabilize the processor: disable the raspi-config service (sudo systemctl disable raspi-config), then add a line to /etc/rc.local that writes “performance” to /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor. This file, run at startup, forces a consistent governor and reduces xruns.
Real-time (RT) kernel — advanced option: clone the sources (git clone -b ‘rpi-4.14.y-rt’ –depth 1 https://github.com/raspberrypi/linux.git), set KERNEL=kernel7, create a swap file (1 GB), run make bcm2709_defconfig, disable DEBUG_INFO, and compile with make -j2 deb-pkg. Install the .deb files and adjust /boot/config.txt. This procedure is for experts: it can prevent the system from booting and requires physical access to restore the kernel.
Practical JACK settings: start at 48 kHz with a p128 buffer and n=3 to aim for about 8 ms on an RPi 3B+ with a HiFiBerry DAC+. If you encounter xruns, increase the buffer size or number of periods before changing the hardware.
- Disable unnecessary services to improve performance and reduce the load during a session.
- Limit real-time effects to maintain stability.
- Choose proven audio devices and interfaces, and test them after every update (June, August).
For example, forcing “performance” mode at startup often stabilizes the system more effectively than adding an RT kernel, which takes considerable time.
Getting started with music production on a Raspberry Pi: step by step
Start by connecting your USB MIDI keyboard. Open QJackCtl and check that the ALSA MIDI input appears. Then connect it to your chosen synth engine.

Load a synthesizer: start DISTRHO TAL NoiseMaker or another lightweight engine. Play a few notes and check the routing to your audio interface outputs.
Use Non-Mixer to balance the synth and drum machine. Launch Hydrogen, create a simple rhythm pattern, and route its output to the main mixer.
- Add an effect: place a light reverb on the synth bus and watch the processor load.
- Save your routing in a QJackCtl session file for a quick restart.
- If you prefer a ready-to-use solution, explore Zynthian on a microSD card: it has a touchscreen and many built-in effects.
With an RPi 3B+, a HiFiBerry DAC+, and JACK at 48 kHz, p128, n=3, aim for about 8 ms without xruns.
| Step | Application | Purpose |
|---|---|---|
| 1 | QJackCtl | MIDI detection and routing |
| 2 | TAL NoiseMaker (DISTRHO) | First synth |
| 3 | Non-Mixer | Simple mixing (mute/solo) |
| 4 | Hydrogen | Drums and patterns |
| 5 | Zynthian | Ready-to-use alternative |
Record the results of your tests in June and August after updates. To learn more about tools and the best DAWs, keep a list of versions and presets.
Conclusion
In summary, a solid hardware foundation and simple settings are enough to start a reliable project. With a 3B+ and a recognized audio interface, JACK at 48 kHz, p128, n=3 lets you aim for about 8 ms without xruns.
Setting the processor to performance mode and adding a swap file improve stability during sessions. For advanced needs, a real-time kernel remains an option for experienced users; test your settings and audio devices first.
Keep a configuration file and session backups. To keep learning, follow community discussions and consult practical resources such as guides and tutorials updated in August.

