DJ Waveforms

A DJ-style performance layer for Ableton Live: moving waveforms, deck transport, hot cues, loops, a track library, a mixer, and MIDI + keyboard control - all speaking to Live in real time.

What it is

DJ Waveforms turns the audio tracks of an Ableton Live set into DJ decks. Each deck shows a scrolling, beat-aligned waveform of the clip playing (or parked) on that track, coloured by frequency content: red for bass, green for mids, blue for treble. You play, pause, cue, loop, jump, and nudge each deck; the app applies everything to Live itself, so what you hear always comes from Live's own audio engine.

Because Live is the engine, the classic hard problems of DJ software simply do not exist here: every warped clip follows the one project tempo, so decks are always in sync by construction, and EQ, filters, effects, routing, and recording are all whatever you build in Live. DJ Waveforms adds the performance surface Live is missing.

Everything is Live underneath. The app never processes audio and never replaces anything in Live - it reads positions, tempo and levels, and sends the same launch, seek and mixer commands you could perform in Live by hand. Close the app mid-set and Live keeps playing exactly as it was.

Requirements

The app is local-only: it talks to Live on your machine and is never reachable from the network. No internet is needed at a gig (see License - activation needs the internet once).

First run and setup

  1. Launch DJ Waveforms. The window opens immediately, even if Live is not running, and shows "Waiting for Live...".
  2. Install the bridge (first time only). If the Remote Script is not installed, after a few seconds the center of the window offers an Install Remote Script button (also available in Settings under "Live connection"). Click it - the app copies the AbletonJS script into Live's User Library Remote Scripts folder.
  3. Enable it in Live (first time only). In Live: Preferences > Link/Tempo/MIDI, set any free Control Surface slot to AbletonJS, and leave its Input and Output on None - it talks to Live over its own connection, not over MIDI. Then restart Live. This step is manual because Live has no way to automate it.
  4. Open your Live set. The app connects automatically - the status pill turns green ("live") and your audio tracks appear as decks.

From then on, launching the app while Live runs (or starting Live while the app runs) connects on its own. Keyboard shortcuts work out of the box: the first run installs an editable "Keyboard shortcuts" mapping with Serato-style defaults (see Keyboard shortcuts).

Where the script goes

OSLocation
macOS~/Music/Ableton/User Library/Remote Scripts/AbletonJS
WindowsDocuments\Ableton\User Library\Remote Scripts\AbletonJS (OneDrive-redirected Documents is detected)
Moved your User Library? The installer probes the default locations. If your Ableton User Library lives somewhere else (an external drive, for example), copy the installed AbletonJS folder into your real Remote Scripts folder by hand - the app only needs it to be where Live looks.
Windows only: the installer also patches the script with a reconnect fix (without it, relaunching the app while Live runs could show "No Signal" for 15-30 seconds). If the app updates this script later it will ask you to restart Live once: "Ableton bridge script updated - please restart Ableton Live to apply the connection fix."
Leave Live's MIDI "Remote" off. DJ Waveforms drives Live through the AbletonJS connection above, never through Live's MIDI - so you do not need the Remote switch on for any MIDI port. Leaving Remote on for a virtual or loopback port (for example the macOS IAC Driver) lets any MIDI mappings already saved in a set fire on their own, which can make clips launch and then instantly stop. If that happens: in Preferences > Link/Tempo/MIDI turn Remote off for ports you are not deliberately mapping in Live, and clear the set's stray mappings with Cmd+M (Live's MIDI Map mode). Mapping a hardware controller to DJ Waveforms is separate and does not use Live's Remote at all.

Your Live set

DJ Waveforms does not need a special project. It works with any Live set - your usual template, racks, groups, sends and routing all stay exactly as they are. The app reads whatever set is open in Live and builds its interface from it:

Your set is never modified. To play a track on a deck the app makes a temporary copy of that clip on the deck's own track and cleans it up as you work; start markers moved for launching are restored when a deck stops, swaps tracks, or the app quits. It only ever deletes copies it made itself and never the last copy of a song - your own clips, racks and library stay untouched, and the set on disk stays exactly yours.

The interface

Top to bottom: the header (tempo, snap, and the icon row), the deck area (sidebar rail + waveform lanes, with the optional mixer column between them), the optional library drawer at the bottom, and the status bar.

Header

Hovering any control shows a short grey hint in the status bar instead of a tooltip.

Each deck

Status bar

Transport and the launch model

Everything transport-related is quantized to the SNAP grid, exactly like launching clips in Live. Understanding this makes the app predictable:

A deck that arms but never starts usually means the Live track is deactivated (greyed out in Live). Live silently ignores launches on deactivated tracks; the app warns: "<deck> did not start - is its track enabled in Live?"

Waveform control

GestureEffect
Drag the waveformGrab: carry the wave to a new position. On release the target bar is grid-snapped and the deck relocates (quantized while playing, instant while parked).
Hold Shift while draggingNudge: phase-shift a playing deck by hand, unquantized and fine-grained - the vinyl-style way to beat-match by ear (momentary: the next grid-snapped action re-asserts the grid; to fix a wrong grid permanently, use the grid editor). On a parked deck this places the cue exactly, without snapping. Also mappable per deck (MIDI/keyboard: "Nudge").
Right-click and drag up/down on the waveformResize the waveform height (all decks follow).
Drag the overview stripScrub through the whole track; hold Shift for fine sensitivity (works mid-drag). Right-click the overview to flip every minimap to the colour-map (Flat) look - track colour with the cue sections inked - so you can read a section-coloured overview off your cues while the main waveforms stay on any style. Right-click again to return them to the current style.
Mouse wheel, or + / -Zoom the waveform. Remembered across reloads.
Drag the deck-size divider (above the master bar, library open)Step deck size XL / Large / Medium / Small (XL adds a fourth mixer knob row and a taller lane; Medium drops the pads, Small condenses to name/BPM plus a compact Play/Stop + overview + key strip).
Drag the window's bottom edge (library hidden)Step the decks through the same S / M / L / XL sizes - the window snaps to the size you see when you let go.

Hot cues

Eight hot cues per track, in the pad grid's Cue mode and as chips on the waveform.

Serato cues

Hot cues that Serato wrote into your files' tags are imported automatically, read-only: they appear with their Serato colours, can be hidden (the file is never modified), and shift-clicking the pad-mode button resets pads to the Serato originals.

Persistence

Cues, names, colours, and section fills are saved per audio file, keyed by an audio fingerprint - so they survive app restarts, file moves and renames, and re-warping. They are stored by the app (see Your data), never in the audio file and never in the Live set.

With the setting "Load to the first cue point" on (default), a freshly loaded track parks at its first cue, ready to launch from there. A track with no cues (or with the setting off) parks on the first bar of its beatgrid - never between grid lines, so a quantized launch always lands on the beat. A full stop returns the deck to the same spot. Unwarped tracks park at their very beginning (they have no grid).

Loops and beat jump

Loop pads

Jump pads

The "Visually Repeat short loops" setting tiles a looping clip across the whole lane so short loops read like a continuous wave; turning it off draws the loop once.

Loop roll (slip)

A mappable "Loop roll" action per deck (map it to a controller pad or a key - it is not in the default map). Hold it to loop the current N bars in place (the bar size is set on the binding); release and the playhead jumps ahead to where the track would be if it had played straight through, then continues - a momentary roll that lands back in phase. Best on a pad in Hold mode.

Beatgrid tools

Everything in the app - launches, loops, jumps, sync - quantizes to the clip's warp grid in Live. When that grid is wrong, DJing falls apart. The Grid tools fix grids from inside the app, writing Live's own warp markers, so a track gridded once stays right everywhere.

The Grid button appears only when the updated Remote Script is installed (Settings > Remote Script > Install/Update, then restart Live). Without it the rest of the app works as before and the grid editor stays hidden.

The grid editor

Press Grid next to a deck's transport buttons (beside Snap) to open the grid editor; press it again to close. While it is open the waveform draws the grid as gold bar lines with bar numbers plus thin beat ticks, and every change redraws them instantly. Edits save as they happen - closing the editor by any route keeps them; only Cancel restores what you started with.

Fixing a track takes a drag and two taps:

  1. Drag the wave until a clear kick sits exactly under the playhead. In the editor a drag moves the deck freely - no snapping; hold Shift for extra-fine motion.
  2. Tap 1.1.1 - that kick becomes bar 1, beat 1, and the lines re-seat around it immediately.
  3. If the tempo is off, set the BPM (below). Then jump near the end of the track and check the far kicks still sit on the lines. If they drift, park the playhead exactly on a clear far kick and tap Align - the app counts the whole beats back to your downbeat and derives the exact BPM from the distance (a vinyl rip lands on its true 128.0913 in one tap; the downbeat never moves). The Shift BPM drag (below) does the same thing as a manual fine dial. If the tempo started far off, align once mid-track first, then again at the end.
  4. Press OK to close, or Cancel to put the grid back the way the editor found it.

The 8 pads:

Playing deck: the glide

On a playing deck, dragging the wave in the editor becomes a smooth glide - the audio bends like a turntable pitch-bend while the beat clock stays locked, so you align it by ear against the other deck exactly like beatmatching. Release, and once the ramp plays through, the correction is written into the grid permanently. Beatmatching becomes grid repair. (The BPM and 1.1.1 pads want a parked deck - pause first, or use the glide.)

Checking grids from the Library (Analyze)

The Library's Analyze button checks beatgrids as part of its normal pass: for each track it caches the waveform and detects the file's BPM and downbeat from the audio, then cross-checks three sources - the detection, the file's BPM tag, and Live's current grid. Select rows first to analyze just those (the button reads "Analyze 12"); with nothing selected it runs over the whole library. Nothing changes during the run:

Unwarped tracks on a deck

A track playing unwarped shows itself honestly: time readouts count real seconds, BPM reads "-" (it plays at its natural tempo), and the wave draws no beat grid. The needle still goes wherever you put it: drag the wave or scrub the minimap to park or relocate, tap cues to jump, pause and resume exactly where it froze - every placement is exact, because there is no grid to snap to. Launch timing follows the SNAP setting like any other deck, and relocating a playing unwarped track retriggers it at the new spot. The clip itself is never touched: the app will not warp it, and everything is restored when the deck stops or unloads. What an unwarped track cannot do is beat-based work - beat jumps, loops, hand-nudge, and the grid editor need a warped clip, so they are dimmed with a hint. To make the track mixable, drop it from the library again and pick Warp + beatgrid.

Saved grids: never grid a track twice

Every grid edit saves the grid under the file's audio fingerprint - the same identity hot cues use. Live keeps its own per-file analysis cache (.asd), so re-adding a file can bring an old grid back; when that happens the BPM pad shows the mismatch and double-clicking Undo restores your saved grid. The set itself only changes when you act - the app never rewrites a grid on its own.

Grid changes go into Live's undo history as regular edits, and the previous grids are kept per file (the Undo pad steps back through them). Save your Live set to keep applied grids.

Library

The library (header icon, or B) lists every audio clip in your Live set as a track list, independent of which deck it is on.

Mixer

The mixer column (header icon; on by default) shows a channel strip per deck plus a master bar. It controls Live's mixer and your racks - it adds no processing of its own. Build the sound in Live; perform it here.

Faders and meters

Knobs

Snapshots

Snapshots capture the position of every knob on a deck - visible and hidden slots alike - and the master bar knobs (see "Snapshots include master knobs" below), and bring them back on demand: instantly, on the beat, or as a slow sweep. They live in a second pad row under the Cue / Jump / Loop pads, shown at the XL deck size (the row lines up with the fourth knob row). At the L deck size a SNAP button at the right end of the transport row swaps the pad section for the snapshot pads and MORPH; the same button (now reading CUE, in the same spot) swaps back. The coloured pads are snapshots; the small knob on the right is MORPH.

Master bar

Headphone cue (PFL)

Each deck's headphones button in the rail solos that track as a pre-listen. This uses Live's Solo-in-place as PFL and requires Live's mixer to be in Cue mode (the option next to the master track); in plain Solo mode the app hides the headphone buttons.

Resize grips

Below the knobs, drag to expose more or fewer knobs; on the fader, drag to lengthen the fader/VU or switch mono/stereo metering.

Waveform styles

Keyboard shortcuts

Keyboard control is a virtual device ("Keyboard", shown in blue) inside the same mapping system as MIDI. A default Serato-style map is installed and enabled on first run, fully editable.

Typing is always safe. Shortcuts never fire while you are typing in any text field (search, rename, settings), while the mapping Manager is open, or when the Keyboard device is switched off. Esc and bare Delete are reserved by the app and cannot be bound; Space is deliberately left unbound.

Default map

Deck 1 lives on the upper letter row, deck 2 on the home row, deck 3 (partial) on the bottom row. Keys are physical positions (US layout); on macOS Alt is Option.

ActionDeck 1Deck 2Deck 3
Play / pauseWSX
StopShift+WShift+SShift+X
Previous / next trackAlt+Q / Alt+WAlt+A / Alt+SAlt+Z / Alt+X
Hot cues 1-51-56-0-
Clear hot cue 1-5Ctrl+Shift+1-5Ctrl+Shift+6-0-
Autoloop 1/2/4/8/16 barsAlt+1-5Alt+6-0-
Loop on/off (4 bars)['-
Loop halve / doubleO / PK / L-
Beat jump back / forward (4 bars)Alt+E / Alt+RAlt+D / Alt+F-
Nudge back / forward (hold)T / YG / H-
Library and globalKeys
Select previous / next rowUp / Down
Page up / downPgUp / PgDn
Load selected row to deck 1 / 2 / 3Shift+Left / Shift+Right / Shift+Down
Show / hide the libraryB
Record (arm Arrangement recording + Automation Arm)Ctrl+N
Tempo up / down 0.1 BPMShift+= / Shift+-
Zoom waveform (app built-in)+ / -
Cancel pending quantized action (app built-in)Esc

Holding a key auto-repeats where it makes sense (beat jump, loop halve/double, library navigation, nudge, tempo) and never for hot cues.

Remapping

Click the header Mapping icon, switch the floating pill to Keyboard (blue), click any highlighted control on screen, then press the chord you want. Press again to confirm a conflict; Delete clears a binding. The Manager button opens the full bindings table with every action (including ones with no on-screen control), where key chips can be edited per action and per size (the 1-bar and 2-bar loop pads are separate bindings). Keys can also drive knob targets in step / set / toggle modes (as percentages of the control's travel), and encoder targets - the BPM readout, the DECKS count, library scroll, nudge - as step keys: each press steps the value up or down (pick the direction in the Behavior column), and holding the key repeats. Deleting the "Keyboard shortcuts" map and re-enabling the device re-seeds the defaults.

MIDI controllers

Any class-compliant MIDI controller can drive the app. The MIDI engine runs in the background, so mappings keep working even with the window behind Live.

Mapping a controller

  1. Connect the controller and click the header Mapping icon. Mapping mode highlights every mappable control: unmapped = outlined ring, mapped = solid gold with a label.
  2. Click a control on screen, then touch the hardware control you want to bind. Learn auto-detects the control type: button, absolute knob/fader, or relative encoder (all three common encodings).
  3. Shift+click binds the shift layer - one global shift control (bind any button to "Shift") gives every other control a second function.
  4. Done or Esc leaves mapping mode. Clicking controls in mapping mode never actuates them - you cannot accidentally fire a deck while mapping.

The Manager

The Manager (button on the mapping pill) holds everything else: the device list (enable switch, activity blips, per-device mapping assignment), mapping files (New / Duplicate / Rename / Import / Export / Delete), the full bindings table grouped by deck/master/library/interface/global, a raw input Monitor (see exactly what a control sends), and Rescan. Built-in maps are read-only; Duplicate one to edit it.

Behaviors worth knowing

Map files

One file per controller, human-readable and shareable, in the midi-maps folder of the app's data folder (see Your data). Import/Export in the Manager moves single files - the easy way to share a mapping with a friend or move it to another computer. The built-in "Example - 2 deck starter" doubles as a starting point.

Settings reference

Settings opens as a sidebar on the right, running from just under the header to the status bar - the decks and library make room for it, and it stays open while you work (adjust the style and watch the decks respond live). The cog closes it again. Under the Settings title is a menu of sections - Global Settings, Mixer, Style, Updates, License, and Diagnostics. Click a section name to open it; opening one closes the others, and clicking the open name closes it again. Global Settings is open the first time; after that, the section you had open is remembered. How many decks are shown is set with the DECKS readout in the header (see The interface).

SettingDefaultWhat it does
Do not load to a playing deckoffBlocks any load (drag, right-click, MIDI, keyboard) aimed at a deck that is playing.
Load to the first cue pointonA loaded track parks at its first hot cue. With it off (or no cues) it parks on the first bar of the beatgrid, so a quantized launch stays on the grid; unwarped tracks park at their beginning.
Warp in Complex ProonTracks the app warps (grid fixes, the drop's Warp + beatgrid choice) get Live's Complex Pro mode. Loops are never changed; the right-click "Warp in Complex Pro" action always applies.
Visually Repeat short loopsonTiles a looping clip across the whole lane instead of showing it once.
Show status baronThe bottom bar. Hiding it gives the waveforms the extra height.
Show hints in status baronGrey hover hints. Errors and warnings always show.
Render qualityAutoAuto adapts waveform sharpness and frame rate to your machine so scrolling stays smooth - on an older laptop it briefly softens the picture instead of stuttering. Full pins maximum sharpness. Balanced pins standard sharpness at the full frame rate - the best pick on battery, where maximum sharpness can micro-stutter while the graphics chip runs at reduced clocks. Reduced pins the lightest 30 fps mode (very weak hardware). The setting's description shows what is active right now.
Show performance overlayoffA small readout in the top-right of the waveform area: frame rate and frame-time consistency (with a bar strip - green bars mean on-cadence frames), render cost, the active quality level, and Live tick timing. Turn it on when scrolling feels off; the same numbers ride the diagnostics report.
Live connection-Remote Script status and Install/Reinstall. Hidden once Live is connected.
Mixer: Deck knobs9Maximum macro knobs per deck strip (the layout and grip decide how many show).
Mixer: Master knobs-Assignable knobs on the master bar (master rack or return racks).
Mixer: Master bar below libraryonMaster bar under the library panel; off places it between decks and library.
Mixer: Snapshots include master knobsonKnob snapshots also save and recall the master bar knobs (never volume, cue or crossfader). Off keeps snapshots strictly per-deck.
Mixer: Master clip warningonThe whole master meter turns red while the level is past 0 dB. Off keeps only the top segments red.
Style + EditRainbowWaveform preset picker and the style editor.
LicenseTrialActivate a license key, or Deactivate this computer (see License and trial). Shows your email and masked key when licensed.
Updates: Check for updatesonWatch for a newer version and show an "Update Available" link in the status bar. Turn off to keep the app quiet about new versions - a Check now button appears instead, for checking by hand.
Updates: Status-Shows a Download link when a newer version is available (see Updates).
Diagnostics: Copy report / Save full log-Anonymized report for troubleshooting (see Troubleshooting).
Diagnostics: Clear analysis cache-Wipes computed waveforms; tracks re-analyze on next load. Cues and library are kept.
Diagnostics: Reset all settings-The last entry in Diagnostics. Restores style, layout, toggles, and window to defaults. Keeps your library, hot cues, and loops.

License and trial

DJ Waveforms is a one-time purchase with a free trial. The trial is the complete app - every deck, the mixer, the library, MIDI and keyboard control, and all waveform styles. The only limit: after 15 minutes of continuous playback, playback pauses once. A small "playback pauses in 60 seconds" note appears a minute before, and the counter resets whenever every deck is stopped - so stopping between songs keeps it out of your way. Press play to carry on after a pause; nothing is lost.

Buying and activating

  1. Buy from the product page - the Purchase a license button in Settings > License. Your license key arrives by email and on the receipt.
  2. Open Settings > License, paste the key, and click Activate. The TRIAL badge in the status bar disappears within a second or two - no restart needed.
Activation needs the internet once. After that the app caches your license and works fully offline, forever. A dropped connection, dead venue wifi, or the license server being down never locks you out and never interrupts a set.

Moving between computers

A license activates on up to 3 computers. To move it, open Settings > License on a machine you no longer need and click Deactivate (that frees a slot), then Activate on the new machine. If you run out of slots - for example after reinstalling the operating system a few times - contact support to raise the limit or clear an old machine.

If you copy your license file to another computer, or simply rename your computer, the app keeps working and quietly re-checks itself the next time it is online. You are never dropped in the middle of a set over a licensing check.

Refunds

14-day, no-questions refunds. A refunded key is disabled and the app returns to the trial the next time it checks in with the license server - never mid-set.

Updates

Updates are free through version 1.x. With Check for updates on (the default), the app watches about once a day for a newer public release. When one is available, Settings > Updates shows the new version with a Download link, and an Update Available link appears in the status bar just left of the version - click either to open the download page. Install the new version over the old app; your hot cues, library, and settings are all kept. Turn Check for updates off to keep the app quiet about new versions - a Check now button appears in its place, so you can still check by hand when you choose; the result (and a Download link, if there is one) shows right there in the Status row without lighting up the status bar.

You choose when to update. This is a notice, not an automatic update. The download is the same for everyone, so you can always get the current version straight from djwaveforms.com - your license key is what removes the trial gate, and it stays on your purchase receipt.

The app window

Your data and where it lives

All persistent data lives in one per-user folder, outside any cloud-synced directory:

OSData folder
macOS~/Library/Application Support/DJWaveforms
Windows%APPDATA%\DJWaveforms
FileContentsSafe to delete?
cues.jsonHot cues, names, colours, section fills - keyed by audio fingerprintNo - this is your performance data
grids.jsonSaved beatgrids per track (confirmed grids, proposals, undo history) - keyed by audio fingerprintNo - your grid work lives here
library.jsonLibrary edits and your custom track orderNo - user data
midi-maps/Your mapping files (including the editable keyboard map)Only if you can re-map; keyboard defaults re-seed
mixer.json, midi.jsonMixer knob mappings; MIDI device enables/assignmentsYes - remaps and enables are lost
license.jsonYour license key, activation, and machine bindingYes - the app returns to the trial and you re-enter your key
window.json, cuemode.jsonWindow bounds; last detected Solo/Cue modeYes - recreated
analysis/Waveform analysis cache (bounded, self-pruning)Yes - same as "Clear analysis cache"
server.log, diagnostics.log, diag-*.json, server.lockLogs, diagnostics history, housekeepingYes

Every data file keeps a .bak last-good sibling and is written crash-safe, so a crash mid-write cannot corrupt it.

Back up two files to keep everything that matters: cues.json and library.json. "Reset all settings" never touches them.

Troubleshooting

"Waiting for Live" never connects

  1. Is Live running with a set open?
  2. Is AbletonJS set as a Control Surface in Live > Preferences > Link/Tempo/MIDI? (Settings > Live connection shows whether the script is installed; the status pill reads "no signal" while Live is missing.)
  3. Did you restart Live after installing/enabling the script?
  4. If the script was installed but Live still never appears: your Ableton User Library may be in a custom location, so the script was copied where Live never looks. Copy the AbletonJS folder into your actual User Library/Remote Scripts (see First run).

"No signal" while Live is clearly running

A deck arms (fill rises) but never starts

The Live track is deactivated - Live ignores launches on deactivated tracks. Re-enable the track in Live (the app shows a warning naming the deck).

Clips launch then instantly stop (some tracks, not others)

This is almost always a stray MIDI mapping saved inside that Live set, not the app or the file. A track control mapped to "fire scene" or "stop" gets triggered by MIDI arriving on a virtual/loopback port (commonly the macOS IAC Driver) with Live's Remote switch left on - so the clip starts and is stopped again a beat later. Tracks without such a mapping play fine, which is the tell. Fix it in Live: Preferences > Link/Tempo/MIDI, turn Remote off for ports you are not deliberately mapping; then clear the set's mappings with Cmd+M (select the affected track, delete its entries) and save. DJ Waveforms never needs Live's Remote (see First run).

Loading a track is slow the first time

First load of a file decodes and analyzes the audio (a second or two for long lossless files); results are cached, so every later load is instant. Use the library's Analyze button to pre-cache the whole set (and check every beatgrid) before a gig. Analysis runs in the background and never interrupts playing decks.

The waveform looks wrong / out of date

Waveforms look soft/blurry after moving the window to another display

Displays with different pixel densities can leave the picture at the old scale. Resize the window slightly (or quit and relaunch the app) after moving between displays.

Waveforms look softer than usual, or scrolling stutters

Render quality is set to Auto by default: on a machine that cannot keep scrolling smooth (older laptops, no GPU acceleration, battery saver) it reduces waveform sharpness and, if needed, frame rate instead of stuttering - and steps back up when there is headroom. Settings > Render quality shows what is active right now; pick Full to force maximum sharpness. If scrolling still stutters on Full, your machine cannot keep up at that quality - switch back to Auto. On a laptop running on battery, try Balanced: power saving lowers the graphics clocks, and maximum sharpness can then micro-stutter even though the frame rate looks fine. Turn on Settings > Show performance overlay to watch the live frame timing while you test: steady green bars mean frames are on cadence (the wobble is elsewhere), amber/red bars mean dropped frames. The diagnostics report (Settings > Diagnostics > Copy report) includes the same measurements and whether your system is rendering without GPU acceleration.

After laptop sleep the decks look stale

Quit and relaunch the app to resync with Live.

Keyboard shortcuts do nothing

MIDI controller not responding

Headphone cue buttons are missing

Live's mixer is in Solo mode. Switch Live to Cue mode (the Solo/Cue toggle by the master track) and the buttons return.

Sending a useful bug report

  1. Settings > Diagnostics > Copy report - a short, anonymized summary of the session (connection handshake, startup timeline, analysis timing). Paste it into your report.
  2. For deeper issues, Save full log attaches the complete diagnostics log (also anonymized). Both are always on - nothing to enable, nothing to reproduce twice.