A free, open-source Digital Audio Workstation for Windows, macOS, and Linux
Built with Qt 6 for the UI and Tracktion Engine (JUCE) for the audio backend. Audio and MIDI tracks, a built-in piano roll, sheet music notation, a destructive audio clip editor, VST3 instrument support, bus routing, track automation, audio export, 8 built-in effects, 12 colour themes, a live looper that records your performance to the timeline, an AI assistant powered by Claude — all free and open source.
An orchestral sketch composed by the AI assistant: arrangement, mixer, and the assistant's notes on what it wrote
Grab the latest release from the Releases page:
| Download | Platform | Description |
|---|---|---|
| OpenDaw-vx.x.x-setup.exe | Windows | Installer with Start Menu shortcut and uninstaller |
| OpenDaw-vx.x.x-portable.zip | Windows | Portable build — unzip and run, no installation needed |
| OpenDaw-vx.x.x-mac.dmg | macOS | Disk image — open and drag to Applications |
| OpenDaw-vx.x.x-linux-x86_64.AppImage | Linux | AppImage — chmod +x and run, no installation needed |
Pick a look from Edit > Theme. The whole window restyles instantly — no restart, and your project, playback and undo history carry on. Your choice is remembered.
| Theme | Look |
|---|---|
| Studio Graphite | Neutral graphite with a blue accent (default) |
| Nebula Station | Sci-fi: cold blue-grey panels, teal accent, cyan readouts |
| Conservatory | Light and friendly: cream panels, walnut readouts, brass accent |
| Code Rain | Green-on-black terminal style |
| Midnight Amber | Navy with amber lamps |
| Synthwave | Deep purple with neon magenta and cyan |
| Arctic Daylight | Light and cool, with a clean blue accent |
| Vintage Console | Warm brown analogue desk with teal readouts |
| Ember | Charcoal with a red-orange glow |
| Forest Canopy | Moss greens and bark browns |
| Slate Dusk | Soft slate with peach and pastels |
| High Contrast | Black, white and yellow, for legibility |
Each theme has its own 12-colour track palette. Tracks remember a palette slot rather than a fixed colour, so they recolour with the theme.
- Starts with 4 audio tracks by default
- Every track gets a colour from the current theme's palette, shown on its header strip, its clips and its mixer strip; change it with right-click > Track Colour
- Clips are drawn in their track's colour with a title bar showing the clip name
- Multi-track audio and MIDI arrangement with horizontal scrolling
- Drag-and-drop audio files (
.wav,.mp3,.flac,.ogg,.aiff) and MIDI files (.mid,.midi) from the built-in file browser onto any track - Waveform display on audio clips; note preview on MIDI clips
- Move clips by dragging -- snaps to the grid horizontally and locks to track lanes vertically
- Move clips between tracks by dragging up/down
- Split clips at the playhead (S key or toolbar button)
- Delete selected clips (Delete / Backspace)
- Non-destructive clip fades — drag fade-in and fade-out handles at the top corners of any audio clip
- Clip copy/paste — Ctrl+C / Ctrl+X / Ctrl+V to copy, cut, and paste clips at the playhead position
- User-assignable clip colors — right-click any clip > Set Color to pick a custom color
- Clip context menu: Edit in Piano Roll, Quantize, Duplicate, Set Color, Delete
- Timeline context menu: Add Audio Track, Add MIDI Track, Create Empty MIDI Clip, Remove Track
- Grid snapping: Off, Bar, 1/2, 1/4, 1/8, 1/16 or 1/32 (the Grid setting in the transport bar)
- Horizontal and vertical zoom (Ctrl+= / Ctrl+-)
- Ctrl+drag the right edge of a clip to loop it (non-destructive clip looping); clips dropped from the browser loop when you drag their edge
- Freeze tracks to reduce CPU load; bounce MIDI tracks to audio via the track context menu
- Animated playhead cursor that tracks playback in real time
Pick a tool in the toolbar, under Edit > Edit Tool, or with the keys 1–5 while the timeline has focus:
| Tool | Key | What it does |
|---|---|---|
| Smart | 1 | Move clips; drag the lower part of either edge to trim; drag the top corners for fades; drag the dB readout in an audio clip's title bar for clip gain (double-click resets it); Alt+drag to slip the audio inside the clip; drag empty space on an audio track to select a time range |
| Range | 2 | Drag across one or more tracks, over clips too, to select a time range; click to place the playhead |
| Razor | 3 | Click a clip to cut it there; Shift+click cuts every track at that point |
| Pen | 4 | Drag on a MIDI track to draw a clip |
| Eraser | 5 | Click a clip to delete it |
- Time selections span tracks: Delete removes what's inside, Shift+Delete ripple-deletes it (later clips move left), S splits every selected track at both edges, Ctrl+C / Ctrl+X / Ctrl+V copy, cut and paste the range (pasting at the playhead replaces what's there), and right-click loops it or makes it the punch range
- Ripple editing (toolbar button, or Edit > Edit Tool > Ripple Editing): deleting clips or a range closes the gap on those tracks
- Crossfades: clips crossfade automatically where they overlap on a track. Right-click an audio clip for Fade Shape (linear, fast, slow, S-curve) and to turn its crossfading off
- Clip gain: each audio clip has its own gain, shown in its title bar and in the height of its waveform
- Nudge: Alt+Left / Alt+Right moves the selected clips one grid step (add Shift for a quarter step), or the time selection when no clips are selected
- Edit > Select Clips After Playhead (Ctrl+Shift+End)
- A clip that doesn't loop stops where its audio file ends, so trimming never pulls in silence
- Arm a track (R), pick its input, and press Record. Each pass you record on a track is kept as a take
- While recording, the clip being recorded grows on the track with the playhead, and its waveform (or, on a MIDI track, its notes) is drawn as it comes in. When loop recording, it shows which pass you're on, with the previous pass drawn faintly ahead of the playhead
- Loop recording: with Loop on, every pass around the loop becomes a take, and the track plays the last complete one. A pass cut short by stopping is kept but isn't used
- Recording over existing audio replaces it on the track, but the old audio is kept as a take, so nothing is lost
- Take lanes: the layers button on an audio track's header shows one lane per take under the track (they open by themselves after a loop recording). The parts of each take that are playing are drawn brighter
- Comping: drag across a take lane to use that part of the take; double-click a take, or click its ✓, to use all of it. Takes join with short fades so the edits don't click. Right-click a take to delete it, or to delete the takes you aren't using
- Punch in/out: turn on Punch in the transport bar and recording happens only inside the range on the ruler, drawn in red. Its arrow sets the pre-roll (how much plays before punch-in) and post-roll (how much plays after punch-out before it stops). Punch and Loop share the ruler range, so turning one on turns the other off
- Edit > Audio Settings > Recording sets input monitoring (off, while the track is armed, or always) and a recording offset in milliseconds for lining recordings up with what you played along to
A live looper in the style of a looper pedal or looping app, built into the DAW. Build a song up loop by loop, bring parts in and drop them out, and when you stop, the whole performance is already on the timeline as ordinary clips you can edit, mix and export. Open it with View > Looper (Ctrl+L) or the pads button on the toolbar.
Performing with the looper: four loops playing in time and a fifth recording, while the timeline draws each pad's part as it happens
Press Stop and the performance is on the timeline as clips, each loop exactly where it came in and dropped out
- Pads: a grid of 8 loop pads (16 with More Pads). Click an empty pad to record, click again to close the loop, then click to stop it and start it again. The ring round each pad shows where the loop is; a blinking outline means it's waiting for the beat
- First loop sets the tempo: record the first loop freely and its length sets the project tempo (as a whole number of beats or bars). Turn it off to loop at the project tempo instead, with an optional bar of count-in and the click
- In time: taps land on the next beat, bar or loop (Start/stop on). A tap just after the beat still counts as on it. Loops after the first are whole beats, bars or loops long and play in phase with each other. Record can also stop a recording by itself after 1–16 bars
- Overdub (Shift+click, or right-click > Overdub): adds a layer to a playing loop until you click again. Undo and Redo step back and forward through the layers
- Right-click a pad to clear it, make it a one-shot (plays once, then stops) or put it in a group (A–D) so pads in the group take turns, like scenes
- Hear input plays the input through the speakers while you loop (off by default when tracks don't monitor either, since a mic near speakers howls). Recordings are lined up with what you heard, allowing for the audio device's latency and the recording offset in Audio Settings
- The performance goes on the timeline, with no need to press Record: each pad is its own track (Loop 1, Loop 2, ...; rename them like any track), and the looper runs as the transport plays forward. Whenever the transport is running and a pad is sounding, what it plays is drawn growing on its track; when you stop, it becomes clips covering exactly when each pad was playing, so the song keeps every loop coming in and dropping out. Each stop is one undo step (Ctrl+Z removes a take you don't want). A pad's track has its own fader, effects and routing, and the clips play through them like the live loops did. What you play over the loops without recording into a pad isn't included: arm a normal track and press Record for that
- Keys 1–9 and 0 tap the pads (Shift: overdub), Space plays and stops, Esc stops every loop, Ctrl+Z / Ctrl+Y undo and redo the last pad's layer
- The loops are saved with the project and come back when you open it
- Toggle automation lanes per track from the track header
- Automate any parameter: volume, pan, and all effect parameters
- Add breakpoints by double-clicking the automation lane
- Freehand drawing tool for painting automation curves
- Drag individual points or rubber-band select and move groups of points
- Drag curve segments between points to reshape them
- Automation lanes resize vertically by dragging the lane border
- Bypass automation per parameter via the lane header
- Parameter selector dropdown to switch which parameter the lane displays
- Add MIDI tracks via Edit > Add MIDI Track (Ctrl+Shift+T)
- Create empty MIDI clips or import
.mid/.midifiles by dragging them onto a track - Multi-track MIDI file import with automatic merge
- Full Piano Roll editor (docked as a tab alongside the Mixer):
- Add notes with Ctrl+click or double-click
- Move and resize notes by dragging
- Delete notes with Delete / Backspace
- Select all notes (Ctrl+A)
- Quantize notes to grid
- Velocity lane for per-note velocity editing
- CC lane for MIDI continuous controller editing (modulation, expression, sustain, etc.) with freehand and line draw tools
- Snap modes: Off, 1/4 Beat, 1/2 Beat, Beat, Bar
- Zoom in / out
- Right-click context menu: Select All, Delete Selected, Quantize, Add Note Here
- Drum names on the keys when the track plays a drum kit (Kick, Snare, Closed Hi-Hat, Crash and so on, from the General MIDI drum map), and the view opens on the kit's core range
Recorded a piano part onto one track? Split Piano Hands (AI) separates it into a right-hand (treble) and a left-hand (bass) track.
- A fixed split point always gets some notes wrong: a low melody note ends up in the bass, or a high left-hand note in the treble. Instead, Claude reads the notes in order and decides which hand played each one, from hand position, reach and voice leading — the way the part would be written across a grand staff
- Run it from the track header's right-click menu or from Edit > Split Piano Hands (AI)...
- The original track becomes " (RH)" and a new " (LH)" track is added beneath it; the split is a single undo step
- Long performances are cut at bar lines and analysed in parallel, with a progress dialog you can cancel
- Uses the same Anthropic API key as the AI assistant
- Renders MIDI clips as standard music notation in a dedicated Sheet Music tab (alongside the Mixer, Piano Roll, and other bottom panels)
- Grand staff display with treble and bass clefs, proper beam grouping, and ledger lines
- Automatic note spelling with key signature support — choose from all 15 major/minor key signatures via a toolbar dropdown
- Correctly quantizes MIDI note durations to whole, half, quarter, eighth, and sixteenth notes (with dotted variants)
- Rests are automatically inserted to fill gaps in each measure
- Measure numbers and bar lines for easy orientation
- Zoom slider to adjust the horizontal scale
- Scrollable score area with click-and-drag panning for navigating longer pieces
- Opens automatically when you double-click a MIDI clip (alongside the Piano Roll)
Sheet Music View — see your MIDI clips rendered as standard notation with key signatures and proper engraving
- Dedicated waveform editor for audio clips — double-click any audio clip to open the Audio Clip tab at the bottom
- Destructive editing with full undo/redo — edits modify the source audio file directly, with a warning banner and confirmation prompt
- Waveform display with time-based selection (click and drag to select regions)
- Snap modes: Off, Beat, Bar
- Mini transport controls: play from start, play/pause, stop, with real-time position display
- Non-destructive gain slider with normalize and bake-gain buttons
- Loop toggle, reverse toggle, and auto-tempo detection
- Selection-based editing operations:
- Cut, Copy, Paste, Delete selection
- Silence selection
- Fade in / Fade out
- Normalize selection
- Reverse selection
- Adjust volume
- Insert silence
- DC offset removal
- Swap channels / Mix to mono
- Crossfade
- Bake clip fades into the audio file
- Info bar showing BPM, beat count, duration, format (sample rate / bit depth), and file path
MIDI tracks make sound out of the box, with no plugins to install, on Windows, macOS and Linux.
- A full General MIDI sound set built in: pianos, electric pianos, organs, guitars, basses, strings, choirs, brass, woodwinds, synth leads and pads, world instruments and sound effects (all 128 General MIDI sounds plus about 150 variations), and 12 drum kits (Standard, Room, Power, Electronic, 808/909, Dance, Jazz, Brush, Orchestral and more)
- New MIDI tracks start on the Grand Piano. Click the instrument button on a MIDI track's header or mixer strip to pick another sound from the menu, grouped by family, or a VST instrument
- Follow MIDI Program Changes (in the same menu) turns the instrument into a General MIDI player: program changes in the MIDI choose each channel's sound and channel 10 plays drums, so imported General MIDI files play with their intended instruments on one track
- The AI assistant picks fitting sounds for the parts it writes (
set_track_instrument) - The sounds come from GeneralUser GS by S. Christian Collins, played by TinySoundFont
Surge XT synth. OpenDaw ships with Surge XT, the free, open-source hybrid synthesizer from the Surge Synth Team, with its 600+ factory patches, wavetables and skins. Choose Surge XT Synth in a MIDI track's instrument menu: it goes on the track and its window opens, where you browse presets by clicking the patch name (or the arrows beside it) and shape the sound. It's a regular VST3, so it also appears in the VST instrument list, and its settings are saved with the project. The AI can put it on a track too (set_track_instrument with "Surge XT").
- Scan for installed VST3 plugins (Edit > Scan VST Plugins)
- Plugin list cached to
%AppData%/OpenDaw/plugin-cache.xml - VST3 instruments — assign to MIDI tracks via a searchable selector dialog
- VST3 effects — add scanned VST3 effect plugins to any track's effect chain alongside built-in effects
- Open native plugin editor windows for full parameter control
- Instrument button on MIDI track headers and mixer channel strips (click to open editor, right-click to change instrument)
- VST3 plugin parameters are automatable via the automation lane system
- Return to Start, Stop, Play, Record, Loop, Punch and Metronome buttons
- Punch records only inside the ruler range, with pre-roll and post-roll set from its arrow (see Recording, Takes and Comping)
- Count-in before recording (1 or 2 bars, or 1 or 2 beats)
- Position counter showing bars | beats | ticks, with elapsed time (m:ss.ms) underneath
- Tempo (20-300 BPM), meter and grid in a display panel beside the counter — type a value, or scroll over it to change it
- Click the time ruler to jump the playhead (snaps to grid)
- Click and drag the ruler to scrub smoothly without snapping
- MIDI Panic (Ctrl+Shift+P) — sends all-notes-off on every channel to silence stuck notes
- Engine On/Off — suspend the audio engine to free the audio device for another app
- File > Export Audio (Ctrl+Shift+E) opens the export dialog
- Export a mix or stems: the mix as one file, a file per track, or a file per bus (tracks routed into a bus share its file; tracks going straight to Master get their own). Each stem is that track's share of the mix, including the buses and effect returns it goes through, so the stems add up to the mix. Stem file names follow a pattern such as
{project} - {name} - Range: the whole song, the loop / punch range, or the timeline's time selection
- Four export formats: WAV (uncompressed), FLAC (lossless), OGG Vorbis and MP3 (lossy)
- WAV: configurable bit depth (16 / 24 / 32-bit float)
- FLAC: configurable bit depth (16 / 24)
- OGG: configurable quality (0-10); MP3: 128 to 320 kbps
- Sample rate: 44.1 / 48 / 88.2 / 96 kHz
- Dither for 16-bit WAV and FLAC
- Include Master effects: on for a mix, off for stems by default
- Optional normalize on export
- Loudness report: after exporting a mix, OpenDaw measures the file and tells you its integrated loudness, true peak and loudness range, and warns when the true peak is above -1 dBTP or streaming services will turn it down
- Tracks that are disconnected or play out of another output aren't part of the mix, so they aren't exported
- Remembers format, quality, and export directory between sessions
- Edit > Audio Settings opens the device configuration dialog
- Select audio driver type (WASAPI, ASIO, DirectSound)
- Choose output device, sample rate, and buffer size
- Shows calculated latency in milliseconds
- Recording: input monitoring (off, while the track is armed, or always) and a recording offset in milliseconds
- Settings persist across sessions
- OpenDaw automatically saves your work periodically in the background
- If the application closes unexpectedly, a recovery dialog appears on next launch
- Lists all recoverable sessions with timestamps
- Choose to restore a previous session or discard recovery data
- Compact layout: a colour strip, the track name and its type badge (AUDIO, MIDI or BUS) on the first row
- Second row: Record Arm (R), Solo (S), Mute (M), plus Mono/Stereo, Freeze and Automation toggles
- Below those: the instrument button (MIDI tracks), the input and output selectors (Master or any bus), and volume and pan sliders
- Click the ▾ arrow to collapse a track to its name row
- Real-time level meter (green/yellow/red) that reacts to playback audio
- Right-click for Rename, Track Colour and Split Piano Hands (AI)
- Drag to reorder — drag track headers up/down to rearrange track order
- Vertically synchronized with the timeline scroll
- Channel strip per track: input and output selectors, a Sends button for aux sends, a nameplate in the track's colour, pan knob, volume fader with dB scale and readout, level meter, Mute / Solo / Record Arm, mono toggle and automation mode (Read / Touch / Latch / Write)
- Instrument selector and MIDI channel on MIDI track strips
- Bus channel strips alongside regular tracks
- Master channel strip on the right
- Loudness meter beside the master strip, measuring what OpenDaw plays to ITU-R BS.1770 / EBU R128: integrated, short-term and momentary loudness in LUFS, loudness range, and true peak (red above -1 dBTP). Pick a target (streaming -14, Apple Music -16, broadcast -23, ...) and it tells you how far off the mix is. It starts a new measurement each time playback starts, or when you press Reset
- Drag channel strips to reorder tracks directly in the mixer
- Always left-aligned, horizontally scrollable
Add any of these to a track with one click from the Effects panel or mixer FX slots:
| Effect | Description |
|---|---|
| Reverb | Room size, damping, wet/dry |
| EQ | 4-band equalizer with per-band gain |
| Compressor | Threshold, ratio, attack, release |
| Delay | Delay time, feedback, mix (with tempo-sync mode) |
| Chorus | Rate, depth, mix |
| Phaser | Rate, depth, feedback |
| Low Pass Filter | Cutoff frequency |
| Pitch Shift | Semitone shift |
Graph view: dashed cables are aux sends, labelled with their level
Matrix view: patch many tracks at once
- Aux sends — send a copy of any track or bus into a bus at its own level while its output keeps going where it goes: shared reverbs and delays, parallel compression, headphone mixes. Each send has a level (-60 to +6 dB), pre/post-fader, mute and phase invert
- Effects buses — one click creates a Reverb, Delay, Chorus or Phaser bus with the effect fully wet, ready for sends
- Subgroup buses — route tracks into a bus to process and level them together; buses can feed other buses
- Direct hardware outputs — play a track straight out of another output of your interface, skipping Master (cue mixes, outboard gear)
- Sidechain keys — drop a track's OUT on a compressor's SC jack
- Feedback-loop protection — connections that would feed a bus back into itself are refused, through outputs and sends alike
- Graph view: drag OUT to route, drag SEND to add a send. While you drag, inputs that can't take the cable dim and a label says what letting go will do. Drop on empty space to create a new bus or effects bus right there. Grab a plugged-in cable end to move it, or pull it away to unplug it. Scroll over a send to change its level; double-click it for all of that track's sends
- Live signal flow: each node shows its level, and cables carrying audio pulse while it plays. Muted (or soloed-out) tracks grey out
- Mute and solo on every node, plus a right-click menu for output, input, sends, effects, rename and delete. Select several tracks and right-click to route them all into a new bus or send them all to a bus
- Matrix view: one row per track, columns for every output and every bus. Click a dot to change an output; click under SEND TO to add a send, then drag or scroll it to set the level
- Sends in the mixer — each channel strip has a Sends button that opens the same send controls
- Node positions are saved with the project; Auto Layout and Zoom to Fit tidy the view
- Select a track to see and edit its effect chain
- Add effects via the "+ Add Effect" button and dialog
- Per-effect bypass and remove controls
- Rotary knobs for up to 4 parameters per effect
- Browse your file system filtered to audio and MIDI files
- Quick-jump locations: Desktop, Music, Documents, Home
- Drag files directly from the browser onto timeline tracks
OpenDaw ships with a built-in AI assistant powered by Anthropic's Claude that can control the entire DAW through natural language. This isn't a chatbot that tells you what buttons to click — it actually executes operations directly on your project, calling up to 30 different tools in an autonomous loop until your request is fulfilled.
Press Ctrl+Shift+Space from anywhere to open the quick prompt overlay, type what you need, and watch it happen.
AI Assistant — describe what you want in plain English and watch it build tracks, compose MIDI, set up routing, and more
Most DAW workflows involve dozens of repetitive clicks: creating tracks, naming them, setting up routing, dialing in effects. The AI assistant collapses these into a single sentence. It reads your current project state — every track name, every effect chain, every routing connection — and figures out the right sequence of operations to get you where you want to be.
Skip the tedious part of starting a new project. Describe what you need and the AI builds it:
"I'm recording a jazz quartet. Set up tracks for upright bass, piano, drums, and tenor sax. Route them all to master. Add a light reverb to every track and set the tempo to 132 BPM in 4/4."
The AI creates four named tracks, adds reverb to each one, sets the tempo, and confirms what it did — all in one go. What would take 30+ clicks takes one sentence.
"Set up a full orchestra template: Violins 1, Violins 2, Violas, Cellos, Basses, Flutes, Oboes, Clarinets, Bassoons, French Horns 1-2, Trumpets 1-2, Trombones 1-2, Tuba, Timpani, Harp, and Percussion. Create a Strings bus and a Brass bus. Route the string sections to the Strings bus and the brass to the Brass bus."
Twenty-plus tracks, two buses, and all routing — done before you could have right-clicked twice.
Make sweeping changes across your entire project with plain English:
"Mute everything except the vocals and drums."
"Set all tracks to -6 dB and pan the guitars hard left and right."
"Rename every track by adding 'Session 3 - ' to the front of each name."
"Solo only Track 1 and Track 4."
The AI reads the current state, figures out which tracks need changing, and calls the right tools for each one.
You don't need to know that the reverb's "room size" parameter is at index 0 and normalized to 0.0–1.0. Just describe what you want to hear:
"Make the reverb on the vocal track sound much longer and more ethereal."
The AI inspects the current reverb parameters, understands that "longer" means increasing room size and decay, and "ethereal" means pushing wet mix higher while reducing damping — then sets the values accordingly.
"The delay on the guitar feels too busy. Reduce the feedback and pull back the mix."
"Add a compressor to the drum bus. Set it up for gentle glue — low ratio, medium attack, fast release."
"Bypass all the effects on Track 3 so I can hear it dry."
Building complex routing by dragging cables is powerful but slow. The AI handles it conversationally:
"Create a bus called 'Room', put a reverb on it, and send tracks 1, 2 and 5 to it at -8 dB."
"Move the bass and kick drum to a new 'Low End' bus."
"Disconnect the output on every track except the master bus."
"What are my available input devices? Assign the first one to Track 1."
This is where OpenDaw's AI goes far beyond any traditional DAW assistant. You can describe musical ideas in plain English and the AI will compose and write actual MIDI notes directly into your project — no scripting, no templates, no manual entry.
Under the hood, the AI uses create_midi_clip and add_midi_notes to place real notes with precise pitch, timing, duration, and velocity into your piano roll. It understands music theory and translates your intent into actual note data.
"Create a string arrangement for the chord progression C, Am, F, G. Four bars, lush and cinematic."
The AI creates MIDI tracks for Violins, Violas, and Cellos, works out the correct chord voicings and inversions for each part, adds movement and passing tones so the arrangement breathes, and writes all the notes directly into the piano roll — ready to play back immediately with your VST strings.
"Write a bass line following the root notes of C, Am, F, G over two bars. Eighth notes, punchy."
"Harmonize that melody with thirds above it on a new MIDI track."
"Add an arpeggiated piano part over the C Am F G progression — broken chords, gentle, three beats per chord."
"Double the violin line an octave lower on a cello track."
The AI knows which notes belong to each chord, how to voice them across registers, and how to make an arrangement feel intentional rather than mechanical. It can also read your existing MIDI clips and build on what you already have.
More composition scenarios:
"I have a 4-bar loop with drums and bass. Add a Rhodes piano comping Em, D, C, G in a syncopated style."
"Generate an 8-bar melody over C major that peaks at bar 5 then resolves."
"Create a countermelody that responds to the main melody on Track 2."
"Set up a full string section: Violin 1, Violin 2, Viola, Cello, Bass — each on its own MIDI channel."
This is real MIDI note generation backed by actual tool calls — not suggestions, not instructions on what to click. The notes appear in your piano roll, ready to edit, play, and export.
Keep your session organized without breaking flow:
"Delete all the empty tracks."
"What effects are on each track? Give me a summary."
"Save the project."
"Undo that last change."
"What's the current tempo and time signature?"
The AI knows what tools it has and can explain your project to you:
"I'm new to mixing. Can you explain what each of my tracks is doing right now?"
"What effects do I have available?"
"Walk me through a basic mixing approach for my 8-track rock session."
Because it can read your actual project state, its advice is grounded in what you really have — not generic suggestions.
The assistant uses agentic tool use: when you send a message, it decides which tools to call, executes them, reads the results, and continues calling more tools if needed — up to 20 rounds per request. It's not scripted or template-based; it reasons about your request and your project state dynamically.
30 tools cover the full surface of the DAW:
| Category | Tools |
|---|---|
| Track management | Create audio/MIDI/bus tracks, delete, rename |
| Instruments | List the built-in sounds and installed VST instruments, and choose each MIDI track's sound |
| Track properties | Mute, solo, volume, pan, mono, record arm |
| Routing | Assign inputs, set outputs to master or buses, disconnect |
| Effects | Add/remove built-in effects, set parameters, bypass |
| MIDI composition | Create MIDI clips, add notes with pitch/timing/velocity/duration |
| Transport | Play, stop, record, seek, tempo, time signature |
| Analysis | Track levels, live master loudness, an exact offline loudness measurement of the mix (LUFS, true peak, loudness range), frequency balance, stereo image, transients, masking |
| Project | Save, undo, redo, get project info |
Key features:
- Streaming responses — tokens appear word-by-word as the AI thinks, so you see progress immediately
- True agentic behavior — the AI calls tools, inspects results, and loops until the task is complete
- Destructive action safety — optionally prompts for confirmation before deleting tracks or removing effects (on by default)
- Tool output toggle — click "Tools: OFF/ON" to show or hide detailed tool call information (off by default for a clean experience)
- Dynamic project awareness — the system prompt is rebuilt with your current project state at each conversation, so the AI always knows exactly what tracks, effects, and routing you have
- Persistent chat sessions — conversations are saved alongside your project file and restored when you reopen the project
- Audio analysis — the AI can analyze track and master levels, frequency balance, stereo image, transients, and inter-track masking to give mix advice grounded in actual measurements
- Conversation memory — the AI remembers what you've discussed and done within a session
- Privacy-first — bring your own Anthropic API key, stored locally in app settings, never sent anywhere except Anthropic's API
- File > New Project -- start fresh with 4 empty audio tracks
- File > Open Project -- load a
.tracktioneditfile - File > Open Recent -- your last 10 projects
- File > Save / Save As -- save your arrangement
- File > Import Audio (Ctrl+I) / Import MIDI (Ctrl+Shift+I) / Import Video
- File > Export Audio -- mix down to WAV, FLAC or OGG (Ctrl+Shift+E)
- Edit > Undo (Ctrl+Z) / Redo (Ctrl+Y), Delete Selected Clips, Select All Clips (Ctrl+A)
- Edit > Add Audio Track / Add MIDI Track / Remove Selected Track
- Edit > Split Piano Hands (AI) -- split a piano track into right- and left-hand tracks
- Edit > Theme -- choose one of 12 colour themes
- Edit > Audio Settings -- configure audio device, sample rate, buffer size
- Edit > Scan VST Plugins -- scan for installed VST3 instruments
- View -- show or hide each panel (Mixer, Routing, Browser, Effects, AI Assistant, Sheet Music, Piano Roll, Audio Clip Editor); a tick shows which are open
- Panel sizes, positions and window size are remembered between sessions
- Transport > MIDI Panic (Ctrl+Shift+P) -- silence stuck notes
- Help > About OpenDaw
- Each run writes
OpenDaw.log; the previous run's log is kept asOpenDaw.prev.log - If OpenDaw crashes, it writes a minidump,
OpenDaw-crash.dmp, plus a crash summary in the log - These go next to
OpenDaw.exefor the portable build, or to%LOCALAPPDATA%\OpenDaw\OpenDawwhen the program folder isn't writable (the installer's Program Files location) - Attach them when you report a bug
You need the following installed on Windows:
| Tool | Version | Notes |
|---|---|---|
| Visual Studio 2022 | Community or higher | Provides the MSVC C++ compiler |
| Qt 6.10+ | MSVC 2022 64-bit kit | Install via Qt Online Installer or aqtinstall |
| CMake | 3.22+ | Bundled with Qt at c:\qt\Tools\CMake_64\ |
| Ninja | 1.10+ | Bundled with Qt at c:\qt\Tools\Ninja\ |
| Git | 2.x | For cloning and submodule management |
If you only have the MinGW Qt kit, you can add the MSVC kit without the Qt Maintenance Tool:
pip install aqtinstall
aqt install-qt windows desktop 6.10.2 win64_msvc2022_64 --outputdir c:\qtAll commands are for PowerShell on Windows.
git clone --recurse-submodules https://github.com/glenwrhodes/OpenDaw.git
cd OpenDawIf you already cloned without submodules:
git submodule update --init --depth 1Tracktion Engine requires a specific JUCE commit. After cloning:
cd libs/JUCE
git fetch origin 7c89e11f6b7316c369f3d3f22227c60e816e738b
git checkout 7c89e11f6b7316c369f3d3f22227c60e816e738b
cd ../..This must be run from a Visual Studio Developer Command Prompt (or use the vcvarsall.bat wrapper below):
cmd /c "`"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat`" x64 && c:\qt\Tools\CMake_64\bin\cmake.exe -B build -G Ninja -DCMAKE_PREFIX_PATH=c:/qt/6.10.2/msvc2022_64 -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_MAKE_PROGRAM=c:/qt/Tools/Ninja/ninja.exe"Adjust paths if your Qt or Visual Studio installation differs.
cmd /c "`"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat`" x64 && c:\qt\Tools\CMake_64\bin\cmake.exe --build build"The first build takes 2-4 minutes (compiling JUCE and Tracktion Engine). Subsequent rebuilds are fast (10-15 seconds).
Instead of the manual steps above, you can use the included build.ps1 PowerShell script:
# Incremental build (fast, ~10-15 seconds)
.\build.ps1
# Full reconfigure + build (needed after CMakeLists.txt changes or new git tags)
.\build.ps1 -CleanThe script automatically sets up the MSVC environment, configures if needed, and builds. It will also kill any running OpenDaw instance before building. Use -Clean after updating a git tag so the new version number gets picked up.
# Add Qt DLLs to PATH for runtime
$env:PATH = "c:\qt\6.10.2\msvc2022_64\bin;" + $env:PATH
# Launch
.\build\OpenDaw_artefacts\Debug\OpenDaw.exeOr deploy Qt DLLs alongside the executable:
c:\qt\6.10.2\msvc2022_64\bin\windeployqt.exe .\build\OpenDaw_artefacts\Debug\OpenDaw.exe
.\build\OpenDaw_artefacts\Debug\OpenDaw.exe-
Launch OpenDaw. The window opens with 4 empty audio tracks, a transport bar at the top, track headers on the left, the timeline in the center, the mixer at the bottom, and the file browser / effects panel tabbed on the right.
-
Set your tempo. In the panel beside the position counter, type a new Tempo or scroll over it (default 120). Set the Meter the same way (default 4/4).
-
Set your grid. Use the Grid dropdown in the same panel: 1/4 (default), Bar, 1/2, 1/8, 1/16, 1/32, or Off.
-
Pick a theme (optional) from Edit > Theme.
-
In the Browser tab (right panel), navigate to a folder containing audio or MIDI files. Use the dropdown at the top for quick access to Desktop, Music, Documents, or Home.
-
Drag an audio file (
.wav,.mp3,.flac,.ogg,.aiff) or MIDI file (.mid,.midi) from the browser and drop it onto a track lane in the timeline. The clip will snap to the grid at the drop position. -
Audio clips display their waveform; MIDI clips display a note preview. You can drag any clip to reposition -- it snaps horizontally to the grid and vertically to track lanes.
-
To add more tracks, go to Edit > Add Audio Track (Ctrl+T) or Edit > Add MIDI Track (Ctrl+Shift+T).
- Click Play (or press Space) to start playback from the current playhead position.
- Click Stop to stop and return the playhead to the beginning.
- Click on the time ruler (the bar/beat numbers at the top) to jump the playhead to that position (snapped to grid).
- Click and drag on the ruler to scrub smoothly through the timeline.
- Toggle Loop to loop playback over the current region.
Each track has controls in two places:
Track headers (left of timeline):
- M -- Mute the track
- S -- Solo the track (only this track plays)
- R -- Arm for recording
- Mono/Stereo toggle -- switch between mono and stereo processing
- Volume and Pan sliders
- Input selector -- choose an audio input device
- Output selector -- route to Master, a bus, a direct hardware output, or nowhere
- Level meter -- shows real-time audio level (green = good, yellow = hot, red = clipping)
Mixer panel (bottom):
- Same controls in a traditional vertical channel strip layout
- Volume fader -- vertical, drag up/down; the dB readout sits underneath
- Pan knob -- rotary control
- Automation mode button -- Read, Touch, Latch or Write
- Master strip on the far right -- controls overall output level
- Switch to the Routing tab (tabbed alongside the Mixer, Piano Roll, Audio Clip, and Sheet Music at the bottom). Graph and Matrix at the left of its toolbar switch between the two views.
- The graph shows your signal chain as draggable nodes: input channels on the left, then tracks, buses, Master, and your hardware outputs on the right.
- Group tracks into a bus: click + Bus, then drag each track's OUT jack onto the bus's IN jack. Or select several tracks, right-click one and choose "Route Selected into a New Bus".
- Share a reverb: click + Effects Bus > Reverb Bus, then drag each track's SEND jack onto the Reverb bus's IN. Or drag a SEND onto empty space and pick "Send to a New Reverb Bus". Scroll over a send's label to set its level; right-click it for pre/post-fader, mute and phase.
- Move or remove a connection by grabbing the cable at its plugged-in end: drop it on another input to move it, or on empty space to unplug it. Pressing Delete with a cable clicked also removes it.
- Play a track straight out of another output (for a cue mix) by dragging its OUT onto that output's node.
- In the Matrix, click a dot to change a track's output, and click under SEND TO to add a send. Then drag up or down on it, or scroll, to set its level.
- Add effects to a bus like any track: select it, then add effects in the Effects panel.
- Add a MIDI track via Edit > Add MIDI Track (Ctrl+Shift+T). It plays the built-in Grand Piano; click its instrument button to choose another sound.
- Create a MIDI clip by right-clicking a MIDI track lane and selecting "Create Empty MIDI Clip", or drag a
.midfile from the browser. - Open the Piano Roll by double-clicking a MIDI clip (or right-click > Edit in Piano Roll).
- Add notes with Ctrl+click or double-click on the grid. Drag notes to move them, drag edges to resize.
- Edit velocity in the velocity lane at the bottom of the Piano Roll -- drag the bars up/down.
- Quantize notes from the right-click context menu or the Piano Roll toolbar.
- View as sheet music — switch to the Sheet Music tab at the bottom to see your MIDI clip rendered as standard notation. Use the key signature dropdown to change enharmonic spelling.
- Double-click an audio clip in the timeline to open the Audio Clip tab at the bottom.
- The waveform editor shows the full audio file. Click and drag to select a region.
- Use the toolbar buttons for Cut, Copy, Paste, Silence, Fade In/Out, Normalize, Reverse, and more.
- Edits are destructive (they modify the source file) but fully undoable — the editor maintains its own undo/redo stack.
- Adjust the non-destructive Gain slider, or click Norm to normalize, then Bake to write the gain into the file.
- The info bar at the bottom shows BPM, duration, sample rate, bit depth, and the source file path.
MIDI tracks already play the built-in sounds; VST3 instruments are for when you want something else.
- Scan for plugins via Edit > Scan VST Plugins. This only needs to be done once (results are cached).
- Assign an instrument to a MIDI track by clicking the instrument button on the track header or mixer channel strip.
- Open the plugin editor by clicking the instrument button on a MIDI track that already has an instrument assigned. Right-click to change the instrument.
- Select a track, then open the Effects tab in the right panel.
- Click + Add Effect to open the effect selector dialog.
- Choose from 8 built-in effects and click OK (or double-click).
- The effect appears with parameter knobs. Adjust to taste.
- Click Byp to bypass an effect, or X to remove it.
-
Set your API key. Click the AI tab in the right panel, then click Settings. Enter your Anthropic API key (
sk-ant-...) and click OK. The key is stored locally and only sent to Anthropic's API. -
Quick prompt (Ctrl+Shift+Space). Press Ctrl+Shift+Space from anywhere in the app. A floating text input appears — type your request and press Enter. The AI panel opens and the assistant begins working.
-
Chat panel. Click the AI tab on the right panel to open the full chat interface. Type in the input box at the bottom and press Enter (or click Send). Shift+Enter adds a new line.
-
Watch it work. The AI streams its response in real time. If tools are needed (creating tracks, changing settings, adding effects), it calls them automatically and continues until the task is done.
-
Tool output toggle. Click the Tools: OFF button in the header to see detailed tool call information — useful for understanding exactly what the AI did. Toggle it back off for a cleaner view.
-
Destructive action safety. By default, the AI will ask for confirmation before deleting tracks or removing effects. You can toggle this in Settings.
-
Clear conversation. Click Clear to start a fresh conversation. The AI will re-read your current project state at the start of the next message.
- File > Save As (Ctrl+Shift+S) -- save your project as a
.tracktioneditfile. - File > Save (Ctrl+S) -- save to the current file.
- File > Open (Ctrl+O) -- load a previously saved project.
- File > New (Ctrl+N) -- start a fresh empty project.
- File > Export Audio (Ctrl+Shift+E) -- mix down your project, or export stems, to WAV, FLAC, OGG Vorbis or MP3. Choose what to export, the range, format, sample rate, bit depth (or quality), dither and whether to normalize. A mix export ends with a loudness report.
Global
| Shortcut | Action |
|---|---|
| Space | Play / Pause |
| R | Record (press again to stop) |
| S | Split clip at playhead, or every selected track at the edges of the time selection |
| Delete / Backspace | Delete the time selection, or the selected clips |
| Shift+Delete | Ripple delete (close the gap) |
| 1 / 2 / 3 / 4 / 5 | Smart / Range / Razor / Pen / Eraser tool (timeline) |
| Alt+Left / Alt+Right | Nudge the selected clips one grid step (with Shift, a quarter step) |
| Esc | Clear the time selection |
| Ctrl+Shift+End | Select clips after the playhead |
| I / O | Set loop start / end at the playhead |
| Ctrl+Z / Ctrl+Y | Undo / Redo |
| Ctrl+A | Select all clips |
| Ctrl+T | Add audio track |
| Ctrl+Shift+T | Add MIDI track |
| Ctrl+N | New project |
| Ctrl+O | Open project |
| Ctrl+S | Save project |
| Ctrl+Shift+S | Save As |
| Ctrl+C | Copy the selected clips or time selection |
| Ctrl+X | Cut the selected clips or time selection |
| Ctrl+V | Paste at the playhead |
| Ctrl+I | Import audio |
| Ctrl+Shift+I | Import MIDI |
| Ctrl+Shift+E | Export audio |
| Ctrl+Shift+P | MIDI Panic (all notes off) |
| Ctrl+L | Looper |
| Ctrl+Q | Quit |
| Ctrl+= | Zoom in (timeline) |
| Ctrl+- | Zoom out (timeline) |
| Ctrl+Shift+Space | Open AI quick prompt |
Piano Roll
| Shortcut | Action |
|---|---|
| Ctrl+click / Double-click | Add note |
| Delete / Backspace | Delete selected notes |
| Ctrl+A | Select all notes |
AudioMixer/
CMakeLists.txt Root build configuration
README.md This file
LICENSE GPLv3 license
CONTRIBUTING.md Contribution guidelines
build.ps1 PowerShell build script (incremental / -Clean)
.github/
workflows/
release.yml CI/CD: build + release on tag push
installer/
opendaw.iss Inno Setup installer script
resources/
splash.png Splash screen artwork
icon.png Application icon (PNG)
OpenDaw.ico Windows application icon
audio-clip-editor.png Audio clip editor screenshot
screenshots/ README screenshots (main window, themes, mixer, piano roll, ...)
fontaudio.ttf Icon font for audio controls
MaterialSymbolsOutlined.ttf Material Design icon font
Bravura.otf SMuFL music notation font
mixerStripBG.png Mixer channel strip background
libs/
JUCE/ JUCE framework (git submodule)
tracktion_engine/ Tracktion Engine (git submodule)
tinysoundfont/ TinySoundFont, the SoundFont player behind the built-in instruments
src/
main.cpp Entry point, JUCE-Qt bridge
app/
OpenDawApplication.h/cpp Application lifecycle, recovery check
JuceQtBridge.h/cpp QTimer-based JUCE message pump
engine/
AudioEngine.h/cpp Wraps tracktion::engine::Engine, MIDI device enumeration
LoudnessMeter.h/cpp BS.1770 / EBU R128 loudness meter, the output tap and file analysis
LooperPlugin.h/cpp The looper's audio: input hub, per-pad recording, overdub, playback and print
LooperEngine.h/cpp The looper: pads, timing, layers, saving, and printing the performance
instruments/
SoundFontInstrument.h/cpp The built-in General MIDI instrument and its sound library
BundledPlugins.h/cpp Plugins shipped with OpenDaw (Surge XT): finding and registering them
EditManager.h/cpp Manages the current Edit: tracks, clips, routing, export, autosave
PluginScanner.h/cpp VST3 plugin scanning and cache
ui/
MainWindow.h/cpp Main window with menus, docks, toolbar
SplashScreen.h/cpp Borderless splash screen (click to dismiss)
dialogs/
ExportDialog.h/cpp Export dialog: mix or stems, range, format, bit depth, dither
RecoveryDialog.h/cpp Crash recovery session picker
AudioSettingsDialog.h/cpp Audio device and buffer configuration
timeline/
TimelineView.h/cpp Arrangement view with track headers and automation
TimeRuler.h/cpp Beat/bar ruler with click and drag
TrackHeaderWidget.h/cpp Per-track controls, level meter, instrument button
TrackLane.h/cpp Track lane data model
ClipItem.h/cpp Audio/MIDI clip: move, trim, slip, fades, clip gain
EditTool.h/cpp The active edit tool (Smart, Range, Razor, Pen, Eraser) and ripple mode
TakeLanes.h/cpp Take lanes and their headers, for comping recorded takes
RecordingPreview.h/cpp The clip being recorded (and the looper's print), drawn live
GridSnapper.h/cpp Snap-to-grid logic
AutomationLaneItem.h/cpp Parameter automation lane (curve, points, freehand draw)
AutomationPointItem.h/cpp Draggable automation breakpoint
AutomationLaneHeader.h/cpp Parameter selector, bypass, close for automation lane
EnvelopeUtils.h Beat/pixel/value math and envelope path building
pianoroll/
PianoRollEditor.h/cpp Piano roll dock widget container
PianoRollRuler.h/cpp Beat/bar ruler for the piano roll
NoteGrid.h/cpp Note editing grid (add, move, resize, delete)
NoteItem.h/cpp Individual MIDI note graphics item
VelocityLane.h/cpp Per-note velocity editor
CcLane.h/cpp MIDI CC editor lane (freehand / line draw)
PianoKeyboard.h/cpp Piano keyboard sidebar
ChannelColors.h 16 fixed colors for MIDI channels 1-16
sheetmusic/
SheetMusicView.h/cpp Sheet music tab container with toolbar
NotationModel.h/cpp MIDI-to-notation model (measures, beams, rests)
ScoreScene.h/cpp QGraphicsScene renderer for engraved notation
audioclip/
AudioClipEditor.h/cpp Audio clip editor tab with destructive editing
AudioWaveformView.h/cpp Zoomable waveform display with selection
AudioFileOperations.h/cpp Cut, fade, normalize, reverse, etc.
AudioFileUndoManager.h/cpp Undo/redo stack for destructive file edits
WaveformSelection.h Selection model for audio waveform view
mixer/
MixerView.h/cpp Horizontal mixer panel
ChannelStrip.h/cpp Per-track mixer strip with instrument selector
SendsPanel.h/cpp Popup for a track's aux sends (level, pre/post, mute, phase)
LoudnessPanel.h/cpp Loudness meter beside the master strip
looper/
LooperWindow.h/cpp The looper window: pads, settings, input meter
transport/
TransportBar.h/cpp Transport buttons, position counter, tempo/meter/grid panel
controls/
RotaryKnob.h/cpp Custom painted rotary knob
VolumeFader.h/cpp Custom painted vertical fader
LevelMeter.h/cpp Animated green/yellow/red level meter
WaveformWidget.h/cpp Waveform rendering widget
effects/
EffectChainWidget.h/cpp Per-track effect chain editor
DelayEffectWidget.h/cpp Delay effect UI with tempo-sync mode
EffectSelectorDialog.h/cpp Effect picker dialog
PluginEditorWindow.h/cpp Native VST plugin editor window
VstSelectorDialog.h/cpp Searchable VST instrument selector
InstrumentMenu.h/cpp The instrument picker: built-in sounds by family, VSTs, none
routing/
RoutingView.h/cpp Routing graph: nodes, cables, sends, live signal flow
RoutingMatrixView.h/cpp Routing matrix: outputs and sends as a grid
RoutingNode.h/cpp Draggable routing node (input/track/bus/master/output)
CableItem.h/cpp Cable between jacks (output, send, sidechain)
browser/
FileBrowserPanel.h/cpp File system browser with drag support
ai/
AiTypes.h Shared types: messages, tool calls, roles
AiToolDefs.h/cpp 30 tool JSON schemas for Anthropic API
AiToolExecutor.h/cpp Dispatches tool calls to engine APIs
AiService.h/cpp Anthropic API client with SSE streaming
AiChatWidget.h/cpp Chat panel UI with streaming & markdown
AiChatStore.h/cpp Persistent chat sessions (saved alongside project)
AiQuickPrompt.h/cpp Ctrl+Shift+Space overlay prompt
AiAudioAnalysis.h/cpp Mix analysis: levels, spectrum, stereo, transients, masking
AiHandSplitter.h/cpp AI piano hand split (assigns each note to a hand)
utils/
WaveformCache.h/cpp Audio file waveform thumbnail cache
ThemeManager.h/cpp The 12 colour themes and their track palettes
IconFont.h Icon font registration and glyph constants
OpenDaw bridges two frameworks:
- Qt 6 Widgets handles all GUI rendering, layout, and user interaction
- Tracktion Engine (built on JUCE) handles all audio: playback, recording, effects processing, plugin hosting, and the project data model
A QTimer pumps JUCE's MessageManager every 10ms from Qt's event loop, allowing both frameworks to coexist. Tracktion Engine's audio processing runs on its own real-time thread, independent of either GUI event loop.
Contributions are welcome! Whether it's bug reports, feature requests, or pull requests — all help is appreciated.
See CONTRIBUTING.md for details on how to get started, coding conventions, and the PR process.
This project is licensed under the GNU General Public License v3.0 — see the LICENSE file for details.
OpenDaw uses Tracktion Engine (GPLv3) and JUCE (AGPLv3), both of which are compatible with this license.
The built-in instruments use TinySoundFont (MIT licence, in libs/tinysoundfont) and the GeneralUser GS SoundFont by S. Christian Collins, which is free to use and redistribute in software (its licence ships beside it in the soundfonts folder). The SoundFont is downloaded when CMake configures the build.
OpenDaw ships the Surge XT synthesizer by the Surge Synth Team (GPLv3; the unmodified official 1.3.4 release, whose source is at release_xt_1.3.4). Its licence ships beside it as Surge XT LICENSE.txt. CMake downloads the release and its factory content when it configures the build (pass -DOPENDAW_BUNDLE_SURGE_XT=OFF to leave it out).
Made with care for musicians and producers everywhere.
If OpenDaw is useful to you, consider giving it a star on GitHub.




