lifeinasong Posted May 23, 2010 Share Posted May 23, 2010 All I want to do is have the keyboard object in the environment accurately represent the notes being played from a sequenced midi instrument track. It works fine when I'm playing live but not on playback after I've recorded something. It seems the note off messages are not transmitted so the notes that appear on the keyboard "stick" and don't release after they are played. Everything sounds perfectly fine but I want to see it displayed on the keyboard object the same way. Can anyone help me figure out how to send the note off messages to the keyboard and/or monitor object(s or whatever)? PLEASE HELLLLP MEEEEEE!!!javascript:emoticon(':lol:') I swear if we ever somehow met I'd owe you the sweetest high five ever! Quote Link to comment Share on other sites More sharing options...
ski Posted May 23, 2010 Share Posted May 23, 2010 Indeed, Logic doesn't output noteoffs in the way you'd expect. Having said that, I've come up with a three-transformer fix, file attached. Post back if you want an explanation of how it works. Keyboard Obj Fixer Ski v1.0.logic.zip Quote Link to comment Share on other sites More sharing options...
lifeinasong Posted May 23, 2010 Author Share Posted May 23, 2010 Thank you so much. I would've never known to configure weird whacky dude with that note fix setting. This is awesome. You ever see some ridiculously grateful dude walking around. He might owe you a high five. Quote Link to comment Share on other sites More sharing options...
gabegarza1021 Posted August 1, 2010 Share Posted August 1, 2010 Indeed, Logic doesn't output noteoffs in the way you'd expect. Having said that, I've come up with a three-transformer fix, file attached. Post back if you want an explanation of how it works. I notice that there's 2 differences on handling NOTE OFF messages. MIDI Instrument and MIDI Performance (midi file) Quote Link to comment Share on other sites More sharing options...
ski Posted August 1, 2010 Share Posted August 1, 2010 What do you mean by "MIDI Instrument"? Quote Link to comment Share on other sites More sharing options...
gabegarza1021 Posted August 1, 2010 Share Posted August 1, 2010 What do you mean by "MIDI Instrument"? Also, would you mind taking a minute to explain what differences you've found in this thread rather than taking us elsewhere to have this discussion? Thanks. When I click on a key on my MIDI Instrument (keyboard) I see a NOTE ON message, once I release it, I see a NOTE OFF message. When I drag a MIDI Performance (midi file) onto a track and play it, even though there's a NOTE ON/NOTE OFF in the actual midi file, actually it's either a NOTE OFF or a RUNNING STATUS message with velocity set to zero, you only see at input, the NOTE ON message. This is the 2 difference on handling NOTE OFF messages I've seen in Logic. Quote Link to comment Share on other sites More sharing options...
ski Posted August 1, 2010 Share Posted August 1, 2010 Thanks for posting back. Some add'l questions for you so we can continue with this interesting discussion without ambiguity... When you say that you see a note off message when you release a note from your keyboard, are you talking about an $8n message, or, a $9n message with a velocity of zero? Also, how/where are you monitoring this data? Finally, do you see any difference in the playback of a SMF as opposed to MIDI data recorded and played back in Logic? Quote Link to comment Share on other sites More sharing options...
gabegarza1021 Posted August 1, 2010 Share Posted August 1, 2010 Thanks for posting back. Some add'l questions for you so we can continue with this interesting discussion without ambiguity... When you say that you see a note off message when you release a note from your keyboard, are you talking about an $8n message, or, a $9n message with a velocity of zero? Also, how/where are you monitoring this data? Finally, do you see any difference in the playback of a SMF as opposed to MIDI data recorded and played back in Logic? Sorry for the late reply. Here's how I monitored it in Logic. (dead link removed by admin) First I played my keyboard and it shows the NOTE ON/NOTE OFF messages. That's because the keyboard is the one transmitting those messages. Then I play a MIDI file, notice that there's no NOTE OFF messages in the playback of that MIDI file. That's because the MIDI file doesn't contain any NOTE OFF messages. What it does contain is a MIDI Specification called RUNNING STATUS. Here's the definition of the MIDI RUNNING STATUS message. http://home.roadrunner.com/~jgglatt/tech/midispec/run.htm Now, that's not to say that NOTE OFF messages don't exist anymore, but I think all current DAW's are supporting RUNNING STATUS and not NOTE OFF messages when saving a MIDI file. I wrote an Objective-C MIDI library and since I didn't have the actual MIDI Specification documents, that RUNNING STATUS was killing me until I found that link that described RUNNING STATUS. Once I updated my Objective-C library to support RUNNING STATUS, I was able to read MIDI files. When you say that you see a note off message when you release a note from your keyboard, are you talking about an $8n message, or, a $9n message with a velocity of zero? Since I'm using my MIDI Keyboard, it generates a $8n (NOTE ON) message when I press a key followed by a $9n NOTE OFF) message when I release a key. FYI - If $9n message contains a velocity value, that's ignored since by MIDI definition $9n is a NOTE OFF message. Finally, do you see any difference in the playback of a SMF as opposed to MIDI data recorded and played back in Logic? I don't see a difference if a SMF contains MIDI NOTE OFF messages or a MIDI RUNNING STATUS message, as in playback. But if you created a Enviroment MACRO that supported NOTE OFF/ON messages, you'd have to update that MACRO to support a RUNNING STATUS message. Quote Link to comment Share on other sites More sharing options...
ski Posted August 1, 2010 Share Posted August 1, 2010 There's a lot to reply to, but for now I'll just touch on this: Since I'm using my MIDI Keyboard, it generates a $8n (NOTE ON) message when I press a key followed by a $9n NOTE OFF) message when I release a key.FYI - If $9n message contains a velocity value, that's ignored since by MIDI definition $9n is a NOTE OFF message. I'm afraid that's not correct. Note on command are $9n, followed by two data bytes: the note number and then the velocity value. We can call this $9n, nn, vv. There are then two kinds of note off commands: • a note-on with a velocity of zero ($9n, nn, 0) • an $8n command followed by the note number and the release velocity ($8n, nn, rv) The $8n command byte can be thought of as a "true note off" command. In devices that don't respond to release velocity, the "rv" value is simply ignored. When data is being sent under running status, these two strings would be equivalent: $9n 64 64 32 32 64 0 32 0 $9n 64 64 32 32 $8n 64 64 32 32 Quote Link to comment Share on other sites More sharing options...
gabegarza1021 Posted August 1, 2010 Share Posted August 1, 2010 There's a lot to reply to, but for now I'll just touch on this: Since I'm using my MIDI Keyboard, it generates a $8n (NOTE ON) message when I press a key followed by a $9n NOTE OFF) message when I release a key.FYI - If $9n message contains a velocity value, that's ignored since by MIDI definition $9n is a NOTE OFF message. I'm afraid that's not correct. Note on command are $9n, followed by two data bytes: the note number and then the velocity value. We can call this $9n, nn, vv. There are then two kinds of note off commands: • a note-on with a velocity of zero ($9n, nn, 0) • an $8n command followed by the note number and the release velocity ($8n, nn, rv) The $8n command byte can be thought of as a "true note off" command. In devices that don't respond to release velocity, the "rv" value is simply ignored. When data is being sent under running status, these two strings would be equivalent: $9n 64 64 32 32 64 0 32 0 $9n 64 64 32 32 $8n 64 64 32 32 My bad, you're right. I posted that early this morning and was kind of tired. I just check my comments in my objective-c midi library. I reversed in my posting 0x8 and 0x9. Event Type Value Parameter 1 Parameter 2 ------------- ------- ------------- ----------- Note Off 0x8 note number velocity Note On 0x9 note number velocity Quote Link to comment Share on other sites More sharing options...
ski Posted August 3, 2010 Share Posted August 3, 2010 I'm starting a series of tutorials on note off handling in the environment. Have a look if you like: http://www.logicprohelp.com/viewtopic.php?t=60540 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.