Scan for lowest/highest note in chord?
Hey folks, I'm trying to make a utility that will scan a chord and output the lowest note's pitch CV. I really can't figure out the logic for it though. I guess I should be using some comparators (minimum) and the Voice Select modules, but I'm a bit stumped. I'm feeling like a native Voice Priority module might be missing. Or at least, compartors which you could add ports to.
Anyone have any ideas that could get me going in the right direction?
Agreed, this is quite awkward to build and IMO cannot be done with juts a few modules.
Poly to Mono connected to Midi2CV Gate will give you the amount of voices in the current chord,
Voice Selectors connected to Midi2CV Pitch will give you the individual notes.
The tricky part is that when you play a chord with lower polyphony than set in Midi2CV, pitches will rotate over all 8 voices so even if Poly2Mono tells you how many notes are played, it doesn't tell you on which voice they're active and you have to get rid of the old, inactive pitches on (yet) unused voices.
Because Voice Selectors only care about internal voice numbers, not about which notes are actually played, I would vote for
Yes. It's also difficult because MIDI messages arrive in sequence, so the notes are actually triggered in sequence. Any logic selecting the lowest note currently played will seem to jump around at the start of each "chord".
You can do it if you quantize the input chords first and then compare them. Try this rack I made. Up to 8 polyphony, the midi quantizer only works when the playback is running.