AUDIO Microphone Loader @ vrch.ai
Feed your microphone into ComfyUI as live numbers
- RAW_DATA
- WAVEFORM
- SPECTRUM
- VOLUME
- LOW_FREQ_VOLUME
- MID_FREQ_VOLUME
- HIGH_FREQ_VOLUME
- IS_ACTIVE
The AUDIO Microphone Loader @ vrch.ai is the node that makes your microphone part of your workflow. Where the pack's Audio Recorder captures audio to record something, the Mic Loader streams live mic input as analysis data - volume, a waveform, a spectrum, per-band levels - so you can react to what you're saying or playing in realtime. It's the front half of every "make the visuals dance to my voice/music" setup, and it's the node people specifically hunt down for speech-to-text pipelines where the mic is the input and the text node is the output.
The neat part is the same trick the whole pack uses: the mic is captured in the browser via a web page (with all the permission prompts that implies), then streamed into the node. No audio routing software, no virtual cable, no OS-level config. Open the page, allow the mic, done.
How it works
The node opens a capture session on the device you pick, samples it, and emits several streams of numbers:
- WAVEFORM (FLOAT list) and SPECTRUM (FLOAT list) - the time-domain and frequency-domain views, ready for a visualizer or any math you want to do.
- VOLUME (FLOAT) - overall loudness, the simplest thing to react to.
- LOW_FREQ_VOLUME / MID_FREQ_VOLUME / HIGH_FREQ_VOLUME (FLOAT) - split-band levels, which is how you distinguish a bass drop from a cymbal crash.
- RAW_DATA (JSON) - the full analysis payload; this is what the pack's other analyzer nodes expect as input.
- IS_ACTIVE (BOOLEAN) - whether the stream is actually live, handy for gating logic so your workflow doesn't animate to silence.
The inputs you'll actually touch: device_id / name to pick a specific mic (leave both empty for the default), sensitivity (0–1) as a gain trim, sample_rate (16k / 24k / 48k), and frame_size (256 / 512 / 1024) which trades latency against detail - 256 feels snappier, 1024 gives smoother spectrum data. low_freq_max and mid_freq_max set where your low/mid/high band splits land. enable_preview shows you what the browser is hearing, which saves a lot of "why is this silent" debugging.
Installing it
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/VrchStudio/comfyui-web-viewer
pip install -r comfyui-web-viewer/requirements.txt
Or install "ComfyUI Web Viewer" via ComfyUI Manager and restart. No models, no FFmpeg requirement for this node - that's the Recorder's burden, not this one's.
Where people get stuck
- No sound. The browser blocks mic access until you click Allow on the capture page's permission prompt, and if you denied it once you have to re-grant it in the browser's site settings. Also confirm the right device - on a laptop with a headset plugged in, "default" is a coin flip.
- A choppy waveform. Drop
frame_sizeor the sample rate; the browser can only hand over frames as fast as the page can read them. - The classic chain: Mic Loader → AUDIO Visualizer for the waveform/spectrum images, or Mic Loader → Frequency Band Analyzer → BPM Detector if you want rhythm-aware numbers feeding a sampler's parameters.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| device_id | STRING | — | |
| name | STRING | — | |
| sensitivity | FLOAT | 0.500–1 | — |
| frame_size | COMBO | 512 | 3 options: 256, 512, 1024 |
| sample_rate | COMBO | 48000 | 3 options: 16000, 24000, 48000 |
| low_freq_max | INT | 20050–1000 | — |
| mid_freq_max | INT | 50001000–10000 | — |
| enable_preview | BOOLEAN | true | — |
| debug | BOOLEAN | false | — |
| raw_data | STRING | — |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| RAW_DATA | JSON | — |
| WAVEFORM | FLOAT | — |
| SPECTRUM | FLOAT | — |
| VOLUME | FLOAT | — |
| LOW_FREQ_VOLUME | FLOAT | — |
| MID_FREQ_VOLUME | FLOAT | — |
| HIGH_FREQ_VOLUME | FLOAT | — |
| IS_ACTIVE | BOOLEAN | — |