Nova Audio Master ๐งพ
Master your generated track without leaving the graph
- audio
- mastered_audio
- original_audio
- report
- report_json
ACE-Step makes instrumentals that genuinely sound like music. What comes out is still a raw render, though - the kind of file you'd normally bounce to a DAW and shove through a mastering chain on another machine, in another app, at 1am.
Nova Audio Master ๐งพ does the tonal, stereo and dynamic correction inline. It analyses the track, produces a safer mastered version, and hands you the original alongside it for A/B. Everything it does is bounded and reported, and the report is structured JSON - which is what makes the rest of this pack's mastering chain possible.
How it works
The DSP is pure PyTorch, so there's no external plugin, no VST host, no second dependency tree:
high-pass filter โ restrained spectral correction โ five-band EQ (bass, low-mid, mid, presence, air) โ stereo width โ mono-below-Frequency fold โ transient/crest stage with body recovery โ RMS-oriented gain staging โ true-peak limiting at 4x oversampling.
Notably absent from the mechanism: no fake "mastering AI". Auto mode analyses the source and derives bounded corrections from the profile you picked. Assist blends those recommendations with your manual EQ. Manual uses your EQ and width directly and skips automatic crest reduction. Off is a true transparent pass-through - it analyses and reports, applies no DSP at all.
The four profiles - Metal, EDM-Trance, K-Pop, Balanced - are deliberately conservative, and the author says so. They're a starting balance, not a genre stamp. strength (default 70) scales how much of the derived correction actually lands; it's the one control I'd audition first, because it's the difference between "safer" and "flattened".
Inputs and outputs
Wire any AUDIO into audio. Then, in rough order of how much they matter:
- mode and profile -
Auto+Metalis the shipped starting point. - strength - 0โ100.
- target_lufs (-11.5), target_true_peak_dbtp (-1.0), target_crest_db (9.5) - the three targets the adaptive stage aims at.
- high_pass_hz (30), mono_below_hz (120), stereo_width_percent (100โ180).
- bass_db / low_mid_db / mid_db / presence_db / air_db - ยฑ6 each, zero by default, ignored in Auto except as Assist input.
- run_count - this is the one that confuses people. Bump it to force the node and everything downstream to execute again as a new mastering run. ComfyUI caches; this is your manual "do it again" lever.
Outputs: mastered_audio, original_audio, report (text, for reading), report_json (the structured version - schema nova.audio_master.report, carrying provenance, a report id, source and master PCM SHA-256s, per-metric classification, a release grade and a reproduction fingerprint).
Two things that report buys you. Nova Master Report Viewer ๐ renders it in the canvas, and Nova Final Master Validator uses it to answer the question after you've written a file: did the thing on disk still reproduce the master you approved?
Install
ComfyUI Manager โ Nova Audio Player โ install โ restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/NovaFemme/ComfyUI-NovaAudioPlayer.git
Under โถ๏ธ Nova Audio โ ๐๏ธ Mastering Process. No models, no downloads. One optional dependency matters here: scipy. The LUFS figure reported by the pack is ITU-R BS.1770-4 - K-weighted, summed across channels, gated - and scipy is what K-weighting uses. Without it the number is still summarised correctly across channels but unweighted and ungated, so treat it as approximate. Worth knowing, because mastering decisions get made against that number.
Zero-config sanity check
The pack ships Nova Audio Mastering Process, an example workflow that needs no models and no other node pack: load a track, master it, view the report, identify it, save it, validate it. That's the fastest way to hear what the profiles actually do to your own material before you wire this into a generation graph.
One honest expectation: this is corrective mastering for generated audio, not a replacement for an engineer with ears and a treated room. It'll get a render into a sane loudness and tonal range and it'll tell you exactly what it changed. Listen to the A/B before you ship it.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | The audio to master. Connect Nova Load Audio. | |
| run_count | INT | 10โ2147483647 | Increment this value to force Nova Audio Master and all downstream nodes to execute as a new mastering run. |
| mode | COMBO | Auto | Auto: corrections come from the analysis and the profile; leave the EQ widgets at 0 dB. Assist: your EQ and width settings are combined with the automatic ones. Manual: only your EQ and width settings are used; automatic crest reduction is skipped. Off: true pass-through. The audio is analysed and reported, and the samples leave untouched. |
| profile | COMBO | Metal | Reference tonal balance, stereo range and dynamics for the material. It guides the automatic corrections; it does not force every target. |
| strength | FLOAT | 700โ100 | How far the automatic corrections go, in percent. 0 applies none of them; 100 applies them in full. |
| target_lufs | FLOAT | -11.5-18โ-8 | Integrated loudness to aim for, in LUFS. A reference, not a command: the report says NOT_REACHED when getting there would have meant damaging the source. |
| target_true_peak_dbtp | FLOAT | -1.0-3โ-0.1 | True-peak ceiling for the limiter, in dBTP. -1.0 leaves headroom for lossy encoding. |
| target_crest_db | FLOAT | 9.56โ16 | Crest factor (peak above RMS) to aim for, in dB. Lower is denser. A reference, like target_lufs. |
| high_pass_hz | FLOAT | 300โ80 | High-pass corner in Hz: removes rumble below it. 0 turns the filter off. |
| bass_db | FLOAT | 0.0-6โ6 | Manual EQ for 20-250 Hz, in dB. Used in Assist and Manual; leave at 0 in Auto. |
| low_mid_db | FLOAT | 0.0-6โ6 | Manual EQ for the low mids, in dB. It acts on the 250 Hz-2 kHz band at about half strength, added to mid_db. Used in Assist and Manual. |
| mid_db | FLOAT | 0.0-6โ6 | Manual EQ for 250 Hz-2 kHz, in dB. Used in Assist and Manual; leave at 0 in Auto. |
| presence_db | FLOAT | 0.0-6โ6 | Manual EQ for 2-6 kHz, in dB. Used in Assist and Manual; leave at 0 in Auto. |
| air_db | FLOAT | 0.0-6โ6 | Manual EQ above 6 kHz, in dB. Used in Assist and Manual; leave at 0 in Auto. |
| stereo_width_percent | FLOAT | 1000โ180 | Stereo width, where 100 leaves it unchanged. Ignored in Auto, scales the automatic width in Assist, and is used directly in Manual. The result is kept between 65 and 145 %. |
| mono_below_hz | FLOAT | 1200โ300 | The side (stereo) signal is faded out below this frequency, so the low end stays mono. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| mastered_audio | AUDIO | โ |
| original_audio | AUDIO | โ |
| report | STRING | โ |
| report_json | STRING | โ |