Common issues and solutions
Troubleshooting
This guide covers common issues and their solutions.
MIDI Issues
Notes Stick or Sustain Indefinitely
Symptoms:
- Notes continue playing after you stop strumming
- Notes don't turn off properly during rapid strumming
- Hardware synthesizer plays sustained notes that never end
Cause: Some hardware synthesizers (especially when connected via USB MIDI) can't handle the rapid stream of MIDI messages during busy strumming. The MIDI buffer overflows, causing Note Off messages to be lost.
Solution:
Add a delay between MIDI messages using midiInterMessageDelay:
{
"midi": {
"midiInterMessageDelay": 0.08
}
}
Recommended values:
0.08(80ms) - Good starting point for most hardware synths0.05(50ms) - Try if 80ms feels too sluggish0.1(100ms) - Use if notes still stick with lower values0(default) - No delay, maximum responsiveness
Note: This adds latency to MIDI output. Only use if experiencing stuck notes.
Tested with:
- Roland Juno-DS88 (USB MIDI) - Works with 0.08
- E-MU USB MIDI cables - May need adjustment
No MIDI Output
Symptoms:
- No sound when strumming
- MIDI monitor shows no messages
Solutions:
-
Check MIDI port connection:
# On Raspberry Pi (ALSA) aconnect -l # Look for your MIDI device and note the port number -
Verify config file:
{ "midi": { "midi_output_backend": "rtmidi", // or "jack" for Zynthian "midi_output_id": 0 // Try different port numbers } } -
Check available ports:
- The server prints available MIDI ports on startup
- Look for
[RtMidi] Available MIDI output ports:in the console
-
Test with virtual port: Set
midi_output_idtonull- this creates a virtual MIDI port you can connect to
MIDI Input Not Working
Symptoms:
- Playing notes on external keyboard doesn't update strum notes in dashboard
- No MIDI input messages received
Solutions:
-
Check input port configuration:
{ "midi": { "midi_input_id": 0, // Specific port, or null for all ports "midi_input_exclude": [ "Midi Through", "RtMidi" ] } } -
Verify port isn't excluded:
- The server automatically excludes the output port to prevent feedback
- Check the
midi_input_excludelist - Remove your keyboard's port name if it's being excluded
-
Test with aseqdump (Raspberry Pi):
# List ports aconnect -l # Monitor a specific port (e.g., 28:0) aseqdump -p 28:0 # Play notes on keyboard - you should see MIDI messages
Post-Installation Configuration
Setting Up MIDI Input (Optional)
Strumming should work right away after installation. However, if you want to use an external MIDI keyboard to change the notes being strummed (e.g., playing chords on a keyboard to update the strum pattern), you'll need to configure MIDI input.
Find available MIDI input ports:
# On Raspberry Pi (ALSA)
aconnect -l
# Look for your MIDI device in the output, e.g.:
# client 28: 'Juno-DS' [type=kernel,card=2]
# 0 'Juno-DS MIDI 1 '
# 1 'Juno-DS MIDI 2 '
The port number format is client:port, so in the example above, "Juno-DS MIDI 1" would be port 28:0.
Configure MIDI input:
Edit the config file:
sudo nano /opt/sketchatone/configs/config.json
Add or update the midi_input_id:
{
"midi": {
"midi_output_id": 0,
"midi_input_id": 0, // Set to your MIDI input port number
"midi_input_exclude": [
"Midi Through",
"RtMidi"
]
}
}
Restart the service:
sudo systemctl restart sketchatone
View logs to verify connection:
# Follow logs in real-time
sudo journalctl -u sketchatone -f
# Look for lines like:
# [RtMidi] Available MIDI input ports:
# [RtMidi] 0: Juno-DS MIDI 1
# ✓ MIDI input: Juno-DS MIDI 1
Tip: If you want to listen to all MIDI input ports (discovery mode), set midi_input_id to null:
"midi_input_id": null
Installation Issues
python-rtmidi Installation Fails
Symptoms:
- Error during
apt install ./sketchatone-*.deb - Message: "python-rtmidi install failed"
Solutions:
The installer now tries multiple methods automatically:
- First tries
apt install python3-rtmidi(pre-compiled) - Falls back to
pip install python-rtmidi(compiles from source)
If both fail:
# Install build dependencies
sudo apt-get install -y python3-dev build-essential libasound2-dev
# Try manual install
pip3 install python-rtmidi
Performance Issues
High Latency / Sluggish Response
Causes:
midiInterMessageDelayset too high- System under heavy load
- USB issues
Solutions:
-
Reduce inter-message delay:
{ "midi": { "midiInterMessageDelay": 0 // Remove delay if notes aren't sticking } } -
Check system load:
top # Look for high CPU usage -
Use JACK on Zynthian:
- JACK provides lower latency than ALSA
- Set
"midi_output_backend": "jack"
Viewing Logs
Since Sketchatone runs as a systemd service, you can view logs using journalctl:
# View recent logs
sudo journalctl -u sketchatone
# Follow logs in real-time (like tail -f)
sudo journalctl -u sketchatone -f
# View logs since last boot
sudo journalctl -u sketchatone -b
# View last 50 lines
sudo journalctl -u sketchatone -n 50
# View logs with timestamps
sudo journalctl -u sketchatone --since "5 minutes ago"
Check service status:
sudo systemctl status sketchatone
This shows whether the service is running, recent log entries, and any errors.
See Also
- Configuration Settings - Complete settings reference
- Getting Started - Initial setup guide
- JACK MIDI - JACK backend configuration