Nodes/ComfyUI Web Viewer/AUDIO Microphone Loader @ vrch.ai
ComfyUI Node

AUDIO Microphone Loader @ vrch.ai

Feed your microphone into ComfyUI as live numbers

By VrchStudio·Created 2 years ago·Updated about a month ago· 358
AUDIO Microphone Loader @ vrch.ai
    • RAW_DATA
    • WAVEFORM
    • SPECTRUM
    • VOLUME
    • LOW_FREQ_VOLUME
    • MID_FREQ_VOLUME
    • HIGH_FREQ_VOLUME
    • IS_ACTIVE
    device_id
    name
    sensitivity0.50
    frame_size512
    sample_rate48000
    low_freq_max200
    mid_freq_max5000
    enable_previewtrue
    debugfalse
    raw_data

    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_size or 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 AnalyzerBPM Detector if you want rhythm-aware numbers feeding a sampler's parameters.
    Categoryvrch.ai/audio

    Inputs (10)

    NameTypeDefaultDescription
    device_idSTRING
    nameSTRING
    sensitivityFLOAT0.500–1
    frame_sizeCOMBO5123 options: 256, 512, 1024
    sample_rateCOMBO480003 options: 16000, 24000, 48000
    low_freq_maxINT20050–1000
    mid_freq_maxINT50001000–10000
    enable_previewBOOLEANtrue
    debugBOOLEANfalse
    raw_dataSTRING

    Outputs (8)

    NameTypeDescription
    RAW_DATAJSON
    WAVEFORMFLOAT
    SPECTRUMFLOAT
    VOLUMEFLOAT
    LOW_FREQ_VOLUMEFLOAT
    MID_FREQ_VOLUMEFLOAT
    HIGH_FREQ_VOLUMEFLOAT
    IS_ACTIVEBOOLEAN