MIDI FILTER EZ (JOV_MIDI)
'just let note 60 through'
- MIDI
- MIDI
- TRIGGER
MIDI FILTER EZ is the friendly sibling of the pack's full FILTER node. Same job - take a JMIDIMSG, decide if it's one you care about, and hand you a TRIGGER boolean - but with the range-string syntax stripped out. If "filter to exactly one value" is all you need, this is the node you'll actually use, because you can set it up without reading a syntax guide.
The "EZ" difference is in the input types. Where the full FILTER takes strings like 60, 64, EZ gives you plain integer sliders with a very deliberate default: -1 means "don't care." You get CHANNEL, CONTROL, NOTE, and VALUE, each an int from -1 to 127. Set one to 5 and the node only passes messages on channel 5. Leave it at -1 and that check is skipped. There's also the same MODE dropdown (NOTE_ON / NOTE_OFF / IGNORE) for filtering on note state first. That's the entire input set - no NORMALIZE field, no ranges, no commas.
Outputs are MIDI (the message, passed through untouched) and TRIGGER (the boolean). Same gate semantics as the full node: TRIGGER fires only when every check passes, and the message always flows through. Wire TRIGGER into a boolean input somewhere in your graph and you've got controller-driven workflow logic with about five seconds of setup.
So which filter do you want? Reach for EZ when you want "respond to this one control, on this one channel." Reach for the full FILTER when you need ranges, multiple values, or the normalized 0–1 scale. The author clearly built EZ for the common case and the advanced node for himself.
One bit of history worth knowing: the changelog notes that EZ was patched in early 2025 to "work for all filters not just the first found." On old builds it only applied the first filter condition and ignored the rest. If your workflow behaves as though later conditions don't exist, update the pack - that bug is long fixed.
Install is the standard pack routine: ComfyUI Manager, search Jovi_MIDI, or clone https://github.com/Amorano/Jovi_MIDI.git into custom_nodes, pip install -r requirements.txt, restart. No models, no extra downloads. If TRIGGER never goes true, double-check that a knob is actually sending control_change messages - EZ's VALUE check only matches control-change values, so a knob that sends pitch bend (a different message type) will always fail the filter.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| MIDIopt | JMIDIMSG | — | |
| MODEopt | COMBO | IGNORE | 3 options: NOTE_OFF, NOTE_ON, IGNORE |
| CHANNELopt | INT | -1 | — |
| CONTROLopt | INT | -1 | — |
| NOTEopt | INT | -1 | — |
| VALUEopt | INT | -1 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| MIDI | JMIDIMSG | — |
| TRIGGER | BOOLEAN | — |