Help
MIDI clock
Syncopet can lead the tempo: it sends its MIDI clock, and your DAW (Reaper, Bitwig…) or your effect pedals follow it. When you start Syncopet, the DAW starts with it, on the downbeat, and follows every tempo change.
How it works
- Syncopet sends 24 pulses per quarter note, plus Start (on the first beat of the groove, after the count-in if any) and Stop.
- The clock stays perfectly steady: swing, triplets and ties do not affect it.
- Browsers: Chrome, Chromium or Edge (Firefox and Safari do not support MIDI). The page must be on
https://orlocalhost.
Compound and odd meters: the MIDI standard always counts in quarter notes. In 6/8, 9/8 and 12/8, Syncopet’s tempo is in dotted quarter notes: a 6/8 at 90 shows as 135 in your DAW. In 5/8 and 7/8, it is in eighth notes: a 7/8 at 200 shows as 100. Everything stays in time; just set the same time signature in your DAW (MIDI clock does not carry it).
Enable it in Syncopet
- Open Settings and click Enable MIDI. Chrome asks for permission the first time: accept.
- Tick the output(s) that should receive the clock (for example loopMIDI Port). Your choice is remembered.
- Start the groove: the MIDI light next to the Play button flashes on every quarter note.
- “Send the clock continuously” option: the clock runs even when stopped (useful for pedals that display the tempo). It starts after your first click in the page (browser rule).
The Syncopet tab can stay in the background: the clock keeps running normally.
Windows: loopMIDI
To connect Syncopet (in Chrome) to a DAW on the same computer, you need a “virtual MIDI cable”.
- Install loopMIDI (free, by Tobias Erichsen).
- Open loopMIDI and click +: a loopMIDI Port is created. Keep loopMIDI open (or start it with Windows).
- In Syncopet, tick loopMIDI Port; in your DAW, choose loopMIDI Port as the sync input (see Reaper and Bitwig).
Reload the Syncopet page if the port was created after the page was opened and does not show up.
Linux: virtual MIDI port (ALSA)
Chrome sends to ALSA ports. The simplest way is to create virtual ports with the snd-virmidi module: whatever is sent to a VirMIDI port comes out of the same port on the DAW side.
sudo modprobe snd-virmidi
To create them at every boot:
echo snd-virmidi | sudo tee /etc/modules-load.d/virmidi.conf
- Reload Syncopet: VirMIDI 1-0, 1-1… outputs appear (the number depends on your sound cards). Tick VirMIDI 1-0.
- In your DAW, choose VirMIDI 1-0 as the sync input.
To check the ports: aconnect -l (and aseqdump -p "VirMIDI 1-0" to watch the messages). With PipeWire or JACK the idea is the same: ALSA ports remain visible.
Reaper
Menu names may vary slightly between versions.
- Options → Preferences → Audio → MIDI Devices (Ctrl+P): in the inputs, enable the port (loopMIDI Port on Windows, VirMIDI 1-0 on Linux) by double-clicking it → Enable input.
- Right-click the Play button in the transport bar → External timecode synchronization settings.
- Tick Enable external timecode synchronization, choose MIDI clock / SPP as the source and Syncopet’s port as the input. Confirm: Reaper now waits for Syncopet.
- Start Syncopet: Reaper starts on the downbeat and shows the incoming tempo.
Bitwig Studio
- Settings → Synchronization: in the MIDI clock section, enable receiving (Sync / Clock in) on Syncopet’s port (loopMIDI Port or VirMIDI 1-0).
- If the port does not show up: Settings → Controllers, add a generic MIDI controller using this port as input, then go back to Synchronization.
- In the transport bar, turn on external sync (the EXT button next to the tempo): Bitwig then follows Syncopet’s tempo, Start and Stop.
Effect pedal or looper (USB MIDI interface)
- Plug a USB MIDI interface (for example a Roland UM-ONE) into the computer: it appears in Syncopet’s outputs. Tick it.
- Connect the interface MIDI OUT to the pedal MIDI IN (5-pin DIN, or TRS mini-jack with the maker's adapter: beware of Type A and Type B, which are not compatible with each other).
- On the pedal, set the tempo source to MIDI / external (the MIDI channel does not matter for the clock).
- For a delay pedal to show the tempo even when stopped, tick “Send the clock continuously”. A looper starts and stops with Start / Stop.
Several outputs can be ticked at the same time: DAW and pedals all receive the same clock.
Setting the offset
Every device has its own latency. If the DAW or the pedal sounds slightly ahead of or behind Syncopet, adjust Offset in Settings (from −100 to +200 ms):
- the synced device is late → negative value (the MIDI is sent earlier);
- it is early → positive value.
Go in 5 ms steps while listening to a short sound on both sides (cross-stick, the DAW metronome click).
Checking clock stability
1. The displayed tempo
Start Syncopet at 120: the DAW should show 120 (or 119.9 to 120.1; tiny display variations are normal). Change the tempo and use Tap: the DAW should follow within a second, with no audible jump.
2. Drift over several minutes
- In the synced DAW, record Syncopet’s sound on an audio track (sound card input, or output capture) for 5 minutes, with a simple groove (Metronome).
- Zoom in on the first hit, then on the last one: the offset from the DAW grid should stay the same (within 2 or 3 ms). If it keeps growing, the clock is drifting.
- Simpler, by ear: turn on the DAW metronome, start Syncopet’s Metronome and listen after a few minutes: both clicks should stay together, with no “flam” slowly appearing.
3. Background tab
While playing, switch to another tab or window for a few minutes: the tempo shown by the DAW should not move.
Troubleshooting
- “Your browser does not support MIDI”: use Chrome, Chromium or Edge.
- “MIDI access denied”: click the icon to the left of the address → Site settings → MIDI: Allow, then reload.
- No output: check that loopMIDI is running (Windows) or that
snd-virmidiis loaded (Linux), then reload the page. - The MIDI light does not come on: none of the ticked outputs is connected.
- Diagnostic mode: open Syncopet with
?debug-midiat the end of the address and open the console (F12): it shows the detected outputs, the ticked outputs and the messages sent. The commanddrumboxMidi.test()sends a Start, one quarter note of clock, then a Stop.
Audio export (WAV)
Export → Audio (WAV) renders the groove to a WAV file, offline: faster than real time and sample-accurate. The file contains exactly what you hear: track volumes, mute / solo, dynamics, swing, ties and humanization. The count-in is never included.
Export options
- Tracks:
- Mix: one stereo file, through the same limiter as playback;
- Separate tracks: a ZIP file with one WAV per instrument (“01 Ride.wav”, “02 Hi-hat pedal.wav”…), all the same length, without the limiter so you can mix them. Played together, they sound exactly like the mix;
- Only: …: a single instrument, without the limiter.
- Length: number of repetitions of the groove.
- Sample rate: choose the same as your DAW project (44.1 or 48 kHz), so the DAW does not have to convert it.
- Bit depth: 24-bit for working in a DAW; 16-bit for sharing or burning a CD (a very light noise, called dither, is added to avoid quantization artifacts).
- Ending: let the cymbals ring after the last bar, or cut exactly at the end of the last bar.
- Perfect loop: the ending rings over the start of the file, so it loops seamlessly. The file ends exactly on the last bar line.
- Level: the peak level is shown after the export. If it goes above 0 dB, nothing is downloaded yet: you can lower the level to −1 dB (all separate tracks by the same amount, to keep their balance) or download anyway.
- With humanization on, every export is slightly different, like two takes by a drummer.
Tempo and file length
- The file name holds the groove name and Syncopet’s tempo, e.g. Medium swing - 140 BPM.wav.
- Set your DAW to the same tempo and time signature. In 6/8, 9/8 and 12/8, DAWs count in quarter notes: a 6/8 at 90 in Syncopet is 135 in the DAW. In 5/8 and 7/8, divide by 2: a 7/8 at 200 is 100.
- With Cut or Perfect loop, the file lasts exactly: number of bars × beats per bar × 60 ÷ tempo. Example: Medium swing (2 bars of 4/4) × 4 repetitions at 140 BPM = 8 × 4 × 60 ÷ 140 = 13.714 s.
Checking the timing in Reaper
- Set the project tempo and time signature (double-click the tempo in the transport bar), and the sample rate: File → Project settings.
- Put the edit cursor at the very start of bar 1, then Insert → Media file… (or drag the file there). For separate tracks, select all the WAV files at once and choose one track per file when Reaper asks.
- Zoom in on a few hits (bar 1 beat 1, then a hit in the last bar): each attack must start exactly on a grid line. Turn on the grid if needed (Alt+G).
- With Cut or Perfect loop, the end of the item must fall exactly on the bar line after the last bar. The item length is shown in its properties (F2).
Checking the timing in Bitwig
- Set the tempo and time signature in the transport bar, and the sample rate in Settings → Audio.
- Drag the file onto an audio track, at the start of bar 1. For separate tracks, drag all the WAV files at once and drop them on separate tracks.
- Bitwig may stretch audio files to the project tempo. If the clip does not line up, open the Inspector and set the clip tempo to the file tempo (in the file name), or turn stretching off.
- Zoom in: attacks must start exactly on the grid lines, and with Cut or Perfect loop the clip must end exactly on the bar line.
Checking a perfect loop
- Export with Perfect loop, at the sample rate of your project.
- In the DAW, set the item or clip fades to 0 (Reaper adds short fades to new items by default: F2 → fade-in / fade-out length).
- Loop exactly over the file: in Reaper, select the item and set the loop points to it (or turn on Loop source and lengthen the item); in Bitwig, turn on the clip loop.
- Listen to the junction: no click, no gap, and the cymbals keep ringing over the start.