MidiPipe
© Copyright 02002-02012 by Nico Wald, All rights reserved.
Developed using Xcode and the Cocoa framework.
V1.4.6
mailto:[email protected], http://www.subtlesoft.square7.net
About
MidiPipe is freeware and comes with no warranties. MidiPipe can be useful in a music
studio or live on stage to route, map, filter, convert, display, input and output MIDI
messages in real-time. Mac OS X 10.3.9 (Panther) or higher is required.
What's new?
V1.4.6 05/05/2012
• fix main window sizing issue in when German language is used
V1.4.5 05/03/2012
• point version check URL to new location, due to planned end of MobileMe on
06/30/2012
V1.4.4 12/31/2011
• fixed bug that caused hijacked ports to not get unhihjacked at app quit under Mac OS X
10.6 and later (reported by Axel)
V1.4.3 12/15/2007
• fixed bug in "Midi In" tool related to opening pipes with hijacked inputs which are
currently not connected (reported by Nik)
• fixed bug in "Message Converter" tool related to display of output CC's > 119 (reported
by Gauthier)
• Plugin Example project now creates Universal plugins and uses correct file extension
".plugin"
• moved development to Xcode 3.0 (Leopard) -- Mac OS X 10.2.9 not supported
anymore
V1.4.2 05/29/2007
• fixed bug related to panel windows
V1.4.1 03/07/2006
• added French localization (thanks to Richard)
• fixed bug in "MIDI Loop Protection" when more than one "MIDI Out" tool was used
V1.4.0 01/11/2006
• added "Monophonic" tool - make monophonic (requested by Wheat)
• extended "Velocity Modifier" tool to allow filtering (requested by Wheat)
• extended "Message Factory" tool to support all System Messages as trigger (requested
by Chris)
• added useful presets to "Key Mapper" tool (Reset, Inverse, Filter All)
V1.3.6 11/15/2005
• extended "Message Factory" tool to support System Exclusive as trigger and trigger
message as data source (requested by oink)
• fixed bug in "AppleScript Trigger" that prevented returning multi-messages (ex. return
{144,0,64,145,64,64})
• added Plugin API for developers to create their own tools (BETA - please send me
feedback)
• added Universal Binary to run on Intel architecture (not tested - please send me
feedback)
V1.3.1 08/22/2005
• moved development to Xcode 2.1 (Tiger) and fixed Tiger related bugs
• added "Double Filter" tool - filters identical messages
• updated Italian localization (thanks to Claudio)
• "Message Converter" tool now applies it's options even if input and output settings are
the same
• made main window resizable
V1.2.0 05/06/2005
• added "MIDISend" AppleScript command - send MIDI messages from your
AppleScripts to MidiPipe (requested by Jim)
• made "AppleScript Trigger" panel resizable (requested by Matt)
• fixed bug in "AppleScript Trigger" that caused returned messages to have a wrong time
stamp (reported by Matt)
V1.1.0 04/05/2005
• added "Message Factory" tool - trigger your own messages with static and variable data
bytes (requested by Rjahn)
• enhanced "Transpose" tool - multiple keys, set velocity, delay and channel
V1.0.2 03/05/2005
• fixed bug in "AppleScript Trigger" that prevented script properties to stick under Mac
OS X 10.3 (reported by John)
• removed "Message Factory" tool from tool list, because it is not finished yet (showed
up by mistake)
V1.0.1 02/20/2005
• added "hijack" option to "Midi In" tool - this makes the selected port invisible to other
apps (use with GarageBand or Logic Express)
• added workaround to make "AppleScript Trigger" work under Mac OS X 10.2 again
(bug reported by Metallbau)
• virtual ports can be renamed now
• added "Duplicate Tool" and "Duplicate Pipe" menu items (requested by stabilizer)
V0.9.9 (beta) 12/20/2004
• minor interface changes to make localization easier
• added Italian (thank you Claudio) and German localization
V0.9.8 (beta) 10/17/2004
• added "DLS Synth" tool - user interface for Apple's DLS Synth
• fixed key repeat problem in Keybord tool
• fixed comment field in SMF Player
V0.9.7 (beta) 10/11/2004
• added C4 to preference option "Middle C" (requested by Tim)
• added a "highlight" option to Keyboard tool (requested by Kent)
V0.9.6 (beta) 09/05/2004
• added "Key Mapper" tool (requested by PhotoKev)
• added preference option "Middle C" to choose between C5 (MidiPipe default) and C3
(requested by p8guitar)
• fixed another incompatibility with Mac OS X 10.2 when loading a saved pipe
V0.9.5 (beta) 07/17/2004
• added "SMF Player" tool - plays up to 128 MIDI Files; handles Song Select,
Start/Stop/Continue messages
• added "Save" to the file menu
• "MicroTuner" tool now uses channel 1 to 9 and 11 to 13 (skips channel 10 which some
synths reserve for drum kit)
V0.9.4 (beta) 06/10/2004
• fixed incompatibility with Mac OS X 10.2 when loading a saved pipe
• added preference panel with "hide after launch" option
V0.9.3 (beta) 05/20/2004
• fixed crash bug when opening a tool panel of a saved pipe
V0.9.2 (beta) 05/18/2004
• finally added multiple pipe support for cleaner "midipiping"
• added "MIDI Loop Protection" to avoid system hangs
• fixed crash bug caused by "AppleScript Trigger" tool (reported by Aleatoric)
• fixed "settings get loaded and work but aren't shown" bug in "Keyboard" tool
• fixed minor bug in "Control Slider" tool
• "MicroTuner" tool now replicates all channel messages (except pitchbend) to channel 1
to 12
V0.9.1 (beta) 04/03/2004
• now handles changes in MIDI environment correctly (affects Midi In and Midi Out
tool)
• added support for "User Scales" to "MicroTuner" tool
V0.8.4 (beta) 03/04/2004
• added support for RPN/NRPNs to "Message Converter" tool
• fixed "settings get loaded and work but aren't shown" bug in "MicroTuner" tool
V0.8.2 (beta) 02/18/2004
• added "Velocity Modifier" tool
• reduced latency of virtual inputs
• fixed "panel not closing" bug in "AList" tool
• fixed bug which prevented several tool settings from saving correctly
V0.7.7 (beta) 01/29/2004
• "Pitchbend Test" button in "MicroTuner" tool now works
• fixed bug in "Control Split" tool
• fixed memory leak bug in "AppleScript Trigger" tool
• improved "AList" tool slightly
V0.7.4 (beta) 01/22/2004
• moved development to Xcode (Panther)
• generally optimized MIDI message handling (lower latency)
• now tools can be disabled for temporarily turning them off without loosing their
settings (requested by Julean)
• fixed bugs in "Keyboard" tool
• added "(N)RPN Mapper" tool
• "AppleScript Trigger" tool now passes MIDI message to script and script can return a
message which is placed in the pipe
V0.6.2 (beta) 05/28/2003
• added "AppleScript Trigger" tool (requested by Christopher)
• fixed bug in auto-update-check routine that caused unexpected quit during launch in
rare situations
V0.6.1 (beta) 05/19/2003
• added "Control Slider" tool (requested by Bill)
• fixed bug in "Keyboad" tool which caused missing Note Offs in some cases and the
"Delay" tool to have no effect (reported by Larry)
V0.5.5 (beta) 04/30/2003
• added visualization for "MicroTuner" tool -- now see what you should hear :-)
• workaround for a bug that generated unexpected results if running status was supported
in receiving device (reported by David)
V0.5.4 (beta) 04/17/2003
• added "Control Split" tool (was requested by Marc)
• added hexadecimal format in AList tool (was requested by Brian)
• added "Bank Select" to named Controller list (was requested by Brian also)
• bug fixed in version check part of pipe load routine (don't go backwards and try to load
0.5.4 pipes into 0.5.3)
V0.5.3 (beta) 01/27/2003
• added Save support (finally)
• added "Use Note Off Velocity" option (turned off by default) to fix "hanging notes"
caused by devices not supporting it
• hopefully fixed bug causing startup delay when internet is enabled but not available
(used for automatic update check)
V0.4.1 (beta) 11/27/2002
• added Set tool
• added Duration tool (to make Greg's life easier :)
• added "Clear List" button to AList tool (was requested by Greg :)
• added automatic check for updated version
• fixed bug in Pitch Wheel part of Randomizer; MSB/LSB were swapped -- oops!
• fixed problems related to Note On messages with velocity at 0 -- are now handled as
Note Off in every tool
V0.4.0 (beta) 11/12/2002
• added Keyboard tool - use as input to play with mouse/keyboard or as a output to
watch note on/off messages
• added MicroTuner tool - routes notes to channel 1-12 and applies pitchbend data in
order to create different scales
V0.3.2 (beta) 11/06/2002
• added Randomizer tool (was requested by pherin :)
• fixed small bug related to 'Message Converter' 'Control Change' buttons
• removed resize buttons from panels
• minor change in double click behavior of "Tools" list: selection doesn't jump to "Pipe"
list after tool is added
V0.3.1 (beta) 09/08/2002
• removed: "Latency in ns" column in "AList", since it doesn't work :-)
• added a note to "Delay" tool, since it doesn't work with some devices is sent through a
virtual output in MidiPipe
• added new tool "Keyboard Split"
• "AList" will print note/octave and controller names now
V0.3 (beta) 09/05/2002
• initial release
Use
Click on a tool in the "Tools" list (left side) to see it's parameters. "Drag&Drop" or
"Double Click" a tool in the "Tools" list in order to put it in the pipe (right side). Tools in
the pipe can be reordered via "Drag&Drop". Midi messages "flow" from top to bottom
through the pipe. A pipe can have several inputs and outputs. A message arriving at an
output will be copied to the output and then continues "flowing" through the pipe (if there
are additional tools after the output). In order to edit parameters of several tools at once, it
is possible to open a panel for each tool by double clicking it in the pipe list.
Donation over PayPal
To promote further development of MidiPipe, please make a donation ($0.50 - $30.00).
Thank you for your support.
Tools
• Midi In - connects a MIDI input to the pipe
• Midi Out - connects a MIDI output to the pipe
• AList - outputs messages to the screen
• Message Converter - converts messages from one type to an other
• Delay - delays the time for when the message is scheduled
• Transpose - transposes note to multiple keys, set velocity, delay and channel for each
• Message Filter - filters by messages
• Channel Filter - filters by channel
• Channel Router - routes channels
• Keyboard Split - moves note on/off messages above/below a split point to a different
channel
• Randomizer - randomly changes any parameter value(s) of any channel message(s)
• Keyboard - play a on screen keyboard with your mouse or keys; will display arriving
messages too
• MicroTuner - apply different scales
• Set - set any parameter value(s) of any channel message(s) to any value
• Duration - add a delay between Note On and Note Off messages
• Control Split - inverse, limit, scale, fade in/out, route and map MIDI controllers
• Control Slider - simple slider for control message input
• AppleScript Trigger - use the power of AppleScript to implement everything you want
• (N)RPN Mapper - map (N)RPNs
• Velocity Modifier - scale, shift, clip and filter the velocity of Note On and Note Off
messages
• SMF Player - plays up to 128 MIDI Files; handles Song Select, Start/Stop/Continue
messages
• Key Mapper - map keys
• DLS Synth - user interface for Apple's DLS Synth
• Message Factory - trigger your own messages with static and variable data bytes
• Double Filter - filters identical messages
• Monophonic - make monophonic
Known Problems:
• tools that make use of delay have no affect on receiving devices/applications that don't
support scheduled events
• "hijack" option in "Midi In" tool sticks in case you force quit MidiPipe (or if it should
crash) while you have a port "hijacked"; the next time you start MidiPipe it won't see the
"hijacked" port either, so to get the missing port back do the following: disconnect the
device; launch "Audio MIDI Setup", delete the device, connect your device -- done; you
can also create a "backup" setup in "Audio MIDI Setup" before you use MidiPipe and
simply switch to the "backup" if you miss a "hijacked" port;
TODO:
• meta event view in SMF Player tool
Warning:
• "Message Converter" can cause 'trouble' in the receiving device, if you decide to
generate "Note On" messages only
Language Support
• English and German localizations by Nico Wald
• Italian localization by Claudio Santucci
• French localization by Richard Cheron
If you'd like to see MidiPipe in your native language, please contact me
(mailto:[email protected]), translate the Nib and Localizable.strings files, and send
them to me. I'll be more than happy to implement the translation.
Special Thanks to
• "oink" from OSXAudio (http://www.bigbluelounge.com) for his continued efford to
help people getting started with MidiPipe
• Rainer Brockerhoff for his MacHack 2002 paper "Plugged-in Cocoa"
• people at Apple for their beautiful hard- and software