Welcome to the Haiku shell. ~/src/build-portmidi-Unbenannt-Release/pm_test> ls cmake_install.cmake fast latency midiclock midithru multivirtual qtest sendvirtual testio CMakeFiles fastrcv lib midithread mm pmlist recvvirtual sysex virttest ~/src/build-portmidi-Unbenannt-Release/pm_test> qtest msg_len = 4 test 1 test 2 test 3 test 4 msg_len = 9 test 1 test 2 test 3 test 4 msg_len = 14 test 1 test 2 test 3 test 4 msg_len = 19 test 1 test 2 test 3 test 4 msg_len = 24 test 1 test 2 test 3 test 4 msg_len = 29 test 1 test 2 test 3 test 4 msg_len = 34 test 1 test 2 test 3 test 4 msg_len = 39 test 1 test 2 test 3 test 4 msg_len = 44 test 1 test 2 test 3 test 4 msg_len = 49 test 1 test 2 test 3 test 4 msg_len = 54 test 1 test 2 test 3 test 4 msg_len = 59 test 1 test 2 test 3 test 4 msg_len = 64 test 1 test 2 test 3 test 4 msg_len = 69 test 1 test 2 test 3 test 4 msg_len = 74 test 1 test 2 test 3 test 4 msg_len = 79 test 1 test 2 test 3 test 4 msg_len = 84 test 1 test 2 test 3 test 4 msg_len = 89 test 1 test 2 test 3 test 4 msg_len = 94 test 1 test 2 test 3 test 4 msg_len = 99 test 1 test 2 test 3 test 4 ~/src/build-portmidi-Unbenannt-Release/pm_test> testio Usage: test [-h] [-l latency-in-ms] [-v] -h for this help message (only) -l for latency -v for verbose (enables more output) Apparently this is a 64-bit machine. Latency in ms: 0 begin portMidi test... enter your choice... 1: test input 2: test input (fail w/assert) 3: test input (fail w/NULL assign) 4: test output 5: test both 6: stream test (for WinMM) 7. isochronous out 1 2: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (default input) Type input number: 2 Midi Input opened. Reading 10 Midi messages... Got message 0 @ time 47295: timestamp 344587, 80 28 40 Got message 1 @ time 48110: timestamp 345402, 80 28 40 Got message 2 @ time 62869: timestamp 360161, 80 28 40 Got message 3 @ time 72573: timestamp 369865, 80 28 40 Got message 4 @ time 81216: timestamp 378508, 90 2d 40 Got message 5 @ time 81317: timestamp 378609, 80 2d 40 Got message 6 @ time 83459: timestamp 380749, 90 32 40 Got message 7 @ time 83533: timestamp 380825, 80 32 40 Got message 8 @ time 85238: timestamp 382530, 90 58 40 Got message 9 @ time 85335: timestamp 382627, 80 58 40 ready to close...done closing...finished portMidi test...type ENTER to quit... ~/src/build-portmidi-Unbenannt-Release/pm_test> cd ../../build-portmidi-Unbenannt-Debug/pm_test/ ~/src/build-portmidi-Unbenannt-Debug/pm_test> testio Usage: test [-h] [-l latency-in-ms] [-v] -h for this help message (only) -l for latency -v for verbose (enables more output) Apparently this is a 64-bit machine. Latency in ms: 0 begin portMidi test... enter your choice... 1: test input 2: test input (fail w/assert) 3: test input (fail w/NULL assign) 4: test output 5: test both 6: stream test (for WinMM) 7. isochronous out 2 2: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (default input) Type input number: 2 Midi Input opened. Reading 10 Midi messages... Got message 0 @ time 2052: timestamp 699917, 80 40 40 Got message 1 @ time 3575: timestamp 701440, 90 3e 40 Got message 2 @ time 3635: timestamp 701500, 80 3e 40 Got message 3 @ time 5160: timestamp 703025, 90 5f 40 Got message 4 @ time 5210: timestamp 703073, 80 5f 40 Got message 5 @ time 7247: timestamp 705112, 90 58 40 testio: /boot/home/src/portmidi/pm_test/testio.c:31:doSomethingStupid: 0 Kill Thread ~/src/build-portmidi-Unbenannt-Debug/pm_test> testio Usage: test [-h] [-l latency-in-ms] [-v] -h for this help message (only) -l for latency -v for verbose (enables more output) Apparently this is a 64-bit machine. Latency in ms: 0 begin portMidi test... enter your choice... 1: test input 2: test input (fail w/assert) 3: test input (fail w/NULL assign) 4: test output 5: test both 6: stream test (for WinMM) 7. isochronous out 3 2: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (default input) Type input number: 2 Midi Input opened. Reading 10 Midi messages... Got message 0 @ time 1834: timestamp 747946, 80 31 40 Got message 1 @ time 2935: timestamp 749048, 90 39 40 Got message 2 @ time 2991: timestamp 749104, 80 39 40 Got message 3 @ time 4442: timestamp 750555, 90 59 40 Got message 4 @ time 4527: timestamp 750641, 80 59 40 Got message 5 @ time 6303: timestamp 752417, 90 3e 40 Kill Thread ~/src/build-portmidi-Unbenannt-Debug/pm_test> testio Usage: test [-h] [-l latency-in-ms] [-v] -h for this help message (only) -l for latency -v for verbose (enables more output) Apparently this is a 64-bit machine. Latency in ms: 0 begin portMidi test... enter your choice... 1: test input 2: test input (fail w/assert) 3: test input (fail w/NULL assign) 4: test output 5: test both 6: stream test (for WinMM) 7. isochronous out 4 0: Haiku MIDI kit, Soft Synth (default output) 1: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (output) Type output number: 0 Suggested buffer duration 10000, size 3528 Midi Output opened with 0 ms latency. ready to send program 1 change... (type ENTER): ready to note-on... (type ENTER): ready to note-off... (type ENTER): ready to note-on (short form)... (type ENTER): ready to note-off (short form)... (type ENTER): chord should not arpeggiate, latency == 0 ready to chord-on/chord-off... (type ENTER): starting timestamp 11645 ready to close and terminate... (type ENTER): done closing and terminating... finished portMidi test...type ENTER to quit... ~/src/build-portmidi-Unbenannt-Debug/pm_test> testio Usage: test [-h] [-l latency-in-ms] [-v] -h for this help message (only) -l for latency -v for verbose (enables more output) Apparently this is a 64-bit machine. Latency in ms: 0 begin portMidi test... enter your choice... 1: test input 2: test input (fail w/assert) 3: test input (fail w/NULL assign) 4: test output 5: test both 6: stream test (for WinMM) 7. isochronous out 5 0: Haiku MIDI kit, Soft Synth (default output) 1: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (output) 2: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (default input) Type input number: 2 Type output number: 0 Suggested buffer duration 10000, size 3528 Midi Output opened with 0 ms latency. Midi Input opened. Reading 11 Midi messages... Got message 0 @ time 2867: timestamp 851063, 80 3e 40 Got message 1 @ time 3861: timestamp 852057, 80 37 40 Got message 2 @ time 4800: timestamp 852996, 90 39 40 Got message 3 @ time 4863: timestamp 853059, 80 39 40 Got message 4 @ time 6603: timestamp 854799, 90 5b 40 Got message 5 @ time 6677: timestamp 854873, 80 5b 40 Got message 6 @ time 8246: timestamp 856442, 90 53 40 Got message 7 @ time 8334: timestamp 856531, 80 53 40 Got message 8 @ time 10002: timestamp 858198, 90 4c 40 Got message 9 @ time 10079: timestamp 858275, 80 4c 40 Got message 10 @ time 12105: timestamp 860301, 90 60 40 finished portMidi test...type ENTER to quit... ~/src/build-portmidi-Unbenannt-Debug/pm_test> testio Usage: test [-h] [-l latency-in-ms] [-v] -h for this help message (only) -l for latency -v for verbose (enables more output) Apparently this is a 64-bit machine. Latency in ms: 300 begin portMidi test... enter your choice... 1: test input 2: test input (fail w/assert) 3: test input (fail w/NULL assign) 4: test output 5: test both 6: stream test (for WinMM) 7. isochronous out 5 0: Haiku MIDI kit, Soft Synth (default output) 1: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (output) 2: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (default input) Type input number: 2 Type output number: 0 Suggested buffer duration 10000, size 3528 Midi Output opened with 300 ms latency. Midi Input opened. Reading 11 Midi messages... Got message 0 @ time 1318: timestamp 897804, 80 60 40 Got message 1 @ time 2582: timestamp 899068, 80 3b 40 Got message 2 @ time 5270: timestamp 901756, 90 5b 40 Got message 3 @ time 5345: timestamp 901832, 80 5b 40 Got message 4 @ time 6453: timestamp 902939, 80 5b 40 Got message 5 @ time 7068: timestamp 903554, 90 53 40 Got message 6 @ time 7138: timestamp 903624, 80 53 40 Got message 7 @ time 8371: timestamp 904857, 90 4a 40 Got message 8 @ time 8448: timestamp 904935, 80 4a 40 Got message 9 @ time 9858: timestamp 906345, 90 5b 40 Got message 10 @ time 9954: timestamp 906441, 80 5b 40 finished portMidi test...type ENTER to quit... ~/src/build-portmidi-Unbenannt-Debug/pm_test> testio Usage: test [-h] [-l latency-in-ms] [-v] -h for this help message (only) -l for latency -v for verbose (enables more output) Apparently this is a 64-bit machine. Latency in ms: 0 begin portMidi test... enter your choice... 1: test input 2: test input (fail w/assert) 3: test input (fail w/NULL assign) 4: test output 5: test both 6: stream test (for WinMM) 7. isochronous out 6 0: Haiku MIDI kit, Soft Synth (default output) 1: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (output) Type output number: 0 Suggested buffer duration 10000, size 3528 Midi Output opened with 500 ms latency. ready to send output... (type ENTER): ready to close and terminate... (type ENTER): done closing and terminating... finished portMidi test...type ENTER to quit... ~/src/build-portmidi-Unbenannt-Debug/pm_test> testio Usage: test [-h] [-l latency-in-ms] [-v] -h for this help message (only) -l for latency -v for verbose (enables more output) Apparently this is a 64-bit machine. Latency in ms: 300 begin portMidi test... enter your choice... 1: test input 2: test input (fail w/assert) 3: test input (fail w/NULL assign) 4: test output 5: test both 6: stream test (for WinMM) 7. isochronous out 7 0: Haiku MIDI kit, Soft Synth (default output) 1: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (output) Type output number: 0 Suggested buffer duration 10000, size 3528 Midi Output opened with 300 ms latency. ready to send program 1 change... (type ENTER): Starting in 1s...Done sending 80 notes at 4 notes per second. ready to close and terminate... (type ENTER): done closing and terminating... finished portMidi test...type ENTER to quit... ~/src/build-portmidi-Unbenannt-Debug/pm_test> latency Latency histogram. Choose timer period (in ms, >= 1): 1 Benchmark with: 1. No MIDI traffic 2. MIDI input 3. MIDI output 4. MIDI input and output ? 1 Latency measurements will start in 5 seconds. Type return to stop: Duration of test: 10.632 seconds Latency(ms) Number of occurrences 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 16 0 17 0 18 0 19 0 20 0 Number of points greater than 20ms: 213 Maximum latency: 55 milliseconds Note that due to rounding, actual latency can be 1ms higher than the numbers reported here. Type return to exit... ~/src/build-portmidi-Unbenannt-Debug/pm_test> latency Latency histogram. Choose timer period (in ms, >= 1): 1 Benchmark with: 1. No MIDI traffic 2. MIDI input 3. MIDI output 4. MIDI input and output ? 2 2: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (input) MIDI input device number: 2 Latency measurements will start in 5 seconds. Type return to stop: Duration of test: 11.905 seconds Latency(ms) Number of occurrences 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 16 0 17 0 18 0 19 0 20 0 Number of points greater than 20ms: 239 Maximum latency: 57 milliseconds Note that due to rounding, actual latency can be 1ms higher than the numbers reported here. Type return to exit... ~/src/build-portmidi-Unbenannt-Debug/pm_test> latency Latency histogram. Choose timer period (in ms, >= 1): 1 Benchmark with: 1. No MIDI traffic 2. MIDI input 3. MIDI output 4. MIDI input and output ? 3 0: Haiku MIDI kit, Soft Synth (output) 1: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (output) MIDI output device number: 0 Suggested buffer duration 10000, size 3528 MIDI out should be sent every __ callback iterations: 50 Latency measurements will start in 5 seconds. Type return to stop: Duration of test: 15.522 seconds Latency(ms) Number of occurrences 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 16 0 17 0 18 0 19 0 20 0 Number of points greater than 20ms: 311 Maximum latency: 55 milliseconds Note that due to rounding, actual latency can be 1ms higher than the numbers reported here. Type return to exit... ~/src/build-portmidi-Unbenannt-Debug/pm_test> latency Latency histogram. Choose timer period (in ms, >= 1): 1 Benchmark with: 1. No MIDI traffic 2. MIDI input 3. MIDI output 4. MIDI input and output ? 4 0: Haiku MIDI kit, Soft Synth (output) 1: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (output) 2: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (input) MIDI input device number: 2 MIDI output device number: 0 Suggested buffer duration 10000, size 3528 MIDI out should be sent every __ callback iterations: 50 Latency measurements will start in 5 seconds. Type return to stop: Duration of test: 12.045 seconds Latency(ms) Number of occurrences 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 16 0 17 0 18 0 19 0 20 0 Number of points greater than 20ms: 241 Maximum latency: 66 milliseconds Note that due to rounding, actual latency can be 1ms higher than the numbers reported here. Type return to exit... ~/src/build-portmidi-Unbenannt-Debug/pm_test> mm Item Reported Range Item Reported Range ------------- ----- ------------- ----- Channels 1 - 16 Programs 1 - 128 Controllers 0 - 127 After Touch 0 - 127 Loudness 0 - 127 Pitch Bend 0 - 16383, center = 8192 Pitches 0 - 127, 60 = c4 = middle C n toggles notes, now ON t displays noteon count since last t b toggles pitch bend, aftertouch, now ON c toggles continuous control, now ON h toggles program changes, now ON x toggles system exclusive, now ON k toggles clock and sense counting only, now ON r toggles other real time messages & SMPTE, now ON s displays clock and sense count since last k m toggles channel mode messages, now ON v toggles verbose text, now ON q quits MIDI input devices: 2: Haiku MIDI kit, MidiSynth 1.8 (Haiku) Type input device number: 2 Midi Monitor ready. 803540 NoteOff Chan 0 Key 53 f3 Vel 64 903940 NoteOn Chan 0 Key 57 a3 Vel 64 803940 NoteOff Chan 0 Key 57 a3 Vel 64 905840 NoteOn Chan 0 Key 88 e6 Vel 64 805840 NoteOff Chan 0 Key 88 e6 Vel 64 905640 NoteOn Chan 0 Key 86 d6 Vel 64 805640 NoteOff Chan 0 Key 86 d6 Vel 64 905840 NoteOn Chan 0 Key 88 e6 Vel 64 805840 NoteOff Chan 0 Key 88 e6 Vel 64 905640 NoteOn Chan 0 Key 86 d6 Vel 64 805640 NoteOff Chan 0 Key 86 d6 Vel 64 805640 NoteOff Chan 0 Key 86 d6 Vel 64 q ~/src/build-portmidi-Unbenannt-Debug/pm_test> midithread -i 2 -o 0 Usage: midithread [-i input] [-o output] where input and output are portmidi device numbers Input device number: 2 Output device number: 0 begin PortMidi multithread test... Opening output device Haiku MIDI kit Soft Synth Suggested buffer duration 10000, size 3528 Opening input device Haiku MIDI kit MidiSynth 1.8 (Haiku) Enter midi input; it will be transformed as specified by... Type 'q' to quit, 'm' to monitor next pitch, t to toggle thru or type a number to specify transposition. Must terminate with [ENTER] 5 Transposing by 5 q finished portMidi multithread test. type ENTER to quit: ~/src/build-portmidi-Unbenannt-Debug/pm_test> midiclock t toggles sending MIDI Time Code (MTC) c toggles sending MIDI CLOCK (initially on) m to set tempo (from 1bpm to 300bpm) q quits MIDI output devices: 0: Haiku MIDI kit, Soft Synth 1: Haiku MIDI kit, MidiSynth 1.8 (Haiku) Type output device number: 1 Type ENTER to start MIDI CLOCK: c Stopping MIDI CLOCKs t Starting MIDI Time Code q ~/src/build-portmidi-Unbenannt-Debug/pm_test> midithru -i 2 -o 0 Usage: midithru [-i input] [-o output] [-v] [-n] where input and output are portmidi device numbers if -v and input and/or output are not specified, then virtual ports are created and used instead. -n turns off the default MIDI delay effect. Input device number: 2 Output device number: 0 begin PortMidi midithru program... Opening output device Haiku MIDI kit Soft Synth Suggested buffer duration 10000, size 3528 Opening input device Haiku MIDI kit MidiSynth 1.8 (Haiku) This program will run for 60 seconds, or until you play B below middle C, All input is sent immediately, implementing software MIDI THRU. Also, all input is echoed with a 2 second delay. finished PortMidi midithru program. Type ENTER... ~/src/build-portmidi-Unbenannt-Debug/pm_test> recvvirtual Midi Input opened. Reading 10 Midi messages... ~/src/build-portmidi-Unbenannt-Debug/pm_test> sendvirtual PortMidi call failed... PortMidi: Cannot create virtual device: name is taken type ENTER... [midi] WARNING: Endpoint 40 (0x107ea1c97110) has not been Release()d properly (refcount = 1) ~/src/build-portmidi-Unbenannt-Debug/pm_test> sysex 0: Haiku MIDI kit, Soft Synth (output) 1: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (output) 2: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (input) 3: Haiku MIDI kit, portmidi (output) Type r to receive sysex, s to send, l for loopback test, m to send multiple, n to receive multiple, q to quit: l Connect a midi cable from an output port to an input port. This test will send random data via sysex message from output to input and check that the correct data was received. Type output device number: 1 Latency in milliseconds (0 to send data immediatedly, >0 to send timestamped messages): 0 Type input device number: 2 Sending 430 byte sysex msg via Pm_Write(s). Error at time 13895 byte 1: sent 1 recd f0. Type r to receive sysex, s to send, l for loopback test, m to send multiple, n to receive multiple, q to quit: q ~/src/build-portmidi-Unbenannt-Debug/pm_test> sysex 0: Haiku MIDI kit, Soft Synth (output) 1: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (output) 2: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (input) Type r to receive sysex, s to send, l for loopback test, m to send multiple, n to receive multiple, q to quit: 1 Type r to receive sysex, s to send, l for loopback test, m to send multiple, n to receive multiple, q to quit: l Connect a midi cable from an output port to an input port. This test will send random data via sysex message from output to input and check that the correct data was received. Type output device number: 1 Latency in milliseconds (0 to send data immediatedly, >0 to send timestamped messages): 100 Type input device number: 2 Sending 839 byte sysex msg via Pm_Write(s). Error at time 6812 byte 1: sent 1 recd f0. Type r to receive sysex, s to send, l for loopback test, m to send multiple, n to receive multiple, q to quit: q ~/src/build-portmidi-Unbenannt-Debug/pm_test> fast Apparently this is a 64-bit machine. Usage: fast [-h] [-l latency] [-r rate] [-d device] [-s dur] [-n] [-p] [-m] , where latency is in ms, rate is messages per second, device is the PortMidi device number, dur is the length of the test in seconds, -n means send timestamps in the past, -p means use a large positive time offset, -m means use a large negative time offset, and -h means help. Latency in ms: 0 Rate in messages per second: 10000 Duration in seconds: 10 0: Haiku MIDI kit, Soft Synth (default output) 1: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (output) 3: Create virtual port named "fast" (output) Output device number: 0 Suggested buffer duration 10000, size 3528 Midi Output opened with 0 ms latency. sending output... 6705 at 1000ms, polling count 6704 13679 at 2000ms, polling count 13678 18874 at 3000ms, polling count 18873 23501 at 4000ms, polling count 23500 29870 at 5001ms, polling count 29869 36274 at 6000ms, polling count 36273 42364 at 7001ms, polling count 42363 48248 at 8000ms, polling count 48247 53630 at 9000ms, polling count 53629 60523 at 10000ms, polling count 60522 ready to close and terminate... (type RETURN): done closing and terminating... ~/src/build-portmidi-Unbenannt-Debug/pm_test> fast Apparently this is a 64-bit machine. Usage: fast [-h] [-l latency] [-r rate] [-d device] [-s dur] [-n] [-p] [-m] , where latency is in ms, rate is messages per second, device is the PortMidi device number, dur is the length of the test in seconds, -n means send timestamps in the past, -p means use a large positive time offset, -m means use a large negative time offset, and -h means help. Latency in ms: 30 Rate in messages per second: 10000 Duration in seconds: 10 0: Haiku MIDI kit, Soft Synth (default output) 1: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (output) 3: Create virtual port named "fast" (output) Output device number: 0 Suggested buffer duration 10000, size 3528 Midi Output opened with 30 ms latency. sending output... 5760 at 1000ms, polling count 5759 11485 at 2000ms, polling count 11484 17736 at 3000ms, polling count 17735 24203 at 4000ms, polling count 24202 30762 at 5000ms, polling count 30761 37224 at 6000ms, polling count 37223 43930 at 7000ms, polling count 43929 49976 at 8000ms, polling count 49975 55495 at 9000ms, polling count 55494 61992 at 10000ms, polling count 61991 ready to close and terminate... (type RETURN): done closing and terminating... ~/src/build-portmidi-Unbenannt-Debug/pm_test> fast Apparently this is a 64-bit machine. Usage: fast [-h] [-l latency] [-r rate] [-d device] [-s dur] [-n] [-p] [-m] , where latency is in ms, rate is messages per second, device is the PortMidi device number, dur is the length of the test in seconds, -n means send timestamps in the past, -p means use a large positive time offset, -m means use a large negative time offset, and -h means help. Latency in ms: 0 Rate in messages per second: 10000 Duration in seconds: 10 0: Haiku MIDI kit, Soft Synth (default output) 1: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (output) 3: Create virtual port named "fast" (output) Output device number: 3 Midi Output opened with 0 ms latency. Pausing so you can connect a receiver to the newly created "fast" port. Type ENTER to proceed: sending output... 9366 at 1000ms, polling count 9365 18460 at 2000ms, polling count 18459 27561 at 3000ms, polling count 27560 36929 at 4000ms, polling count 36928 46144 at 5000ms, polling count 46143 55153 at 6000ms, polling count 55152 64448 at 7000ms, polling count 64447 73539 at 8000ms, polling count 73538 82840 at 9000ms, polling count 82839 91821 at 10000ms, polling count 91820 ready to close and terminate... (type RETURN): done closing and terminating... ~/src/build-portmidi-Unbenannt-Debug/pm_test> fast Apparently this is a 64-bit machine. Usage: fast [-h] [-l latency] [-r rate] [-d device] [-s dur] [-n] [-p] [-m] , where latency is in ms, rate is messages per second, device is the PortMidi device number, dur is the length of the test in seconds, -n means send timestamps in the past, -p means use a large positive time offset, -m means use a large negative time offset, and -h means help. Latency in ms: 0 Rate in messages per second: 10000 Duration in seconds: 10 0: Haiku MIDI kit, Soft Synth (default output) 1: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (output) 4: Create virtual port named "fast" (output) Output device number: c ~/src/build-portmidi-Unbenannt-Debug/pm_test> midithru -v -n Usage: midithru [-i input] [-o output] [-v] [-n] where input and output are portmidi device numbers if -v and input and/or output are not specified, then virtual ports are created and used instead. -n turns off the default MIDI delay effect. delay_effect is disabled begin PortMidi midithru program... Opening virtual output device "midithru" Opening virtual input device "midithru" This program will run for 60 seconds, or until you play B below middle C, All input is sent immediately, implementing software MIDI THRU. Also, all input is echoed with a 2 second delay. ~/src/build-portmidi-Unbenannt-Debug/pm_test> multivirtual Virtual Output "portmidi1" id 5 created and opened. Virtual Input "portmidi1" id 6 created and opened. Virtual Output "portmidi2" id 7 created and opened. Virtual Input "portmidi2" id 8 created and opened. Type ENTER to send messages: Note On pitch 60 Note Off pitch 60 Note On pitch 61 Note Off pitch 61 Note On pitch 62 Note Off pitch 62 Note On pitch 63 Note Off pitch 63 Note On pitch 64 Note Off pitch 64 Got 0 messages from portmidi1 and 0 from portmidi2; expected 11. ready to close...done closing. Now delete the virtual devices...done deleting. finished sendvirtual test...type ENTER to quit... ~/src/build-portmidi-Unbenannt-Debug/pm_test> multivirtual Virtual Output "portmidi1" id 3 created and opened. Virtual Input "portmidi1" id 4 created and opened. Virtual Output "portmidi2" id 5 created and opened. Virtual Input "portmidi2" id 6 created and opened. Type ENTER to send messages: ~/src/build-portmidi-Unbenannt-Debug/pm_test> testio Usage: test [-h] [-l latency-in-ms] [-v] -h for this help message (only) -l for latency -v for verbose (enables more output) Apparently this is a 64-bit machine. Latency in ms: 0 begin portMidi test... enter your choice... 1: test input 2: test input (fail w/assert) 3: test input (fail w/NULL assign) 4: test output 5: test both 6: stream test (for WinMM) 7. isochronous out 5 0: Haiku MIDI kit, Soft Synth (default output) 1: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (output) 2: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (default input) Type input number: ~/src/build-portmidi-Unbenannt-Debug/pm_test> pmlist 0: Haiku MIDI kit, Soft Synth (default output) 1: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (output) 2: Haiku MIDI kit, MidiSynth 1.8 (Haiku) (default input) 0: Haiku MIDI kit, Soft Synth (default output) q ~/src/build-portmidi-Unbenannt-Debug/pm_test>