Changelog
Every release and what changed in it. StemMaster is a one-time purchase — updates across the 1.x series are free, and the app tells you when there is one.
1.1.54 current
Mastered stem export, an update notice that stops disappearing, and a File menu that remembers.
- Export stems that add back up to your master
File → Export Stems → Mastered writes one file per stem with each one carrying its share of the master bus, so summing them reconstructs your master rather than approximating it. That is what stem delivery means to a mastering engineer: hand the set to a client and they can lift the vocal a decibel without the master being re-made.
The two existing modes are unchanged and still the right answer most of the time — Processed Only for the cleanup at unity gain, Full Mix for the mix as you heard it with nothing from the bus, which is the one to take if you intend to master it yourself. The new set is already mastered.
The reconstruction is measured, not claimed: the app is tested by summing the exported stems, subtracting the master and requiring what is left to be inaudible. It comes out about 130 dB down. The first file takes a little longer to appear than in the other modes, because your master is re-rendered once to measure precisely what the bus did at every moment. - An available update now says so until you deal with it
When StemMaster found a new version at startup it put a line in the status bar for thirty seconds and then said nothing more. Those thirty seconds are exactly when you are loading stems and not looking at the bottom of the window, so in practice the app checked, found an update and told nobody — until you happened to open Help → Check for Updates yourself.
There is now a marker in the bottom-right corner that stays there. Click it for what is in the release and a button to go and get it. It does not interrupt you, it does not download anything, and it survives every other message the app shows while you work. - File → Open Recent
The last eight sessions you saved or opened, newest first, so coming back to last week’s song is not a trip through a file dialog.
A session whose file is not there at the moment — a drive you have unplugged, a share that is offline — drops out of the list rather than being deleted from it, and comes back on its own when the file does. The automatic restore when you launch the app is not counted, or whatever you had open last would sit at the top for ever.
1.1.53
Two labelling fixes: the box now says where strings go, and the AI labeller can finally pick Sample.
- The label box says Keys/Strings
Strings, violins, cellos and orchestral parts belong on Keys — that is where the app has put them since 1.1.18, and the treatment is chosen for them: a string bed is placed a little further back than a synth because it supports rather than leads, its compressor moves more slowly to suit a bowed swell, and it is high-passed lower because violas and cellos carry real low-mid content.
What the app never did was say so. If your file is called Strings.wav it is labelled for you, but anyone whose file is named something else was reading a list of ten labels with no obvious home for a string section. The box now reads Keys/Strings. Nothing about the mix changes — it is the same label with a clearer name on it. - Auto-Label can now recognise a sample
File → Auto-Label Stems uses the AI engine when you have one configured, and it was never told the Sample label existed — so it could return any of the other nine and never that one. A chopped piece of another record picked up by name (samp, chop, flip) was always labelled correctly; one whose name gave nothing away was not.
It matters because a Sample is not an instrument: it arrives carrying somebody else's kick, bass and mastering, so it keeps its low end where an unrecognised stem would be cut at 60 Hz, and it is compressed less because it has been through a mastering chain once already.
1.1.52
A stacked vocal group is levelled on the lead now, not on whichever layer happens to be loudest.
- The lead vocal, not the ad-lib
When you load several vocal tracks, StemMaster places the whole group by one of them, so the lead is not pushed down by how much is stacked around it. It used to pick the loudest track for that job — which is the lead most of the time, and is not the lead when a printed ad-lib, a doubled hook or a vocal effect is hotter than the main take. When that happened the whole group was seated on that one layer and every vocal went down with it.
It now picks by how much of the song a track actually carries as well as by how loud it is: of the takes that run through the song about as much as the busiest one, it takes the loudest. A lead runs through the song; an ad-lib is sparse. A genuine stack — a doubled lead, a harmony pile — is placed exactly where it was before, because there the loudest really is the right seat.
Reported by someone testing a four-vocal session where the ad-lib was the loudest track. The engine still names the track it chose in the notes, so you can check it. - It says when your direction was overruled
The DIRECTION box applies a trim on top of the levelling, not an override of it. So asking for vocals up front adds a little, and if the levelling has already decided the vocals belong several dB down, the cue is applied and you cannot hear it. That used to happen silently — the notes said the direction was applied, which was true and not the whole story.
Now it says so: what the cue asked for, where the stem actually ended up, and that raising that fader after mastering is the way to get what you asked for. Same as the notes already do for a stem that hit the gain ceiling or a bass lift that was held back.
1.1.51
The DIRECTION box will now show you the words it listens for, with no API key needed.
- The cue palette
The built-in engine understands a fixed list of terms rather than reading your sentence, and until now the only way to learn them was the manual. The button beside the DIRECTION box now opens them: every word that engine listens for, grouped by what it changes — tone, weight, character, space, and bringing a part forward. Click one and it types itself into the box, so you can pick a word and carry on writing around it.
Two details worth knowing. Cues that only lift a named stem are greyed out when your session has no such stem — there is no point offering to bring the guitar up in a song with no guitar in it. And the words light up as you type: write vintage tape and the warm cue lights, because that is the one your sentence just triggered.
The button is the same one that asks the AI for suggestions, and it follows whichever engine is set to read the box. On the AI engine it does what it always did and pitches four directions written for your actual stems. On the built-in engine it opens the palette. It used to refuse here and send you to Settings to enable an engine that does not need a vocabulary at all, which was exactly backwards.
1.1.50
The hint inside the DIRECTION box is readable now, instead of stopping mid-word.
- The DIRECTION hint fits the box it is written in
The grey prompt in the DIRECTION field ran off the end and stopped at “dark and punc”. It had always been too long — it wanted about a third more room than the box has — so nobody has ever seen the end of it, on either platform, at any window size. It is shorter now and reads in full.
Since the sentence that used to explain the field is one of the things that had to go: DIRECTION is optional, and it takes plain English — dark and punchy, vocals up front. Hovering the box gives you the longer explanation, which is no longer competing for room. The spark button to the right of it will suggest directions for the stems you have actually loaded, rather than generic ones; that button asks the AI engine, so it needs your own API key set up in Settings → AI Engine. The built-in engine reads the box too, and always has.
1.1.49
The 32-bit float master export is finally in the menu, seven releases after it was announced.
- WAV 32-bit float, where it should have been all along
File → Export Master now offers WAV 32-bit float alongside the others, and so does the Export WAV/FLAC button. It is for carrying a master into another chain without quantising at the handoff. 24-bit stays the default and is still the right choice for almost everyone — the master has already been through the true-peak limiter, so it fits inside 24-bit with room to spare. This is only for anyone who would rather it did not have to. Note this is the master export; File → Export Stems has always written float, for a different reason — a single stem can peak above 0 dBFS quite legitimately, because only the sum has to fit.
Being honest about why this is here: the 1.1.42 notes told you this format was offered, and it never was. The code to write the file existed and nothing in either menu pointed at it, so the option could not be reached from anywhere in the app. If you went looking for it after reading that entry and concluded you had misread, you had not.
1.1.48
Bass-Heavy now lifts the bass on music where the bass is inside a sample.
- Bass-Heavy on sample-based music
The Bass-Heavy profile raises two things: the bass and, a little less, the drums. It found them by name — so on a session built from a sample and some drums, where nothing is labelled Bass because the low end lives inside the sample, the drum half of the profile landed and the bass half moved nothing at all. The profile described as “EDM, hip-hop and club weight” was doing least on exactly that music, and the master could come out short of the low end you asked for. It now raises whatever stem is carrying the bottom. StemMaster already measures that, so nothing is guessed: the sample has to be genuinely low-heavy and audible, and there has to be no audible Bass stem doing the job instead — a session with a real bass part is untouched, and a vocal chop is never mistaken for the bass. If you have picked Bass-Heavy on sample-based music before, master it again and you should hear the difference.
1.1.47
The header said the AI engine was unavailable when it was working.
- “AI engine unavailable” on an engine that was running
If you connected OpenRouter, the indicator at the right of the header went amber within a second of saving your key, whatever key it was. StemMaster checks the engine by asking the endpoint about the model you picked — a lookup that costs nothing — and OpenRouter does not answer that particular question for any model it serves. So the check failed and the header reported the engine as unavailable. Your masters were not affected: that indicator drives the label and nothing else, so the AI engine was being used the whole time. Where the free question cannot be answered, StemMaster now asks for a one-token reply instead — enough to prove the endpoint takes your key and serves your model. It happens at most once every five minutes, and only on endpoints that need it, so expect a few thousandths of a cent rather than anything you will notice. With the AI engine switched off, nothing is contacted at all, exactly as before. - Clicking a heading in the Help made it vanish
The contents list added last version highlights the section you are reading. Because the cursor starts in the search box, the list never held keyboard focus, and a selected row was drawn in the muted colours reserved for that — grey on grey. It reads clearly now whether or not you have clicked into the list. - The Fetch models line was cut off
The note under the model box explains that fetching checks the endpoint rather than your key. It ran to three lines in a space for two, so the last one was clipped. It is shorter, and the longer explanation is on the tooltip.
1.1.46
The Help is a contents list you can search, and the model box no longer offers models that cannot answer.
- The Help has a contents list, and a search box
It was eleven sections in one scroll, and the only route to Troubleshooting went past every topic in Workflow — fourteen of them. Nothing was missing from that page; it was all on screen at once, which is a different problem and a worse one, because a reference nobody can navigate gets read once and guessed at afterwards. There is a contents list down the left now: pick a section to read it on its own, or open one to jump to a topic inside it. The search box filters that list and lands you on the word itself rather than the top of a section that mentions it once, near the end. Ctrl+F jumps to the box, F1 still opens the window. - The model list no longer offers models that cannot answer
If you connect OpenRouter, StemMaster shows you the models your endpoint lists — and 65 of the 420 it returns are batch-only, a separate service for jobs submitted and collected later. Picked from the box they answer every request with “this model is only available through the Batch API”, so 15% of that list could never work, and choosing one meant every master failing with an error naming a service you had not asked for. They are filtered out. Free models are not: those are ordinary models with a rate limit, and on a small balance they are the most useful things in the list. - “Fetch models” no longer implies your key works
It said N models available to this key. Some endpoints — OpenRouter among them — serve their model list to anybody, so the fetch had succeeded before the key was looked at, and a customer reasonably read that line as proof his key was good while every master was failing. It now says what it actually checked: the endpoint and the URL, not the key. - A provider that refuses one setting is asked again without it
Compatible endpoints disagree about which options they support, so StemMaster tries the strictest request first and steps down. It only stepped down when the refusal came back as one particular kind of error, and some providers use another — in which case a request that would have worked on the next attempt was never made.
1.1.45
AIFF export, for the Mac sessions the master is usually going back into.
- Export the master as 24-bit AIFF
File → Export Master has a fifth entry: AIFF 24-bit. It carries exactly the same samples as the 24-bit WAV beside it — the difference is the wrapper, and a lot of Mac-side software and a lot of Mac-side habit still expect that one. Until now getting an AIFF out of StemMaster meant exporting a WAV and re-wrapping it by hand, which is a silly thing to make anybody do on the platform the app had just arrived on. It is undithered for the same reason the 24-bit WAV is: at 24 bits the quantisation error already sits below anything a converter will resolve, and the 16-bit WAV stays the only export coarse enough to want dither. Stems export is unchanged — this is the master. - The Help said the export menu offered four things, and it offered five
Adding AIFF put a fifth format in the menu and the sentence introducing them went on saying “offers four”. Every format was described correctly underneath; only the number counting them was wrong, which is the sort of thing a reader resolves by assuming they misread the menu. Corrected, and the test suite now checks any number in the Help that counts a menu against that menu.
1.1.44
A master that is running can be stopped, and the in-app Help is readable again.
- You can stop a master without closing the app
Choosing the wrong loudness target or profile and noticing a second later meant waiting for the whole master to finish, or killing StemMaster and starting over — there was no way to say “not that one”. There is a Stop button beside the progress bar now. Nothing is changed when you use it: the mix you were listening to is still there, and the result of a run you stopped is discarded even if it happens to finish in the moment between your click and the engine reading it. Analysis and rendering stop within a moment. If the optional AI engine is waiting on a reply from your provider, the stop lands when that reply arrives, and the label says it is waiting rather than pretending the run is already over. - The Help ran together into a wall of text
Inside each step of the Workflow section, every paragraph was jammed against the next with no gap — the first step alone was nearly six thousand characters with nothing separating five different topics. The steps had been spaced from each other in an earlier version and the paragraphs inside them had not, which is why it looked half-fixed. They are proper paragraphs now. - Dropdowns look like dropdowns
No dropdown in StemMaster has ever drawn its arrow. On the closed boxes it did not matter, because clicking anywhere opens them. On the Model box in Settings → AI Engine it did: that box can be typed into, so clicking it put a cursor in the text instead of opening the list, and with no arrow there was nothing to press. You could reach the models with the up and down keys and no other way. The arrow is back on every dropdown, and the line under the Model box now says how to open the list. - The support file records the moves that change over time
The settings file StemMaster writes beside a master listed every fixed decision — levels, EQ, compression — and none of the ones that move through the song. When a customer sent three of them in to explain a level drop, the files could not answer the question they had been asked for. Section automation and sidechain ducking are both in there now. - Every “where is my key” message names the portal
When activation could not find your licence key, the app told you to look in your order email. That is the one place people cannot find it — a customer pasted his invoice number into the box, having read exactly that sentence. Those messages now name the purchase portal, which lists your key on the page.
1.1.43
Starting StemMaster twice no longer leaves you with a window that never opens, and the log it writes when something goes wrong can no longer be erased by the thing that went wrong.
- Two copies at once could leave you with neither
StemMaster takes a few seconds to appear, and on a slow machine that is long enough to make anyone click the icon again. Doing so started a second copy, and the two of them then argued over your sound card until one of them stopped responding — usually the one you were looking at.
One customer lost twenty-five days to this. He had bought StemMaster, could never get it open, and every diagnostic we asked him for came back describing a launch that had gone perfectly.
StemMaster now runs as a single copy. A second double-click tells you it is already open, and says to close it from the Task Manager if it is not responding, rather than quietly starting a second one that cannot work. - The startup log stopped overwriting itself
The file StemMaster writes while it starts was replaced at every launch, which was fine until two copies were running: the second one wiped the first one's record while starting, so the evidence of the problem was destroyed by the problem. It now keeps recent launches instead of only the last one, each marked with its own start time, and the file is capped so it stays small enough to email.
If you have ever sent us a log that turned out to say nothing useful, this is why.
1.1.42
StemMaster now opens without waiting on your audio drivers first, a fader move that costs you the master says so instead of leaving you to find it, and an app that freezes after it opens now writes down where it stopped.
- It opens without asking your audio drivers first
Until now, every launch asked Windows for the full list of audio devices before the window existed. On most machines that is a fraction of a second and you would never know. On a machine with a driver that answers slowly it is not: one customer's launch spent nine seconds in that one step, with nothing on screen but a busy cursor.
Nothing at startup actually needed that list. It is now fetched the first time it is really wanted — when you play something, or open Audio Preferences — so those seconds are off the launch for everybody, and entirely off it for the people who were paying the most. - If your own fader move starts costing you the master, it now says so
Move a fader and hit the mix again, and StemMaster now compares the limiter's behaviour on your version against its own. If your change is making the limiter work distinctly harder, the status bar tells you, and tells you which way to ease it.
This one is worth explaining, because it came from a real session that cost a day and a half. A customer heard rumble in a master, pulled the bass down by hand, and re-rendered. The rumble went, and something worse arrived: the limiter, now working against a mix it had not balanced, started distorting. He was hearing a fault his own correction had introduced — and nothing in the app said a word about it, so there was no reason for him to suspect his own fader. Now there is. - Exported stems were being clipped, and now are not
If you have used File → Export Stems to take a mix into your DAW, the files you got were quietly damaged. They are written correctly from this version, in 32-bit float.
Here is what was happening. A single stem can peak above 0 dBFS perfectly legitimately — stems cancel against each other, so only their sum has to fit. The exported files were 24-bit, which has a hard ceiling at 0, so any stem louder than that had its peaks flattened on the way to disk, with nothing said.
The whole promise of that export is that the stems add back up to the mix you heard. Measured on our own test session, three of six stems were over the ceiling, the loudest by 3 dB, and adding the exported files back together missed the real mix by a long way — nowhere near subtle. If you have exported stems from an earlier version and something sounded harsh that did not in the app, that was this. Export them again.
Float has no ceiling, so the peaks arrive intact; pull the faders down in your DAW and everything is still there. The master export is unchanged at 24-bit by default — it has already been through the limiter, so it fits — with 32-bit float offered beside it if you would rather not quantise at the handoff. - It no longer asks for a password it had no use for
StemMaster keeps your AI API key in the operating system's own credential store rather than in a settings file. It was fetching that key the moment the app launched — whether or not you had ever switched the AI engine on, and whether or not you had ever given it a key.
On Windows that is invisible: Credential Manager answers without asking anybody anything. It is not invisible everywhere, and an app asking for a password before you have told it a single secret is a bad way to say hello.
The key is now read at the moment something is about to use it. The AI engine is off by default, so if you have never turned it on, nothing goes near the credential store at all. Nothing changes about where your key is kept, or about the engine finding it when you do use it. - And a freeze AFTER it opens leaves a record too
1.1.41 started writing startup.log, which names the stage a launch stopped at. It had a blind spot: it stopped watching the moment the window appeared. An app that opened normally and then stopped responding wrote a log describing a perfectly good launch, which is the least useful thing it could have said.
It now keeps watching for as long as StemMaster is running. If the app ever stops responding, it records how long for and exactly what it was doing at that moment. If you have ever had it freeze on you, that file is now worth sending.
1.1.41
Every export now writes a small text file beside it saying what the engine decided, a mix whose bass carries real sub no longer has its whole low end lifted along with it, and a launch that fails now leaves a record of where it stopped.
- Your master now comes with a note explaining itself
Export a master and you get a second file next to it, StemMaster_Master.settings.txt. It holds the profile you chose, which engine ran, the loudness target, any direction you typed, what the engine set every stem to, where you moved the faders afterwards, and what the master actually measured. No audio, and nothing that identifies you.
It exists because of a session we spent a day and a half on. A customer heard low-end rumble in a master that his own mix did not have, and he could not have been more helpful — he sent his stems, his mix and our output. It still took a day and a half, because the file he sent had already been corrected by hand and nothing anywhere recorded what the app had decided before he corrected it. One line in one file would have answered it.
Open it in Notepad; it is written to be read. If you ever mail us about a master, send this with it. - If it ever fails to start, it now says where it got to
A customer wrote to say he had never once managed to open StemMaster: it showed a spinning cursor after launch and then nothing. That was the whole report he was able to give, and it was not his fault — the app had no way to tell him more.
Almost everything StemMaster does at startup happens before its window exists, including asking Windows for the list of audio devices. On nearly every machine that takes a fraction of a second. If a driver answers badly it can take much longer, and until now there was no window to show a message in and nothing written down afterwards.
From this version, every launch writes startup.log into %LOCALAPPDATA%\StemMaster, one line per stage. If the app starts, it is a short boring file you will never need. If it does not, the last line names the step it never came back from — and if the window has not appeared within 25 seconds it also records what every part of the program was doing at that moment. If StemMaster ever fails to open for you, send us that file. - A loud bass no longer drags the whole low end up with it
The mix stage sets each stem toward a level for its kind — drums like drums, bass like bass — and until now it judged each one on its own. On a drums-forward mix every one of those decisions points the same way, and a bass carrying genuine sub content brings the rest of the low end up with it. Measured on the session that reported it: a bass raised 8 dB, and the share of the mix sitting between 30 and 60 Hz roughly tripled.
There is now a check after all the levels are chosen, looking at what they do together rather than one at a time. If the set would inflate the mix's own sub content past a reasonable margin, the lifts that are doing it are eased back. It only ever reduces, and never below the level you had, so the worst it can do is decline to raise something. Where it acts, the summary panel says so and names both figures.
1.1.40
The fader scale 1.1.39 added could print its bottom number as “−2” instead of “−24” — on Windows, and never on the machine it was written on.
- The number at the bottom of a fader scale could be cut off
The scale measured its own width against the font it had while it was being built — which is not the font it ends up painting in. A widget takes its typeface from its parent, and this one is measured before the layout gives it one. Same point size, different typeface, different width. On the machine it was developed on those two typefaces happen to be the same and nothing showed; on Windows they are not, and the last digit fell off the edge.
It now re-measures whenever the font actually changes, and the drawing no longer trusts that measurement either: each number is laid out against the width the scale really has, right-aligned, and the tick mark gives up its length before the digits give up theirs.
If a number still cannot be drawn in full — a case you would have to work at to reach — it is not drawn at all, and the tick is left to say the travel reaches that far. A −24 with the 4 sliced off does not read as a damaged label. It reads as −2: a different number, stated with the same confidence. That is the whole reason to put numbers on a fader, and it is why this went out as its own release rather than waiting for company.
1.1.39
1.1.38 could abort as it closed. The engine check runs on its own thread, and quitting within a few seconds of launch — or of closing Settings — could tear that thread down while it was still talking to the network.
- Quitting while the engine check was running could crash
The header’s engine readout asks the endpoint whether your model answers, on a background thread, with a six second timeout. 1.1.38 tried to stop that thread on close and did not always succeed — and a thread being destroyed while it still runs takes the process with it. Nothing was at risk but the exit itself: the session autosave and any export had already finished by then.
It now waits for the check instead of trying to kill it. The wait is bounded by the same six seconds the check already had, so the slowest possible close is a few seconds and only on the rare quit that catches a check against an endpoint that has stopped answering. Two faster answers were tried first and both were worse: forcing the thread down does not reliably take effect, and setting it loose does not help because it is the thread still running at exit that ends the process, not who owns it. - Where unity is on a fader, without hunting for it
A gain fader runs −24 to +12 dB, which puts 0 dB a third of the way down rather than in the middle. Nothing on the strip said so — the box under the fader tells you where you are, and nothing told you where unity was until you went past it.
There is a scale beside each fader now: 0 brightest, the two ends of the travel next, the steps between them faintly. It answers “where am I heading”; the box still answers “where am I” to a tenth of a dB and still accepts a typed value. A narrow strip hides the scale along with the L/R captions and keeps the box.
Drawn beside the fader rather than on it, because the fader is 15 px wide and already carries two marks that say more than a tick does: an amber one where the engine put that stem, and a blue ghost handle where automation is riding it right now.
1.1.38
The engine decided what to do about the low end without ever asking whether anything was wrong with it. It now measures whether the kick and the bass actually collide — in time, at the kick’s own hits — and leaves them alone when they do not.
- Move several strips at once
Click a channel strip's panel to select it; Ctrl+click adds or removes one, Shift+click takes the run between, and clicking the empty space beside the strips or pressing Esc clears. With several selected, a move on any one of them lands on all of them.
Gain and pan go on as a relative offset, which is the point: three drum mics at −2, −5 and −8 dB dragged up 3 dB become −1, −2 and −5, still 3 dB apart. Setting them all to one value would throw away the balance you selected them for. And if any one of them reaches the end of its travel the whole group stops there rather than letting the rest slide past it — a group move that re-spaces the group is not a group move. Mute and Solo apply outright, there being no such thing as a relative mute.
This was listed under 1.1.37 and did not ship in it. It reached master after that version was cut, so the 1.1.37 installer never contained it and the changelog credited it with a feature its own users did not have. The entry has been moved here, where the code actually is. - Clicking a strip selects it, anywhere on it
Three faults met on one gesture, and each was invisible to the tests written for the one before it.
Ctrl+click was already taken. The gain fader and the pan dial bound it to reset-to-unity, which double-click already did — so the gesture meant to select a strip silently zeroed its gain instead. Double-click still resets; Ctrl now means one thing everywhere on a strip.
A control swallowed the press. Selection lived on the strip’s panel, and a press goes to the deepest widget that accepts it — so clicking the fader, the thing the feature was asked for in those words, never reached the strip at all.
And the panel behind it undid the rest. The strip selected itself correctly and the surface behind it read the same press as “clicked the empty space” and cleared the selection. Only presses that landed on a control survived — which is most of a strip’s top and almost none of the fader area below it, so the strip had a live top half and a dead bottom half. - A duck is measured against the kick’s hits, not its band
The engine ducked the bass under the kick whenever both measured low-heavy. That reads how much low end each carries and never reads when — and masking is entirely a question of when. A bass can hold most of its energy below 150 Hz and almost none of it at the moment the kick lands, because it is playing in the gaps between the kicks.
Two things are measured now for each candidate pair: how much of the low end the target holds at the key’s own hits, and how much of the target’s own low end lives away from them. The second is what tells a bass line apart from a distorted copy of the kick — ducking that would thin the transient it was meant to reveal.
Two sessions were rendered both ways at matched loudness and listened to: the one whose bass held 6.7% of the low end at the kick was preferred with the duck removed, and the one at 35.9% was preferred with it kept.
The new test is combined with the old one rather than replacing it, so it can only ever withhold a duck — no session gains one it did not have before. Where the measurement is missing, the duck stands. - The sample carrying your low end is not a bass line
On sample-based music with no bass stem, the sample is the low end. The engine treated it as a sample anyway and lifted it to where a sample usually sits — on one customer’s session +2.9 dB, while his kit got +0.8. The sample supplies the sustained low end and the kick supplies the peak, so raising one and not the other closes the distance between them, and that distance is what a listener calls weight.
A sample that carries the track’s low end, in a session with no bass stem, is now held with the drums rather than lifted past them. On his session, at the same measured loudness and the same true peak, low-end peak-to-median went 9.42 → 11.77 dB.
It only declines to raise the sample. Cutting it below the kit would be the engine overruling the balance you set, and on sample-based music that balance is the beat. - The header says which engine is running
A readout in the header names the engine that will master your session, and names the model in brackets when it is the AI one. It is a real check rather than a reading of your settings: it asks the endpoint whether that model answers before claiming the AI engine is available, and says so plainly when it is not.
The built-in analysis engine is offline and remains the default. The optional AI engine needs your own API key and receives measurements only — never your audio. - Two stem labels were the same orange
Sample arrived last release wearing almost exactly Percussion's colour — hue 26 against hue 25, close enough that the strip colour, whose whole job is to tell you what a channel is at a glance, told you nothing. Sample is now a pale lilac.
Every pair in the palette is measured now rather than eyeballed, including with red-green colour blindness simulated. That is what chose this colour: a bronze looked better to normal vision and was dropped, because bronze and orange are the same colour to a protanope and it would have arrived as the worst pair in the palette.
Also listed under 1.1.37 without shipping in it, and moved here for the same reason.
1.1.37
Every stem was compressed and none was compensated, so the peakiest stems — the drums, on nearly every record — arrived up to 6 dB below where the engine had put them. The mix that came out was not the mix it decided.
- Compression changes dynamics, not balance
The engine balances stems from their measured loudness and then compresses each one. How much level compression takes off depends on how peaky the stem is, and nothing gave it back — so the balance drifted, always away from the drums.
Measured on a customer's six-stem session, in LUFS: kick −5.13, snare −6.10, hi-hat −3.49, but the sample only −1.47. The snare was arriving 4.6 dB quieter relative to the sample than the engine asked for, and the kick and the hi-hat had moved 1.6 dB against each other inside the same kit.
Every per-stem compressor now gives back exactly the level it took. Spread across those six stems: 4.63 dB → 0.23 dB. Nothing about the compression itself changed — the same thresholds, the same ratios, the same ballistics. It just no longer doubles as a fader.
This is not a bass control, and which way it moves a record depends on which of its stems are the peaky ones. On the session above the kick and snare were losing the most, so the master gained low end. On StemMaster's own demo stems it goes the other way: the sustained sub is the least affected stem there, so the shaker and the drum loop come back up instead and the low end's share of the master falls. Nothing was added in the first case and nothing removed in the second — it is the decided balance arriving intact, whichever direction that happens to be. - The master multiband was doing it to the low end too
The same reasoning — “the loudness stage owns level” — sat in the multiband, which compresses the band below 120 Hz when a mix's low end measures uneven, and never made it up. A loudness stage moves all three bands together, so it cannot undo that: compressing one band and not restoring it is a shelf on that band. Each band is now level-matched to itself.
Together the two returned 21% more energy below 150 Hz to that customer's master, at the same measured loudness and the same true peak. - What follows from it, so it is not a surprise
The drums bring their transients back with them, so the mix reaches the loudness stage with more crest than it used to and the limiter has a little more to do at the same target — on the test session, 1.12 dB where it had 0.26. That is the right amount of work for it; the old figure was a symptom of an under-level mix.
One thing it cost: while you are working, the provisional master you hear is bit-identical to the exported file wherever the limiter is idle, and that used to include −14 LUFS. It no longer does. Above the point where the limiter engages the preview is what it always was — the same DSP with inter-sample detection skipped — and the exact render still swaps in behind it.
1.1.36
A sample had no label, so it was mixed as an unknown — filtered at 60 Hz and set level with the drums. Sample-based music was losing its low end to a guess.
- A sample is a mix, not a part — and now it has a label
Nothing in the labeller matched one. Sample, SAMP, Loop, Chop, Vinyl and Flip all fell through to Other, which is the same gap Strings sat in until 1.1.18 — except that in sample-based music the sample is not one part of the record, it is the record.
A chopped loop arrives carrying the source record's own kick and bass, so it now gets a high-pass of 24 Hz, the same as Bass and for the same reason: it is the other stem that may be holding the track's fundamental. It sits 2 dB under the drums rather than level with them, and it is compressed more gently than a single part, because this material went through a mastering chain once already.
A loop of something is still that something: Drum Loop stays Drums, Perc Loop stays Percussion, Bass Loop stays Bass. - An unrecognised stem is no longer filtered on an assumption
Other means the labeller could not tell what a stem is. It was still cut at 60 Hz on that basis — which asserts the one thing the app had just admitted it did not know, namely whether that stem is carrying the low end.
The cut is now measured rather than assumed. If an unidentified stem has real energy below 60 Hz it keeps it, filtered at 24 Hz to remove only DC and rumble; if there is nothing down there, the tidy-up applies as before. Nothing changes for the nine labels the app does recognise. - Measured on the session that reported it
A mix engineer sent his stems, an untouched master and one he had corrected by hand. At matched loudness his own mix carries 0.497 of its spectral power below 150 Hz; the old master managed 0.190, and his hand correction 0.214.
The same session through this build measures 0.245 — 81% more sub and 29% more low end overall than before, and more than his own manual fix recovered. It is not all the way there: half the distance to his mix remains, and the rest is master-bus work that has not been done yet.
1.1.35
StemMaster has always worked with more AI providers than it admitted to — including one that runs on your own machine for nothing. The app was telling you otherwise. Nothing about the engine changed; what it says about itself did.
- Help named one provider. The app offers ten
Help said the AI engine “works with the Anthropic API or any Anthropic-compatible endpoint”. That has not been true for a long time. Open File › AI Engine Settings and the Provider list carries Anthropic, OpenAI, Google Gemini, xAI Grok, DeepSeek, z.ai and OpenRouter — pick one and the endpoint and the model list fill themselves in — plus two Custom entries for any endpoint speaking either dialect.
So anyone who read that line and concluded their OpenAI key was no use here was told wrong by the product. Help says all of them now, and so does the manual. - ...and one of them is free, local, and sends nothing
Ollama is in that list and was documented nowhere. It runs a model on your own computer: no key, no account, no bill, and nothing leaves the machine at all — not even the measurements the hosted engines receive.
If what has kept you on the built-in engine is that the optional one talks to a server, that is the answer, and it has been sitting in the dropdown unmentioned. - A stray ampersand in the provider list
That dropdown read Ollama — local && free. The doubled ampersand is how Qt escapes a literal one, and the buttons that rely on it are right — but a dropdown does no such unescaping, so it was shown to you exactly as typed.
One character, in a list every user of the AI engine opens. Found by rendering that list for a tutorial and reading the picture back.
1.1.34
A big multitrack could run out of memory and fail to master at all — the master bus was holding the whole song five times over where it only ever needed a slice of it.
- Large sessions master in a third of the memory
Reported on a 3.9 GB multitrack, which stopped with “unable to allocate 604 MiB” and no master at the end of it. The multiband compressor on the master bus splits your mix into three bands, and it was building the whole song at full length four times over before it compressed any of it — measured at 15.6× the size of the mix, about 4.7 GB for that session, on top of the stems already loaded.
It works a slice at a time now and carries the filter across the joins, so the same session goes through the master bus in about 1.7 GB instead of 4.7.
Your masters are unchanged. Not “near enough” — identical, sample for sample, and there is a test that renders it both ways and compares them to make sure it stays that way. - And if it still does not fit, it says so in English
The old failure put a programmer's error message in a box: a shape, a data type and a number of megabytes. It named the one buffer that failed rather than the session that would not fit, and 604 MB reads like a small number to anyone with 16 GB of memory.
Now it tells you how big the session is, roughly what the render needs in total, and what actually helps — closing the DAW holding a second copy, bouncing a group of backing vocals down to one stem, or working at 48 kHz instead of 96. And it says plainly that nothing was written and your stems are untouched.
1.1.33
The Engine Notes now say where every track was placed — the one decision they never printed, and the one you need to check whether a direction about levels actually landed.
- A Levels line, at the top of the notes
The notes listed thirteen kinds of decision — sidechain ducking, unmasking, reverb, dynamic EQ, punch, gain riding, multiband, mono bass, soft clip, sections, automation — and not the most basic one of all: how loud each track was set.
Found the hard way. A session asked for “the bass at 1:03 is too overpowering”, and the notes of the render that answered it could not say whether the bass had been turned down. The only place it showed was the amber marks on the faders, and those are overwritten by the next render, so two runs could not be compared at all.
Levels is now the first line: Drums −2.0 dB ×5; Bass −3.5 dB; Vocals (Lead Vox) +1.5 dB. Tracks placed alike collapse to one entry with a count, and a track is named as soon as another sharing its type was placed differently — the same rule the other lines have followed since 1.1.28.
It is the only line that lists every track, including the ones left where they were, which read 0.0 dB. The other lines describe processing, so a track with no reverb needs no reverb line. This one answers “where did it put my bass”, and a missing entry could not tell you whether the answer was “nowhere” or “unchanged”.
Master, read the number, ask for the change, master again, compare.
1.1.32
On a large session the AI engine was running out of room mid-answer — so the section automation, where a request like “the bass is too loud in the breakdown” actually lands, was quietly being left to the built-in engine.
- Big sessions get a complete answer
The AI replies with one long document covering every track, and on a large session it was hitting its length limit before the end. Measured on a real 59-track session: 48 tracks arrived and the rest did not, along with the sidechain ducking, the section automation and the master bus.
1.1.31 started telling you when that happened. This one stops it happening — the reply now has room for roughly three times the previous length, which covers a session that size with a great deal to spare.
If you have a big session that came back with the cut-off notice, run it again on this version. It is worth doing even if you liked the result: what you heard was the built-in engine finishing a job the AI started. - ...and if one is ever cut short, it costs the cheap half
No length limit survives every session, so the order was wrong as well. The AI was asked for the per-track detail first, which meant anything cut short lost the small things after it — the ducking, the section automation, the master bus, the summary — while keeping the bulk. Those small things are exactly the ones with no substitute, and the per-track detail is the part StemMaster reproduces well on its own.
It is asked in the opposite order now. A reply that runs out still gives you the ducking and the automation, and says which tracks it did not reach.
1.1.31
The direction box remembers what you asked for, so you can steer a mix across several masters instead of rewriting the brief every time.
- Tell it what to change, not what you wanted all along
Until now the direction box was a fresh brief on every render: to nudge one thing you had to describe the whole mix again and hope the rest came out the same.
Now it is a conversation. Master, type vocals a bit louder, master again — and the AI engine is told what you asked before, what it reported doing, and that this newest message is a change to the mix you just heard. Say too much, back it off next and it knows what "it" is.
After your first master with a direction, the line above the export buttons invites the follow-up — so you do not have to know the box works this way to find out. From the second message on it lists the conversation so far instead, and File → Clear Direction Conversation starts a fresh one without emptying the box. The conversation is saved with the session and comes back when you reopen it.
Two honest limits. This needs the optional AI engine and your own API key; the built-in offline engine reads only your latest message, and now says so rather than quietly ignoring the rest. And each message resends the session's measurements plus the exchange behind it, so the panel reports what actually went — how many round trips and how much was sent — and leaves the price to your provider, which is the only place it is known. - It says where it disagreed with you
If you asked for something the engine could not do as asked — a move past a limit, a setting the profile pins — it used to arrive without comment and you were left comparing your request against the result.
The panel now names what came back different and by how much. It compares what was asked against what was applied rather than reading the engine's own account of itself, so it is right even when the model's summary is not. - The AI's summary names your tracks
When the AI writes its own paragraph it was numbering stems — “kick (31)” in a session where 31_BackingVox1 is a backing vocal. Those were its internal numbers and the mix itself was right, but since almost every DAW export has a number in the track name, every reference read as a claim about a different track.
It is now asked to use your track names. That paragraph is written by the model and StemMaster does not check it — the heading above it says so — so this is a firm instruction rather than a guarantee, but the measured lines above and below it have always named tracks and still do. - It says when the AI ran out of room
On a big session the AI's reply is a long document, and it can be cut off before the end. StemMaster has always recovered from that by finishing the mix with the built-in engine, which is the right thing to do — but it did it silently, so you were looking at a mix that was part one engine and part the other with nothing saying where.
It now says so, and names what the built-in engine ended up deciding: how many stems, the sidechain ducking, the section automation, the master bus. Running the master again often gets a complete reply. Found on a 59-stem session whose notes said the model had returned no summary — true, and the wrong reason: the summary is the last thing in that document, so it is the first thing a cut-off reply loses. - An exported master no longer exceeds the ceiling it prints
Every render finishes with a line giving the loudness it hit and the true peak it hit. On real material those two figures disagreed: the master could sit fractionally above the ceiling it had just reported — up to 0.34 dB on sharp transients — which is exactly the number a distributor checks.
The final peak is now seated on the ceiling exactly, and both printed figures move with it, so the sentence under your master describes the file you export. Nothing else about the sound changes: the correction is one flat volume trim, never upwards. - Exporting shows a loader instead of freezing
The window went unresponsive while a file was being written and then simply carried on, with the confirmation tucked away at the bottom of the screen — so a quick WAV looked like nothing had happened at all, and a 320 kbps MP3, which takes around twenty seconds on a long song, looked like a crash.
The write now happens in the background: the window stays alive, a bar runs with the name of the file and a clock, and when it lands the confirmation appears in the panel above the export buttons where you were already looking. Stem exports get the same lasting confirmation.
1.1.30
A stacked vocal no longer gets quieter the more parts you stack around it — and numbered track names are recognised at last.
- Your lead vocal is placed by the lead, not by the pile
When several tracks share the Vocals type, StemMaster used to place them by their combined loudness. That is right for a drum kit — six mics of one kit really are one kit — and wrong for a lead with doubles and ad-libs behind it, because the lead then arrives quieter the more parts you stack, by how many there are rather than by anything you decided.
A vocal group is now placed by its loudest track, so the lead sits where it would sit on its own and everything else keeps the balance you recorded underneath it. The Engine Notes name the track it used and say how far that moved the group, so you can see at a glance whether it picked your lead or a loud ad-lib.
Nothing changes for a session with one vocal. If you preferred the old behaviour, it is still there — see the manual. - Numbered track names are recognised
Vox1, HiHat1, Synth2 — the names every DAW exports — were not being recognised, because the take number ran straight into the word. On a real 24-track session that left eighteen of the twenty-four marked as an unrecognised type and excluded from level placement, which is most of a session.
They are read properly now, doubles like Vox1DT included. A track whose name says it is an effect — VoxSFX, Vocal FX — is treated as one rather than as a vocal, which matters because a loud effect sitting in the vocal group drags the whole group's level. - The listen-back readout says what it measured
A band that could not be brought all the way to target reported the figure it measured under the word “still”, which reads as what is left afterwards. It now says “it measured 5.6 dB over target” — and which side of the target you are on. - Primary and Secondary are visible across a rack of strips
With many stems open, the three emphasis settings were all the same white text, so the one control whose whole purpose is to mark an exception could not be picked out from the rule. Primary is lit and carries a ▲, Secondary is recessed with a ▼, and Normal is deliberately left plain — it is the majority.
1.1.29
A small fix to the way StemMaster starts up: this note is the first one you are reading at the right moment.
- “What's new” waits for the intro to finish
The panel you are reading used to open while the StemMaster intro animation was still playing, on the first launch after an update — two things on screen at once, with this one taking the focus.
It waits for the animation to end now. Nothing else changes: it still appears only once per update, still stays silent on a fresh install, and is still there under Help → What's New whenever you want it again.
1.1.28
The Engine Notes now name the track, not just the type — and the rule that keeps a bass ducking against your kick now covers the AI engine too.
- The notes say which track, when the type cannot
If your kit arrives as separate mics, every drum line in the Engine Notes began with the same word: Drums. A session with five drum tracks read as five lines all starting Drums, each with different settings and nothing to say which was which — and +3 dB of attack is an ordinary choice on a kick and a mistake on a hi-hat.
Where tracks sharing a type were treated differently, the notes now name them: Drums (01_Kick) attack +3 dB. Where they were treated the same they still collapse to one line with a count, as before — a stack of fifteen backing vocals all given the same reverb is still one line, not fifteen. If you have one track per type, which most sessions do, nothing changes at all. - The kick rule now applies whichever engine you run
1.1.25 and 1.1.26 taught StemMaster to key the bass ducking on your kick by reading your track names, and to refuse a track that calls itself a tom, hat, snare or overhead. That work sat in the built-in analysis engine.
The optional AI engine chose its own track and had none of it, so the same fault could still reach a mix from there — a bass ducking against a floor tom, which fires on fills instead of on the beat. The AI engine is now held to the same rule for the bass, and when it has to be corrected the notes say which track it replaced rather than quietly swapping it.
The sidechain line also names the track it keyed on whenever your kit is separate mics, on both engines, so you can check it at a glance. - Dropdown lists fit their longest entry
The PROFILE, TARGET, track type, output device and model lists now size the open list to their own longest entry rather than to the width of the closed box.
The two are not the same thing: an open list reserves room down its left edge for the tick beside the current choice, so the same name can fit in the box and be cut short in the list under it. Every dropdown in the app measures itself now, including the output device list, which holds the longest names anything here shows.
1.1.27
The Engine Notes panel now tells you which sentences are StemMaster's measurements and which are the AI model's own account of what it meant to do.
- You can see whose words you are reading
Almost every line in the Engine Notes is StemMaster reporting what it measured and what it did — the sidechain it set, the reverbs it placed, the loudness it hit. If you use the optional AI engine, one paragraph can be something different: the model's own summary of what it meant to do, in its own words.
Those two sat together with nothing to tell them apart. They now carry a heading naming the model and saying plainly that StemMaster does not check that paragraph, while everything above and below it is measured. It matters because a model can describe its own work loosely: one recent run wrote “1 kHz room reverb” about a reverb StemMaster's own line, two rows above, correctly reported as 0.6 seconds long.
The other direction was worse and less obvious. When a model returns no summary at all, the panel falls back to the built-in engine's description — which read as though the AI had written it. That case now says so outright.
Nothing changes on the built-in analysis engine, which is the default: every word in that panel is StemMaster's own, so there is nothing to separate and no heading is added.
1.1.26
Two fixes to what the app tells you about its own work: it finds your kick whatever you named it, and it stops blaming a creative direction it never used.
- Your kick is found even when it is called “KickOut”
1.1.25 taught the sidechain to pick the kick out of a split drum kit by reading your track names. It read Kick, BD, Kik and Bass Drum — but not KickOut or KickIn, run together with no space, which is one of the two commonest ways a kick mic is labelled.
Names are read a word at a time now, and a run-together name is split at its capitals: KickOut, KickIn, SnareTop, FloorTom, HiHat and OverheadL all read correctly, in any case, with or without numbers.
Sessions on 1.1.25 mostly got the right drum anyway, because a track called Tom or Snare was already being refused — but it was reaching the kick by elimination rather than by recognising it, and on a kit where the other mics are vaguely named that is not the same thing. - The listen-back pass no longer blames a direction it never used
When the correction pass runs out of room in two or more tonal bands it says so, and it names what pulled that far — your sound profile, your creative direction, or the material itself.
It was naming the direction whenever the box had anything typed in it. But the built-in engine reads direction through a list of known terms, and when your wording matches none of them it applies nothing and tells you so. So a direction that had no effect on the mix was being blamed for the mix, and the advice — ease it — could not possibly work.
It now says the true thing: that the material itself is that far from the target, that your direction is not the cause because none of it was applied, and that the optional AI engine reads direction text in full. Nothing changes when the direction did take effect, or on the AI engine, which reads whatever you write.
1.1.25
A 36-track project used to spend twelve minutes failing its way back to the built-in engine. The optional AI engine now gets the time a session that size actually needs.
- Large sessions reach the AI engine
If you use the optional AI engine, it was allowed three minutes to answer no matter how big your session was. Three minutes was chosen when the sessions we tested against were eight tracks; a 36-track project needs closer to four, because the model has to decide settings for every stem you have loaded.
So it ran out of time — and then tried three more times, each waiting the full three minutes, before giving up and mastering with the built-in engine instead. Thirteen minutes of waiting, for a result you did not ask for.
The time allowed now grows with the number of stems in your session, and a request that runs out of time is no longer retried — a request too large to answer in three minutes is still too large on the second attempt, and the retries bought nothing but the wait.
Measured on the session that found this, 36 tracks of a three-minute song: 13 minutes 5 seconds ending on the built-in engine, against 6 minutes 36 seconds ending on the AI engine, of which 3 minutes 57 seconds was the model thinking. Nothing changed for a small session — those were never near the limit. - And if it does run out of time, it tells you something you can act on
It used to hand you the connection library's own words — “Request timed out or interrupted” — in the status bar, which is true and tells you nothing. It now says how long it waited, how many stems it was working on, and what would get it through: a faster model, or bouncing some tracks together into fewer stems.
Either way you still get a master. The built-in analysis engine takes over, and it is the default and needs no API key, no account and no connection. - A request that never came back is in the log now
The stage breakdown added in 1.1.24 only recorded the AI engine's round trip if it succeeded. One that timed out left the log saying no request had been made — printed on the same line that recorded twelve minutes spent making one. It records the attempt and what it cost either way now, which is how the fix above got measured rather than guessed at. - If your drums are separate mics, the bass now ducks against the kick
When StemMaster sidechains your bass to the drums it has to pick which drum triggers the ducking, and on a kit recorded as one stem there is nothing to choose. On a kit split across separate mics it was picking the loudest drum with the most low end — which sounds reasonable and is wrong, because that measure rewards how long a drum RINGS. A kick is the shortest thing on a kit and a floor tom is one of the longest, so on a 36-track session it keyed the bass to a track called Tom 2. The bass ducked on fills instead of on the beat.
It reads your track names now: a mic called Kick, BD, Kik or Bass Drum wins, and one called Tom, Snare, Hat or OH is refused even when there is no kick track to be found. Numbered names work — Kick 1, Tom 2, OH 3 — and the Engine Notes tell you which track it chose. Naming your stems has always been worth doing in StemMaster; this is one more thing it buys you.
Sessions with the kit on a single stem decide exactly as they did before. - “-0 dB” in the Engine Notes
The section map at the bottom of the Engine Notes lists each part of your song and how loud it is against the rest. A section sitting exactly level with the reference was printing as “-0 dB” — the minus sign is a quirk of how computers store zero, and it read as very slightly quieter than something it is precisely level with. It reads “+0 dB” now.
1.1.24
Only the first master of a session analyses it, so every master after that starts a minute and a half further along.
- Your session is measured once, not once per master
Before StemMaster mixes anything it measures your session — every stem's loudness, frequency balance, dynamics and stereo image, then the same for the mix, then where the song's sections fall. On a long high-rate session that is the single biggest part of the wait, and it was being done again from scratch every time you pressed AI MIX & MASTER on the same stems.
It is measured once now and kept for as long as those stems are loaded. Change the sound profile, type a different creative direction, load a reference track, adjust emphasis, then master again — none of that changes what your audio measures, so none of it is measured twice. Load or remove a stem and it measures again, because then it genuinely has changed.
On the session we test against — eight tracks, five and a half minutes, at 96 kHz — that is about a minute and a half off every master after the first, measured twice at 93 and 100 seconds. Asking for creative direction suggestions used to quietly measure the whole session as well and throw it away; now that measurement is the one the master uses. Nothing about the result changes: the decisions made from a reused measurement are identical, and the app has a test that fails if they ever are not. - The log says where the AI engine's time actually goes
If you use the optional AI engine, a master takes noticeably longer than the built-in one, and until now the log recorded that as a single number with no explanation. It now breaks that stage into its parts — preparing the request, waiting for the model, reading the answer back — along with how much was sent and received.
On our own measurements the answer turned out to be that essentially all of it is the model thinking: the app's share is under half a second. That is worth knowing if you are wondering whether something is stuck. It is not, and the built-in engine, which is the default and needs no key or connection, does the same stage in a fiftieth of a second.
1.1.23
The meters and waveform move at full speed, long sessions mix faster still, and the log says more about the machine it ran on.
- The meters and the waveform move at full speed
Everything that moves in the window — the channel meters, the VU, the spectrum and the playhead — is driven by one timer asking for thirty updates a second. On Windows it was delivering twenty, and had been since the day it was written. The timer was asking politely rather than precisely, and Windows rounds a polite request up to the next tick of its own clock, which turns a request for 33 milliseconds into 47. It asks precisely now. If you have ever thought the meters looked a little stiff, that was this. It was happening whether the app was mastering or sitting completely idle, which is what finally gave it away: a slowdown caused by work is not there when there is no work. - Long sessions mix faster still
The mixing pass builds your mastered mix, measures it, then applies what it learned — and it was building the whole song twice to do that. The second pass only ever needed the master-bus corrections, which do not change what any individual track contributes, so the mix is now built once and reused. Summing the tracks together walks the song in blocks as well, rather than making a full-length copy of every track first. And ducking and sidechain EQ — the two effects that pull one track down while another plays — were doing their level-following the slow way, the same way the compressor was moved off in the last version. Nobody had carried the fix across. They are about two and a half times quicker now. All of this is bit-for-bit identical: the master you get is the same file, to the sample.
On the session these were measured against — eight tracks, five and a half minutes, at 96 kHz — the mixing and mastering pass came down by about a tenth. It measured twice that on the day, but the same machine also ran the completely unchanged analysis pass eleven percent faster in that same session, so half of what we saw was the machine having a good day rather than anything we did. The smaller number is the honest one. - The log says more about the machine it ran on
When a master or a fader move finishes, the log already recorded how long each stage took. It now also records how much memory the app is using and how much of the machine's is left, exactly which build is running, and how smoothly the display kept up. It stays on your computer, in the same local log file you can send us if something is wrong. This exists because a report of “it got much slower” cost a day of hunting through our own changes when the real cause was the machine being nearly out of memory — which the log would have said in one line.
1.1.22
Playback stops stuttering on big sessions, high sample rates are handled properly, and long sessions master faster.
- Crackles and stutters on large sessions
If playback ever broke up — a short fragment repeating, like something buffering, sometimes with the meters freezing at the same moment — that was us. Playback has to hand back a slice of audio every few milliseconds, and three things were getting in its way. The buffer it works in was a fixed size in samples, so a 96 kHz session gave it half the time a 48 kHz one did; it is now worked out from your session's sample rate. The channel meters were reading every track's full audio from inside the playback engine itself, which on a big multitrack means shifting more than a gigabyte around just to make the meters move; they now read a compact level trace, about two thousandths of the work. And the mastering pass no longer runs long stretches without letting playback in — which is why the meters froze at the same instant the sound broke up, since both were waiting on the same thing. Every one of these leaves the audio itself untouched: your masters render to the same file, byte for byte. - Fader moves are heard sooner on long sessions
Two things stood between moving a fader and hearing it, and both were doing whole-song work to produce half a minute of audio. The engine worked out how loud your original mix is — so the A/B comparison stays level-matched and switching between them compares sound rather than volume — by building a complete copy of your song first, twice over. And the quick preview that lets you hear a move before the full master catches up was mixing every track from the top of the song, then keeping the thirty seconds around the playhead. Both now do only the part you are listening to. The samples are identical either way; the longer the song and the more tracks in it, the more of the wait this was. - It says so when audio drops out
A dropout used to be written to the log file and nowhere else, so the one person who could do something about it — you, listening — was the only one not told. Now the status bar says what happened and points at Buffer size in File › Audio Preferences, with the next size up to try. Once per session, so it stays information rather than nagging. - A mono session is left mono
If every track in your session is a mono file, the listen-back pass used to announce that it had “widened a near-mono image” — treating the way you recorded as a fault to repair, and on the AI engine sometimes doing it four lines under its own explanation of why the mix was mono. There is nothing there to widen: the only stereo in the master is what the processing itself added. It now leaves the image alone and says why. A mix that really was stereo and got narrowed along the way is still corrected — that one is a genuine fault. - Mastering a long session takes noticeably less time
On the session this was measured against — eight tracks, five and a half minutes long, at 96 kHz — a full mix and master went from about five and a half minutes to about four and a half. None of it came from doing less to your audio. The analysis pass was measuring the same thing twice: working out a track's frequency balance and working out how bright it is each built their own copy of the same spectrum, once per track and again for the mix, and one loudness reading was assembling a gigabyte of scratch memory to arrive at a single number. The compressor — which runs on every track and twice more on the master — was spending three quarters of its time not compressing, but building full-precision copies of your audio in order to apply a volume curve that needs a fraction of that to carry. One honest caveat, because the last version promised masters that were identical byte for byte and this one cannot: how much the compressor turns down, and when, is exactly what it was — only the way that decision is applied to the audio rounds one step earlier. The largest difference we can measure in a finished master is about 130 dB below the music — around a hundred times smaller than the smallest step a 16-bit file can represent at all, and far below the noise floor of any recording.
1.1.21
Multi-miked drums and doubled tracks are balanced as one instrument, the way you recorded them.
- A drum kit keeps the balance you gave it
If your session has separate tracks for kick, snare, overheads and room — or two mics on a bass rig, or a doubled rhythm guitar — the engine used to treat every one of them as its own instrument and push each up to the same loudness. That flattened the kit: the overheads came up to meet the kick, so the cymbals and hi-hat ended up as loud as the snare, and with four or five drum tracks all raised, everything else in the song sat behind them. Tracks that share a type are now balanced together, as one instrument, and the balance between them is left exactly as you recorded it. If you want one of them louder anyway, that is what Primary and Secondary on the channel strip are for. Sessions with one track per instrument are completely unaffected — they master to the same audio as before, byte for byte. - Renaming a file no longer changes the mix
The whole song was balanced against one drum track, and which one it picked came down to the order your files happened to load in — so on a kit with a hi-hat track, everything got arranged around the hi-hat. The same thing chose what the bass ducked under. Both now pick deliberately: the kit as a whole for balance, and for the ducking the drum track with the most low end, which is your kick. And when there are two bass tracks, both duck together instead of one of them pumping alone. - It tells you when a track is too quiet to rescue
A guide vocal recorded 20 dB below everything else cannot be brought up to sit with the band — there is a limit on how far the engine will move any one track. It used to hit that limit silently and hand you a mix with the vocal buried and no explanation. Now the Engine Notes say so plainly: which track, how much it needed, how much it got, and roughly how far under it will still sit, so you can fix it at the source or ride the fader afterwards. - The listen-back pass stopped blaming settings you never touched
When the second pass could not correct the tone as far as it wanted, it said the profile and direction were “pulling further than the listen-back pass can bring back” and suggested easing one of them — even on the default profile with the direction box empty, where there was nothing to ease. It now names only what you actually set, and says when the mix itself is simply that far from the target.
1.1.20
Fader moves in master mode are heard in seconds — and the export always includes them.
- Faders, Solo and Mute answer in seconds on the B side
Dragging a fader in master mode re-rendered the whole song before you heard anything — about twenty seconds for a three-and-a-half-minute track on a modest laptop. The first hands-on review (MusicGear.nl, testing on a four-year-old laptop) measured half a minute and politely wondered whether the laptop was to blame. It was not. Now the half-minute around the playhead renders first, so your move is audible in a few seconds, while the exact full-length master renders behind it and takes over when it lands. Until it does, the B button keeps saying REMIXING, and the LUFS and true-peak readouts show placeholders rather than numbers from the mix you just changed. - Every master and export renders about twice as fast
The render pipeline measured the same audio twice, walked its peak detection over the whole track in one enormous piece, and spent over a second per render on bookkeeping that a small rewrite removes. The sound is untouched — the output was compared byte for byte against the previous build’s on the same session — but a full master, a fader re-render and every export now finish in roughly half the time. - Export waits for your last tweak instead of quietly missing it
Exporting while a fader change was still rendering used to write the previous mix to disk — silently, without the move you had just made. Export Master and Export Stems now tell you the master is still rendering and refuse until it settles, a few seconds, so the file is always exactly the master you are hearing.
1.1.19
A saved profile now sounds like what you saved.
- The profile you were listening to is saved with your moves
Yesterday’s Save This Mix as a Profile kept your fader and width moves and nothing else. But those moves were made while a profile was already running — you were judging them against Bright / Modern, or Warm / Vintage, or whichever you had picked. The profile dropdown holds one profile at a time, so choosing your saved one replaced the one underneath, and you got your levels applied to a master without the character you had been listening to. Now that character is written into your profile too: its master EQ, compression, width, saturation, punch and its AI-engine paragraph, with its per-stem levels added to yours rather than replacing them. A profile saved over Bright / Modern still sounds bright. Profiles you saved before this update do not have it — save them again from a session and they will. - Profiles you did not name now describe themselves
Leaving the description box empty produced a profile whose only description was the date it was made, which tells you nothing when you meet it in the dropdown a month later. An empty box now fills itself in from what you actually did — “Drums 2 dB back, FX 2.5 dB up, Bass mono”. Anything you type yourself is left alone. - The name in the header is spelled the way it is everywhere else
The wordmark at the top left was set in capitals, and nowhere else was — not the title bar, the installer, the website or the store. It now reads StemMaster, with the letter spacing tightened to match: wide spacing is what makes capitals readable and it looks stretched on ordinary text.
1.1.18
Make a profile with the faders, not a text editor.
- Save This Mix as a Profile, in File → Custom Profiles
Custom profiles used to mean writing JSON by hand. Now the easiest profile is the one you make by ear: master a track, move the faders and W sliders until it sounds right, then save. Your moves against the engine’s amber marks become the profile — fader changes as per-stem levels, width sliders as per-stem width — and the notes box becomes instructions the optional AI engine reads. The dialog says in plain language exactly what will be saved before you save it, a nudge too small to be a decision is left out rather than enshrined, and the file records which profile you were listening on top of, because that is where it works best. The new profile is selected for your next master the moment you save. - Strings finally have a home
“Strings.wav” matched nothing in the automatic labeller — not as strings, violin, cello or orchestra — so every string stem landed on Other and missed its high-pass and compressor conventions. They now land on Keys, whose gentler ratio, slower envelope and lower high-pass all suit sustained bowed material. A String Bass still goes to Bass, where a double bass belongs. Reported by a producer on Gearspace who had been labelling them by hand. - One full stop at the end of the listen-back line
When two or more bands hit the correction limit, the Engine Notes read “…ease one of them..” — two stops, because that summary carries its own and the panel added another. On a panel whose whole job is showing its reasoning, punctuation that looks broken reads as reasoning that is broken. One sentence, one stop, in every combination of corrections.
1.1.17
The width readout follows the slider again.
- It looked like a control stuck on a value it could not leave
1.1.14 made the number beside the W slider show the width actually applied — your setting multiplied by what the engine and profile did. Correct arithmetic, wrong place: after a master it read 39% while the handle sat at 100, read 39% again when you dragged back to full, and no position on the slider would make it say 100%. The readout is the slider’s own position again, the way a fader shows its own level, and the applied width moved to the tooltip where it can be labelled rather than silently replacing the number you set.
1.1.16
“Very little content” now means it, even under a strong profile.
- A well-populated band was being called empty
1.1.13 taught the listen-back pass to say when a band has nothing in it to lift, so you would stop hunting for a problem that cannot be fixed with EQ. It decided that by comparing the band against its target — and a profile can raise a target, so a band with perfectly normal content read as empty simply because the profile asked a lot of it. On the demo session with Motown '71, three bands were mislabelled that way while carrying ten times the energy of the one band that really was empty. It now measures the band’s actual share of the mix, which no profile can move.
1.1.15
The width slider is audible while you listen to A.
- It only took effect on the next render
The fader and pan knob either side of the W slider have always been live — move them while A is playing and you hear it immediately. Width was applied only when the master re-rendered, so one of three neighbouring controls was silently different and moving it on A did nothing at all. The live mixer now applies per-stem width too, with exactly the same mid/side maths the render uses, so what you hear while auditioning is what you get.
1.1.14
Both engines now agree that squashed is not broken.
- The built-in engine was un-squashing what you squashed
A drum stem driven into a ceiling — a sampled break, a hard-hit bus — measures the same low crest factor as one that was merely compressed, and the built-in engine read that as damage and re-sharpened the attack. The optional AI engine has known better since 1.1.11, so the two engines gave opposite treatment to the same stem, and the default one was the one fighting a deliberate sound. It now checks whether the peaks were actually removed — which crest cannot tell you and counting flat-topped samples can — leaves those stems alone, and says so in the Engine Notes. - Three narrowing controls, and none of the numbers were true
A stem's width can be narrowed by the engine, by your profile, and by the W slider — and they multiply. The slider read 100% while the engine and a profile between them had taken a synth to 39%, and the Engine Notes quoted a third figure, the one the AI engine chose before the profile was layered on top. Every visible number was wrong in a different direction. The readout beside the slider now shows the width that is really being applied, and its tooltip breaks down which part came from where.
1.1.13
A width slider on every strip, and two corrections that were arguing with your profile.
- Narrow a stem by hand, with the W slider under the pan knob
Pan moves a stem between the speakers. It cannot make one narrower — a stereo-printed pad panned dead centre is still exactly as wide as it was recorded, and until now the only width control was on the whole master. Drag W to pull a sprawling part in toward the middle; 0% folds it to mono. It composes with what the engine and your profile decided rather than overriding them, and it uses the quick re-render, not a full re-master. On a mono stem there is nothing to remove, so the slider is greyed out. - A narrow profile was being widened back
The listen-back pass widened any near-mono master by 12%, on the reasoning that near-mono is usually a mistake. For a profile whose whole point is a mono-leaning record — the bundled Motown '71, for one — it was undoing the thing you asked for. A profile that narrows deliberately is now left alone. Genuine phase problems are still fixed. - “Air is 9 dB off target” when there is no air
1.1.12 taught the listen-back pass to say when a correction ran out of room. On material with almost nothing above 9 kHz that was technically true and practically alarming: no EQ lift can raise a band that is empty. It now tells you the band has very little content instead of reporting a shortfall you cannot fix.
1.1.12
The listen-back pass now tells you when it gave up.
- “Lifted air 2.0 dB” could mean two very different things
After every master StemMaster listens back and corrects the tonal balance, and each correction is capped at 2 dB. The note it wrote was the same whether the band was 4 dB off and got fixed, or 14 dB off and got a seventh of the way — so a master that had gone badly astray read exactly like one that had been tidied. It now says how far off it still is, and when several bands hit the limit at once it says that too, because that means your profile and your direction are pulling harder than this stage can undo. - Narrow one part without narrowing everything
Pan moves a stem between the speakers; it cannot make a wide stem narrower — a stereo pad panned dead centre is still as wide as it was recorded. Until now the only width control was on the whole master, so reining in one sprawling synth meant flattening the drums and vocal with it. Both engines can now narrow a single stem, and a custom profile can do it by instrument. Narrowing only: widening is where mono compatibility goes. - A profile can refuse to be squashed
A period profile could describe an era's tone and space perfectly and then have the loudness stage undo it, shaving several dB off every transient to hit a modern target. Profiles can now set max_clip_db. Your TARGET still decides the aim — it is your choice and often a delivery requirement — but if reaching it would cost more than the profile allows, the master lands short and the Engine Notes say by how much and why.
1.1.11
It can now tell a deliberate ceiling from a mistake.
- Saturation and clipping stopped looking like compression
Every measurement the engine took described a linear property, so nothing told it whether a stem was already coloured. Crest factor is the obvious candidate and it is a trap: saturation, compression and clipping all flatten it, three causes wanting opposite treatment. StemMaster now counts runs of samples pinned at each stem's own peak — which is what a ceiling does and nothing else does — and the AI engine is told to read it as what the recording is rather than damage to repair. A sampled break or a driven bus should survive being mastered. - Profiles can shape reverb now
Custom profiles gained space: shift the reverb the engine chose, or force everything dry. Melodic parts only — drums and bass are still never given reverb. A period sound is often as much about how wet it is as how it is EQ'd. - And room to actually say something
The steering paragraph a profile sends to the AI engine was capped at 2,000 characters, which was a number picked out of the air. It is 8,000 now, which fits conditional rules rather than just a mood.
1.1.10
Primary and Secondary stayed set. They were not.
- Finishing a master threw your emphasis away
Set a stem to Primary, run AI MIX & MASTER, and the box dropped back to Normal when the render landed. The master you just heard was correct — it used your setting — but the setting was gone afterwards, so running it again quietly mixed without it. That is the half that mattered, and it is fixed: emphasis now survives a master, an A/B swap and an undo. - And Primary could look like Normal
Found while fixing the above. Restoring a saved session or stepping back through undo showed Normal on a stem that was actually set to Primary — the engine used Primary, the box said otherwise. A control and the thing it controls should never disagree. They no longer do. - The in-app Help had gaps. Five of them
Help → StemMaster Help still described the six built-in profiles as the whole list, so 1.1.9's custom profiles were only findable on the website. Fixing that turned up four more features Help had never mentioned: Load Default Stems, Auto-Label Stems, the SIZE slider and Compact Channel Strips, and the Direction Reference link. All five are written up now — and a check now refuses to let a menu item exist that Help has never heard of.
1.1.9
Write your own sound profile.
- Custom profiles, in File → Custom Profiles
The six built-in profiles are tonal destinations, not a map of recorded music — and a period record is not a modern master with the treble turned down. Now you can write your own: a small JSON file in your profiles folder, and it appears in the PROFILE dropdown next to the built-in ones. An example is already in there to copy. - Two halves, and you only need one
A profile can carry a tonal tilt — master EQ, per-instrument levels, glue, width, saturation, drum punch, ducking — which works on the built-in engine with no key and no connection. It can also carry a paragraph telling the optional AI engine what that era or genre actually does. Write either one on its own, or both. Describing a record in words and drawing an EQ curve are different skills and it would be daft to demand both. - It will not let you break a render
Every value in your file is held to the same limits the engine's own decisions are held to, so a slipped decimal cannot produce something the app would not have produced itself. A file with a typo in it is skipped, named, and the reason shown — the app still opens. Reload Profiles re-reads the folder without a restart, so you can edit and listen without quitting.
1.1.8
The AI engine now hears Primary and Secondary too.
- It was being sent, and not being told what it meant
1.1.7 added Primary and Secondary to every channel strip, and the built-in engine acted on them straight away. The optional AI engine was receiving the setting in its measurements and had never been told what it was for, so it could quietly ignore it. It is now explained to it as the one thing in the whole document that you typed rather than something we measured — and told not to overrule it because the numbers disagree, since the numbers are the reason it exists.
1.1.7
Tell it which parts matter.
- Primary and Secondary, on every channel strip
A new box under each stem's type. StemMaster works out a starting level from what a part is — and a guitar sits under the vocal because a guitar is usually rhythm. A solo on that same guitar wants the opposite, and nothing in the file name or the audio says which is which. Now you can: mark it Primary and it comes forward about 2.5 dB, Secondary and it drops back the same. It works on the quiet detail parts too, where percussion and FX start furthest down. Run AI MIX & MASTER again to hear it, and the Engine Notes name every stem you moved. - Ask for an instrument by name
The Direction box understood vocals, bass and drums and nothing else, so “bring the guitar up” was a sentence it could not act on. It now knows guitar, keys, piano, synth, solo and lead as well. Still the built-in engine, still no account and no connection. - A lead guitar was being mixed as a synth
A stem called Gtr Lead was read as a synth lead, because the app matches the longest word it recognises and lead is longer than gtr. That is the wrong level, and the wrong high-pass, compression and EQ with it. Lead Keys had the same problem. Both fixed, along with every spelling of them we could think of.
1.1.6
A manual for the Direction box, and a way to reach it.
- Help → Direction Reference
A user asked for real documentation of the Direction field and the AI engine, and it turned out we had never written down the one thing everybody wants: the actual list of words the built-in engine matches, and what each one does to the mix. It is written down now — every term, with the exact dB, and the pages open in your browser from the Help menu. It is generated from the same table the application uses, so it cannot describe a version of the app that does not exist. - And the status bar points at it
When none of your words land, the message used to send you to Help → StemMaster Help, which explains that there is a list without being the list. It now names the reference itself, which is the answer to the question you were actually asking.
1.1.5
The Direction box tells you what it heard.
- You can see what it understood
Type a direction and the bar along the bottom now tells you which words landed — Direction heard: warm, punchy. If none of them did, it says that too, which matters: the built-in engine matches a set list of terms, so a carefully worded direction could quietly do nothing and there was no way to tell. With the optional AI engine switched on it says so instead, because that one reads your sentence properly. - And it no longer mishears a word inside another word
It was matching those terms anywhere they appeared, including in the middle of longer words. Asking for subtle compression found sub and lifted your bass by a decibel; hardly any processing found hard and added saturation. Both did the opposite of what you asked for, silently. Whole words only now — though the ordinary endings still count, so punchy still finds punch.
1.1.4
The space bar could close the app. Fixed.
- If it ever vanished on you, this was why
Pressing space while a button had focus — which is exactly where focus sits the moment a master finishes — could make the application close instantly, with no warning and no error. It was the space bar itself: the key was being handled and then re-sent to the button, and the re-sent key was picked up and re-sent again, over and over, until the application ran out of room and Windows stopped it. Nothing you did caused it and nothing was lost from your session. It is gone. - Space plays your master now, instead of re-running it
The same problem had a quieter half. After a master finished, AI MIX & MASTER still had focus, so the first thing anyone does — hit space to hear the result — started another render instead of playing. Focus now moves to the waveform when the render lands, so space does what you expect.
1.1.3
If it ever disappears on you, it leaves a note now.
- It writes down what went wrong
A user lost the application mid-session and there was nothing to send us — it kept a crash log, but only for one part of the program, and the audio runs somewhere else entirely. It now records a fault from any part of it, including the kind of failure that takes the whole window down without warning. The file is at %LOCALAPPDATA%\StemMaster\crash.log, and if it ever happens to you, sending it turns a mystery into a fix. - A bad moment in the audio no longer costs you the sound
If something did go wrong while audio was playing, playback stopped for the rest of the session and only a restart brought it back. Now it drops that fraction of a second, writes down what happened, and carries on playing. - Clearer about what it does to your effects
The help text promised reverb and delay. Reverb is real — a room around a part that measures genuinely dry, and never on drums or bass — but delay was never something the built-in engine did. Help now says exactly what it will and will not add.
1.1.2
A small one: our own name.
- StemMaster is one word
The name along the top of the window was drawn as two of them — STEM MASTER — because the two colours are two separate pieces of text, and a gap had opened up between them. It is closed. That is the whole release: nothing about how anything sounds has changed, and no session, preset or export is affected.
1.1.1
Type the number instead of hunting for it.
- Type a gain straight into the strip
The dB readout under every fader is now a box you can click and type into. +2, -4, 2.5 dB — press Enter or click away and the fader goes there. Type something that isn't a number and nothing moves: the old value comes straight back rather than the fader jumping to zero. Escape abandons whatever you were typing. - Pan has one too, in desk language
A second box under the pan control, and it speaks the way you already say it: L50, R25, C to recentre. Plain numbers work as well if you prefer them. - The keyboard steps are written down at last
The faders have always moved in 0.5 dB steps on the arrow keys and 2 dB on Page Up and Page Down, pan in 5% and 25%. Nothing in the app said so. Both tooltips now spell it out.
1.1.0
It asks when it doesn't know.
- Tracks it can't place are left where you put them
StemMaster works out what each track is, and that decides where its level starts. When it genuinely can't tell, it used to guess — and the guess was 4 dB down, the same as a keyboard part. Now it leaves those tracks at the level you gave them and writes that in the Engine Notes, naming the files it left alone. - And now it asks
Any track with no type set is called out in amber above AI MIX & MASTER, and its type box on the channel strip is highlighted too. Pick a type, run it again, and that track gets the full treatment — level, high-pass, compression, and the moves that only make sense once we know what it is. - Nothing blocks you
It is a prompt, not a gate. Press the button with everything still unset if you want to; you will hear a mix, and the notes will tell you what was left untouched and why.
1.0.9
Your stems land at the right level.
- Track names are read properly now
StemMaster picks each stem's starting level from what it thinks the track is, and it works that out from the file name. A file called Lead Vocal was being read as a synth lead and started about 3.5 dB too quiet. Names are now matched on the most specific word in them, so Lead Vocal, Vocal Pad and Bass Drum all land on the right kind of channel. - Far more names recognised
Overheads, OH, Room, Ride, Crash, Rimshot, HH, BGV, Harmony, Adlibs, Choir, Wurli, Clav and Pno used to fall through to Other, which starts 4 dB down. A full drum kit now comes back balanced instead of with the cymbals and room mics buried under the close mics. - Changing a stem's type says what it needs
The type you pick sets the high-pass, the compression and the EQ as well as the level, so the quick re-mix cannot apply it on its own. Change it and the B button now reads AI MASTER (STALE) and asks you to run AI MIX & MASTER again. Your existing master is kept while you decide — nothing is thrown away.
1.0.8
Take the stems with you.
- Export your stems, two ways
File → Export Stems writes one 24-bit WAV per stem, numbered to match your channel order so they drop into a DAW already lined up. - Processed Only
Each stem with just its own processing on it — EQ, compression, ducking, reverb — at unity gain and dead centre. Nothing else. Take the cleanup and do the balance yourself. - Full Mix
The same stems with the whole mix baked in: levels, pans, the vocal rider, section automation. Everything except the master bus, so you can run them through your own mastering chain. They add back up to exactly the mix you heard here. - Muted stems stay out
Anything muted or unsoloed is left out of the export rather than written as a silent file, and the remaining files keep their original numbers.
1.0.7
You can write back now.
- Help → Send Feedback
Opens your own mail client, already addressed, with your version in the body. Nothing is sent from the app and nothing leaves your machine unless you type it and press send.