DawItDAW IN THEORY

How it’s built

A human idea.
A working
music app.

DawIt starts with a person’s ideas about making music and learning it. AI helps write the code. Audio tools, local models and checks turn those ideas into something you can hear.

Here’s who does what, what runs on your computer, and the open building blocks behind it.

Visit the GitHub repository →

The decisions and the doing

A person sets the direction.
AI helps with the building.

What should DawIt teach? Which tool would make an idea easier to hear? How should it explain that to a beginner? Those are human decisions.

01 / HUMAN DIRECTION

The idea, the taste,
the decisions.

A person chooses the features, their order and the way each guide explains its subject. They review what comes back, try it and ask for changes when it needs work.

The aim stays the same: help you make music and understand your choices.

02 / AI-ASSISTED DEVELOPMENT

The code, the tests,
the first drafts.

Claude Code and OpenAI’s Codex help write and revise the app, its tests, its theory text and this website. A person reviews the work and decides what belongs.

AI-written code is checked with the same sound measurements and app reviews described below.

Two different uses of AI.

The tools used to build DawIt are separate from its optional musical tools. You can explore guides, write notes and use the built-in effects without running a language model.

See what the optional models do →

Inside DawIt

One app.
Sound and understanding.

C++20 and JUCE provide the desktop app, audio, MIDI and plugin hosting.

DawIt’s effects and synthesisers use signal processing to make and shape sound. The theory guides and live pictures help explain what those tools are doing.

See how sound flows through a song →
YOUR MUSIC

Notes, recordings
and choices.

The song holds the tracks, clips, key, chords, words and sections.

THE AUDIO TOOLS

Play it. Shape it.
Hear it.

Instruments, effects, buses and sends turn the parts into the mix.

THE EXPLANATION

See what changed.

Meters, pictures and guide topics read the song or settings as you work.

Optional AI inside the app

Your computer
does the listening.

Different jobs use different models. DawIt runs these tools locally. Some models are included; others download when you choose to use them. Model downloads need a connection.

TAKE A RECORDING APART

Separate the band.

Stems & karaoke →

Demucs v4

Finds drums, bass, vocals and the other instruments. Runs through demucs.cpp.

DOWNLOAD ON FIRST USE · 84 MB
FROM SOUND TO NOTES

See what was played.

Audio to MIDI →

Spotify’s Basic Pitch

Turns pitched audio into editable MIDI notes. ONNX Runtime runs the model.

BUILT IN · 230 KB
FROM A VOICE TO WORDS

Find the lyrics.

Detect lyrics →

OpenAI’s Whisper

Finds words in English vocals, through whisper.cpp. Choose Small or Medium.

DOWNLOAD ON FIRST USE · 488 MB / 1.5 GB
A MUSICAL CO-WRITER

Try another idea.

Generate music & lyrics →

A chat model through Ollama

Install Ollama and a model separately. DawIt starts with qwen2.5:7b as its default model choice.

SEPARATE INSTALL · MODEL OF YOUR CHOICE
A VOCAL SKETCH

Hear the words sung.

Sing this →

A DiffSinger voice you add

ONNX Runtime runs the voice’s models. English only. No voice comes with DawIt; each voice and vocoder has terms from its maker.

BRING YOUR OWN VOICE

Music processing stays on your computer. Ollama connects to your own machine by default; its server address is configurable.

Checks for a music app

Don’t just read the code.
Measure the sound.

The test suite checks things you can hear: levels, pitches, harmonics, timing and decay. The interface and explanations need their own review too.

01 / THE SOUND

Put a known signal in.

Tests feed notes and audio through the tools, then measure what comes out. That checks whether a filter, compressor, synth or reverb behaves as expected.

02 / THE APP

Look at it in use.

The project’s review workflow opens windows and guides in DawIt and inspects app screenshots for layout, text and the right state.

03 / THE LESSON

Check the explanation.

Theory sources are recorded with the project. Numbers in explanations are checked against tests, standards or established references.

Credits & technical details

Good building blocks.
Credit where it’s due.

Open a group for the tools, libraries and models behind DawIt, including their recorded versions, makers and licences.

App, audio & music notation The language, framework, plugins and music font.

C++20

The language

Fast enough for audio, and the language of JUCE and of audio plugins.

JUCE

8.0.9 · AGPLv3 or commercial

The whole app: the windows and controls, audio and MIDI, plugin hosting, files, JSON and HTTP, on macOS, Windows and Linux. DawIt Tune finds a voice's pitch with McLeod's method and moves it with PSOLA, plain DSP on JUCE's own FFT, so it needs no library of its own.

Bravura

Steinberg · SIL Open Font License 1.1 · pinned commit

The music font that draws clefs, rests, flags and note heads in the score view and its PDF. It is the reference font of the SMuFL standard, downloaded at a pinned commit and checked by its hash. Its licence text comes with the app.

VST3 SDK

3.7.12, Steinberg · VST3 licence or GPLv3

Loading VST3 plugins in a track's chain, and building DawIt's own effects and synths as VST3 plugins (under the GPLv3). It comes with JUCE.

AudioUnitSDK

Apple · Apache 2.0

Building DawIt's own effects and synths as Audio Unit plugins on macOS. It comes with JUCE.

Audio Units

Apple · part of macOS

Loading AU plugins on a Mac.

Analysis & local model runtimes The code that separates, recognises, pronounces and sings.

demucs.cpp

Sevag Hanssian · MIT

Runs the Demucs model in C++, for Split into stems and Remove vocals.

Eigen

MPL 2.0

The matrix maths demucs.cpp is built on.

ONNX Runtime

1.30.0, Microsoft · MIT

Runs the Basic Pitch model, for Convert to MIDI, and the models of a singing voice, for Sing this.

CMU Pronouncing Dictionary

Carnegie Mellon University · free for any use, with its origin named · 3.6 MB

How an English word sounds, with about 135,000 entries for about 126,000 words. It is built into the app, for Sing this and for finding rhymes and counting syllables in the lyrics window.

DiffSinger

OpenVPI · Apache 2.0 · the model format only

The format that singing voices are exported in. DawIt links none of its code: it runs a voice's ONNX models with ONNX Runtime, for Sing this. No voice comes with DawIt. You add one yourself, and each voice (and its vocoder) has its own terms.

OpenUtau

MIT

An open-source editor for singing voices. DawIt follows it as the reference for how a voice is laid out and in what order its models are called. No OpenUtau code is used.

Ollama

MIT · a separate program

Runs a language model on your computer for the Generate panel. You install it yourself; DawIt talks to it on your machine.

Model credits Who made the models, and the terms recorded for them.

Basic Pitch

0.4.0, Spotify · Apache 2.0 · 230 KB

Turns audio into notes. Small enough to be built into the app.

Qwen2.5 7B

Alibaba's Qwen team · Apache 2.0 · about 4.7 GB

The Generate panel's default model, through Ollama. Choose another installed chat model in the Generate panel if you prefer.

Development & design tools The tools used to write, build, review and keep the work.

Claude Code

Anthropic

The coding tool the AI works in: it reads the project, writes the code, builds it, runs the tests and the app.

Codex

OpenAI

A coding agent used to read the project, implement features, run the checks and maintain the website.

CMake and Ninja

BSD 3-Clause and Apache 2.0

CMake configures the app and tests; Ninja builds them. Versions are recorded in the build configuration, with checksums for the downloaded source archives and models that specify them.

ChatGPT

OpenAI

Created the DawIt logo, the open book with five rising bars shown at the top of every page.

Git

GPL 2.0

Keeps the history of every change, each with a sentence on what it does.

A note on licences.

JUCE 8.0.9 is offered under AGPLv3 or a commercial licence. DawIt’s plugin builds use the bundled VST3 SDK under GPLv3; the Bravura music font uses the SIL Open Font License 1.1. Models, voices and vocoders retain their makers’ terms.

For the available way to build and run the app, see Get started.

And this website?

Plain pages.
The real app.

Static HTML, one shared stylesheet and a small script for navigation, search and colour themes. System fonts keep the pages self-contained. The images show DawIt itself.

There are no website accounts or analytics. ChatGPT created the book-and-levels logo; the app screenshots come from DawIt.

See the learning experience →

Back to the music

See what it
helps you make.

Explore the guides, try a tool and follow the explanation.

Explore the features