Nodes/Jovimetrix/MIDI MESSAGE (JOV) πŸŽ›οΈ
ComfyUI Node

MIDI MESSAGE (JOV) πŸŽ›οΈ

Decode a MIDI message into numbers you can drive nodes with

By AmoranoΒ·Created 3 years agoΒ·Updated 12 months agoΒ· 397
MIDI MESSAGE (JOV) πŸŽ›οΈ
  • πŸŽ›οΈ
  • πŸŽ›οΈ
  • πŸ”›
  • CHAN
  • 🎚️
  • 🎢
  • VAL
  • 0-1

MIDI MESSAGE (JOV) πŸŽ›οΈ is the decoder of the MIDI family: it takes a raw MIDI message object and unpacks it into the individual numbers - channel, control number, note, value, normalized value - that your workflow can actually use. Think of MIDI READER as the hardware listener and MIDI MESSAGE as the translator sitting right behind it. One message in, seven useful wires out.

And the mandatory heads-up, same as every MIDI node in this pack: it migrated out of Jovimetrix in the 2.0 rework. All the MIDI nodes now live in Amorano/Jovi_MIDI - MIDI MESSAGE included. The Jovimetrix README lists it explicitly under the migrated nodes. If you're here because a saved workflow can't find it, install Jovi_MIDI and rewire; there's no reason to stay on the old pack for this.

What it does

One input - πŸŽ›οΈ - which takes a JMIDIMSG (the message type the Jovi MIDI nodes speak). Then it splits that message out into:

  • πŸŽ›οΈ - the message again, passed through so you can chain decoding into filtering.
  • πŸ”› - boolean: is this a note-on / active message?
  • CHAN (INT) - MIDI channel.
  • 🎚️ (INT) - control/CC number (which knob or fader).
  • 🎢 (INT) - note number.
  • VAL (FLOAT) - the raw 0–127 value.
  • 0-1 (FLOAT) - value normalized to 0–1.

The 0-1 output is the one you'll wire into ComfyUI parameters 90% of the time - it turns an arbitrary knob position into a usable percentage.

The typical chain: MIDI READER β†’ MIDI MESSAGE β†’ (math/LERP) β†’ whatever you're driving. If you want to only act on specific messages - "only CC 7," "only channel 2" - run the message through a MIDI FILTER in between.

Installing it

Install Jovi_MIDI:

# ComfyUI Manager: search "Jovi_MIDI" and install
# or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Amorano/Jovi_MIDI.git
cd Jovi_MIDI
pip install -r requirements.txt

Restart ComfyUI. Dependencies are mido[ports-rtmidi] (MIDI plumbing), aenum, and the shared cozy_comfyui git dep. No models.

Troubleshooting

  • Node missing after a Jovimetrix update - expected; it's in Jovi_MIDI now.
  • Outputs all read 0 / nothing changes - you're feeding it something that isn't a JMIDIMSG. This node is a decoder, so it needs a message object from MIDI READER or a MIDI LOADER, not a bare number.
  • Value jumps between 0 and 127 with no in-between - that's raw MIDI. Use the 0-1 output if you want a smooth normalized control.
  • Channel is always the same even though you moved two devices - check your MIDI READER's device selection; MIDI MESSAGE just reports what it's given.

MIDI MESSAGE is the boring-but-necessary glue of a MIDI workflow, and in Jovi_MIDI it's still the exact same idea, just in a package that's actually maintained.

CategoryJOVIMETRIX πŸ”ΊπŸŸ©πŸ”΅/DEVICE

Inputs (1)

NameTypeDefaultDescription
πŸŽ›οΈoptJMIDIMSGMidi

Outputs (7)

NameTypeDescription
πŸŽ›οΈJMIDIMSGMIDI bus that contains the full MIDI message
πŸ”›BOOLEANThe state of the note -- either `ON` or `OFF`
CHANINTMIDI channel sent in the MIDI message
🎚️INTThe control number sent in the MIDI message
🎢INTNote value (0-127) sent in the MIDI message
VALFLOATIf this was a control messge, the control value (0-127) sent in the MIDI message
0-1FLOATIf this was a control messge, the control value normalized to 0-1