Kyber Cypher Plain English

Field Logs

Field Log 018

I made a music studio out of free software and AI.

Field Log // 018 Status Live Difficulty Moderate Cost Free
The Story

You do not need a studio, a label, or a monthly subscription to make music any more. The whole studio runs on a graphics card you probably already own, it costs nothing, and once it is installed it never touches the internet again.

I want to be precise about what that sentence means, because it is easy to read it as marketing. It means a model that writes original music runs on your desk. It means the thing that splits a finished track back into separate vocals, drums and bass runs on your desk. It means the mastering step, the one that makes a track sit at the same loudness as commercial releases, runs on your desk. No account. No upload. No terms of service that quietly claim a licence to what you made.

For most of recorded history that chain was the gatekeeper. Not talent, not ideas. Access to a room full of equipment nobody could afford alone. Then it became access to software that cost more than the computer. Then it became a subscription, which is the same gate with a friendlier face and a cancel button that turns your back catalogue into a hostage.

The model I used is called ACE-Step 1.5, and it is open source. The clever part is not just that it generates music. It is that it ships with a planner. You give it a vibe in plain words, something like a slow rainy synthwave instrumental with a heavy low end, and a language model inside the pipeline writes the actual caption, the lyrics, the tempo, the key and the length for you. You are not learning a prompt syntax. You are describing a feeling and the machine handles the paperwork.

This is the part that changed my mind. The barrier to making music with these tools was never really the generation. It was that you had to already know what to ask for. A planner that turns one plain sentence into a full specification removes the last thing standing between having an idea and hearing it.

Then the chain continues, and it stays yours the whole way. Demucs, which Meta released as open source, pulls a finished track apart into stems, so you can mute the vocal, keep the drums, rebuild the bass. Matchering takes a reference track you love and matches your track to its loudness and tone, which is the unglamorous step that makes the difference between something that sounds like a demo and something that sounds finished.

And because all of it runs locally with an ordinary interface in front of it, you can point your own local language model at the whole pipeline as a conductor. You say what you want in a sentence. It shapes the request, drives the generation, waits for the render, and hands you a file. That is the same pattern as building your own AI agent, aimed at a new medium.

So here are the honest catches, because a log that only tells you the good part is an advertisement.

Local generation quality varies, and it varies a lot. Some renders are genuinely good. Some are mush. You are going to generate several and keep one, which is exactly how studios have always worked, but it is worth knowing before you expect a hit on the first try.

The planner is only as good as the brain you give it. I ran the shaping step through a small local model at first and the prompts came out flat and generic, which produced flat and generic music. A stronger model wrote noticeably better descriptions and the output improved immediately. The bottleneck was never the music model. It was the thing writing its instructions.

Matchering is reference matching, not a mix engineer. It will make your track sit at commercial loudness against a track you choose. It will not fix a bad arrangement, and it cannot tell you that the hook is boring. Treat it as the last five percent, not the craft.

Then the one people skip. Copyright is real and it did not go away because the tool is free. Generating original music on your own machine is one thing. Feeding copyrighted material in, or remixing someone else's record and calling the output yours, is a different thing and it is on you. Own your originals. If you want to point people at music you love, link to it where the artist gets paid instead of rehosting it.

One more, and it is a security note rather than a music note. The ACE-Step project has publicly warned that impostor sites are using its name. There is no paid tier, no official app store listing to buy, no subscription. If a site is asking you for money or credentials to use this model, it is not them. Install from the project's own repository and nowhere else. Every link in the build below goes to an official source.

The lesson is the same one this whole site keeps arriving at from different directions. The tools to make original work, and to actually own it, are free now and they run on hardware you already have. The gatekeeper was the last thing standing between you and the studio, and it has quietly fallen over.

The Build

The full recipe, start to finish. Every tool here is free and open source, every link goes to the official project, and nothing in this pipeline sends your work anywhere. Install from these repositories and nowhere else.

1. Check the hardware you already have

You want a machine with an NVIDIA GPU. The ACE-Step authors state the 1.5 model runs in under 4GB of VRAM, so a modest card is enough to start, and more VRAM mainly buys you longer tracks and faster renders. The repository documents CPU, Apple silicon and AMD paths too, and they work, they are just slower. Budget disk space as well, because the model files are several gigabytes.

# confirm the GPU and driver are visible before installing anything
nvidia-smi

2. Install ComfyUI, the room everything runs in

ComfyUI is the node based host. It gives you a local interface and, more usefully for later, a local API you can drive from your own code. Official repository: github.com/Comfy-Org/ComfyUI.

git clone https://github.com/Comfy-Org/ComfyUI
cd ComfyUI
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python main.py

It serves on localhost at port 8188 by default. Leave it running.

3. Add ACE-Step and let the model write the prompt for you

The model is ACE-Step 1.5 and the nodes that run it inside ComfyUI are at ace-step/ACE-Step-ComfyUI. Clone the nodes into the custom nodes directory, install their requirements, and restart ComfyUI. The model weights download automatically the first time you run the workflow, so the first render is slow and every one after it is not.

cd ComfyUI/custom_nodes
git clone https://github.com/ace-step/ACE-Step-ComfyUI
cd ACE-Step-ComfyUI
pip install -r requirements.txt
# restart ComfyUI so it registers the new nodes

Now the part worth understanding. In the generation parameters node there is a sample mode switch. Turn it on and you stop writing prompts. You give it a one line description of the vibe and the built in planner writes the caption, the lyrics, the tempo, the key and the duration itself. Leave a field unspecified and the planner fills it in. That single switch is the difference between operating a tool and describing an idea.

4. Split any track into stems with Demucs

Demucs is Meta's open source separation model: github.com/facebookresearch/demucs. It takes a finished stereo track and gives you back separate vocals, drums, bass and everything else. Use it to remix what you generated, to rescue a part you liked out of a render you did not, or to isolate a vocal so you can rebuild the instrumental underneath it.

pip install -U demucs

# four stems using the default htdemucs model
demucs -n htdemucs mytrack.wav

# or just split the vocal off, which is faster
demucs --two-stems=vocals mytrack.wav

# output lands in separated/htdemucs/mytrack/

5. Master it against a reference with Matchering

Matchering takes two files, the track you made and a reference track whose sound you want, and matches yours to its loudness and tonal balance. Pick a reference in the same genre that is already mastered well.

pip install matchering
import matchering as mg

mg.process(
    target="mytrack.wav",
    reference="reference_i_like.wav",
    results=[mg.pcm24("mastered.wav")],
)

Two real warnings from doing this. First, check the sample rate of your reference, because the process resamples around it and a mismatch will change the length and pitch of your output. Match the rates deliberately rather than assuming. Second, look at the peak level of the raw generation before you master it. Mine was clipping at full scale on most renders, and mastering a clipped file just gives you a louder clipped file.

6. Wire a local model as the conductor

This is the step that turns a pile of tools into a studio. Run a local language model with Ollama (source at github.com/ollama/ollama) and give it one job: turn a plain sentence into a shaped request, submit it, wait, and hand back the file.

curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen2.5:14b

The flow is deliberately simple, and you can build it in whatever language you already use. Input is a sentence plus a few switches. Output is a finished file on disk.

# 1. ask the local model to turn "rainy synthwave, heavy low end"
#    into a caption, plus tempo/key/duration, and whether it has vocals
# 2. drop those values into the ComfyUI workflow json
# 3. submit it to the local ComfyUI API
POST http://127.0.0.1:8188/prompt        # returns a prompt_id
# 4. poll until the render is finished
GET  http://127.0.0.1:8188/history/<prompt_id>
# 5. read the output filename from the history and hand over the file

Two things I learned building this. Give the conductor a minimum duration, because asked for something short it will happily produce a five second fragment that is not a piece of music. And make the render asynchronous, because generation takes minutes and anything that blocks while it waits will look broken to whoever is talking to it.

7. Optionally teach it your own sound

The ACE-Step repository documents LoRA training, which lets you fine tune the model on a handful of your own songs so it learns your style. This is the part that makes the output yours in more than a legal sense. Start with the training documentation in the ACE-Step 1.5 repository rather than any third party guide.

8. Know where it lands

The end of this pipeline is an ordinary audio file in a folder on your own disk. No export credits, no watermark, no account that can be closed, no catalogue that disappears when a card expires. You own the machine, the model, and the music.

Related: build your own AI agent is the same conductor pattern applied to text, I stopped renting my brain is where the local model habit starts, and Tech Watch tracks the open source tools worth running yourself.