So here’s a little thing that 1.15 Virtual Mappings makes easy.
Background
Last year @dannytaurus suggested a new pipe which he called Change
after a similar MaxMSP object.
The idea was to strip out identical notes from the message flow.
Danny’s motivation was primarily creative, but it’s cropped up in more mundane ways for me,
for example…
TLDNR
…when using LFOs to produce several “variably-Rescaled” CCs which then sometimes just output the same numbers, potentially clogging the MIDI stream.
Ideally I’d like a dedicated pipe which would have all sorts of flexibility but…
…in the meantime, here’s a simple one liner:
DiscarderDemo.mhp
What it does
In the top line (the only one that needs to be kept)
-
a Transform creates a copy of the In Range CC#s.
This is used as a mapping on an unused channel. -
for each CC# you want to whittle down/discard, there’s a Drop Transform which is restricted to just one CC#.
It’s value range is mapped to it’s CC copy… -
…so when, say, value=73 comes through, after that every other 73 value will be dropped until a new value comes in
Demonstration
The other lines are just to help demonstrate the idea in action:
Here we see Ch1 CC97 being rescaled to give lots of duplicate values:
And here we have the Ch15 “mapping” CC being filtered out showing that we only have one Ch1 CC97 of each value getting through
Obviously adaptable for Notes, I might post a fuller version on patchstorage.