User Manual
New to compas?
compas is a four-deck DJ application with a real-time audio engine. It plays your own local files with true DSP — beatgrid, key detection, EQ, filter, key-lock, loops, scratch and FX — and is honest about the few things (like streaming decks) where it can only control playback, not process audio.
Getting started
Install & first launch
Download the installer for your OS from the download section, run it, and launch compas. As an unsigned beta, Windows SmartScreen may say "Windows protected your PC" — click More info → Run anyway. On macOS, if you see "unidentified developer", right-click the app and choose Open once.
Load your first track
- Click the Load… button (or the artwork tile) on a deck to pick an audio file.
- Or add tracks to the Library at the bottom, then double-click a row — or use its A/B buttons — to load it onto a deck.
- On load, compas decodes the file into RAM and analyzes BPM, beatgrid, and musical key (shown in Camelot notation). Press Play to start.
The performance screen
From top to bottom:
- Title bar — master BPM & output meter, a master Sync toggle, and buttons to open the keyboard, MIDI map, sampler pads, and controller mapping.
- Waveform zone — stacked, band-colored scrolling waveforms for the two on-screen decks with a fixed NOW playhead and zoom controls.
- Deck · Mixer · Deck — the left deck, the center mixer, and the right deck.
- Library — your track browser and crates.
- Status bar — sample rate, CPU load, and audio dropout (xrun) counter.
compas has four decks (A–D); two are shown at a time. Each deck panel has slot tabs (A/C on the left, B/D on the right) to switch which deck that side controls. All four channels are always available in the mixer.
Decks & transport
- Play / Pause — the large transport button starts and stops the deck.
- CUE — sets/returns to the main cue point. The mode button next to it toggles behavior: CDJ (hold to preview from the cue, release to jump back) or GATE (stutter-play while held).
- BPM / KEY / TIME tiles show the live effective BPM, the Camelot key, and elapsed / remaining time.
- Eject unloads the deck.
- The source badge reads LOCAL · DSP for full processing, or CONTROL-ONLY for a streaming deck where compas can only steer playback (loops/FX are disabled — it won't fake DSP it can't perform).
Jog wheel & scratch
The vinyl-style platter shows playback position (the ring fills as the track plays) and rotates at ≈33⅓ RPM. Drag the platter to scratch and nudge: angular velocity drives the read-rate, so the audio follows your hand, and a still finger holds the sound. Release to resume. The center reads the live BPM and the deck state (PLAYING / CUED / SCRATCH).
Waveforms & seeking
Overview waveform (per deck)
Below the BPM/KEY/TIME tiles, each deck shows a full-track overview: the whole song at a glance, band-colored, with a play-head, your hot-cue and loop markers, and a dimmed "already played" region. Click or drag anywhere on it to seek across the track (a needle-drop).
Scrolling waveform (top zone)
- The detailed waveform scrolls under the fixed NOW line. Low/mid/high frequencies are colored so you can read a track's structure at a glance.
- Zoom with the 4s / 8s / 16s / 32s buttons.
- Click in the lane to seek within the visible window.
- Beatgrid nudge — if the analyzed grid is slightly off, use the ◀ / ▶ arrows on the lane to shift it; GRID resets it. The nudge is saved per track and feeds the sync engine.
Tempo, pitch & key-lock
- Tempo fader — ±8% pitch range. By default this is vinyl-style varispeed (tempo and pitch move together).
- Nudge (− / +) trims tempo by 0.1% for fine beatmatching by ear.
- KEY (key-lock) — engage master tempo to change speed without changing pitch.
Beat sync
- SYNC — continuously beat-matches this deck to the other (tempo and phase).
- TEMPO — tempo-only sync: match BPM without locking phase, so you can ride the beatmatch manually.
- LEAD — pin this deck as the sync leader the others follow.
- The title bar's master Sync toggle links the two on-screen decks in one click.
Hot cues
Each deck has 8 hot-cue pads, color-coded. Click an empty pad to drop a cue at the current position; click a set pad to jump to it; right-click to clear it. Cues are saved per track and reappear when you reload it. With Quantize on, jumps snap to the beatgrid.
Loops & loop-roll
- IN / OUT — set a manual loop's start and end; the loop activates on OUT.
- 4 / 8 / 16 — instant beat loops of that length (requires a beatgrid).
- ½× / 2× — halve or double the active loop length.
- ◀ / ▶ — move the loop back/forward one beat.
- ✕ — exit the loop.
- Loop-roll (⅛ / ¼ / ½) — hold for a momentary sub-beat roll with slip: when you release, playback returns to where the track would have been.
Beat-jump & quantize
- Q (Quantize) — snaps hot-cue jumps and beat-jumps to the grid so you stay in time.
- ◀4 / 4▶ — jump back/forward four beats.
The FX rack
Each deck has four beat-synced effects. Toggle one on, then dial its parameters in the detail panel:
- ECHO — beat-synced delay (¼ / ½ / 1 / 2 beats) with a single DEPTH amount controlling feedback and wet level.
- REVERB — SIZE (tail length) and MIX (wet/dry).
- FLANGE — beat-synced sweep over 1 / 2 / 4 / 8 beats with a DEPTH for sweep width and resonance.
- CRUSH — bitcrusher: BITS (bit-depth reduction) and RATE (sample-rate decimation).
All FX run on the real-time audio thread and reset when you load a new track.
The mixer
The center mixer has one channel strip per deck, plus the crossfader and headphone section.
Channel strip
- GAIN — channel trim.
- HI / MID / LOW — 3-band EQ (full kill to +6 dB).
- FILTER — one knob sweeping from low-pass (left) through off (center) to high-pass (right).
- FX — a macro knob driving the deck's active effects.
- Crossfader assign — route the channel to the A side, thru (always on), or the B side.
- Cue / PFL — pre-listen the channel in your headphones.
Crossfader
- CURVE — from a smooth blend to a sharp cut (for scratch-style cuts).
- Additive vs constant-power, and a Reverse ("hamster") switch.
Headphone cue
Pick a headphone output device, then balance CUE ◁▷ MAS (cue-vs-master blend) and set the PHONES level. Use the per-channel PFL buttons to choose what you pre-listen to.
Auto-mix
Auto beatmatches and performs a bass-swap crossfade into the other deck near the end of a track; Mix now triggers the transition immediately.
Library
- Add tracks to mount local files into your library.
- Double-click a row (or use its A/B buttons) to load it onto a deck.
- Browse by your crates, and search by title/artist.
- Analyzed BPM and key are cached so reloading a known track is instant, along with its saved cues, loops, grid nudge and gain.
Sampler
Open the pads from the title bar to trigger one-shot samples and loops over your mix. Pads can be played from the screen or mapped to a hardware controller.
MIDI keyboard
compas includes a built-in synth/instrument you can open from the title bar and play from a connected MIDI keyboard (or the on-screen keys) — handy for stabs and tones over a set. Choose the waveform and level in its panel.
Hardware controllers
Open Controllers from the title bar to connect MIDI or HID devices. compas maps physical controls (jog wheels, faders, pads, knobs) to deck and mixer functions, with LED and motor feedback so the hardware reflects what's on screen.
- Bundled starter profiles: Pioneer DDJ-400 and DDJ-FLX4, Akai MPK Mini MK3 and LPD8.
- You can edit mappings and learn controls directly in the controller panel.
Status bar & recording
The bottom status bar shows the engine's sample rate, CPU load, and the xrun (audio-dropout) count — keep an eye on xruns; rising numbers mean your buffer/CPU is stressed. The title bar's record control captures your master output to a file.
Troubleshooting
- "Windows protected your PC" / "unidentified developer." Expected for unsigned beta builds — use More info → Run anyway (Windows) or right-click → Open (macOS).
- No sound. Check your system output device and master gain; confirm the channel's crossfader assignment and that the crossfader isn't fully on the other side.
- Crackles / dropouts (rising xruns). Close heavy background apps; on laptops, use a high-performance power profile.
- BPM or grid looks off. Use the waveform grid nudge arrows to line the beatgrid up with the audio.
- Found a bug? Please open an issue with your OS and steps to reproduce — that's exactly what this beta needs.