How to use the decks

Every control on the page, in the order you meet it on screen. Azimuth runs entirely in your browser — your files are decoded on your own machine and never uploaded anywhere.

DECK ADECK BFRONTRIGHTBEHINDLEFT
Manual 01 / 04 · Two decks, two places
Step 1

Start audio

Browsers refuse to make sound until you click. Press Start audio once and the rig comes up.

Step 2

Load two tracks

Click Load a track… at the top of each deck. Tempo, key and waveform are analysed on load.

Step 3

Play and blend

Hit Play on deck A, Sync on deck B, then move the crossfader between them.

Where everything lives

The page is a mixer: a deck down each side, the mixer between them. This guide follows that layout rather than grouping by importance, because that is how you will look things up mid-mix. Jump to any block.

Deck A and deck B are identical. Everything described once applies to both.

The top bar

Lights

Backlights every button on the rig, the way a hardware controller does — legends lit dimly when idle and burning when engaged. On by default.

Turn it off in bright daylight, or if you find the glow noisy. The setting is remembered in this browser.

Master

Output level for everything, with a meter beside it. The meter reads the signal after the limiter, so it shows what is actually leaving the machine.

A limiter sits across the master permanently. Two decks at full level will always try to clip when they overlap, and it catches that.

Rec

Records the master output. Press again to stop and the take downloads immediately asazimuth-mix-<date>.webm, or .m4a on Safari.

What you record is what you heard, limiter included. Cueing in your headphones is not captured.

Log

Records every move on the desk — cues, faders, EQ, spatial paths, effects — as a timestamped list of commands, not audio. Press again to stop; the session saves itself and shows up in Ghost.

Split L/R

Not a button — an indicator. It appears whenever a deck is routed to your headphones, to tell you the output has split into master-left and cue-right. Seeheadphone cueing.

The crate

Preload a set before you play a note. Every track you import or load stays cached in this browser, ready to drop onto a deck without hunting through a file picker mid-mix.

▤ Crate

Top bar, next to Ghost. Opens a list of every track this browser has cached, newest first, with a running count on the button itself.

Import tracks…

A multi-file picker — select as many tracks at once as you want. Each one is decoded, tagged and analysed immediately (BPM, key, cover art), the same pass a deck runs on load, so the crate already knows everything about a track before you've heard it.

Import folder…

Grabs every audio file in a folder — and its subfolders — in one go.

Chrome and Edge only. Safari and Firefox have not shipped the directory picker this needs. Importing files one selection at a time works everywhere; folder import is the shortcut, not the only way in.

G 9B

Duration, BPM and Camelot key for every cached track, computed once at import so the crate can already tell you what mixes with what. The small dot next to a key means that track is a safe blend with whatever's on deck A or B right now — the same compatibility check the on-deck key readout uses, just checked against your whole crate instead of one other deck.

A / B

Loads that track straight onto the named deck. No file picker, no re-finding it on disk.

Anything you've ever loaded is already in here

Dropping a file straight onto a deck the old way still works exactly as before, and it quietly adds that track to the crate too — importing ahead of time is a convenience, not a requirement.

Ghost

Records a set as the performance rather than the audio — every cue, fader move and spatial path, timestamped — then replays it through the live decks. Still experimental.

👻 Ghost

Top bar, next to the crate. Opens a list of every session you've recorded withLog, newest first, plus a button to import one someone sent you as a file.

Long-press the chip (or right-click on desktop) to unload instantly — a quick eject that skips opening the panel. It's the same action as the Unload button below.

Pick a session

Tap a saved session to load it. ⬇ exports it as a JSON file to back up or share; ✕ deletes it from this browser for good.

▶ Start / ⏸ Stop

One button that toggles with playback. Start begins replay, or resumes it from wherever it last stopped. Stop freezes the replay in place without unloading it, ready to pick up exactly where it left off.

Unload

Clears the loaded session so you can pick another, or just play the decks yourself. Same action as long-pressing the Ghost chip.

Auto / Manual

Auto is Ghost driving — every recorded move plays out on its own. Manualhands the desk to you mid-replay: Ghost keeps its clock running underneath, tracking where it should be, but stops moving anything itself, so you can take a fader or the crossfader for a moment.

Switch back to Auto and Ghost eases each control it controls back to its own position over a fraction of a second rather than snapping, so handing control back doesn't produce a jolt.

It needs the same tracks

A session remembers tracks by title and artist, not the audio itself. Ghost also remembers every track you've loaded in this browser before and reloads a match on its own; the first time it meets a track it doesn't recognise, you'll need to drop that file on the deck yourself before replay can continue past that point.

Track, tempo and key

Load a track…

The track title is the load button. Click it to open a file picker, and click it again later to swap the track. WAV, MP3, FLAC, M4A — anything your browser can decode.

Title and artist come from the file’s own tags, and so does the cover art. When a file has none, a pattern is generated from the title so the two platters still look different from each other.

107.1 BPM

Detected tempo, updated live as you move the pitch fader — so it always reads the tempo the deck is actually playing at, not the tempo of the file.

A dash instead of a number means detection failed on that track. Sync, the beat grid and beat loops all need a tempo, so none of them work until you have one.

G 9B

Musical key, with its Camelot wheel number beside it. It turns green when the two decks are a safe blend — same number, or one step around the wheel.

Grey does not mean “do not mix”. It means the two keys clash on paper, which matters most when both tracks have strong melodic or vocal content.

The two waveforms

There are two, at different zoom levels, and they do different jobs. Both are split by frequency so you can read a track’s structure without listening to it.

Colours

Both decks use the same three colours on purpose — deck identity lives in the borders and accents. If each deck had its own palette you could not compare their bass at a glance, which is most of what the split is for.

Lows — Kick and sub, drawn as a saturated core at the centre line. This is the shape you beatmatch against.

Mids — Vocals, snares and the body of most instruments.

Highs — Hats, cymbals and air, as fine needles reaching the outer edge.

A breakdown shows as the orange dropping out while cyan continues. A drop shows as orange returning hard. That is the whole reason to split it.

Overview

The thin strip on top is the whole track, start to finish. Use it to read structure — where the intro ends, how long the breakdown runs, how far off the next drop is.

Tap anywhere to jump there. The faint rectangle sliding across it marks the slice the big waveform below is currently showing.

Waveform

The larger strip shows twelve seconds with a fixed white playhead down the middle. Audio behind the playhead dims; audio ahead of it is what is coming.

Drag left or right to seek.

The vertical lines behind the audio are the beat grid, brighter every fourth beat so you can count bars. Amber markers are your hot cues, the red one is the main cue point, and a green band is a running loop.

0:00 −3:39

Elapsed time on the left, time remaining on the right. The remaining figure is the one worth watching.

The platter

Jog wheel

The vinyl spins while the track plays, at roughly 33⅓ rpm. Drag it round to scratch — the audio follows your hand exactly, forwards or backwards, at whatever speed you move.

Let go and the track carries on from where you left it. A gentle nudge while playing pushes the track slightly ahead or behind, which is how you correct drift by ear. The ◀ ▶ buttons do the same from the transport: hold one to push or drag the track, and keep holding to jump a whole beat that way — the fix for two tracks whose kicks line up but whose snares do not.

Each platter captures its own touch independently, so on a touchscreen you can hold one deck with one hand and scratch the other at the same time. This is the thing a mouse cannot do, and the reason Azimuth exists.

L

The ring around the platter pulses on the beat. This button cycles which frequency band drives it: Low, Mid or High.

Leave it on L for most music — the kick is what you match to. Switch to Hfor a track with no kick, or during a breakdown where the hats are the only pulse left.

Pitch

The tempo trim, running ±16% either side of the track’s own speed.

Pitch fader

Drag up to speed the track up, down to slow it. The percentage below shows exactly where you are.

Double-tap the fader to snap back to centre — back to the track’s original tempo.

+ −

Nudge tempo by 0.1% a tap. Hold either one to repeat.

These exist because the fader spans 32% of tempo across a couple of hundred pixels — the 0.1% step that actually matters when two tracks are drifting is smaller than one pixel, and impossible to hit with a finger.

Hot cues

1 2 3 4

Four jump points per deck. Tap an unlit pad to drop a cue at the current position; it lights up in the deck’s colour. Tap a lit pad to jump straight there.

Right-click a lit pad to move it to the current position instead of jumping.

Set cues also appear as amber markers on both waveforms, so you can see what is coming.

Transport

Cue

The main cue point — a parking space you can always get back to. It behaves as a CDJ does, which means it does three different things depending on the state of the deck:

Playing → stops and jumps back to the cue point.

Stopped, sitting on the cue → hold to preview from it, release to snap back.

Stopped, somewhere else → drops a new cue point right here.

That hold-to-preview is how you find the exact start of a phrase: park, hold, listen, release, adjust, repeat.

Play

Play and pause. Lights green while running.

Sync

Matches this deck to the other one. It does two things: sets the pitch so the tempos match, and nudges the playhead so the beats land together. Tempo alone is not sync — two decks at identical BPM still slide past each other if the downbeats do not coincide.

Both decks need a detected tempo. If the two are more than 16% apart it refuses and tells you rather than pretending — half- and double-time detections are common, and a silent failure would just peg the fader.

With no analysed beat grid, phase alignment assumes beat one sits at 0:00. True of most electronic music, wrong for anything with an intro pickup. Treat it as a nudge into phase, then finish by ear on the platter.

Key

Key lock. On (the default), the track keeps its original pitch however far you move the tempo fader. Off, it behaves like vinyl — faster is higher, slower is lower.

Key lock hands over to plain varispeed while you are scratching, because time-stretching a hand movement sounds wrong. It hands back when you let go.

Effects

Three knobs per deck. Drag up and down to move them, and double-tap any knob to reset it to the position that means “doing nothing”.

Filter

A single sweep with bypass at twelve o’clock. Turn left and a low-pass closes, stripping the highs until only muffled bass is left. Turn right and a high-pass opens, removing the bass and leaving thin, airy tops.

Resonance rises toward both extremes, so the sweep sings rather than just dulling.

Double-tap returns it to centre. This is the most-used control on the deck — sweeping the bass out of the outgoing track is the bread-and-butter transition.

Echo

A tempo-synced delay, timed to a dotted eighth — the classic trailing echo. Feedback rises as you turn it up, so higher settings repeat for longer.

It follows the deck’s current tempo automatically. Double-tap to zero.

Verb

Reverb send. Useful for washing out the end of a phrase before you cut. Double-tap to zero.

Echo and reverb both tap the signal before the channel fader, so their tails keep ringing after you have pulled the deck down.

Loops, rolls and brake

Making a loop

In / Out

Manual loop. Tap In where you want it to start, then Out where it should end. The loop begins immediately and shows as a green band on both waveforms.

1 2 4 8

Beat loops. Tap one to loop that many beats from where you are; tap the same pad again to release. Needs a detected tempo.

÷2 ×2

Halve or double the running loop, anchored to its start point. Tightening a 4-beat loop down to 1 beat as you approach the drop is a standard build.

Rolls and stopping

Loop / Roll / Chop

One button, cycling what the four pads below do. Loop is beat loops.Roll makes them momentary rolls — 1/8, 1/4, 1/2 and 1 beat.Chop turns them into a sampler.

Chop

Tap any pad while the pads read Chop and the bar under the playhead is cut into four slices, one per pad. Tap a pad to fire its slice; right-click or long-press any pad to re-chop from wherever the track is now.

Each slice sits at its own fixed spot around your head, spread right around the circle, so finger-drumming the chops scatters them in 3D instead of stacking them in the middle.

Slices come back out of the turntable itself — only the bar you asked for is copied, so chopping a six-minute track costs two seconds of audio, not a second copy of the track. They follow the channel fader and crossfader, and they clear when you load a new track.

1/8 1/4 1/2 1

Hold a roll pad and the deck stutters on that fraction of a beat. Release and the playhead jumps to where the track would have got to if the roll had never happened.

That is the whole trick: the phrase stays on the grid, so you can stutter into a drop and still land exactly on it.

Brake

Kills the motor. The track slows to a halt like a turntable losing power — the classic full stop at the end of a set or into a breakdown.

EQ

High · Mid · Low

Three knobs per deck, in two columns: A on the left, B on the right, each labelled with its deck. Centre is flat.

Turning up adds a modest boost. Turning fully down kills the band completelyrather than merely cutting it — which is what makes the classic bass-swap possible: dropLow A to nothing as you bring Low B up, and the two tracks never fight over the same low end.

Double-tap any EQ knob to return it to flat.

Channel faders and meters

Line faders

One per deck, flanking the meters. These are independent of the crossfader and multiply with it, exactly as on a real mixer — pull a line fader down and that deck is silent wherever the crossfader happens to sit.

No double-tap reset on these two. There is no “correct” volume to snap back to, so it would only ever be a way to lose your level by accident.

Meters

Per-deck level, amber for A and cyan for B. Keep them out of the top segments so the master limiter has room to work.

Headphone cueing

How you listen to the next track before the room does — the thing that makes it possible to find the beat and set up a mix in advance.

Cue A

Routes that deck to your headphones. It works with the channel fader all the way down, which is the entire point — you can beatmatch a track that is completely silent to the room.

You hear the deck’s full channel: EQ, filter and effects included, so what you audition is what will arrive.

You need a headphone splitter

Browsers cannot reliably send audio to a second output device, so Azimuth splits the single output instead: your master goes to the left ear, the cued deck to the right. A cheap 3.5 mm splitter, headphones in one side and speakers in the other, and you have proper monitoring. The Split L/R chip appears in the top bar whenever this is active.

Nothing cued, nothing changes

The split only engages while a deck is actually cued. With both cue buttons off your output stays full stereo, so leaving it armed can never quietly collapse your mix to mono.

The spatial field

The part no other DJ tool has. Each deck sits at a position in the space around your head, not merely somewhere between two speakers.

Radar

You are the mark in the middle, facing up. Each deck is a coloured dot. Drag a dot to move that deck — the angle sets the direction the sound comes from, the distance from the centre sets how far away it feels.

You grab whichever dot is nearer your finger. Drag it past the outer ring and the deck sits well behind you.

The dashed ring in the middle is a snap zone: release inside it and the deck returns to dead ahead and close, which is plain, neutral stereo. Getting back to normal is a jab at the centre rather than a hunt for one exact pixel.

Spatial transition

An eight-bar move, and the signature trick. The outgoing deck spirals away and round behind you while the incoming one swings out the other side and settles dead ahead, with the crossfader riding along. A crossfade in three dimensions rather than one.

It starts on the beat. Press it anywhere in the bar and nothing moves until the outgoing deck's next beat, so the handover lands with the record. Eight bars means eight bars of that deck's tempo, and it stretches with the pitch fader rather than drifting away from it.

Both decks set off from wherever you last put them and the crossfader carries on from where it is, so the move fits the mix you already have rather than resetting it. It always hands over away from the side the crossfader is currently favouring.

Nothing about it is locked. Every control it drives is still yours while it runs. Grab the crossfader, drag a deck on the radar, change an orbit, or press the button again, and it steps aside on the spot and leaves everything exactly where it had got to. The button counts the bars down as it goes, so you can see how much of the move is left before you decide.

Shapes

The menu above the button picks the route the decks take. Every shape ends in the same two places, so they are interchangeable mid-set: the outgoing deck finishes behind you and well back, the incoming one dead ahead and close. What changes is the journey.

Sweep behindThe default. The outgoing deck spirals away behind you as the incoming one swings out the other side.
OverheadThe outgoing deck lifts over the top of your head on its way back. The one move that leaves the horizontal plane.
Dive throughFour bars. The outgoing deck passes right by your head before dropping away, and the level holds up until late.
Swap sidesThe two decks cross in front of you and trade sides. The most legible of them on a busy mix.
Spiral outThe outgoing deck takes a full extra lap around you, widening as it goes.
Slow driftSixteen bars, barely any detour, a straight fader. For a blend nobody is meant to notice.

Picking a shape also sets the length it was drawn for. The b button beside it overrides that, from four bars up to thirty-two.

The radar is a plan view, so Overhead looks like it is barely moving there while the sound goes clean over your head. That one is worth hearing before you judge it.

Wear headphones

Positioning is binaural — it works by recreating the tiny timing and tonal differences between your two ears. Over speakers most of that collapses. On headphones a track genuinely sounds like it is behind and to your left.

Crossfader

A — B

Deck A at the left, deck B at the right, both at once in the middle. Slide between them to make the mix.

Double-tap to snap back to the centre.

It multiplies with the line faders rather than overriding them. If a deck is silent with the crossfader hard over to its side, check that channel’s line fader first.

Keyboard

QPlay / pause deck A
PPlay / pause deck B
VScratch deck A backwards
BScratch deck A forwards
NScratch deck B backwards
MScratch deck B forwards

Every knob and fader also takes the keyboard once focused: ↑ ↓ to move it, Shift for a finer step on faders, and Home to reset anything that has a home position.

A controller

Every on-screen control is already a plain command underneath, so a controller is just another thing that sends them. Nothing a mapping can do is beyond what a mouse can do.

Learn

Open ⌨ MIDI, allow access, then tap Learn beside an action and move the knob or hit the pad you want on it. It binds on the way down, so a pad learns from its press rather than its release.

Mappings are saved in this browser and come back next time. ⇅ reverses a fader or knob that runs the wrong way; ✕ forgets one binding, Clear all forgets the lot.

What can be mapped

Transport, cue, sync, key lock and brake; the pitch fader and a pitch-bend encoder; EQ, trim, filter, echo, spin, reverb and the channel fader; beat loops, rolls, loop in/out and ÷2/×2; the four hot cues and the four chop pads; spatial angle, distance and the transition between decks, which the same pad cancels on a second press; crossfader, curve, master and record.

No default map ships. Controllers disagree about note numbers, CC numbers and channels badly enough that a guessed mapping is worse than none.

Chrome, Edge and Opera only. Web MIDI does not exist in Safari or Firefox, and there is no polyfill worth shipping — the panel says so rather than failing quietly. Lights and motorised faders do not light up yet either: sending state back to a controller needs a device profile, not a learned map.

Limits, honestly

Things that will surprise you if nobody says them first.

Reloading loses everything. Tracks, cue points, loops and knob positions are held in memory only. There is no saved session yet, so do not refresh mid-set.

The beat grid assumes beat one at 0:00. It is a constant-tempo grid, not an analysed one. Accurate for most electronic music, wrong for anything with an intro pickup, a live drummer, or tempo drift. Sync gets you close; your ears and the platter finish it.

Tempo detection fails on some tracks. When the BPM reads as a dash, sync, beat loops and the beat grid are unavailable for that deck. You can still mix it by ear with the pitch fader.

Two loaded tracks use real memory. Roughly 42 MB per deck for a 4-minute track, held as Int16 in the audio worklet. A browser tab’s budget is far smaller than your machine’s RAM, and phones are stricter still — if things get unstable, load shorter files.

Lossless recording stops at 20 minutes. The compressed format is the default and has no such limit. The lossless path holds raw audio in memory, where an hour would be over a gigabyte and would take the tab down with it.

Nothing is uploaded, ever. Files are decoded in your browser and never leave the machine. The crate caches them locally so they survive a reload, but it is still local storage, not a cloud library — clear this browser’s site data and it is gone.

The crate has a ceiling. Roughly 300 MB of cached audio — enough for a real set list, not an entire collection. Go past it and the oldest imports are dropped first to make room, quietly and without asking.

Azimuth · Spatial music tools.Open Azimuth Decks