MidiPipe FAQ

Audio, MIDI and other software, not including effects or instruments
Post Reply
nicowald
Posts: 82
Joined: 21 Apr 2003, 12:35
Twitter: nicowald
Location: Nordstemmen, Germany
Contact:

MidiPipe V0.9.1 (beta) released

Post by nicowald » 03 Apr 2004, 01:23

What's new?
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
MidiPipe - route, map, filter, convert, display, and input MIDI messages in real-time
http://www.subtlesoft.square7.net

Jason Hyerstay
Forum Guru
Posts: 1673
Joined: 05 Mar 2003, 01:43
Location: Vermont

Post by Jason Hyerstay » 03 Apr 2004, 02:03

Thanks for such a great app! Two ideas:

Let us close the window without quitting.
Provide a pipe setting to allow starting of MidiPipe with no window.

Basically, I just use it for a summing of all my midi ports into one, so I click my pipe file in the dock and then I want to forget it.

Also, the MacUpdate info is still for 0.8.4

Thanks again,

Jason

brasco1234
Posts: 4
Joined: 17 Mar 2003, 08:53
Location: East Lansing, MI

Making a MIDI Loop

Post by brasco1234 » 21 Apr 2004, 13:30

I wanted a way to make it so that when I pressed a key down, only a MIDI Note On would be sent to Kontakt. When the same key was pressed again, it would send a MIDI Note Off. This way I could start notes looping and stop them with a the same key and not have to hold the note down. I asked Nico and he sent me a response and an attachment. The response is below. It works perfectly.
MidiPipe can do it with the help of AppleScript. I attached an example pipe with the AppleScript code that does the job. Be aware that processing MIDI data with AppleScript introduces a little bit higher latency and uses more CPU than "native" MidiPipe tools. So try to minimize the MIDI traffic through the "AppleScript Trigger" tool. For starting/stopping loops this setup should work fine.

Sonrat
Posts: 2
Joined: 11 May 2004, 07:19

I wish I knew about MidiPipe earlier.

Post by Sonrat » 11 May 2004, 07:33

Nicowald thank you for writing such a great app, I wish I would have found it earlier it would have made things a little easier. I was trying to use MidiPipe to
convert Midi Note data to Controller Data, and found that is actually converting Midi Note 'Velocity' data to Controller Data. I was wondering if it would be possible to have it only convert the 'note pitch data' to controller data. Here's why it would be useful. I'm sure everyone has noticed that you can use the filter frequency & filter resonance knobs to produce a overtone on any given sound or loop, To control the pitch of the overtone would open up some musical possibilities, so converting 'midi pitch data' to controller data should achieve this result.

Sonrat
Posts: 2
Joined: 11 May 2004, 07:19

Re: I wish I knew about MidiPipe earlier.

Post by Sonrat » 11 May 2004, 08:04

Sonrat wrote:Nicowald thank you for writing such a great app, I wish I would have found it earlier it would have made things a little easier. I was trying to use MidiPipe to
convert Midi Note data to Controller Data, and found that is actually converting Midi Note 'Velocity' data to Controller Data. I was wondering if it would be possible to have it only convert the 'note pitch data' to controller data. Here's why it would be useful. I'm sure everyone has noticed that you can use the filter frequency & filter resonance knobs to produce a overtone on any given sound or loop, To control the pitch of the overtone would open up some musical possibilities, so converting 'midi pitch data' to controller data should achieve this result.
I figured out. It was so easy. All I had to do was check the option box 'exchange data bytes' , and it works. Now I can control the filter frequency using strictly the pitch midi data. And it works great. Anyway thanks again Nicowald for an awesome app. I'm going to post tip on the Propellerhead Reason board because I'm sure they would find it incredibly useful.

crscheid
Site Supporter
Posts: 270
Joined: 29 Jul 2002, 11:24
Location: Northeast US
Contact:

Post by crscheid » 13 May 2004, 09:36

Nico,

I was about to reply with a bugfix request when I realized I was out of date with the latest revision and saw you picked it up. Again, kudo's for making such an awesome and useful app. This thing has solved all my MIDI challenges to-date!! Keep up the great work!

Chris

Aleatoric
Posts: 122
Joined: 09 Jan 2004, 17:57
Location: NYC

Post by Aleatoric » 14 May 2004, 11:36

Anyone know how to filter MIDI velocity messages. For example how do I filter out ALL midi notes with a velocity of 16 or below. I assume MIDI pipe can do this but how? thanks.

Rogue
Site Supporter
Posts: 465
Joined: 28 Dec 2002, 08:34

Post by Rogue » 15 May 2004, 10:35

and in relation to the previous question how do you modify the note on message based on velocity e.a if the note is C2 and the velocity is above 105 then transpose C2 to C3?
Toontrack Crew Member

nicowald
Posts: 82
Joined: 21 Apr 2003, 12:35
Twitter: nicowald
Location: Nordstemmen, Germany
Contact:

Post by nicowald » 15 May 2004, 11:38

Aleatoric: MidiPipe can do it with the help of AppleScript. Please use the "AppleScript Trigger" tool, uncheck the "pass through" option and paste the following script:

-- script starts here
property channel : 1
property minvelocity : 17
on runme(message)
if (item 1 of message = (143 + channel)) then
if (item 3 of message > 0) then
-- note on
if (item 3 of message >= minvelocity) then
return message
end if
else
-- note off
return message
end if
else
-- message on different channel
return message
end if
end runme
-- script ends here

This script puts every message it gets back into the pipe, except it is a Note On message on the selected channel with a velocity below minvelocity.
A little hint: Use ScriptEditor for creating/debugging scripts for MidiPipe and then paste them into the AppleScript Trigger tool.

Regards, Nico
MidiPipe - route, map, filter, convert, display, and input MIDI messages in real-time
http://www.subtlesoft.square7.net

Aleatoric
Posts: 122
Joined: 09 Jan 2004, 17:57
Location: NYC

Post by Aleatoric » 15 May 2004, 12:07

I created a MIDI IN and Virtual MIDI Out with Apple Script Trigger inbetween along with the script you wrote for me (thanks!). However now there is no MIDI being sent at all! I select the MIDI Virtual Output with my soft synths and nothing plays.

I need to filter out the MIDI velocity notes of 16 that occur when a fret button is pushed on my Yamaha EZ-AG guitar but I need to keep the midi note messages with a velocity range of 17-127 that occur when a fret is held and a string is pushed. Follow? Thanks again, I really hope we can figure out a way for MIDI Pipe to do this. I got a 20$ donation for you if you can help me :)

thanks

Aleatoric
Posts: 122
Joined: 09 Jan 2004, 17:57
Location: NYC

Post by Aleatoric » 15 May 2004, 12:18

I think it worked for a minute but MIDI PIPE keeps crashing with this script.

Aleatoric
Posts: 122
Joined: 09 Jan 2004, 17:57
Location: NYC

Post by Aleatoric » 15 May 2004, 12:20

I think you need to make it so the MIDI off message is still sent with any velocity level.

Aleatoric
Posts: 122
Joined: 09 Jan 2004, 17:57
Location: NYC

Post by Aleatoric » 15 May 2004, 15:55

Nico, been testing the script some more, maily with FM7. I create a MIDI PIPE with MIDI IN hooked to my midi guitar tan AppleTRigger with your script and a virtual midi out (and yes I unchecked passed threw on the apple trigger script). The script seems to work for one note but than MIDI PIPE crashes! I hit the fret (no sound) than hit the string (above velocity 16) and it works, but than crashes. What is up? I really want to get this working as the MIDI guitars realistic fret noise recreation sucks for synthy/leady/paddys sounds. thanks bunches.

nicowald
Posts: 82
Joined: 21 Apr 2003, 12:35
Twitter: nicowald
Location: Nordstemmen, Germany
Contact:

Post by nicowald » 15 May 2004, 23:36

Aleatoric: First of all, MidiPipe shouldn't crash and we have find out what is causing that (do you have crash report turned on in your system? if so please send me the log file). Please give me detailed information about OS version, MidiPipe version, CPU type and speed, RAM size. Also try the following: Use the "Keyboard" tool in MidiPipe as input and test the functionality of the script by looking at the output of "AppleScript Trigger" with the "AList" tool (thats how I tested the script and it worked fine for me). If that works as expected check out what your MIDI guitar is sending ("Midi In" tool and "AList" tool) and let me know what it sends. Then use your guitar, the "AppleScript Trigger" tool, and "AList" tool. Let me know what shows up in "AList".

Regards, Nico
MidiPipe - route, map, filter, convert, display, and input MIDI messages in real-time
http://www.subtlesoft.square7.net

Aleatoric
Posts: 122
Joined: 09 Jan 2004, 17:57
Location: NYC

Post by Aleatoric » 16 May 2004, 09:28

Date/Time: 2004-05-16 12:25:41 -0400
OS Version: 10.3.3 (Build 7F44)
Report Version: 2

Command: MidiPipe
Path: /Applications/MidiPipe 0.9.1/MidiPipe.app/Contents/MacOS/MidiPipe
Version: 0.9.1 (0.9.1)
PID: 570
Thread: 0

Exception: EXC_BAD_ACCESS (0x0001)
Codes: KERN_INVALID_ADDRESS (0x0001) at 0x8211e808

Thread 0 Crashed:
0 <<00000000>> 0x90831204 0 + 0x90831204
1 <<00000000>> 0x92df5324 0 + 0x92df5324
2 <<00000000>> 0x92dfd73c 0 + 0x92dfd73c
3 <<00000000>> 0x92eb9b80 0 + 0x92eb9b80
4 com.SubtleSoft.MidiPipe 0x00007fd0 _start + 0x188 (crt.c:267)
5 dyld 0x8fe1a58c _dyld_start + 0x64

Thread 1:
0 libSystem.B.dylib 0x900075c8 mach_msg_trap + 0x8
1 libSystem.B.dylib 0x90007118 mach_msg + 0x38
2 com.unsanity.ape 0xc000a954 __ape_internal + 0x90b8
3 com.unsanity.ape 0xc0001328 __ape_agent + 0x40
4 libSystem.B.dylib 0x900247e8 _pthread_body + 0x28

Thread 2:
0 libSystem.B.dylib 0x900075c8 mach_msg_trap + 0x8
1 libSystem.B.dylib 0x90007118 mach_msg + 0x38
2 ...lagutin.audio_hijack.server 0x000da770 ah_serv_loop + 0x58
3 libSystem.B.dylib 0x900247e8 _pthread_body + 0x28

Thread 3:
0 libSystem.B.dylib 0x900075c8 mach_msg_trap + 0x8
1 libSystem.B.dylib 0x90007118 mach_msg + 0x38
2 com.apple.audio.midi.CoreMIDI 0x81ebdc9c _ZN15XServerMachPort14ReceiveMessageERiPvS0_ + 0x54
3 com.apple.audio.midi.CoreMIDI 0x81eb0d58 _ZN16MIDIInPortThread3RunEv + 0x13c
4 com.apple.audio.midi.CoreMIDI 0x81eb4e50 _ZN7XThread9RunHelperEPv + 0x3c
5 libSystem.B.dylib 0x900247e8 _pthread_body + 0x28

Thread 4:
0 libSystem.B.dylib 0x900075c8 mach_msg_trap + 0x8
1 libSystem.B.dylib 0x90007118 mach_msg + 0x38
2 com.apple.CoreFoundation 0x90191790 __CFRunLoopRun + 0x350
3 com.apple.CoreFoundation 0x90195f1c CFRunLoopRunSpecific + 0x148
4 <<00000000>> 0x909fd008 0 + 0x909fd008
5 <<00000000>> 0x90a15c0c 0 + 0x90a15c0c
6 <<00000000>> 0x90a67bb4 0 + 0x90a67bb4
7 <<00000000>> 0x90a3a2c4 0 + 0x90a3a2c4
8 libSystem.B.dylib 0x900247e8 _pthread_body + 0x28

Thread 5:
0 libSystem.B.dylib 0x9000b30c select + 0xc
1 <<00000000>> 0x909f2814 0 + 0x909f2814
2 libSystem.B.dylib 0x900247e8 _pthread_body + 0x28

Thread 6:
0 libSystem.B.dylib 0x900075c8 mach_msg_trap + 0x8
1 libSystem.B.dylib 0x90007118 mach_msg + 0x38
2 com.apple.CoreFoundation 0x90191790 __CFRunLoopRun + 0x350
3 com.apple.CoreFoundation 0x90195f1c CFRunLoopRunSpecific + 0x148
4 <<00000000>> 0x909fd008 0 + 0x909fd008
5 <<00000000>> 0x90a15c0c 0 + 0x90a15c0c
6 <<00000000>> 0x90a680f4 0 + 0x90a680f4
7 <<00000000>> 0x90a3a2c4 0 + 0x90a3a2c4
8 libSystem.B.dylib 0x900247e8 _pthread_body + 0x28

Thread 7:
0 <<00000000>> 0xffff82d0 __pthread_getspecific + 0x10
1 <<00000000>> 0x909f15f8 0 + 0x909f15f8
2 <<00000000>> 0x909f3760 0 + 0x909f3760
3 com.SubtleSoft.MidiPipe 0x0001e048 -[AppleScriptTrigger runScriptThread:] + 0x54
4 <<00000000>> 0x90a3a2c4 0 + 0x90a3a2c4
5 libSystem.B.dylib 0x900247e8 _pthread_body + 0x28

PPC Thread State:
srr0: 0x90831204 srr1: 0x0200f030 vrsave: 0x00000000
cr: 0x44000222 xer: 0x00000000 lr: 0x92e032fc ctr: 0x908311e0
r0: 0x92e032fc r1: 0xbffff220 r2: 0x00191378 r3: 0x01a5cb00
r4: 0x908836d0 r5: 0x01abf3f0 r6: 0x92e30b34 r7: 0x92e30b34
r8: 0x92e30b34 r9: 0x0209b408 r10: 0x92e2eec4 r11: 0xc10dfc00
r12: 0x80083400 r13: 0x00000000 r14: 0x00000000 r15: 0x00000000
r16: 0x00000000 r17: 0x00000000 r18: 0x00000000 r19: 0x00000000
r20: 0x00000000 r21: 0x00000000 r22: 0x00000000 r23: 0x00000000
r24: 0x00000000 r25: 0x01abf3f0 r26: 0x0010ce20 r27: 0x00000000
r28: 0xa2df1b7c r29: 0x00000008 r30: 0x0016c9e0 r31: 0x92e01b7c

Binary Images Description:
0x1000 - 0x25fff com.SubtleSoft.MidiPipe 0.9.1 /Applications/MidiPipe 0.9.1/MidiPipe.app/Contents/MacOS/MidiPipe
0xd7000 - 0xdcfff alex_lagutin.audio_hijack.server 1.2 /Library/Application Enhancers/Audio Hijack Server.ape/Contents/MacOS/Audio Hijack Server
0x2fd000 - 0x2fdfff com.apple.applescript.component 1.9.3 /System/Library/Components/AppleScript.component/Contents/MacOS/AppleScript
0x3c2000 - 0x3c3fff ??? Menu Extra Enabler version 0.0.1d1 (0.0.1d1) /Users/mark/Library/InputManagers/Menu Extra Enabler/Menu Extra Enabler.bundle/Contents/MacOS/Menu Extra Enabler
0x3c7000 - 0x3c7fff com.aladdinsys.mmenabler 7.1.0 (8.0) /Library/InputManagers/MagicMenuEnabler/MagicMenuEnabler.bundle/Contents/MacOS/MagicMenuEnabler
0x8b8000 - 0x8b8fff com.apple.osax.digihub 1.0 /System/Library/ScriptingAdditions/Digital Hub Scripting.osax/Contents/MacOS/Digital Hub Scripting
0xf46000 - 0xf48fff ??? /Library/ScriptingAdditions/QXPScriptingAdditions.osax/Contents/MacOS/QXPScriptingAdditions
0x1c89000 - 0x1cbafff com.apple.osax.standardadditions 1.9.3 (???) /System/Library/ScriptingAdditions/StandardAdditions.osax/Contents/MacOS/StandardAdditions
0x1cc7000 - 0x1cebfff com.24u.appearanceosax 2.1 /Users/mark/Library/ScriptingAdditions/24U Appearance OSAX.osax/Contents/MacOS/24U Appearance OSAX
0x81eb0000 - 0x81eeefff com.apple.audio.midi.CoreMIDI 1.4 (29) /System/Library/Frameworks/CoreMIDI.framework/Versions/A/CoreMIDI
0x836c0000 - 0x836dbfff com.apple.AppleShareClient 1.3.1 /System/Library/Frameworks/AppleShareClient.framework/Versions/A/AppleShareClient
0x87b20000 - 0x87b5bfff com.apple.AppleShareClientCore 1.3.1 (1.3.2) /System/Library/Frameworks/AppleShareClientCore.framework/Versions/A/AppleShareClientCore
0x8e4a0000 - 0x8e545fff com.apple.applescript 1.9.3 /System/Library/PrivateFrameworks/AppleScript.framework/Versions/A/AppleScript
0x8fe00000 - 0x8fe4ffff dyld /usr/lib/dyld
0x90000000 - 0x90122fff libSystem.B.dylib /usr/lib/libSystem.B.dylib
0x90190000 - 0x9023dfff com.apple.CoreFoundation 6.3.4 (299.31) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x90280000 - 0x904f9fff com.apple.CoreServices.CarbonCore 10.3.3 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
0x90570000 - 0x905defff com.apple.framework.IOKit 1.3.2 (???) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
0x90610000 - 0x90699fff com.apple.CoreServices.OSServices 3.0 (3.0.0) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
0x90700000 - 0x90700fff com.apple.CoreServices 10.3 (???) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
0x90720000 - 0x90787fff com.apple.audio.CoreAudio 2.1.2 /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
0xc0000000 - 0xc000efff com.unsanity.ape 1.4.1 /Library/Frameworks/ApplicationEnhancer.framework/Versions/A/ApplicationEnhancer

Post Reply