'Change' modifier

A new modifier that only passes events through if they’re different to the last event.

Not sure what term to use for this. Change / Unique / DeDuplicate / Gate? MaxMSP has an object called Change, hence that’s the word I use in my head.

The idea is to use it for note values but it could also be used on velocity, CC, etc.

Consider: MIDI IN > Random > Change where Random shifts the incoming note by random semitones but then Change only passes the new note through if it’s different to the last one.

I think it would be a great help in making generative stuff sound more organic.

Interesting to consider how the differences in implementing this in a Midihub setting would play out, @dannytaurus:

  • the MaxMSP object just deals with a single number whereas a MH pipe would probably need to respond to a (typically) 3 byte message.

  • So would the Change pipe, trigger when a differing id of that message type (eg. note#, CC#) was received?
    or value (velocity, CC value)?
    or either?

  • I’d guess @Blokas would want to allow all the above!



So, imagining this, I think I’d like to see sthg similar to a Transform

  • with all its nice ‘id’, ‘value’ and channel filters…
    (so Change can be tailored to just the right ranges without preceding filter pipes)

  • …and perhaps the capability (pipe bytes allowing!) to produce a new message when the Change is triggered.
    (Thus as well as, say, a ‘new’ note being allowed thro’, Change would output a CC to be used elsewhere. This would be related to the MaxMSP ‘stored number’)

I could have fun with that!

1 Like

Indeed, for flexibility I"d say it should be able to consider ID and/or value.

My personal use would be mostly for notes. Most commonly to only pass a new note if the note number is different to the previous one, And less often I’d probably want to use velocity as the ‘change’.

Agreed that it should probably be as fully-featured as Transform (one of my favorite pipes) with all the filters, etc. and the dropdown for choosing what to act upon.