Posts: 1,000
Threads: 253
Joined: Feb 2008
Ginataras,
I would like to build a program interface that controls a FX processor using SysEx MIDI messages.
MIDI-OX (midiox.com) provides an editor that allows a user to send and receive SysEx messages. There are command line parameters in MIDI-OX that QM could use, I guess. I was wondering if the MIDI trigger functions could be modified to handle these SysEx messages, or perhaps help using the MIDI-OX COM interface? The QM program must be able to receive SysEx messages as well because the FX processor reports information about the data structure that is necessary to properly write the SysEx message that will be sent back to change parameters on the FX processor.
It will also be necessary for the QM program to receive continuous control (CC) MIDI message data because I'll be building an external MIDI controller that will send continuous control MIDI messages to control the whole QM program from the external control interface.
Thanks,
jimmy Vig
Posts: 12,141
Threads: 143
Joined: Dec 2002
I think all it is possible in QM. For example, midiOutLongMsg sends system exclusive messages. Look in MSDN. Maybe also possible with DirectMusic.
Posts: 1,000
Threads: 253
Joined: Feb 2008
Thank you Gintaras,
If it is at all possible, could you work up a simple example?
Also, just to provide extra information the effects unit I am controlling is the Lexicon MPX 1.
Here are the MIDI Implementation Details: http://www.lexiconpro.com/product_downl ... l_Rev1.pdf
If you have time or are just curious to look at that, maybe you could provide some insight on writing functions that will communicate between QM and the Lexicon MPX 1.
Thanks again,
Jimmy Vig
Posts: 12,141
Threads: 143
Joined: Dec 2002
Cannot give an example. Maybe it would be simple, but I would have to learn much, and find and install MIDI software for testing.
Receiving:
At first create something similar to QM MIDI triggers, but simpler, so that you would understand how everything works. Then extend to receive sysex messages. It is documented in MSDN.
Sending:
Sending sysex messages should be easier. Open MIDI out and call midiOutLongMsg.
Posts: 1,000
Threads: 253
Joined: Feb 2008
Is this along the right lines?:
MIDIHDR SysEx.lpData="F0 06 09 00 06 03 00 02 00 00 00 00 00 00 00 01 00 00 00 F7"
midiOutLongMsg(deviceid &SysEx sizeof(SysEx))
How do I get the device id?
Posts: 1,000
Threads: 253
Joined: Feb 2008
Gintaras,
I found this http://web.tiscalinet.it/giordy/midi-tech/lowmidi.htm:
HMIDIOUT handle;
MIDIHDR midiHdr;
UINT err;
char sysEx[] = {0xF0, 0x7F, 0x7F, 0x04, 0x01, 0x7F, 0x7F, 0xF7};
/* Open default MIDI Out device */
if (!midiOutOpen(&handle, 0, 0, 0, CALLBACK_NULL))
{
/* Store pointer in MIDIHDR */
midiHdr.lpData = (LPBYTE)&sysEx[0];
/* Store its size in the MIDIHDR */
midiHdr.dwBufferLength = sizeof(sysEx);
/* Flags must be set to 0 */
midiHdr.dwFlags = 0;
/* Prepare the buffer and MIDIHDR */
err = midiOutPrepareHeader(handle, &midiHdr, sizeof(MIDIHDR));
if (!err)
{
/* Output the SysEx message */
err = midiOutLongMsg(handle, &midiHdr, sizeof(MIDIHDR));
if (err)
{
char errMsg[120];
midiOutGetErrorText(err, &errMsg[0], 120);
printf("Error: %s\r\n", &errMsg[0]);
}
/* Unprepare the buffer and MIDIHDR */
while (MIDIERR_STILLPLAYING == midiOutUnprepareHeader(handle, &midiHdr, sizeof(MIDIHDR)))
{
/* Should put a delay in here rather than a busy-wait */
}
}
/* Close the MIDI device */
midiOutClose(handle);
Could you put it into QM and then I'll test.
Thanks,
jimmy Vig
Posts: 1,000
Threads: 253
Joined: Feb 2008
By the way...this works for sending short midi messages:
int hMidiOut
midiOutOpen &hMidiOut 1 0 0 0
midiOutShortMsg hMidiOut 616627
midiOutClose hMidiOut
That was pretty simple to get working
Posts: 12,141
Threads: 143
Joined: Dec 2002
Macro Macro1282
int handle;
MIDIHDR midiHdr;
int e;
str sysEx.decrypt(8 "F0 06 09 00 06 03 00 02 00 00 00 00 00 00 00 01 00 00 00 F7") ;;this is easiest way to fill str with binary data
;outb sysEx sysEx.len
;
;/* Open default MIDI Out device */
if !midiOutOpen(&handle, 0, 0, 0, CALLBACK_NULL)
;{
;;;;;/* Store pointer in MIDIHDR */
,midiHdr.lpData=sysEx
;
;;;;;/* Store its size in the MIDIHDR */
,midiHdr.dwBufferLength=sysEx.len
;
;;;;;/* Flags must be set to 0 */
;;;;;midiHdr.dwFlags = 0;
;
;;;;;/* Prepare the buffer and MIDIHDR */
,e = midiOutPrepareHeader(handle, &midiHdr, sizeof(MIDIHDR));
,if !e
;;;;;{
,,;/* Output the SysEx message */
,,e = midiOutLongMsg(handle, &midiHdr, sizeof(MIDIHDR));
,,if e
;;;;;;;;;{
,,,str errMsg.all(120);
;
,,,midiOutGetErrorText(e, errMsg, 120);
,,,out "Error: %s", errMsg
;;;;;;;;;}
;
;;;;;;;;;/* Unprepare the buffer and MIDIHDR */
,,rep
,,,if(MIDIERR_STILLPLAYING != midiOutUnprepareHeader(handle, &midiHdr, sizeof(MIDIHDR))) break
;;;;;;;;;{
;;;;;;;;;;;;;/* Should put a delay in here rather than a busy-wait */
,,,1
;;;;;;;;;}
;;;;;}
;
;;;;;/* Close the MIDI device */
,midiOutClose(handle);
Posts: 1,000
Threads: 253
Joined: Feb 2008
Does not work. QM doesn't seem to be running most of the code.
Played around:
Function MIDI_SysEx
function str'SysEx;;Sends MIDI SysEx command over Windows default MIDI device.
int handle e
MIDIHDR midiHdr
SysEx.decrypt(8 SysEx)
if !midiOutOpen(&handle 0 0 0 CALLBACK_NULL)
,midiHdr.lpData=SysEx
,midiHdr.dwBufferLength=SysEx.len
,e = midiOutPrepareHeader(handle &midiHdr sizeof(MIDIHDR))
,if !e
,,e = midiOutLongMsg(handle &midiHdr sizeof(MIDIHDR))
,if e
,,,str errMsg.all(120)
,,,midiOutGetErrorText(e errMsg 120)
,,,out "Error: %s" errMsg
,,rep
,,,if(MIDIERR_STILLPLAYING != midiOutUnprepareHeader(handle &midiHdr sizeof(MIDIHDR))) break
,,,1
,midiOutClose(handle)
,ret 1
That ERRORS: The specified device handle is invalid. (NOTE: EXAMPLE above fixed. Now works!!!)
Posts: 12,141
Threads: 143
Joined: Dec 2002
My code runs without errors on my PC.
If on your PC midiOutOpen returns a nonzero value, call midiOutGetErrorText with that value to see what is wrong.
Posts: 1,000
Threads: 253
Joined: Feb 2008
Sorry, I had my system configured strange.
It works.
Thanks! No to just learn the Lexicon MIDI implementation!
Posts: 1,000
Threads: 253
Joined: Feb 2008
Unless I have a "learn" function on the program I won't need to receive SysEx message. I think a learn would be really complicated program.
I have a problem on my second parameter I'm programming.
The values on the processor are (Off) (-89db) - (+6db)
The following is the SysEx output from the machine I recorded using Midi-OX=
F0 06 09 00 01 01 00 00 00 06 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 07 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 08 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 09 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0A 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0B 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0C 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0D 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0E 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0F 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 00 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 01 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 02 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 03 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 04 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 05 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 06 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 07 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 08 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 09 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0A 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0B 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0C 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0D 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0E 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0F 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 00 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 01 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 02 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 03 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 04 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 05 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 06 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 07 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 08 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 09 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0A 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0B 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0C 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0D 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0E 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0F 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 00 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 01 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 02 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 03 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 04 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 05 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 06 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 07 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 08 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 09 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0A 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0B 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0C 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0D 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0E 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0F 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 00 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 01 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 02 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 03 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 04 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 05 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 06 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 07 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 08 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 09 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0A 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0B 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0C 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0D 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0E 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0F 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 00 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 01 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 02 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 03 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 04 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 05 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 06 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 07 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 08 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 09 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0A 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0B 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0C 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0D 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0E 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 0F 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 00 00 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 01 00 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 02 00 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 03 00 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 04 00 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 05 00 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
F0 06 09 00 01 01 00 00 00 06 00 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
The value for the parameter change is formatted here =
F0 06 09 00 01 01 00 00 00 0%s 0%s 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
The Hex is backwards in strings. So the first value 0xA6 and would be inserted like:
F0 06 09 00 01 01 00 00 00 06 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7
From here I need to convert the 0-127 Midi value over to the value that is to be inserted into the hex.
I could code this line by line with the corresponding midi values...
I have a lot more of these to go and they might be super complicated at times or, like the first one I did, super easy. None the less, I need a good system to take care of this process for me.
Thanks for your help,
Jimmy Vig
Posts: 1,000
Threads: 253
Joined: Feb 2008
I was totally looking at it wrong. This will work great!!
Function Function88
str s="F0 06 09 00 01 01 00 00 00 06 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 07 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 08 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 09 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0A 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0B 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0C 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0D 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0E 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0F 0A 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 00 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 01 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 02 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 03 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 04 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 05 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 06 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 07 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 08 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 09 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0A 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0B 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0C 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0D 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0E 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0F 0B 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 00 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 01 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 02 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 03 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 04 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 05 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 06 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 07 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 08 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 09 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0A 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0B 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0C 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0D 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0E 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0F 0C 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 00 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 01 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 02 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 03 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 04 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 05 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 06 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 07 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 08 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 09 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0A 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0B 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0C 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0D 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0E 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0F 0D 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 00 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 01 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 02 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 03 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 04 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 05 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 06 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 07 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 08 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 09 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0A 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0B 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0C 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0D 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0E 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0F 0E 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 00 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 01 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 02 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 03 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 04 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 05 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 06 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 07 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 08 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 09 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0A 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0B 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0C 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0D 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0E 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 0F 0F 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 00 00 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 01 00 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 02 00 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 03 00 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 04 00 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 05 00 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7 F0 06 09 00 01 01 00 00 00 06 00 04 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 F7"
s.findreplace("F7" "F7[]")
ARRAY(str) a=s
out a
int i=numlines(s)
i=i-1
CURRENCY MidiCCval=127
;
MidiCCval=(MidiCCval/127)
str SysEx1 SysEx2
int SysExVal=i*MidiCCval
MIDI_SysEx a[SysExVal]
|