ComfyUI Node
Siren Scope (Audio β Image) π§
Render audio as an image built for A/B comparison: an absolute dB scale that is never auto-fitted, a fixed pixel grid so two takes line up when flipped between, and an optional bar/beat grid that lands exactly where Siren Section would cut. Feeds Image Compare like any other image. Wire a second clip into 'audio_b' for a difference view that averages over musical tiles first, so it shows differences you could hear instead of phase noise. 'gen_extra_info' carries plain numbers β loudness, crest, brightness, band balance, stereo β into a Generation Info dump, which is usually a far clearer answer to 'how do these two differ' than a picture.
Siren Scope (Audio β Image) π§
- audio
- audio_b
- image
- report
- gen_extra_info
βmodemel + waveformβΊ
βcolormapmagmaβΊ
βwidth_px1280βΊ
βheight_px320βΊ
βdb_floor-80βΊ
βdb_ceiling0βΊ
βchannelsmix to monoβΊ
βbpm0βΊ
βbeats_per_bar4βΊ
βgrid_origin_sec0.00βΊ
βtime_labelstrueβΊ
βdiff_detailmusicalβΊ
βdiff_span_db6.0βΊ
βn_fft2048βΊ
βn_mels192βΊ
βlabel_scale2βΊ
CategoryKinburg-Nodes/Bestiary/Siren
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | The audio to draw β straight out of VAEDecodeAudio, or a LoadAudio for something off disk. | |
| mode | COMBO | mel + waveform | β’ mel spectrogram β frequency over time on a perceptual scale. The one to read structure, drop-outs and a band-limited top end off. β’ linear spectrogram β the same in linear frequency: worse for musical detail, better for spotting a hard low-pass or a resampling artifact. β’ waveform β min/max envelope, the DAW view. Best for level, silence and clipping. β’ mel + waveform β both stacked, sharing one time axis. |
| colormap | COMBO | magma | Ramp for the spectrogram. 'magma' has the most even perceptual spacing of the three, so equal steps in dB look like equal steps in brightness. Ignored in difference mode, which always uses its own diverging ramp. |
| width_px | INT | 128064β8192 | Image width. The whole clip always spans this width, so column x is the same moment in every render of a track of the same length β which is what lets two images be flipped between in Image Compare without anything shifting. |
| height_px | INT | 32032β4096 | Height of the panel area (the time ruler is added below it). With 'mel + waveform' the spectrogram takes 70% and the waveform 30%. |
| db_floor | FLOAT | -80-200β0 | Black point, in dB relative to full scale. ABSOLUTE, never auto-fitted: a quiet take renders dark rather than being boosted to fill the frame, which is the whole reason two of these can be compared. Raise toward -60 to see only what's audibly present; drop toward -100 to inspect the noise floor. |
| db_ceiling | FLOAT | 0-100β60 | White point in dBFS. 0 = digital full scale. Leave it there unless you're chasing something specific β moving it breaks comparability with images already rendered. |
| channels | COMBO | mix to mono | Which channel to draw. 'stack both' draws left and right as separate panels β the way to see a stereo image collapse or one side dropping out. |
| bpm | INT | 00β300 | Draw the musical grid: bright lines on bar boundaries, dim ones on beats. Use the same tempo you gave TextEncodeAceStepAudio1.5, and the lines land exactly where Siren Section's 'snap: bar' would cut β so you can pick a retake window off the picture. 0 = plain time ruler instead. |
| beats_per_bar | INT | 41β16 | Beats per bar for the grid (the 'timesignature' on the text encoder). |
| grid_origin_sec | FLOAT | 0.000β2000 | Where bar 1 starts, for a track that opens with a pickup or a moment of silence. Same meaning as on Siren Section β keep the two equal. |
| time_labels | BOOLEAN | true | Add the m:ss ruler under the panels. Turn it off for a clean image to overlay or diff pixel-for-pixel. |
| diff_detail | COMBO | musical | DIFFERENCE MODE ONLY ('audio_b' wired): how much to average before comparing. Two independent takes never agree bin-for-bin β their fine detail and noise floor are uncorrelated β so comparing raw bins gives a field of speckle that says nothing about whether they SOUND different. Averaging energy over a musically-sized tile throws that away. β’ musical (default) β ~1/8 of the mel bands x 120 ms. What a listener notices. β’ coarse β ~1/24 of the bands x 500 ms. Only broad shifts in balance survive. β’ fine (raw bins) β no averaging. Honest but usually unreadable; useful only when the two clips share actual samples, i.e. checking a Siren retake. |
| diff_span_db | FLOAT | 6.00.5β60 | DIFFERENCE MODE ONLY: how many dB of difference reaches full colour. 6 dB is a large, obvious change in a band; drop to 2-3 to bring out nuance, raise it if the picture is saturated everywhere. This is the dial that decides whether small differences are visible at all β leaving it wide makes two similar takes look identical when they aren't. |
| n_fft | INT | 2048256β16384 | FFT window. Larger = finer frequency detail and blurrier timing; smaller = sharper transients, coarser pitch. |
| n_mels | INT | 19216β1024 | Mel bands. Only the mel modes use it. 192 rather than 256 because at the default n_fft of 2048 there are only 1025 frequency bins to share out: ask for 256 mel bands and two of them come out with no bins at all, i.e. two permanently dead rows in the picture. 192 is the most that stays fully populated. Raise n_fft to 4096 first if you want more bands than that. |
| label_scale | INT | 21β6 | Pixel size of the ruler text. Raise it for a wide image you'll be looking at zoomed out. |
| audio_bopt | AUDIO | Wire a second take here to switch to DIFFERENCE mode: A minus B in dB, black where the two are identical and bright where they diverge (warm = A louder, cool = B louder). This is the direct check that a Siren retake did what it says β the frozen part of the track should come out pure BLACK and only the marked section should light up. If black bleeds into the section, the fade is eating it; if the frozen part glows, something re-noised audio it shouldn't have. The two clips are compared over the shorter of the two lengths, which is reported. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |
| report | STRING | β |
| gen_extra_info | GEN_INFO | β |