A Smart method to Select the Highest and Lowest Pitches in MIDI



If you haven’t noticed, I’ve already come up with at least two NEAR solutions to the problem. But they won’t work due to limitations with the Logical Editor. Saying “yes it can be done, try additional filters, use equal signs or less than signs and stuff and see if that works” is about as useful is saying “yeah, there’s a solution to that problem, the solution is to solve it”.

I’m telling you, it doesn’t work. There’s no command for it. There’s no workaround for it. There’s simply no way you can count notes from the top each chord. But you keep suggesting there is without actually saying how to do it.

Moderators should be held to a higher standard; they should not be trolling people.

And if you’ll notice, I’m not charging any money for this either, and I’ve put in more work toward solving the problem than you have.

Okay, I think I have a solution, albeit a very very overly crammed/time consuming solution. Like I said earlier, if you could invert the midi, you could select the bottom notes and then invert everything again. Well, you could make a macro and that macro could have 128 individual logical editor processes which invert each note one at a time. So you could do “if note value 1 == 0, set value 1 to 127”, “if note value 1 ==1, set value 1 to 126” etc… until you’ve done that 128 times… but then you run into another problem. If you invert the selection and then select the bottom line, the notes you’ve just selected will be the only notes affected when you try to re-invert. And since you can’t call/set/define/store any variables other than the ones you’re already give in the Logical Editor, it makes it really tricky.

SO… you have to basically use an already existing variable in the Logical Editor to store the memory of which notes to select after inverting and then re-inverting. Obviously it can’t be value 1 because changing the pitch messes up the entire reason for having this function. It shouldn’t be value 2 because velocity is very commonly useful and adjusting it separately on the topline is likely the reason you’d want this function to begin with. But value 3 is note off velocity, correct? I don’t know any plugins that actually utilize note off velocity. So we’ll use that. So in order to making the 128 separate Logical Editor commands as a workaround solution for inverting the MIDI, we’re going to make a few more Logical Editor commands and put it all into one giant macro. The macro will look like this:

set ‘value 3’ of all notes to 0
invert all midi midi event
select bottom notes
set ‘value 3’ of selected notes to 128
deselect all notes
invert all midi in midi event
select notes with value 3->128

I’m going to try this out now, but it’ll take me a little while to put it all in… honestly would be so much easier if there was a “Note Position In Chord (from the top)” variable.

so far so good, although for some reason Logical Editor has a bug and won’t work if you run a key command that uses the Logical Editor if the window for the Logical Editor is open. So you have to make sure the Logical Editor window is closed while running this macro… still working on the macro though…

Wait… this isn’t going to work… because it’s not all happening at the same time… so it’s only inverting notes above 68 because i’m inverting the low notes… so then when it gets to the 2nd half of the inversions, it inverts them back down… hmm

Well then… I’m at a loss again… still can’t find the magic solution, Steve.

Hey, either admit you’re wrong or tell us how this is possible. You’re a moderator for goodness-sake. You shouldn’t be acting like this, and you shouldn’t be saying things are possible when they’re not. That’s at bare minimum false advertising.

How?

…How?

… still waiting for you to explain how.

Still waiting…

Do this by way of using the Score editor explode function to a polyphonic staff, to assign values (midi channels in this case) that give the LE something to work with.