Sketchatone

Sketchatone

Turn your drawing tablet into a MIDI strumming controller

Github Logo

Using Sketchatone with JACK Audio Connection Kit for Zynthian and professional audio systems

JACK MIDI Support

Sketchatone supports JACK MIDI output for integration with professional audio systems, particularly the Zynthian open synthesizer platform.

What is JACK MIDI?

JACK Audio Connection Kit is a professional sound server that provides real-time, low-latency connections for audio and MIDI data between applications.

When to Use JACK MIDI

Use JACK MIDI if you:

  • ✅ Run Sketchatone on Zynthian (highly recommended)
  • ✅ Use JACK-based audio systems on Linux
  • ✅ Need advanced MIDI routing capabilities
  • ✅ Want lowest possible latency

Use standard rtmidi if you:

  • ✅ Run Sketchatone on macOS or Windows
  • ✅ Use a DAW without JACK integration
  • ✅ Need simple MIDI output to one device

Installation

Install JACK Server

On Zynthian: JACK is pre-installed. No additional setup needed.

On Linux:

sudo apt install jackd2 qjackctl

Install Python JACK Library

pip install JACK-Client

Configuration

Basic JACK MIDI Setup

{
  "midi": {
    "midi_output_backend": "jack",
    "jack_client_name": "sketchatone",
    "jack_auto_connect": "chain0"
  }
}

Configuration Options

midi_output_backend

Values: "rtmidi" (default) or "jack"

jack_client_name

Default: "sketchatone"

Sets the JACK client name. The MIDI output port will appear as {clientName}:midi_out.

jack_auto_connect

Values: "chain0" (default), "all-chains", or "none"

⚠️ ZYNTHIAN-SPECIFIC: Auto-connection is designed specifically for Zynthian's ZynMidiRouter architecture.

Options:

  • "chain0" - Connect to Zynthian Chain 0 (first instrument)
  • "all-chains" - Connect to all Zynthian chains
  • "none" - No auto-connection; manually connect

Zynthian Quick Start

  1. Install Sketchatone on your Zynthian device

  2. Create config with JACK backend:

{
  "midi": {
    "midi_output_backend": "jack",
    "jack_client_name": "sketchatone",
    "jack_auto_connect": "chain0"
  },
  "strumming": {
    "midi_channel": 10,
    "chord": "Am"
  }
}
  1. Run Sketchatone:
python -m sketchatone.cli.midi_strummer --jack
  1. Start playing!

Manual Connection (Non-Zynthian)

For generic JACK systems, use "none" and connect manually:

{
  "midi": {
    "midi_output_backend": "jack",
    "jack_auto_connect": "none"
  }
}

Connect with:

jack_connect sketchatone:midi_out your_synth:midi_in

Verification

# List all JACK clients
jack_lsp

# Check connections
jack_lsp -c

Comparison: JACK vs rtmidi

Feature rtmidi JACK
Setup Simple Requires JACK server
Zynthian Integration Limited Full integration
Latency Low Very low
macOS/Windows Native Requires JACK install

See Also