Delete doubles CTRL-D

This function is an additional feature of MIDI Locator full version and can be used to delete unnecessary MIDI events from your MIDI sequence. Those doubles could be found in foreign MIDI files which you got maybe from the internet or they could be remaining identical controller events after using MIDI Locator's functions set controller events and controller value.

Please create a selection which covers an area of MIDI events on the workspace window before you use this function. The whole file is searched in any case, but only events in your selection will be named as deletable.

If you don't have a clue what delete doubles could be : let's watch an example. Imagine we downloaded a foreign .mid file on a MIDI file site of our interest. Now we load it inside MIDI Locator and - what's that ? Some tracks seem to flange or to be unreasonable louder than others. If we look in one of those tracks, we see the following events :



We see that some Note On events appear twice or more at the same MIDI tick position. And if we scroll thru the whole track, we see that those are hundrets of notes. The author of this songs got only basic knowledge about creating MIDI files. He thought he could make tracks louder by copying their content over themselves. Instead of making all other tracks softer by adjusting their Note On event's velocity (databyte 2) or channel's main volume or expression controller. But that guy was a good composer, so we want to keep this song - in any case. Instead of deleting fourthousand double Note On events we can use this delete doubles function.

Another example :

We got a .mid file which includes a Control Change event 'main volume' with a value of 100. This event comes direct after a GS reset. The MIDI specifications say that all 16 main volume controllers will be set to 100 after a GS reset event. So why is this event in that file ? It is an unnecessary double.

So there are tons of possible double situations (program changes to piano after a reset, identical panorama adjustments at the edges of several measures which didn't change the panorama and so on). The delete doubles function of course recognizes side effects which could be created by intention. E.g. would an obvious double Program Change of a drum channel not be named for removement if only a single drum parameter has been changed before it, because the Program Change would (should) reset all drum parameters of the active drum map.

The types of real doubles are named if they are found :