Nodes/RyanOnTheInside/MIDI to Audio βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
ComfyUI Node

MIDI to Audio βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜

A quick-and-dirty preview of a MIDI file, not a synthesizer replacement

By ryanontheinsideΒ·Created 2 years agoΒ·Updated 5 months agoΒ· 852
MIDI to Audio βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
  • midi
  • AUDIO
β—„instrument_typeβ–Ύβ–Ί
β—„sample_rate44100β–Ί
β—„volume0.50β–Ί

The author's own description on this node is refreshingly blunt, and it's worth leading with: "This will produce rudimentary approximations of MIDI notes for quick reference and nothing more. May or may not get the notes right, especially for drums." Take that at face value - this isn't a soundfont player or a real synthesizer, it's a fast way to hear roughly what's in a MIDI file without leaving ComfyUI to open a DAW.

What it does

Feed it a midi input (you'll need a MIDI loader node upstream to produce it - this pack pulls in mido, the standard Python MIDI library, for parsing MIDI data), pick an instrument_type (Piano, Synth, Bass, or Drums), set sample_rate and volume, and it synthesizes a simple waveform per note using that instrument choice. There's no sample library or real instrument model behind it - it's a basic synth voice standing in for each note.

That's exactly why drums are the weak point the author calls out specifically: real drum sounds (kick, snare, hi-hat) aren't tonal in the way piano or bass notes are, they're distinct percussive timbres mapped to different MIDI note numbers. A generic synth voice can't fake a snare hit convincingly the way it can fake a bass note - so expect drum output here to sound like a buzzy approximation, not a drum kit.

Inputs and outputs

  • midi - MIDI data from an upstream loader.
  • instrument_type - Piano, Synth, Bass, or Drums.
  • sample_rate (8000-192000, default 44100) and volume (0.0-1.0, default 0.5).

Output is a single AUDIO.

What it's actually good for

Sanity-checking timing and note content - did the MIDI file actually contain the melody you expected, are the notes landing where you think they are - without needing separate software. Feed a MIDI file's notes through a feature extractor elsewhere in the pack, use this node to quickly confirm the source data looks right, then generate your real audio output (through ACE-Step, a proper sample library, or whatever your actual pipeline is) separately once you trust the MIDI.

Installing it

ComfyUI Manager: search RyanOnTheInside, install, restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside
cd ComfyUI_RyanOnTheInside
pip install -r requirements.txt

mido is already in this pack's requirements.txt, so a normal pack install covers it - no separate step needed.

Where people get burned

If a rendered instrument sounds off - thin, buzzy, or drums that sound nothing like drums - that's the documented behavior, not a bug worth chasing. Don't use this node's output as your final audio; use it purely as a reference pass before committing to real synthesis or sample-based rendering elsewhere.

CategoryRyanOnTheInside/Audio/MIDI

Inputs (4)

NameTypeDefaultDescription
midiMIDIβ€”
instrument_typeCOMBO4 options: Piano, Synth, Bass, Drums
sample_rateINT441008000–192000β€”
volumeFLOAT0.500–1β€”

Outputs (1)

NameTypeDescription
AUDIOAUDIOβ€”