MidiPipe FAQ
Hi
MidiPipe is great and very flexible.
I recently bought the M Audio's X Session Pro Controller
and wanted to use it with the DJ1800 application to start with.
The app lacks midi learn so a mapping was needed.
I didn't find a way to map a Note on/off to a Control Change with specific values and
to skip tedious mapping of every control message I wrote a MidiPipe plugin.
This makes my pipe very simple, only containing three tools or four if i include AList.
For more details on the implementation see http://www.huxa.net/midi/plugin.html
One question, is it only possible to have one plugin activated from the plugin folder ?
Thanks for a great app.
Aron
MidiPipe is great and very flexible.
I recently bought the M Audio's X Session Pro Controller
and wanted to use it with the DJ1800 application to start with.
The app lacks midi learn so a mapping was needed.
I didn't find a way to map a Note on/off to a Control Change with specific values and
to skip tedious mapping of every control message I wrote a MidiPipe plugin.
This makes my pipe very simple, only containing three tools or four if i include AList.
For more details on the implementation see http://www.huxa.net/midi/plugin.html
One question, is it only possible to have one plugin activated from the plugin folder ?
Thanks for a great app.
Aron
-
- Posts: 82
- Joined: 21 Apr 2003, 12:35
- Twitter: nicowald
- Location: Nordstemmen, Germany
- Contact:
cannabis: I have to think about that - Message Converter might not work the way you want in this case
mr edit: Should be possible with the AppleScript Trigger tool - please send me more information about what controller and so on via Email.
PlusPlus: Can you send me a MIDI file the contains the data you send to MidiPipe?
parma: http://www.philrees.co.uk/nrpnq.htm
Danythedog: MidiPipe has MacIntel support since V1.3.6 (11/15/2005)
arong: Cool, first public available MidiPipe plugin I know of!
Of course you can have multiple plugins. Search ExamplePlugin.* for "ExamplePlugin" and replace all with a different name. It is also possible to have multiple tools in one plugin file. Simply add another implementation. For more details see:
http://www.adhocconference.com/papers/2 ... _Cocoa.pdf
Regards, Nico
mr edit: Should be possible with the AppleScript Trigger tool - please send me more information about what controller and so on via Email.
PlusPlus: Can you send me a MIDI file the contains the data you send to MidiPipe?
parma: http://www.philrees.co.uk/nrpnq.htm
Danythedog: MidiPipe has MacIntel support since V1.3.6 (11/15/2005)
arong: Cool, first public available MidiPipe plugin I know of!
Of course you can have multiple plugins. Search ExamplePlugin.* for "ExamplePlugin" and replace all with a different name. It is also possible to have multiple tools in one plugin file. Simply add another implementation. For more details see:
http://www.adhocconference.com/papers/2 ... _Cocoa.pdf
Regards, Nico
MidiPipe - route, map, filter, convert, display, and input MIDI messages in real-time
http://www.subtlesoft.square7.net
http://www.subtlesoft.square7.net
Greetings,
Is it possible, via a plugin, etc... to do creative MIDI remapping?
I'm thinking of things like:
Take the lowest note and sent it off to a different channel
Look for chord patterns in the lower range (or maybe just notes below a prior keyboard split point maybe) and arpeggiate them or send a corresponding bass note to another channel..
etc...
I'm looking for ways to use my simple M-Audio 88es to better trigger the features in a B3 organ simulator. I'd love to be able to find some way to creatively watch the left hand and fire off something to the bass pedal midi channel.
Thanks for your time, and for a great program!
Steve
Is it possible, via a plugin, etc... to do creative MIDI remapping?
I'm thinking of things like:
Take the lowest note and sent it off to a different channel
Look for chord patterns in the lower range (or maybe just notes below a prior keyboard split point maybe) and arpeggiate them or send a corresponding bass note to another channel..
etc...
I'm looking for ways to use my simple M-Audio 88es to better trigger the features in a B3 organ simulator. I'd love to be able to find some way to creatively watch the left hand and fire off something to the bass pedal midi channel.
Thanks for your time, and for a great program!
Steve
Hi Nico. Congrats on the great piece of sftware. I can see many uses for it as I have got to grips with it over the last hour or so.
I have a specific but probably quite simple problem with the patch I am trying to make.
I would like to make all data values between 0 and 43 on controller #13 appear as 0 when it exits your application.
I am using the message factory element to assign a range of values from controller #13 to a single data value but it is not working. I have tried with the value box both checked and unchecked and passthrough is enabled otherwise no data gets through.
Am I using the wrong element, and do I have to 'hijack' the midi input in order for it to work?
many thanks
hoonboy
I have a specific but probably quite simple problem with the patch I am trying to make.
I would like to make all data values between 0 and 43 on controller #13 appear as 0 when it exits your application.
I am using the message factory element to assign a range of values from controller #13 to a single data value but it is not working. I have tried with the value box both checked and unchecked and passthrough is enabled otherwise no data gets through.
Am I using the wrong element, and do I have to 'hijack' the midi input in order for it to work?
many thanks
hoonboy
I make stuff occasionally. you can find out about it at www.hoonboy.co.uk or www.myspace.com/hoonboy
-
- Posts: 20
- Joined: 29 Jan 2007, 07:11
Re: Midipipe help??
would anybody help me ?
I play accordion with midi and I play bass & chord with my left hand.
problem is that when I play the C M button, it send three notes, and I want it to play only one sample
is it possible to ask to midi pipe this :
if in midi in I receive C+E+G, then send C 4 in midi out
if in midi in I receive C+Eb+G, then send C5 in midi out
etc...
thank you
I play accordion with midi and I play bass & chord with my left hand.
problem is that when I play the C M button, it send three notes, and I want it to play only one sample
is it possible to ask to midi pipe this :
if in midi in I receive C+E+G, then send C 4 in midi out
if in midi in I receive C+Eb+G, then send C5 in midi out
etc...
thank you
-
- Posts: 5
- Joined: 05 Oct 2006, 01:29
I discovered MidiPipe yesterday in searching for a workaround solution for a keyboard controller problem. I have a Kurzweil MIDIboard with one key (F5) that won't generate full value for velocity or polyphonic aftertouch. The MIDI messages it generates are about 10 units lower (decimal) than the other keys. Rather than trying to fix the MIDIboard, I am hoping MidiPipe can simply compensate.
Just starting with MidiPipe, here's what I've done so far:
• MIDI In
• Velocity Modifier
• AList
• MIDI Out
Ok, I see the Velocity Modifer is working. Of course this isn't what I want because it's modifying all notes. I'm just saying I sort of get it, but I don't know where to go from here.
I want MidiPipe to modify only MIDI note 65 (F5), adding a set amount (scaling would be ok, too) of velocity and polyphonic aftertouch to what the MIDIboard is actually generating for MIDI note 65.
IOW, I want to make one key more sensitive.
Thanks for any help.
-bg
Just starting with MidiPipe, here's what I've done so far:
• MIDI In
• Velocity Modifier
• AList
• MIDI Out
Ok, I see the Velocity Modifer is working. Of course this isn't what I want because it's modifying all notes. I'm just saying I sort of get it, but I don't know where to go from here.
I want MidiPipe to modify only MIDI note 65 (F5), adding a set amount (scaling would be ok, too) of velocity and polyphonic aftertouch to what the MIDIboard is actually generating for MIDI note 65.
IOW, I want to make one key more sensitive.
Thanks for any help.
-bg
Ok, I made some progress. Here's my pipe:
• Midi In - from hardware MIDI interface
• Message Filter - UNcheck: Note On/Off , Polyphonic Aftertouch
• Keyboard Split - Move Note On/Off messages above F5 to channel 2
• Keyboard Split - Move Note On/Off messages below F5 to channel 2
• Channel Filter - Allow Channel 1 only
• Velocity Modifier - Shift = 127 (overkill to make the effect obvious)
• Message Converter - In=Polyphonic Aftertouch; Out=Note On
• Keyboard Split - Move Note On/Off messages above F5 to channel 2
• Keyboard Split - Move Note On/Off messages below F5 to channel 2
• Channel Filter - Allow Channel 1 only
• Velocity Modifier - Shift = 127 (overkill to make the effect obvious)
• Message Converter - In=Note On; Out=Polyphonic Aftertouch
• AList - to see that it's working
• Midi Out - MidiPipe Output 1
Watching the AList, the pipe is doing exactly what I want. Except, I can't hear the results. To test it I'm running CS-80V softsynth in stand alone mode. CS-80V sees my hardware MIDI port as well as "MidiPipe Output 1". But CS-80V only makes sound when the hardwarre MIDI port is selected. Silence when "MidiPort Output 1" is selected. What am I doing wrong?
Thanks.
• Midi In - from hardware MIDI interface
• Message Filter - UNcheck: Note On/Off , Polyphonic Aftertouch
• Keyboard Split - Move Note On/Off messages above F5 to channel 2
• Keyboard Split - Move Note On/Off messages below F5 to channel 2
• Channel Filter - Allow Channel 1 only
• Velocity Modifier - Shift = 127 (overkill to make the effect obvious)
• Message Converter - In=Polyphonic Aftertouch; Out=Note On
• Keyboard Split - Move Note On/Off messages above F5 to channel 2
• Keyboard Split - Move Note On/Off messages below F5 to channel 2
• Channel Filter - Allow Channel 1 only
• Velocity Modifier - Shift = 127 (overkill to make the effect obvious)
• Message Converter - In=Note On; Out=Polyphonic Aftertouch
• AList - to see that it's working
• Midi Out - MidiPipe Output 1
Watching the AList, the pipe is doing exactly what I want. Except, I can't hear the results. To test it I'm running CS-80V softsynth in stand alone mode. CS-80V sees my hardware MIDI port as well as "MidiPipe Output 1". But CS-80V only makes sound when the hardwarre MIDI port is selected. Silence when "MidiPort Output 1" is selected. What am I doing wrong?
Thanks.
Ok, I got the pipe working. It's kind of verbose. I'm open to suggestions to make it simpler. It does work though!
What it does:
To compensate for one slightly insensitive key on my Midi controller keyboard, this pipe makes Midi note F5 more responsive to velocity and polyphonic pressure. It is one continuous pipe with a comment above each Midi In.
--- modify only note F5 velocity
Midi In - USB
Message Filter - Allow only Note On/Off
Key Split - Above F5 to Ch. 16
Key Split - Below F5 to Ch. 16
Channel Filter - Allow Ch. 1
Velocity Modifier - Scale 110%
Midi Out - USB (using a hardware out to test)
--- modify only note F5 polyphonic aftertouch
Midi In - USB
Message Filter - Allow only Polyphonic Aftertouch
Message Converter - Polyphonic Aftertouch to Note On
Key Split - Above F5 to Ch. 16
Key Split - Below F5 to Ch. 16
Channel Filter - Allow Ch. 1
Velocity Modifier - Scale 130%
Message Converter - Note On to Polyphonic Aftertouch
Midi Out - USB
--- block only note F5
Midi In - USB
Key Split - Above F5 to Ch. 16
Key Split - Below F5 to Ch. 16
Channel Filter - Allow Ch. 16
Channel Router - 16 to 1
Midi Out - USB
--- block only note F5 polyphonic aftertouch
Midi In - USB
Message Filter - Allow only Polyphonic Aftertouch
Message Converter - Polyphonic Aftertouch to Note On
Key Split - Above F5 to Ch. 16
Key Split - Below F5 to Ch. 16
Channel Filter - Allow Ch. 16
Message Converter - Note On to Polyphonic Aftertouch
Channel Router - 16 to 1
Midi Out - USB
--- allow everything except: note on/off and polyphonic aftertouch
Midi In - USB
Message Filter - Block only: Note On/Off and Polyphonic Aftertouch
Midi Out - USB
What it does:
To compensate for one slightly insensitive key on my Midi controller keyboard, this pipe makes Midi note F5 more responsive to velocity and polyphonic pressure. It is one continuous pipe with a comment above each Midi In.
--- modify only note F5 velocity
Midi In - USB
Message Filter - Allow only Note On/Off
Key Split - Above F5 to Ch. 16
Key Split - Below F5 to Ch. 16
Channel Filter - Allow Ch. 1
Velocity Modifier - Scale 110%
Midi Out - USB (using a hardware out to test)
--- modify only note F5 polyphonic aftertouch
Midi In - USB
Message Filter - Allow only Polyphonic Aftertouch
Message Converter - Polyphonic Aftertouch to Note On
Key Split - Above F5 to Ch. 16
Key Split - Below F5 to Ch. 16
Channel Filter - Allow Ch. 1
Velocity Modifier - Scale 130%
Message Converter - Note On to Polyphonic Aftertouch
Midi Out - USB
--- block only note F5
Midi In - USB
Key Split - Above F5 to Ch. 16
Key Split - Below F5 to Ch. 16
Channel Filter - Allow Ch. 16
Channel Router - 16 to 1
Midi Out - USB
--- block only note F5 polyphonic aftertouch
Midi In - USB
Message Filter - Allow only Polyphonic Aftertouch
Message Converter - Polyphonic Aftertouch to Note On
Key Split - Above F5 to Ch. 16
Key Split - Below F5 to Ch. 16
Channel Filter - Allow Ch. 16
Message Converter - Note On to Polyphonic Aftertouch
Channel Router - 16 to 1
Midi Out - USB
--- allow everything except: note on/off and polyphonic aftertouch
Midi In - USB
Message Filter - Block only: Note On/Off and Polyphonic Aftertouch
Midi Out - USB
-
- Posts: 82
- Joined: 21 Apr 2003, 12:35
- Twitter: nicowald
- Location: Nordstemmen, Germany
- Contact:
n9yty: first you could try it via "AppleScript Trigger" (see examples folder); if you need lower latency a PlugIn can do the job
hoonboy: hijack is only needed for apps where you can't select a specific MIDI input (like Garageband); try the "limit" feature of the "Control Split" tool
karafa: no install necessary; try starting MidiPipe first -- which apps have that problem?
kieffer hubert: probably possible with "AppleScript Trigger"
Danythedog: use the "limit" feature of the "Control Split" tool
torqui: try the "Keyboard" tool (it allows input via mouse and computer keyboard), followed by "Message Converter" (Note On -> Control Change) ...
Hope this helps.
Regards, Nico
hoonboy: hijack is only needed for apps where you can't select a specific MIDI input (like Garageband); try the "limit" feature of the "Control Split" tool
karafa: no install necessary; try starting MidiPipe first -- which apps have that problem?
kieffer hubert: probably possible with "AppleScript Trigger"
Danythedog: use the "limit" feature of the "Control Split" tool
torqui: try the "Keyboard" tool (it allows input via mouse and computer keyboard), followed by "Message Converter" (Note On -> Control Change) ...
Hope this helps.
Regards, Nico
MidiPipe - route, map, filter, convert, display, and input MIDI messages in real-time
http://www.subtlesoft.square7.net
http://www.subtlesoft.square7.net
thanx, but this is not what I'm looking for.
I need to assign different "Control Changes" to different keys of the computer keyboard, while the tool allows me to assign only one Control Change to the whole keyboard (or I'm not able to use it properly)
for example: press "z" to set volume = 100, and press "x" to set volume = 50
I need to assign different "Control Changes" to different keys of the computer keyboard, while the tool allows me to assign only one Control Change to the whole keyboard (or I'm not able to use it properly)
for example: press "z" to set volume = 100, and press "x" to set volume = 50
-
- Posts: 82
- Joined: 21 Apr 2003, 12:35
- Twitter: nicowald
- Location: Nordstemmen, Germany
- Contact:
MidiPipe - route, map, filter, convert, display, and input MIDI messages in real-time
http://www.subtlesoft.square7.net
http://www.subtlesoft.square7.net
Controller increment remap question
Hi,
I have a JL Cooper Surround panner. The joystick generates continuous controller values, but the knobs simply output a controller 16 for instance with a value of 1 when turned to the right and a value of 127 when turned to the left. Is there an easy way to convert that to an incrementing value, so that for each turn to the right, I get a value that increments from 0 to 127 by adding one to it, sort of like:
if input value=127, add 1 to variable A and ouput variable A as a continuous controller value. If input value=1 subtract 1 from A and output controller value A. If A < 0 then a=0 if a >127 then a=127 (to prevent out-of-bounds)
Does that make sense to anyone? Turning the knob to the left currently outputs:
control change: 016 continuous controller#16 (course) Channel 15 190 16 127
or right :
control change: 016 continuous controller#16 (course) Channel 15 190 16 01
Thanks,
Joel
I have a JL Cooper Surround panner. The joystick generates continuous controller values, but the knobs simply output a controller 16 for instance with a value of 1 when turned to the right and a value of 127 when turned to the left. Is there an easy way to convert that to an incrementing value, so that for each turn to the right, I get a value that increments from 0 to 127 by adding one to it, sort of like:
if input value=127, add 1 to variable A and ouput variable A as a continuous controller value. If input value=1 subtract 1 from A and output controller value A. If A < 0 then a=0 if a >127 then a=127 (to prevent out-of-bounds)
Does that make sense to anyone? Turning the knob to the left currently outputs:
control change: 016 continuous controller#16 (course) Channel 15 190 16 127
or right :
control change: 016 continuous controller#16 (course) Channel 15 190 16 01
Thanks,
Joel