MIDI MESSAGE (JOV) ποΈ
Decode a MIDI message into numbers you can drive nodes with
- ποΈ
- ποΈ
- π
- 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.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| ποΈopt | JMIDIMSG | Midi |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| ποΈ | JMIDIMSG | MIDI bus that contains the full MIDI message |
| π | BOOLEAN | The state of the note -- either `ON` or `OFF` |
| CHAN | INT | MIDI channel sent in the MIDI message |
| ποΈ | INT | The control number sent in the MIDI message |
| πΆ | INT | Note value (0-127) sent in the MIDI message |
| VAL | FLOAT | If this was a control messge, the control value (0-127) sent in the MIDI message |
| 0-1 | FLOAT | If this was a control messge, the control value normalized to 0-1 |