MidiPipe FAQ

Audio, MIDI and other software, not including effects or instruments
Post Reply
Posts: 1
Joined: 09 Mar 2011, 17:50

Re: MidiPipe FAQ

Post by guff » 09 Mar 2011, 18:18

Is there any way to scale up the range of a contoller?
I get a short ranged input from my device (only 0-31) and I need that to be scaled to 0-127.
Is this possible with MidiPipe?



Posts: 1
Joined: 27 Mar 2011, 13:14

Re: MidiPipe FAQ

Post by noodle » 27 Mar 2011, 13:18

Hi, I'm having some problems with the hijack feature. After an accidental shut down, my device is now hijacked and I can't open it any program, even Midipipe. I read the FAQ which said to delete the device from MIDI audio setup, but it's not appearing there for me to do so. Help?

Posts: 1
Joined: 29 Mar 2011, 09:22

Can't unhijack, how do I purge?

Post by dsjstc » 29 Mar 2011, 09:27

After a crash, I can't unhijack my Textech midi adapter from OSX 10.6. The devices does not appear in the Audio Midi Setup applet, nor in MidiPipe. It works fine in my other computer.

I've tried everything I can think of -- deleting and reinstalling midipipe, multiple reboots with the adapter connected and disconnected, resetting it in other software, deleting all *midi* files everywhere under ~/Library/... but the adapter remains hijacked and invisible.

What do I need to do to completely purge MidiPipe from my computer to start again?

Posts: 3
Joined: 02 Jan 2011, 17:05

Re: MidiPipe FAQ

Post by LMO » 21 Apr 2011, 10:20

Did you try adding the device back via Audio Midi Setup? When I've had problems with a single port disappearing after a hijack, deleting the device and then adding it back fixed the problem.

Posts: 1
Joined: 01 Jun 2011, 05:47

Re: MidiPipe FAQ

Post by JoeyJR » 01 Jun 2011, 05:58

Hi there

I'm a newbie to midi pipe. I'd appreciate any help on the following two questions:

Scenario A:
Is it possible to use midi pipe to translate bank and program change messages into another program change message. I want to be able to capture bank and program change messages from my synth and map each combination to a different patch (program number) within Mainstage.

Scenario B:
Is it possible to use midi-map to generate program change messages when a key on a midi-keyboard is pressed. So for example I could press a middle C to map to a program change 05, and the next D to program change 120.



Posts: 1
Joined: 05 Jul 2011, 04:22

Re: MidiPipe FAQ

Post by madstudio » 05 Jul 2011, 04:27

Hi guys. I'm pretty sure that midipipe can convert program change from 0-127 to 1-128 but I don' know how to do that :scratch: Yes, I know it's my homework but I need some help. I'm really not familiar with applescripts and such a things. Thanks, hope somebody can do that for me :D

Posts: 1
Joined: 10 Aug 2011, 12:14

Re: MidiPipe FAQ

Post by m4m » 10 Aug 2011, 21:56

Darkdistractions wrote:Hi , i got troubles with midipipe trying to convert ccs to nrpns to control my mopho and tetra, i just got a korg nanokontrol which only sends ccs and i need nrpns but the thing is that the converted message is a kind of note on note off, the parameter is well map but something must be causing that and dont know what!! I ve well done the pipe i guess, midi in ( nano) message converter ( cc 20 to nrpn 0/120, channel 3) midi out( mopho) and here is the message note on note off( i m using osx 10.5) instead of going through the full range of value(0-127) here it goes direct from 0 to 127

If i put the Alist before midi out, tells well the move of the cc, you can see it going through the whole range but not the nrpn( which is well mapped or targeted on the device(mopho) but only with note on note off!! Help!
try "set fill byte to 127"

also, great program, but would that be possible to have the NRPN choosers in HEX as an option, as every manual lists the cc98 and 99 (MSB and LSB) as hex so it would be way more practical when maping

Posts: 2
Joined: 05 Oct 2011, 08:08

Re: MidiPipe FAQ

Post by grocon » 05 Oct 2011, 09:32

A little help please...

I installed midipipe in an attempt to play around with how my APC 40 communicates with ableton live. It turned out to appear to be a little over my hear or at least more over my head than i care to delve deeper into.
While playing with it i dragged over a few options from the list in an attempt to get some kind of a response that i might be able to understand and run with, including 'midi in', 'midi out', 'message converter' and 'Alist' (cause this seemed to show the messages the APC was sending). At this point i could see the APC under the 'midi in' and the 'midi out' and messages passing through the 'Alist' but it didn't seem to have much of an effect on ableton, so i decided this was not what i was looking for and exited Midipipe, i did not save the pipe or anything to that effect. At some point during this experimentation i did click 'hijack' under 'midi in' cause thats what i thought i wanted to do to change the way the APC communicated with ableton.

So at this point i went back into Ableton and the APC is not recognized. I checked the midi preferences and it can see the APC under midi out but the midi in is grey, it does not see the APC.
Back in midipipe, it too can no longer see the APC coming in as it could before. Almost as if it hijacked the ports from itself as well as from ableton, if i am understanding correctly.

I have tried the obvious, like cycling the APC and the computer, reconnecting them in various ways/order. I reinstalled ableton, reinstalled midipipe. Looked at the midi audio utility; nothing to do there. i found alot of similar issues but nothing with this version of OSX (10.7), so some of the potential fixes i found referenced files that i cannot find like preferences.cfg for ableton for example, but it seems that the problem started with installing midipipe or when i added that 'midi in' in midipipe and clicked hijack. I found one support note somewhere that someone noted that there was a known issue with midipipe releasing hijacked ports in 10.6, i believe that person ended up reverting back to 10.5 to solve the issue if i understand correctly.

my question boils down to this, is there a way, even if it means reinstalling my OS, to reset the hijacked ports, which were hijacked by midipipe? or undo any changes made by midipipe / completely strip midipipe from my system?

sorry for the long windedness of this, i am an idiot, please save me/my APC from myself :oops:

Posts: 2
Joined: 05 Oct 2011, 08:08

Re: MidiPipe FAQ

Post by grocon » 06 Oct 2011, 11:05

after uninstalling midipipe a software called midimonitor shows that the APC is recognized by the computer as an APC and that it is sending midi messages, but Ableton still is blocked as far as midi in and does not connect/anything info from it.

Also creating a new user account, as stated by someone here earlier, does "fix" the issue. In the new user account the APC can connect just fine, which is just that it's fine, but still very frustrating to have to move and reinstall everything on my computer due to midipipe's inability to undo changes it made...... boooooo midipipe.

would still love an actual fix if there is such a thing.

Posts: 1
Joined: 17 Feb 2012, 12:27

AppleScript & Plug-ins

Post by karnatek » 17 Feb 2012, 12:58

Just wanted to share some experiences and observations with you. Many of you may know this already, but I discovered these one at a time, so I thought it would be good to consolidate the learnings in one post...

1. You have access to the MIDI message itself, but not to any of the headers. You can manipulate and change the MIDI message as much as you want.
2. You can "remember" values and use them later. This is done by the AppleScript "property" statement up top. Look at some of the examples. To me, this is the single biggest reason for writing AppleScript. All the native MidiPipe tools just manipulate information in the CURRENT message alone. With AppleScript, you can, for example, store the value of a CC when it changes, and use that value to affect a subsequent message. I use this to route MIDI messages to Synth A vs. Synth B, based on the value of a CC toggle.

1. If you are not a big Xcode jockey (I just picked it up), it can be a chore to figure out how to use the Example plug-in. Good news is that it WILL compile and produce a usable plug-in in the latest Lion and Xcode 4. The biggest stumbling block for me was that there is a hard-coded user defined property that overrides the Base SDK set up in the project properties. When you open the project in Xcode 4, it will offer to update the SDK settings, and will do so, but it does not help with user defined overrides. You need to scroll down in the Build Settings to the User Defined section, and set the SDKROOT_i386 property to /Developer/SDKs/MacOSX10.7.sdk (or, whatever SDK you have installed) before it will build.
2. Once you build the plug-in, it is non-obvious as to how to get it to be recognized by MidiPipe. For this, you have to right click on the MidiPipe App icon, "Show Package Contents" and within the Contents folder, create a NEW folder called PlugIns and put the newly created plug-in into that folder. Now when you launch MidiPipe, you will see your tool at the bottom of the tool list.
3. The only additional property you have access to, other than the same MIDI message you have access to in AppleScript is the MIDI TimeStamp. This could be useful, if you are trying to do something based on the time interval of certain events (e.g., time from Note On to Note Off, for instance). There is no access to get or set any other MIDI header information.
4. The big win, and the reason you may want to consider doing a plug-in (rather than AppleScript), is that you can create a GUI for your tool, where you can set and/or display values with all the widgets available in Xcode's Interface Builder (buttons, sliders, etc.). There is no way to do this with AppleScript. I have not found a need for this yet, so I don't have any useful plug-ins made. If and when I do, I will be happy to share it.

That's it. Hope this helps someone somewhere down the line. Nico is probably busy with his day job, so it is up to us to document what we find :)

Posts: 1
Joined: 11 Aug 2010, 03:08

MidiPipe+eDrum question...

Post by mikentosh » 16 Jun 2012, 12:18

Almost two years ago I bought a crappy little 'entry-level' edrum kit, an OSP DD-502 from some kid on craigslist for $150...I knew the drum sounds would pretty much suck, but it was cheap enough and I just wanted to goof around on it...And I remember finding a 'work-around', so I could use it with Addictive Drums, EZ Drummer, or just have it trigger the drumsounds in Garageband....But I'm not sure if Im remembering correctly...the OSP is very basic and only has Midi-Out on channel 10. That's it....and I don't know whats goin Out...
Well I was trying to get it to be an eDrum and trigger ADD again yesterday, with no luck at all...I've got a pretty sketchy memory...everything is a bit hazy a couple years later......Anyone know...did I find a workaround to get it to trigger drumsounds....Or am I just remembering using my old DM5 to trigger sounds with theses drumpads? I don't know what the hell is going on at this point!
I'm hoping someone out there could remember what the hell I did... :eeek:

Posts: 1
Joined: 02 Mar 2013, 04:02

Re: AppleScript & Plug-ins

Post by MatMusic » 03 Mar 2013, 13:44

Hi karnatek
2. You can "remember" values and use them later. This is done by the AppleScript "property" statement up top. Look at some of the examples. To me, this is the single biggest reason for writing AppleScript. All the native MidiPipe tools just manipulate information in the CURRENT message alone. With AppleScript, you can, for example, store the value of a CC when it changes, and use that value to affect a subsequent message. I use this to route MIDI messages to Synth A vs. Synth B, based on the value of a CC toggle
Would you be so kind to explain this in a little more detail or point me to an example where this has been done ?

I am trying to figure this out for days now since I am new to midipipe as well as AppleScript.
I already managed to write successful executing scripts with the AppleScript trigger.
And I played around with the property variables as well.
But my values are lost with the next MIDI message coming in.

I only found little examples for AppleScript in the folder that was delivered with the download of MidiPipe.
Might look at some of the files Nico posted here. In the meantime I am probably able to understand them better :lol:

What I'd like to do is to store i.e. a fader position (value of a CC in general) and use it as an 'old' value for comparison when the fader is moved (same CC drops in again). And I like to do this for 8 faders in a row.

I could also imagine this being implemented in the native MidiPipe tools since there already is a way to 'set to last value of ...' but this is only possible for the other messages but not for the sam CC

From a programmesr's point of view this would need to implement a storage for the last message for every status byte (CC, PC, .....).

If, in addition, it would be possible to calculate on the last value that would be a real advantage.
Something like :
if fader_new > fader_old then
set fader_new to fader_old + 5
end if

Or it could be part of message factory like :
- status byte
- trigger byte 3 of old_message <operator> <value>

Where operator could be one of +, -, / (divide ?), * (multiply), whatever.

Would be great if you could be of help here since it sounds like this is exactly what I was searching the last couple of days.

Thanks for your support and thanks to Nico for this application.

UPDATE : guess I figured it out [SPAM] probably too much playing around whilst learning AppleScript

Here's what I did :

property value : 100

-- This script tests if a fader has been moved up or down

on runme(message)
set oldval to value
set newval to item 3 of message
set value to newval

-- result : 100 = fader moved up, 50 = fader moved down
if newval > oldval then
set item 3 of message to 100
set item 3 of message to 50
end if

return message
end runme

Sometimes it's just helpful to try to explain to someone what you have in mind ..... makes things clearer.
Thanks anyway.


Posts: 1
Joined: 24 Jun 2013, 10:23

Re: MidiPipe FAQ

Post by Oggy » 24 Jun 2013, 10:27


how in the world can I make a mute group in Midipipe? I want two notes to cancel each other. When one is played it should mute the other!

Please help,


Posts: 2
Joined: 14 Jan 2015, 15:39

MidiPipe Plugin

Post by guiohm » 14 Jan 2015, 15:58


First, thanks Nico for this free software, and thanks karnatek for sharing your discoveries about the plugin framework.

I am actually trying to write a plugin because I want to be able to change the velocity curve of black keys only (utilities doing that exist on windows but it seems that nothing has been done to do that on OS X).
I started by building the example plugin, then I put it in a Plugins directory inside the Contents folder, as you said karnatek, but it isn't recognized by the app on restart.
Any ideas?

I'm new to xcode/cocoa stuff. The link posted by Nico about a cocoa plugin paper from 2002 is dead. So I'm trying to find knowledge elsewhere.

Any help appreciated!

Posts: 2
Joined: 14 Jan 2015, 15:39

Re: MidiPipe FAQ

Post by guiohm » 14 Jan 2015, 16:03

Actually I just solved my first issue : The arch in xcode must be set to universal (32/64 bit) and not 64 bit only.

Post Reply