Copyright: M. R. Le Voi Systems Consultants (1996)


VB SYSEX Decoder for Roland Sound Canvas and Yamaha XG Modules

Version 2.4

VBSYX decodes RAP-10, SC-55, SC-155 etc System Exclusive (SYSEX) messages as well as those for the SC-88 and M-GS64.

VBSYX also decodes Yamaha XG SYSEX messages for all XG sound cards/modules.

Contents

Installation Instructions

Copyright and Registration

Acknowledgements and Limitations

Bugs

The Buttons

The Options

Examples of Use

Sample SYX Files

It is recommended that you read all this help before starting to use the product. However, if you just want to use the program straight away, you MUST read the Limitations section first.


Installation Instructions
Installation Instructions:

(1)	Unzip this file and run the SETUP.EXE program.

(2)	The program will copy CMDIALOG.VBX, GRID.VBX, SPIN.VBX, THREED.VBX and MIDI1.VBX to your x:\WINDOWS\SYSTEM directory if you don`t already have a copy of these files.

Note: You may have older versions of these files. VBSYX will not work with them. If the program won`t load or does strange things during operation, use the VBXs that came with this software.

It might be possible to set the Working Directory for the Program Item to be the same as the directory where all files that came with this program are stored. This should work but it is not foolproof as Windows may have loaded the other VBXs for use by other Windows programs. Play safe: copy the files. Keep the old VBXs in case something else stops working.

(3)	Use PKUNZIP or whatever to unzip the SYX.ZIP file to a suitable directory eg C:\VBSYX\SYSEX. This file contains example SYSEX files for you to use.

(4)	Start the program.

If you don`t have a copy of VBRUN300.DLL (the Visual Basic 3 DLL runtime library) in your x:\WINDOWS\SYSTEM directory, the SETUP program won`t run. Get hold of a copy, download a copy or request one via email from the VBSYX Home Page.

Please report any bugs. If possible, send a MIME attachment of the file it can`t decode properly via email. This will make diagnostic work much easier. UUENCODED attachments will also be accepted. Please send any suggestions for improvement via email as well.


Copyright Notice
Copyright and Registration

This Software is Copyright © M. R. Le Voi Systems Consultants (1996,1997). Terms such as Roland, Sound Canvas, Yamaha, XG etc are copyright of their respective owners.

NB This software is Shareware. If you want to register, $24.95 is all it will cost you. American Dollars if you live overseas. Australian Dollars, if you live in Australia. Please refer to the forms that came with this software. All registered users receive all upgrades for free.

Use ORDER.FRM, ORDER.USA or ORDER.UK, whichever is more convenient. Read REGISTER.TXT for more information and for how to register via the Compuserve SWREG process.

Mail all suggestions, compliments, requests for information on registering etc to:

mlevoi@modemss.brisnet.org.au

or write to me at the address below if you do not have an email address:

Mike Le Voi

33 Pleasant Drive

ALBANY CREEK

QLD 4035

AUSTRALIA

February, 1996 to May, 1997

Latest version always available at: http://modemss.brisnet.org.au/~mlevoi


Acknowledgements and Limitations

I am indebted to Gary Agnew and Charl Engela of the Sound Canvas Users Group (SCUG) for their suggestions throughout this project. This program would not be as useful as it is without their comments. I am also indebted to Lee Jackson at Apogee for his invaluable suggestions and marketing experience.

For XG support, I am indebted to Mike D`Amore and Mike Overlin of Yamaha USA who provided the SW60XG and MU50 that enabled this software to be written. Thanks a lot!

As usual, the standard disclaimers apply. Anything you lose or have corrupted on your machine is your problem, not mine. Use this software at your own risk.

Known Limitations:

It is assumed that you have certain fonts installed on your system. If you have removed fonts from your Windows environment, this program may not load or may function incorrectly. Edit VBSYX.INI if this is a problem for you.

VBSYX finds Roland GS and Yamaha XG SYSEX messages in Cakewalk .WRK files and Power Tracks Pro .SEQ files. As these file formats do not have a documented interface, known patterns have to be searched for. Thus, SYSEX strings for Korg etc will be ignored.

Change History

In Version 1.1, code was added to decode SC-88 SYSEX data. This also applies to the M-GS64, which uses the same command set. Thanks are due to Roland Corporation, Australia and Dean Brewer of SCUG for providing the necessary documentation.

In Version 1.2, the interface was redesigned to add a toolbar.

In Version 1.3, support was added to decode SC-55 Bulk Patch Dumps, Global Bulk Dumps and Bulk Drum Dumps. SC-88 bulk dumps decode as well. However, certain SC-88 specific bytes may not be decoded. Everything else for a SC-55, SC-88 etc should decode perfectly.

In Version 1.4, support was added for RAP-10 SYSEX data. Also added was the option to omit the show/extract of default SYSEX messages. Finally, the option to allow backward scrolling in MID/WRK files was added by popular request as well as the ability to Go To a message by clicking in the Summary View.

In Version 1.5, two extra utility programs were bundled in: XG/GS MIDI Jukebox and GS/XG Midi Reset.

In Version 2.1, Yamaha XG support was added. Thanks are due to Yamaha USA for providing the necessary documentation. Also added was Version 2.1 of the XG/GS MIDI Jukebox (including the Random Patch Generator).

In Version 2.2, automatic GS to XG SYSEX conversion was added.

In Version 2.3, the Patch Librarian feature was added which allows you to receive SYSEX dumps as well as send them.

In Version 2.4, automatic GS Patch Dump conversion was added. Also, standard GS MID files can be automatically converted to XG format.

See Also: Bugs


Bugs

Some of these are serious. They are not caused by VBSYX.

(a)	Play MID files. Playing certain MID files has been known to lock Windows 3.11 completely. On some machines, this happens when the file contains lots of SYSEX data eg a complete dump generated by SCEDIT. Also, MID files containing SC-88 effects lock certain machines as well.

Cause: This appears to be a bug in Microsoft`s code. It has not been possible to reproduce this problem under Windows 95.

Solution: Don`t play the MID file in question

(b)	GPF in KRNL386.EXE under Windows 95 using File Open.

Cause: 3rd party product called Instant File Access in use.

Solution: Don`t use IFA.

See Also: Limitations


The Buttons
The Buttons:

Open	Same as File, Open... Shortcut: Ctrl-O

Save	Same as File, Save

Extract	Same as Edit, Extract SYSEX. Shortcut: Ctrl-C

Paste	Same as Edit, Paste SYSEX. Shortcut: Ctrl-V

Back	Same as Edit, Back. Shortcut: Ctrl-B

More	Same as Edit, More. Shortcut: Ctrl-M

Show All	Same as Summary, Show All. Shortcut: Ctrl-A

Mass Extract	Same as Summary, Mass Extract. Shortcut: Ctrl-T

Summary	Same as Summary, Show Summary. Shortcut: Ctrl-S

Play	Same as Midi, Play/Stop MID File. Shortcut: Ctrl-P

Change	Same as Edit, Change SYSEX Byte. Shortcut: Ctrl-E

Edit	Same as Edit, Edit SYSEX Bytes


Option Menus
The Options:

The options in this program should be self explanatory. However, here is some help if it`s not obvious what to do.

Contents

File

Edit

Summary

Dump

MIDI

Help

Don`t forget to read the Examples section for more hints and tips.

They are presented in sequence by using the arrows (>>) at the top of the screen.

See Also: Buttons


Option Menus
File

Open...	Shortcut: Ctrl-O

Opens .SYX, .MID, .WRK, .SEQ or .SYG files and finds SYSEX data in any of them. Clicking on the main form will perform this action if there is nothing better to do. Opening an EXE file will set that to be your preferred Midi Sequencer. See Midi, Midi Sequencer.

Save

Only enabled when the input file was a .SYX file. This allows ALL of a SYX file to be written to disk after any of it has been changed by the Change button.

Save As...

Writes the internal SYSEX buffer, created by repeated use of the Extract Button, to a nominated .SYX file.

Exit

Exits the program.

See Also: Examples of Use


Option Menus
Edit (1)

More	Shortcut: Ctrl-M

When not disabled, can be used to "scroll" forward through the SYSEX data in the file. Clicking on the main form will perform this action if there is nothing better to do.

Back	Shortcut: Ctrl-B

When not disabled, allows you to "scroll" backward through .SYX files, .MID, .WRK and .SEQ files.

You can also "scroll" backward and forward through a MID/WRK file`s SYSEX data as follows: Open a MID/WRK file, then do a Summary, Mass Extract. This will extract all SYSEX data to the buffer, rename the active file to VBSYSEXT.SYX and then you can browse backward and forward through it.

Change	Shortcut: Ctrl-E

When not disabled, allows you to change the latest parameter setting being displayed. Note: to change parameters that require more than one byte to be changed, use Edit, Edit SYSEX.

See Also: Examples of Use


Option Menus
Edit (2)

Extract SYSEX	Shortcut: Ctrl-C

Extract the SYSEX shown in the detail display to an internal buffer. Every time you hit Extract, another copy is taken. This allows you to "browse" through a MID/WRK file, extracting SYSEX messages as you go. The buffer is reset every time a new file is opened.

All messages are appended to the internal buffer. Select File, Save As when you want to write the SYSEX data out. You can confirm that an extract has been taken as the Extract button will be greyed out after each extract has been made.

Extract also copies the current SYSEX data to the Windows Clipboard. For example: you can go into Cakewalk, SYSX, Edit Bytes mode and Ctrl-V the message straight in. Then, you can send it to your sound module to see whether you want to keep it or change the bytes some more.

If Edit, Auto Send Extract? is checked, this item is not greyed out after each extract. This allows you to send a SYSEX message over and over again. However, the resulting cumulative extract may be less than useful to you.

Paste SYSEX	Shortcut: Ctrl-V

Pastes the current clipboard to the buffer. The buffer can then be "Save As"ed or sent to your sound module via MIDI, Send Latest Extract.

It is your responsibility to ensure that the contents of the clipboard are sensible. For example: using Ctrl-C under Cakewalk, SYSX, Edit Bytes works correctly.

See Also: Examples of Use


Option Menus
Edit (3)

Edit SYSEX Bytes

Allows you to edit SYSEX bytes AS IS. There is no error checking and no help. This option is for those who know what they are doing. However, if you get it wrong, the subsequent decode will tell you where your error is. Also, use this option for editing Patch Name and/or Display messages.

Edit SYSEX Message

This is an advanced version of Edit SYSEX Bytes above. This allows you to edit ALL SYSEX bytes  including Manufacturers ID, Device ID etc. There is no error checking and no help. See above for standard disclaimer. Open any .SYX message to get a template to copy. Checksums will be calculated for you if required.

Auto Send Extract?

This is a check item. If checked, VBSYX will send the latest SYSEX message which has been extracted to the Default Output MIDI Port. The default is checked. If this is off, you will have to use Midi, Send Latest Extract to send the SYSEX message to your sound module.

Convert GS to XG	Shortcut: Ctrl-G

This converts a GS SYSEX message to the equivalent XG message. Converted messages are placed on the Windows Clipboard for pasting into other programs or for pasting back into VBSYX via the Ctrl-V command.

Note that some parameters are GS specific and cannot be converted. Note also that a one-for-one conversion of, say, Reverb parameters may not produce exactly the same effect. GS Bulk Dumps are supported via option Convert GS Patch Dump to XG (see later).

Auto Convert GS to XG?

This is a check item. If checked, VBSYX will automatically convert all GS messages to XG format when the Summary, Mass Extract option (Ctrl-T) is selected.

Convert GS MID File to XG?

This option converts a GS MID file to XG format. Whilst this has been automated as much as possible, some post processing of the resultant MID file may be required. Some GS patch/bank combinations do not exist in the XG format, even when the XG instrument is in GS/TG300B mode. For example, SC-88 User Patches have no equivalent on XG modules.

One option is available. If the option Decode Complete Patch Dump is checked, this conversion routine will convert GS patch/bank selections to XG format. As stated before, this may result in a XG patch that does not exist. By default, this option converts all SYSEX except for GS patch/bank messages as XG modules respond correctly to GS patch/bank messages when in GS/TG300B mode.

Also, it is not possible to convert a GS MID file that contains only a complete Roland Bulk Dump. The Bulk Dump must first be converted to Patch Dump format (see later). The resultant MID file can be automatically converted.

See Also: Examples of Use


Option Menus
Summary (1)

Show Summary	Shortcut: Ctrl-S

Show the Summary Window. This is a display of all the SYSEX messages as they are decoded. The Go to button allows you to go direct to any SYSEX message that is shown in the Summary Window. Double clicking on or slightly to the right of the message number accomplishes the same affect.

The Save button allows you to save the results of the Summary Window to a pair of files. The file extensions are SYT/SYZ for .SYX files, MIT/MIZ for .MID files and WRT/WRZ for .WRK or .SEQ files. This allows you to Load the files in a later VBSYX session so that the summary information is immediately available to you. It is suggested that you do a Save immediately after loading a file and doing a Ctrl-A (see below).

Once the Load or Save button has been pressed, no more messages are written to the Summary Window until a new file is opened. If the Summary Window is preloaded automatically, the same applies. See Summary, Open Summary Info? below.

Hide Summary	Shortcut: Ctrl-H

Hide the summary window.

See also: Limitations


Option Menus
Summary (2)

Show All	Shortcut: Ctrl-A

Like hitting the More button without stopping. Does 1500 "More"s by default and then stops. Can be used until the end of the file has been reached. No more messages will be written to the Summary Window after this action has completed until a new file is opened.

Do a Ctrl-A again to terminate the operation. You may only want to show nnn messages. See Examples for some reasons why you would want to do this.

Two options are available. To speed up the process, you can elect to omit the decode of dot display messages. This option is chosen by selecting the check box in the counter dialog box. See Dump, Omit Default Messages? for the other option.

Mass Extract	Shortcut: Ctrl-T

Normally used immediately after loading a MID/WRK file. It reads the entire MID/WRK file and loads the SYSEX messages into a buffer. Finally it renames the active buffer to VBSYSEXT.SYX. It is up to you to SAVE or SAVE AS. Do a Ctrl-T again to terminate the extraction. See Examples for some reasons why you would want to extract less messages.

Two options are available. To speed up the process, you can elect to omit the extract of all display messages. This option is chosen by selecting the check box in the counter dialog box. See Dump, Omit Default Messages? for the other option.

See also: Limitations


Option Menus
Summary (3)

Copy Summary

This copies the text in the Summary Window to the clipboard. Don`t try to do an Edit, Paste immediately after doing this. The clipboard doesn`t contain SYSEX data anymore.

Print Summary

This prints the Summary Window on your printer

Printer Font

Choose your own font if you don`t like the default. WARNING: This affects the Summary Window, too, so you can see what the printout will look like. The default is set in the VBSYX.INI file.

Note: Any font changes are not remembered after the program has been closed. Edit the INI file for permanent changes.

Open Summary Info?

This is a check item. If checked, VBSYX will look for a SYT/SYZ, MIT/MIZ or WRT/WRZ pair of files to open. This will preload the Summary Window with the information saved from a previous session. See Summary, Show Summary for more information.


Option Menus
Dump

Show Bulk Dump Info	Shortcut: Ctrl-D

Use this option to decode Bulk Dumps (when enabled). This applies to patch bulk dumps, drum bulk dumps and global bulk dumps. Hit Esc or Enter or Click on the detail display to exit this detail display.

When Auto Decode mode is on (see below), Enter will display the next message. Esc will stop the decode of all messages. Clicking on the main form will also decode a bulk dump if possible.

Extract Bulk Dump Info	Shortcut: Ctrl-I

Use this option to extract Global Bulk Dumps (when enabled). A Global Bulk Dump consists of 30 SYSEX packets in sequence. This option is only enabled when Bulk Dump Parameters - Packet 1 is being viewed. When selected, the 30 SYSEX packets are extracted (less headers/trailers) and can be decoded with Ctrl-D (see above). The resultant extract is renamed to VBSYXEXT.SYG and can be saved as such or as another .SYG file (see below).

Clicking on the main form will perform this action if possible.

Edit Patch Dump

Use this option to edit patch dumps. This option is used in 2 different ways. If you are decoding a .SYX file, this option can be used to change the part and channel for the patch dump. This allows you to use an already created patch on a different part and channel from the one it was created for.

The second use of this option is for extracting patch dumps from .SYG files (see above). First, use Ctrl-D to find/look at the patch you want to extract. Second, use this option, choose a new part/channel for the patch and hit Enter. The last patch you looked at will be extracted as a patch dump and you will be able to save it as a .SYX file after doing a Ctrl-C to extract the data to the clipboard. Alternatively, Ctrl-V the extracted data into your favourite sequencer instead of saving it as a .SYX file.

Note that Auto Decode Global Dump (see below) must be OFF for individual selection to work. If this option is checked, all parts will be extracted from the bulk dump. These can be used in the MID file to replace the 30 packets in  Bulk Dump format. Once this has been done, the resultant GS MID file can be automatically converted to XG format.

Decode Complete Patch Dump?

This is a check item. The default is only to decode Sound Canvas or Yamaha XG parameters that have changed. Check this option if you want to see all dump bytes decoded.

This option is also used in GS MID file conversion (see earlier). If this option is checked, the conversion routine will convert GS patch/bank selections to XG format. As stated before, this may result in a XG patch that does not exist. By default, this option is unchecked and MID file processing converts all SYSEX except for GS patch/bank messages as XG modules respond correctly to GS patch/bank messages when in GS/TG300B mode.

Auto Decode Patch Dump?

This is a check item. If checked, patch bulk dumps will be decoded when encountered. The default is unchecked. If this is off, you will have to use Ctrl-D to decode them manually.

Auto Decode Global Dump?

This is a check item. If checked, global bulk dumps will be decoded in sequence when encountered. The default is unchecked. If this is off, you will have to use Ctrl-D to decode them manually. See Show Bulk Dump Info above for extra information.

Omit Default Messages?

This is a check item. If checked, Summary, Show All will not copy decoded default messages to the Summary window. See Summary, Show All for extra information.

In addition, Summary, Mass Extract will not extract default messages. This can be very useful in extracting useful SYSEX messages for use in your own files.

Finally, if this option is checked, detail SYSEX message bytes will not be displayed. This speeds up scrolling through SYSEX data.

Receive SYSEX Dump

This option allows you to use VBSYX as a Patch Librarian. You supply the SYSEX Dump Request macro and VBSYX will send it to your sound module and receive the bulk dump or part dump in return. This can then be saved or edited to change the part and/or channel.

The SYSEX macros are stored in a file called DUMPIN.INI. You can edit this if you wish. However, you are responsible for the accuracy of the macros. Please send me the macros for your sound module if you wish them to be included in future versions of VBSYX.

Convert GS Patch Dump

This option will convert a GS Patch Dump to the equivalent SYSEX messages that can be understood by Roland GS modules or Yamaha XG modules operating in TG300B mode.

Convert GS Patch Dump to XG

This option will convert a GS Patch Dump to the equivalent XG SYSEX messages.

One option is available. If the option Decode Complete Patch Dump is checked, this conversion routine will convert GS patch/bank selections to XG format. As stated before, this may result in a XG patch that does not exist. By default, this option converts all SYSEX except for GS patch/bank messages as XG modules respond correctly to GS patch/bank messages when in GS/TG300B mode.

See also: Limitations

NB. The Dump options will only be available to registered users


Option Menus
MIDI (1)

Send Latest Extract	Shortcut: Ctrl-X

This sends the last SYSEX message you did an Extract on to the nominated SYSEX port.

Send SYX File	Shortcut: Ctrl-Y

Sends the whole of the SYX file to the nominated SYSEX port.

Play/Stop MID File	Shortcut: Ctrl-P

Play the MID file via MIDI MAPPER or any other MIDI port. Choose this option again to Stop a MID file playing.

Note: VBSYX does not play WRK or other proprietary formats as this program uses the official Microsoft MCI interface.

WARNING: Playing certain MID files has been known to lock Windows 3.1 completely. On some machines, this happens when the file contains LOTS of SYSEX data eg a complete dump generated by SCEDIT. Also, MID files containing SC-88 effects lock certain machines as well. This problem appears to have been solved by Microsoft under Windows 95.

See also: Limitations


Option Menus
MIDI (2)

GS/XG Reset

Allows you to do a GS and/or XG Reset when you are just playing a MID file.

MS Midi Mapper

Invokes the Microsoft Midi Mapper. This function is available under Windows 3.11 only. It is not available for Windows 95 and does not work under Windows NT.

XG/GS MIDI Jukebox

Invokes the XG/GS MIDI Jukebox to play the current MID file. This allows more control over playing than just Ctrl-P (Start/Stop). Warning: Close XG/GS MIDI Jukebox before selecting this item again. If you do not, you will get another instance of the Jukebox.This may not be what you want and you may run out of memory.

Midi Sequencer

Invokes your favourite Midi Sequencer to play/edit the current midi file. Open a .EXE file under File, Open to change the default of MS Media Player. Warning: Close your sequencer before selecting this item again. If you do not, you will get another instance of your sequencer program. This may not be what you want and you may run out of memory.

Change MIDI Port

This allows you specify which port will be opened to play your MID file via Ctrl-P. Thus, you are no longer at the mercy of Midi Mapper or its Windows 95 equivalent.

Change SYSEX Port

This allows you specify which port will be used to send SYSEX messages to your Sound Canvas or XG sound module via such options as Ctrl-X and Ctrl-Y.

See also: Limitations


Option Menus
Help

Contents

Invites you to read this document.

Select Font

Use if you want. It was built for user testing. However, if the program doesn`t work on your machine, try this before calling. The default is set in the INI file.

Note: Any font changes are not remembered after the program has been closed. Edit the INI file for permanent changes.

Register

This allows you to register the program. If you register, you will be sent your personalised registration number. This will allow you to use all the Dump Menu items as well as allowing you to use the Go To function.

About

Displays program version and current registration details.


Examples (1)

(1)	Set Part 6 to OFF in Cakewalk WRK file

Open PART1OFF.SYX and Edit, Edit SYSEX Message, changing byte 2 from 11 to 16. This is not as hard as it may seem.

Now Extract the data to the clipboard, switch to Cakewalk, SYSX, Edit Bytes and Ctrl-V the data in.

To copy data back from Cakewalk, highlight the data bytes, Ctrl-C, switch to VBSYX, Edit, Paste SYSEX.

Use this technique for anything. See Sample SYX Files for supplied SYX files you can copy.

See also: Sample SYX Files


Examples (2)

(2)	Extract 25,000 bytes from your favourite MID file

There is a limit on Mass Extract of 19,000 bytes. This should be enough for anybody. If you really want to do this then:

(a)	Open, Mass Extract, Save As BIG.SYX (or whatever). Make a note of the last message extracted (say, nnn).

(b)	Open, Show All (changing the number to be shown to nnn), Mass Extract from here on, Save as BIG.SYX, Reply No to dialog box. This will append the data to the original SYX file.

Try this out on DEMO0001.MID from Roland. Don`t expect to be able to do anything with the extracted data. Those users without a plasma display should do a Summary, Show All on this file to see what they are missing out on.

See also: Sample SYX Files


Examples (3)

(3)	Extract messages 2 to 4 and 9 to 16

You have looked at a MID file and you want to extract selected messages only. In this example there are, say, 30 SYSEX messages in the MID file but you only want messages 2,3,4 and 9,10,11,12,13,14,15,16.

You use the same technique as the last one:

Open

More, Extract, More, Extract, More, Extract

More x 5

Mass Extract (Change the number of messages to extract to 8)

Save As.

See also: Sample SYX Files


Samples
Sample SYX Files

Here are some sample .SYX files used (a) for testing and (b) for you to display/edit and use in your sequences as required. They are supplied as SYX.ZIP in your installation package.

ALLGM.SYX	All valid GM SYSEX messages

ALLRAP10.SYX	All valid RAP-10 SYSEX messages

ALLSC55.SYX	All valid SC-55, SC-155 etc SYSEX messages

ALLSC88.SYX	All valid SC-88, M-GS64 SYSEX messages

GMSYSON.SYX	General Midi Reset

GSRESET.SYX	GS Reset

HALL1.SYX	Set Canvas Reverb to Hall 1. Use Change for any other effect you want.

PART1OFF.SYX	Turn Part 1 OFF. See PART1PAN.SYX below.

PART1PAN.SYX	Set Part 1 to random pan. Use Edit, Edit SYSEX to choose another Part.

PARTTONE.SYX	Set Part 1 Bank and Patch settings

SW60XG.SYX	SW60XG SYSEX messages

XGDRUM.SYX	XG Drum SYSEX messages

XGPART.SYX	XG Part SYSEX messages

XGRESET.SYX	XG Reset

XGSYSTEM.SYX	XG System SYSEX messages

Use the Change button to change individual values. Use the Edit, Edit SYSEX menu item to edit messages that contain multi-byte values. Use the Edit, Edit SYSEX menu item to edit messages to change Part 1 to any other part you want.

See also: Examples of Use