1/23/2024 0 Comments Midipipe for mac![]() Thank you! I did a little more research and thought that perhaps a MIDI Pipe might do the trick. Yes, I do appreciate the suggestion, Fergler. Besides that, you can also do all sorts of fun stuff with the MIDI if needed. They will still function if one or the other is disabled, but Reaper won't see any changes. My recommendation would be to use an application like Loopbe1 on windows or MIDIPipe on Mac to aggregate your two devices. There is a hardware ID that it is concerned with, not the name. I hope this makes sense.From my understanding MIDI devices don't work that way. If we ‘div’ the first byte’s value by 16, we’re left with just the value of the first four bits, which in a note-on message is 9. The AppleScript operator ‘div’ divides by the number which follows it and returns just the whole-number part of the result. The first byte of a note-on message on channel 16 has the binary value 10011111 (159 in decimal). The first byte of a note-on message on channel 1 has the binary value 10010000 (144 in decimal) - 1001 for “note on” and 0000 for channel 1 minus 1. ![]() The first four bits of the first byte in a message denote the kind of message it is and the other four bits are the channel number minus 1. The variable used to hold the list is called ‘message’ in this script and ‘beginning of message’ is one way of referring to the first item in the list. MidiPipe feeds each message to the script as an array (a “list” in AppleScript parlance) containing the bytes’ numeric values in the order they occur in the message. Otherwise pass the message immediately.Īs you probably know, MIDI messages are streamed as byte values - a byte consisting of eight binary digits or “bits”. If this is a note-on message for note number 84 (C5), wait a few milliseconds and then pass on the message.ĭelay 0.007 - Delay (approx) 7 milliseconds. If ((beginning of message) div 16 is 9) and (item 2 of message is 84) then I just downloaded it recently to help someone else with a script. Play about with the ‘delay’ time to see what works for you - or even if it works for you. The MIDI channel isn’t considered, but it can be if needed. The script checks each message coming down its pipe and delays any C5 note-on messages by a few milliseconds. Leave the tool’s “pass through” option unchecked so that the script controls the throughput. This script’s intended for use in a MidiPipe AppleScript Trigger tool. I’ve gone with C5 below, but you can easily change the note number in the code In your second paragraph, it says that the C5 has to trigger several milliseconds after the C3, but in the next, it’s the C3 which has to be delayed. I was surprised to find it even attempted intervals as short as a few milliseconds (in El Capitan), but it seems to do so. I think this may be doable with AppleScript’s ‘delay’ command, but I’m not sure how precise 'delay’s timing is. However if they are fired simultaneously without the slight delay for the higher key, the wrong sound is played unless I re-press the C5 again. The reason I want to be able to do this… is… I have a Kontakt Virtual Instrument where one uses lower piano keys (such as C3) to switch between different sounds… and higher keys (such as C5 to execute/play the sound). I’d be grateful for some guidance here… for if you have ideas. Midipipe does support custom AppleScript via the “AppleScript” trigger / feature in the app. ![]() However I need that several milliseconds delay until C3 is “pressed” … I got MidiPipe to work to have a C5 key play both a C3 and C5 simultaneously using Remap. To map the C5 key on my midi piano keyboard, upon pressing it, to play both a C3 and C5 simultaneously, but to have C5 trigger several milliseconds after C3. I am trying to do the following example with the Mac app, MidiPipe ( ):
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |