Copyright: WinSysEx Copyright ® 1993, Rochester Heritage
Citation: Copyright ® 1993, Rochester Heritage


Contents
WinSysEx 3.0

Copyright © 1993-94, Don Strenczewilk

General Topics

Introduction

Registering

Copyright and Disclaimer

Acknowledgments

Using WinSysEx

The Main Window

Running SysEx Dialogs

Creating SysEx Dialogs

Reference

Contacting The Author

Files Included and Created

Programmer's Reference

Byte Conversion Table

Syntax Errors

More Examples

Glossary


Control States List Box

This box list box appears only when you are working with a WSD file. It lists the names of saved control states. To set the input controls in your SysEx dialogs to a saved state, double-click on the control state name or select Restore from the Control States menu or the menu that pops up when you click the right mouse button on a name. For more information, see Control States Menu.


Introduction

What is WinSysEx?

WinSysEx lets you send MIDI data like channel messages and  system exclusive messages, from your computer to MIDI capable devices such as synthesizers and effect processors.You type MIDI data as text into a dialog editor and give the dialog a descriptive name. WinSysEx creates a  SysEx Dialog and registers it in the SysEx Dialogs list box in its main window. Double-click on a dialog name to launch it and send your MIDI data out the MIDI port.

Features

•	Lets you easily define input-controls: to modify MIDI data while dialogs run. WinSysEx automatically positions your controls in the dialogs.

•	Lets you enter MIDI bytes in hexadecimal, decimal, or binary format.

•	Allows equations and binary operations on MIDI bytes.Results are calculated with 32-bit signed accuracy.

•	Checksums are automatically calculated for you at runtime.

•	Local and Global variables.

•	Saves your MIDI dialogs to disk.

Limitations

•	WinSysEx is not a bulk data dump manager.

•	It is incapable of receiving MIDI data; it only transmits.

•	A patch editor or librarian created with WinSysEx will probably not look as polished as a dedicated program because the controls you create are placed in the dialogs automatically by the program rather than being placed by you with a visual dialog editor. On the other hand, you can create controls very quickly and easily.

System Requirements

•	Microsoft Windows version 3.1 or greater

•	A MIDI interface or sound card installed in your computer

•	A Windows Multimedia driver for your MIDI interface

•	A synthesizer or other midi device that can be controlled with MIDI messages

•	If you want to write your own SysEx dialogs, you need a basic understanding MIDI messages.

See Also

Setting your MIDI ports

About WinSysEx files


Acknowledgments

WinSysEx is Copyright 1993-94 Don Strenczewilk, All Rights Reserved.

WinSetup is Copyright 1993 Money Smith Systems Inc, All Rights Reserved.

Microsoft Windows is Copyright 1993 Microsoft Corp, All Rights Reserved.

Cakewalk for Windows is Copyright 1991, Greg Hendershott, Twelve-Tone Systems.

Borland Pascal is Copyright Borland International. All Rights Reserved.


File Menu
The File Menu

Use file menu commands to open and save files and quit the program. When you select a command that requires removing the current file from memory, you are asked whether you want to save it or not.

New	Creates a new WSX file.

Open	Opens a WSX or WSD file. You can also open a file by dragging it from File Manager to WinSysEx's main window with your mouse.

Save	Saves the current file. If the current file is unnamed, the Save as dialog is launched. You can also select this command by typing Ctrl-S.

Save as	Lets you save the current file as a new name or type. You can save a WSX file as a WSD file if it compiles without error. Because WSD files do not contain source code, you cannot save them as WSX files.

Exit	Closes all running dialogs and shuts down WinSysEx.

list	The last item on the file menu is a list of files you recently used. To open one, simply select it from the menu.

See Also

The Main Window

About WinSysEx Files


Dialogs Menu

The commands on this menu apply to the dialogs listed in the  SysEx Dialogs list box. You can also access many of these commands from the menu that pops up when you right click  on a dialog name in the list.

Note: If the current file is a *.WSD file, the Edit, Delete and Rename items turn gray. Those commands relate only to *.WSX files.

Run

New

Edit

Delete

Rename

Send All

Search

Cascade

Close all

See Also

The Main Window

About WinSysEx files

Running SysEx Dialogs


Control states Menu

This menu is available only when you work with *.WSD files. The items on this menu apply to the items in the Control states listed in the Control states list box. You can access many of these commands from a menu that pops up when you right-click on items in the list box.

Save as

Restore

Delete

See Also

The Main Window

Control states pop up menu

About WinSysEx files

Running SysEx Dialogs


MIDI Menu

Use the MIDI menu to set WinSysEx multimedia MIDI options. Your preferences are preserved in WINSYSEX.INI.

Setup	Opens a dialog that lets you select multimedia MIDI ports.

Midi Out ON	The MPU-401 driver supplied with MS-Windows allows only one program to use the MIDI OUT port at one time. If your driver has this characteristic and you want to run a program in another window that needs to use the same MIDI OUT port as the one you selected from the MIDI|Setup dialog, uncheck this item.

When you check this item: WinSysEx opens the MIDI OUT port and keeps it open until you uncheck this item, or close WinSysEx.

When you uncheck this item: WinSysEx opens the MIDI OUT port only when it's ready to send MIDI data and closes the port immediately after the data is sent.

Midi In ON	If your keyboard is connected to the MIDI IN jack of your PC MIDI interface and you want the notes you play to pass through to the MIDI OUT jack, check this item.

When you check this menu item WinSysEx opens the MIDI input port.  Most Windows MIDI device drivers do not allow multiple programs to use the same MIDI IN port. Therefore, do not check this item if you want to run WinSysEx simultaneously with another program that uses the same MIDI IN port as WinSysEx.

This item is disabled if you don't have a MIDI input port installed in your machine.

Analyzer..	Select this item if you want to see your MIDI messages as WinSysEx sends them out the MIDI port. It is useful for debugging. The analyzer also opens automatically when you press the TEST button in the editor.

See Also

MIDI Setup Dialog

The Main Window


MIDI Setup Dialog

Select MIDI|Setup to launch this dialog and select the MIDI ports you want WinSysEx to control. It contains two list boxes:

MIDI In	Let you select a MIDI input port. This list box won't appear if you don't have any MIDI input devices installed in your machine. WinSysEx uses the input port to act as a MIDI THRU. It lets you pass the MIDI input directly through to the output.

MIDI Out	Select the MIDI device that you want WinSysEx to use to send MIDI data.

See Also

The MIDI Menu


Running SysEx Dialogs

After you create a SysEx dialog, you can run it by double clicking on its name in the SysEx Dialogs list box or by selecting Dialogs|Run from the menu. Move the mouse on the picture below and click when the mouse cursor turns into a hand.

See also

The SysEx Dialog Menu

Navigating the Input Controls


The SysEx Dialog Menu

Every sysex dialog has a menu.

Edit

Copy text to clipboard You can select this item from any SysEx Dialog. WinSysEx evaluates the data in the dialog, converts the MIDI bytes to hex strings, and puts the results in MS-Window's clipboard. You can paste this text into Window's NOTEPAD. Pasting into NOTEPAD is useful for debugging since you can see if your source code is doing what you expect. It's also useful for pasting into sequencers that can accept system exclusive messages messages in that format, such as CakeWalk for Windows.

Send to MIDI out. When you click on this item, WinSysEx evaluates the equations and checksums in the dialog and sends all the bytes out the MIDI port. You can also make it so only the MIDI messages associated with each input control is sent . See Options|Send MIDI whenever input changes below.

Save Sysex bytes as Select this item to dump the raw MIDI bytes to a binary file. WinSysEx lets you pick the filename. The default file name extension is SYX.

Reset default values Reset all the input-controls in the dialog to their default values.

Exit	Select this item to close the dialog

Options

This commands on this menu let you set preferences for SysEx dialogs. Your preferences are preserved in WINSYSEX.INI. The commands apply to all SysEx dialogs, not only the current one.

Font	Lets you select the font and size to use in the dialog. Because the size of the controls and text in the SysEx dialogs are dependent on the font size, changing the font size changes the size of the entire dialog.

Highlight color. Select the color to draw input-controls whose value is not set to the default. The highlight color helps you identify the controls that you have changed.

Send MIDI whenever input changes Check this item if you want the MIDI messages associated with your input controls to be sent out your MIDI port as you adjust them.  WinSysEx examines the bytes associated with the control you adjust and searches forward and back through the bytes until it finds a complete MIDI message. This may not work for all MIDI messages, particularly for those associated with older synthesizers. See Edit|Send to MIDI out above to see how to send all the MIDI data in the dialog.

Help

This menu has items to display this help topic and the About dialog.

See also

Running Sysex Dialogs


Byte Conversion Table

Dec	Hex	Binary	 Dec	 Hex	 Binary

0	00	00000000	127	7F	01111111
1	01	00000001	128	80	10000000
2	02	00000010	129	81	10000001
3	03	00000011	130	82	10000010
4	04	00000100	131	83	10000011
5	05	00000101	132	84	10000100
6	06	00000110	133	85	10000101
7	07	00000111	134	86	10000110
8	08	00001000	135	87	10000111
9	09	00001001	136	88	10001000
10	0A	00001010	137	89	10001001
11	0B	00001011	138	8A	10001010
12	0C	00001100	139	8B	10001011
13	0D	00001101	140	8C	10001100
14	0E	00001110	141	8D	10001101
15	0F	00001111	142	8E	10001110
16	10	00010000	143	8F	10001111
17	11	00010001	144	90	10010000
18	12	00010010	145	91	10010001
19	13	00010011	146	92	10010010
20	14	00010100	147	93	10010011
21	15	00010101	148	94	10010100
22	16	00010110	149	95	10010101
23	17	00010111	150	96	10010110
24	18	00011000	151	97	10010111
25	19	00011001	152	98	10011000
26	1A	00011010	153	99	10011001
27	1B	00011011	154	9A	10011010
28	1C	00011100	155	9B	10011011
29	1D	00011101	156	9C	10011100
30	1E	00011110	157	9D	10011101
31	1F	00011111	158	9E	10011110
32	20	00100000	159	9F	10011111
33	21	00100001	160	A0	10100000
34	22	00100010	161	A1	10100001
35	23	00100011	162	A2	10100010
36	24	00100100	163	A3	10100011
37	25	00100101	164	A4	10100100
38	26	00100110	165	A5	10100101
39	27	00100110	166	A6	10100110
40	28	00101000	167	A7	10100111
41	29	00101001	168	A8	10101000
42	2A	00101010	169	A9	10101001
43	2B	00101011	170	AA	10101010
44	2C	00101100	171	AB	10101011
45	2D	00101101	172	AC	10101100
46	2E	00101110	173	AD	10101101
47	2F	00101111	174	AE	10101110
48	30	00110000	175	AF	10101111
49	31	00110001	176	B0	10110000
50	32	00110010	177	B1	10110001
51	33	00110011	178	B2	10110010
52	34	00110100	179	B3	10110011
53	35	00110101	180	B4	10110100
54	36	00110110	181	B5	10110101
55	37	00110111	182	B6	10110110
56	38	00111000	183	B7	10110111
57	39	00111001	184	B8	10111000
58	3A	00111010	185	B9	10111001
59	3B	00111011	186	BA	10111010
60	3C	00111100	187	BB	10111011
61	3D	00111101	188	BC	10111100
62	3E	00111110	189	BD	10111101
63	3F	00111111	190	BE	10111110
64	40	01000000	191	BF	10111111
65	41	01000001	192	C0	11000000
66	42	01000010	193	C1	11000001
67	43	01000011	194	C2	11000010
68	44	01000100	195	C3	11000011
69	45	01000101	196	C4	11000100
70	46	01000110	197	C5	11000101
71	47	01000111	198	C6	11000110
72	48	01001000	199	C7	11000111
73	49	01001001	200	C8	11001000
74	4A	01001010	201	C9	11001001
75	4B	01001011	202	CA	11001010
76	4C	01001100	203	CB	11001011
77	4D	01001101	204	CC	11001100
78	4E	01001110	205	CD	11001101
79	4F	01001111	206	CE	11001110
80	50	01010000	207	CF	11001111
81	51	01010001	208	D0	11010000
82	52	01010010	209	D1	11010001
83	53	01010011	210	D2	11010010
84	54	01010100	211	D3	11010011
85	55	01010101	212	D4	11010100
86	56	01010110	213	D5	11010101
87	57	01010111	214	D6	11010110
88	58	01011000	215	D7	11010111
89	59	01011001	216	D8	11011000
90	5A	01011010	217	D9	11011001
91	5B	01011011	218	DA	11011010
92	5C	01011100	219	DB	11011011
93	5D	01011101	220	DC	11011100
94	5E	01011110	221	DD	11011101
95	5F	01011111	221	DE	11011110
96	60	01100000	223	DF	11011111
97	61	01100001	224	E0	11100000
98	62	01100010	225	E1	11100001
99	63	01100011	226	E2	11100010
100	64	01100100	227	E3	11100011
101	65	01100101	228	E4	11100100
102	66	01100110	229	E5	11100101
103	67	01100111	230	E6	11100110
104	68	01101000	231	E7	11100111
105	69	01101001	232	E8	11101000
106	6A	01101010	233	E9	11101001
107	6B	01101011	234	EA	11101010
108	6C	01101100	235	EB	11101011
109	6D	01101101	236	EC	11101100
110	6E	01101110	237	ED	11101101
111	6F	01101111	238	EE	11101110
112	70	01110000	239	EF	11101111
113	71	01110001	240	F0	11110000
114	72	01110010	241	F1	11110001
115	73	01110011	242	F2	11110010
116	74	01110100	243	F3	11110011
117	75	01110101	244	F4	11110100
118	76	01110110	245	F5	11110101
119	77	01110111	246	F6	11110110
120	78	01111000	247	F7	11110111
121	79	01111001	248	F8	11111000
122	7A	01111010	249	F9	11111001
123	7B	01111011	250	FA	11111010
124	7C	01111100	251	FB	11111011
125	7D	01111101	252	FC	11111100
126	7E	01111110	253	FD	11111101
127	7F	01111111	254	FE	11111110
128	80	10000000	255	FF	11111111


Files Included and Created

All WinSysEx program files are in a single directory. No files are installed in your WINDOWS directory. To remove WinSysEx, simply delete all the files in its directory, along with any WSX, WSD, and INI files you created with it.

Files Included

winsysex.exe	The main program

winsysex.hlp	The help file

genmidi.wsx	Demonstrates some general MIDI messages.

genmidi.ini	A combo Box data file containing general MIDI voice, drum, and note names.

sample.wsx	Sample source code with examples of input controls and modifiers.

*.WSX	Other source code examples

*.WSD	Compiled examples

*.INI	Combo box data files used in source code examples.

order.doc	Printable order form. You can also print an order form directly from this help file.

vendor.doc	Information for distributors, disk vendors, sysops, etc.

file_id.diz	BBS file description.

readme.wri	Information about program version enhancements, bug fixes, and last minute information that did not make it into the documentation and/or help file.

Files Created

winsysex.ini	Created when you run WinSysEx the first time. It contains your preferences.

*.WSX	Source code files

*.WSD	Compiled Data files.

*.SYX	MIDI data dumps in binary format

See Also

About WinSysEx Data Files

The File Menu

The SysEx Dialog Menu


About WinSysEx Data Files

WinSysEx works with three kinds of files. Identify them by their filename extensions:

WSX

WSX files hold source code. After you create a SysEx dialogs, you can save them in a WSX file and reopen and edit them at any time.

If your SysEx Dialogs contain combo box controls, their data files must be present in the the WSX file directory or the WINSYSEX.EXE directory, otherwise, the WSX source code cannot compile.

In their native format, WSX files cannot be edited with text editors. But, you can cut and paste to and from any MS-Windows editor.

WSD

WSD files hold pre-compiled SysEx dialogs and load much faster than WSX files. Because the SysEx dialogs are stored as binary data, you cannot edit them.

Combo box data is stored directly in WSD files so the INI files don’t have to be available to load them.

WSD files also hold control states, which let you save the state of dialog controls after you have altered them. You can use control states, for example, to store synthesizer patch parameters. When you load a WSD file, the main dialog expands to display the Control States list box and menu.

SYX files

You can dump the MIDI data in your dialogs to disk in a binary file (SYX file). Do this by launching a dialog and selecting Edit|Save sysex bytes as.

See Also

The File Menu

The Control states Menu

Running SysEx Dialogs


Glossary

These are terms used in various sections of Help. Click on one to see a brief definition.

& AND operator

| OR operator

+ PLUS operator

- MINUS operator

< SHIFT LEFT operator

> SHIFT RIGHT operator

* Multiplication operator

/ Division operator

Author

Binary numbers

Byte

Checksum

CompuServe

Control states

Decimal

Editor or SysEx Editor

Globals

Hex

Input-Control

Insertion point

Main Dialog

MIDI

Operator

Shareware

SWREG

SysEx Dialogs

System Exclusive Messages

WSD

WSX


gand
The AND operator &

ANDs two values. For example, "10&01" will AND the two values, for the result "00"

See Also

Using Modifiers


gor
The OR operator |

ORs two values. For example, "10|01" will OR the two values for the result "11"

See Also

Using Modifiers


gplus
The Plus operator +

Adds two values. For example, "10+01" adds the two values, resulting in "11"

See Also

Using Modifiers


gminus
The Minus operator -

Subtracts one value from another. "10-01" subtracts 01h from 10h resulting in 0Fh

See Also

Using Modifiers


gshiftleft
The Shift Left operator <

Shifts the bits in a value left. "10<01" shifts 10h left by 01h bits resulting in 20h.

See Also

Using Modifiers


gshiftright
The Shift Right operator >

Shifts the bits in a value right. "10>01" shifts 10h right by 01h bits resulting in 08h.

See Also

Using Modifiers


gmultiplication
The Multiplication operator *

Multiplies one value by another. "10*01" multiplies 10h by 01h resulting in 10h.

See Also

Using Modifiers


gdivision
The Division operator /

Divides one value by another. "10/02" divides 10h by 02h resulting in 08h.

See Also

Using Modifiers


gwsd
WSD

The file extension of WinSysEx compiled files.

See Also

About WinSysEx Files

Control states menu


gwsx
*.WSX

The file extension of WinSysEx source code files.

See Also

About WinSysEx Files


gauthor
Author

WinSysEx's author is Don Strenczewilk (CIS 72617,132), (Internet: dstrenz@rhc.win.net).

See Also

Contacting the Author


gbinary
Binary numbers

Binary numbers are a base-2 number system, which consists of the digits 0 and 1. You can type binary numbers in the editor by following the digits with a "b", like 1001001b

See Also

Byte Conversion Table


gbytedef
Byte

A byte consists of 8 bits. For our purposes, a byte is equal to 1 unit of MIDI system exclusive message data. Byte values range from 0 - 255d. When typing bytes in the editor, separate the individual bytes of system exclusive messages with either a space, a tab, or a hard carriage return.


gchecksum
Checksum

Some MIDI devices manufacturers require that a value be calculated and sent along with system exclusive messages to verify the integrity of the MIDI data. That value is called a Checksum

See Also

Defining Checksums


gcis
CompuServe

CompuServe Information Service is an international bulletin board service that can be accessed by anyone with a computer and modem.

See Also

Registering through SWREG


gdecimal
Decimal

Decimal is the base-10 number system, which is the one humans are most familiar with. Each decimal digit can represent values from 0 to 9, and the position or a digit in a decimal number represents a power of 10. To enter a decimal number in WinSysEx's editor, follow it with "d", like 32d. In combo box definition files, WinSysEx assumes the values are entered in decimal format, so the "d" is not necessary.

See Also

Byte Conversion Table


gglobals
Globals

You can create a special Globals SysEx Dialog to hold variables that you can refer to in other SysEx dialogs. For example, if lots of the MIDI message bytes in your dialogs require a channel number, create it in Globals:

@KChan.ED("DW8000 channel ", 1, 16, 1)-1

That will create the global variable KChan and you can use it in other dialogs like this:

F0 42 @KChan 03 41 10 .SB("Resonance", 0,31,0) F7

Note: You can create only one Globals dialog per file.

See also

Creating global variable


ghex
Hex (short for Hexadecimal)

The hexadecimal number system is based on the number 16. Each hex digit can represent values from 0 to 15, and the position or a digit in a decimal number represents a power of 16. Since decimal digits only represent the values 0 through 9, the letters A through F are used to represent 10 through 15. In WinSysEx's editor, it is assumed that all numbers are in hexadecimal format, so, you simply enter the numbers. The letters A through F must be entered in upper case. Otherwise, WinSysEx might think you are entering a number in a different format.

In combo box definition files, WinSysEx assumes the values are entered in decimal format, but you can enter numbers in hexadecimal or binary format by following the number with "h" or "b", respectively.

See Also

Byte Conversion Table


ginputctrl
Input-controls

Controls that you can insert into SysEx dialogs to change MIDI bytes while the dialogs run.

See Creating input controls.


gmaindlg
Main Dialog

Refers to WinSysEx's main window.


gmidi
MIDI

Musical Instrument Digital Interface. A standard protocol for transferring musical data between electronic devices.


goperator
Operator

An operator is a symbol placed between two values which tells WinSysEx to perform a calculation on the two values to give a single value result.

See Also

Using Modifiers


paramsetdef
Control states

Control states hold a setting for each input-control in the SysEx Dialogs . They provide a way to save and restore the state of the input-controls. The Control states menu and list box are available only while you are working with compiled *.WSD files.

See Also

Control states Menu


gshareware
Shareware

Computer software that you can try before you buy.

See Also

Registering


gswreg
SWREG

A service provided by CompuServe that lets users register shareware programs online. WinSysEx's SWREG identification number is 1458

See Also

Ordering through SWREG


sysexdlgdef
SysEx Dialogs

Short for System Exclusive Message Dialogs or MIDI Message Dialogs.

They are the dialogs you create with the editor . They are listed in the SysEx Dialogs list box. You can run one by double clicking the mouse on it or selecting Dialogs|Run from the menu.

See Also

Running SysEx Dialogs

Programmer's Reference


Editor

Short for MIDI Message Dialog Editor.

Activated from the Dialogs|Edit and Dialogs|New menu, you use it to create SysEx Dialogs .

See Also

Using the editor

Creating SysEx Dialogs

Programmer's Reference


gsysexdef
System Exclusive Message

A MIDI message whose meaning is defined independently by each manufacturer of MIDI devices. System exclusive messages consist of a series of individual bytes. The first byte of a system exclusive message is always F0h and the last is F7h

See Also

Creating SysEx Dialogs

Programmer's Reference


Programmer's Reference

Using The Editor

Creating SysEx Dialogs

Raw Hex Values

Input-Controls

Spin Controls

Text Controls

Scroll Bar Controls

Check Box Controls

Combo Box Controls

Local Variables

Global Variables

Equations

Checksums

Formatting commands

Byte conversion table

Syntax Errors

More Examples


Using The Editor

Launch the Editor by selecting Dialog|New or Dialog|Edit from the main window. You can size the eitor window. Your preferred size and position are preserved.

Using an external editor

You can use an editor of your choice to edit text. You can cut the text from your editor and paste it into the WinSysEx Editor with Edit|Paste to compile it.

The Editor Menu

The Editor Menu

Edit fields

Caption	Type the caption for the dialog you are creating. The caption will appear on the dialogs's title bar. If you type the caption of a SysEx dialog that already exists, it is replaced when you select the [OK] button. Otherwise a new dialog appears in the dialog list.

MIDI Messages	This is where you type the MIDI messages for the dialog you're creating.

Buttons

Wrap	Check this box to force editor to wrap text. When unchecked, a horizontal scroll bar appears at the bottom of the box that you can use to see text that extends past the right side of the edit box.

Ok	Click the Ok button to save changes and exit the editor. If a sysex dialog of the same name (caption) already exists in the Sysex Dialogs list, the new dialog replaces it. Otherwise, the new dialog is added to the list. The dialog must compile without error before you can save it.

Cancel	Closes the editor without saving anything.

Test	Compiles and runs the dialog.

See Also

Programmer's Reference

Creating SysEx Dialogs


Creating SysEx Dialogs

The next few paragraphs will teach you the basic steps to create SysEx Dialogs. The details start in the next section. Use WinHelp's browse buttons to browse through these sections.

First, get the manual for the MIDI device that you want control. Find and study the section of the manual that describes the device's MIDI capabilities and implementation. These are usually near the back of the manual.

Select File|New to create a new WSX file.

Design decisions

Decide what dialogs you want the WSX/WSD file to hold; for instance, patch editing parameters for a synthesizer.

Decide how you want to list the SysEx dialogs

For instance, a dialog named "Envelope" might contain envelope parameters for a patch; another named "Oscillator Parameters" might contain controls to modify oscillator parameters. Try not to create dialogs that contain an enormous number of input-controls. Doing so quickly depletes Window's USER resources when the dialogs run. Also, those dialogs must scroll to reveal input controls. It's easier to manage input-controls when you separate them into smaller groups by either creating more dialogs with descriptive captions or creating separate contexts for groups of related controls in a dialog.

Launch the editor

Select Dialogs|New to launch the Editor and create a dialog..

Create the caption

Type the name of the dialog in the Caption field. The caption is shown in the SysEx Dialogs list box and the title bar of the dialog as it runs.

Global Variables

If you want to use the value of an input control in more than one SysEx dialog, then type "Globals" in the caption. For instance, if all of the MIDI  messages require a channel number byte, create a global variable.

Decide how you want to order the input-controls

For example, for an "Envelope" dialog, you might define scroll bar controls for Attack, Sustain, Decay, and Release. Sometimes, the requirements of a particular MIDI message will dictate the order for you. For example, if all the envelope parameter bytes are contained in one sysex message, you cannot easily change the order because WinSysEx inserts controls into the dialog as it encounters them in your text.

Type the MIDI Messages

You type the MIDI messages in the MIDI Messages field of the Editor. Examples of MIDI message are system exclusive and channel messages such as program changes, controller data, and even note-on and note-off messages.

Local Variables

If you have to copy the value of an input-control to another location in the same SysEx dialog, define a local variable.

Equations

You can us an Equation to modify the value of a MIDI byte. For example, you may want to define a scroll bar to get a channel number ranging from 1 to 16 and subtract 1 from the value because the MIDI byte must range from 0 to 15.

Test the Dialog

Click the [Test] button to test the dialog. WinSysEx will run the dialog unless there are errors. If an error occurs, it describes the error and moves the insertion point to that position.

Format the Controls

Several backslash commands are provided to let you format the text in the SysEx dialogs.

See Also

Creating MIDI messages

Using the editor

Debugging your dialogs

Byte Conversion Table

Syntax Errors


Creating MIDI Messages

You create MIDI messages with the editor. MIDI messages are composed of a series of MIDI bytes. MIDI bytes may consist of numbers, input controls, variables, equations, and checksum calculations. You type the MIDI bytes as text in the editor, separating them with one or more spaces, tabs, or hard carriage returns.

Though an 8-bit MIDI byte’s range is 0 to 255, you can enter 32-bit values ranging from -2147483648 to 2147483647. Intermediate calculations of equations are evaluated as 32-bit signed numbers also. The low byte (8 bits) of the resulting value of a calculation is placed in the MIDI data. For example, if you enter 41104212h the MIDI data transmitted is 12h.

Documenting your work

You can type comments into the editor to document your work. To type a comment, type a semi-colon in the leftmost column, type your comment and press [Enter].

See Also

Typing numbers

Creating input controls

Creating local variables

Creating global variables

Creating checksums

Using Equations


Adjusting a Scroll bar

Mouse

To quickly adust the value,  Drag the thumb (the small blinking square).

To increase the value by 1 unit, click the right arrow.

To increase the value by several units, click the area at the right of the thumb.

To decrease the value by 1 unit, click the left arrow.

To decrease the value by several units, click the area on the left side of the thumb.

Keyboard

To increase the value by 1, type the right arrow.

To increase the value by several units, type PgUp.

To decrease the value by 1 unit, type the left arrow.

To decrease the value by several units, type PgDn.


Creating input controls
Creating Input-Controls

You can change the values of bytes in the MIDI data while SysEx dialogs run. To allow this, WinSysEx lets you create input controls. You can create spin controls, text controls, scroll bar controls, check box controls, and combo box controls

Create input controls by typing a period and the two-letter abbreviation. Input controls are placed from top to bottom in SysEx dialogs in the order you define them. All input-control declarations require parameters to describe their prompts and limits. Enclose the parameters in parentheses, separated by commas.

Spin Controls

Text Controls

Scroll Bar Controls

Check Box Controls

Combo Box Controls

See Also

Creating MIDI messages


Creating Spin Input controls

Declaration

.ED("Prompt", Lo, Hi, Default)

Parameters

Prompt	Enclose the prompt in double quotes. It describes the spin control and is displayed to its left in the SysEx Dialog.

Lo	The lowest value the control will accept. The lowest value you may enter here is -2147483648.

Hi	The highest acceptable value. The highest value you may enter here is 2147483647.

Default	The initial value of the control when it is first displayed. The value you enter here must fall within the range of Lo and Hi.

Examples

; Create a spin control to adjust volume

.ED("Volume", 0, 127d, 100d)

; Create a spin control to select a channel. Ask for 1 to 16, but use 0 to 15 in the sysex message.

.ED("Channel", 1, 16d, 1)-1

; Ask for tuning parameter ranging from -63d to +63d. The MIDI byte will actually range from 0 to 127d.

.ED("Tuning", -63d, 64d, 0)+63d

See also

Creating input controls


Creating Text input-controls
Creating Text Input controls

A text input-control is the only type of control that lets you define more than one MIDI byte at once. It is handy for entering patch names, when the MIDI message requires a series of characters, because all of the characters are entered in a single field. The length of the "Initstring" parameter determines the number of characters to define.

Declaration

.TX("Prompt", Lochar, Hichar, "Initstring")

Parameters

Prompt	Enclose the prompt in double quotes. It describes the text control and is displayed to its left in the SysEx Dialog.

Lochar	The ASCII value of the lowest allowable character. 20h is commonly used for most synths, which is the ASCII value for the space character.

Hi	The ASCII value of the highest allowable character. Most synths can accept characters up to 7Fh (127d).

Initstring	The text to initially insert into the control. The length of the string you enter here defines the number of bytes to insert in the MIDI message.

Examples

;Create a text control to input a patch name 9 characters long. Note that the last parameter, "PATCH    ", is padded to 9 characters with spaces to 10 characters (shown as underlines here).

.TX("Patch Name", 20, 7F, "PATCH_____")

;The Yamaha DX-100 requires that each character of the voice name is sent in separate sysex parameter messages. The following example demonstrates how to access the individual characters of a text control. For more information about this, see Local Variables.

;Create a text control in a dummy message. The dummy message is sent to the synth, but has no effect.

F0 00 @VName.TX("Voice name", 32d, 127d, "INIT VOICE") F7

;Then, send the indexed chars/bytes to the DX-100, one char per sysex message

F0 43 10 12 77d @VName0 F7

F0 43 10 12 78d @VName1 F7

F0 43 10 12 79d @VName2 F7

F0 43 10 12 80d @VName3 F7

F0 43 10 12 81d @VName4 F7

F0 43 10 12 82d @VName5 F7

F0 43 10 12 83d @VName6 F7

F0 43 10 12 84d @VName7 F7

F0 43 10 12 85d @VName8 F7

F0 43 10 12 86d @VName9 F7

See also

Creating input controls


Creating Scroll Bars

Declaration

.SB("Prompt", Lo, Hi, Default)

Parameters

Prompt	Enclose the prompt in double quotes. It describes the scroll bar and is displayed to the left of it in the SysEx Dialog.

Lo	The value of the scroll bar when its thumb is all the way to the left; at its minimum postion. The lowest value you can enter here is -2147483648.

Hi	The value of the scroll bar when its thumb is all the way to the right; its maximum position. The highest number you can enter here is 2147483647.

Default	The initial value of the scroll bar control when it is displayed. The value you enter here must fall within the range of Lo and Hi.

Examples

; Define a scroll bar to adjust the volume

.SB("Volume", 0, 127d, 100d)

; Define a scroll bar to select a channel.

.SB("Channel", 1, 16d, 1)-1

; Ask for tuning parameter ranging from -63d to +63d. The MIDI byte will actually range from 0 to 127d.

.SB("Tuning", -63d, 64d, 0)+63d

See also

Creating input controls


Creating Check boxes

Declaration

.CX("Quoted Prompt", Unchecked, Checked, Default)

Parameters

Prompt	Enclose the prompt in double quotes. It describes the check box and is displayed to the left of it in the SysEx Dialog.

Unchecked	The value to assign the MIDI byte when the box is in the OFF postion. The acceptable range for the value is -2147483648d to -2147483647d.

Checked	The value to assign the sysex data when the box is in the ON position. The acceptable range is -2147483648d to -2147483647d.

Default	The Initial value of the control when it is displayed. It must be equal to either the Checked or Unchecked parameter.

Examples

;Turn operator 1 on or off.

.CX("Operator 1 ON", 0, 1, 1)

;Using the OR operator |, these two check boxes define a single byte, setting individual bits in the byte.

.CX("Op 1 ON", 0, 00001000b, 0)|.CX("Op 2 ON", 0, 00000100b, 0)

See also

Creating input controls


Creating Combo boxes

Declaration

.CB("Prompt", "Section", "File", Default)

Parameters

Prompt	Enclose the prompt in double quotes. It describes the combo box and is displayed to its left in the SysEx Dialog.

Section	The section is enclosed in double quotes and identifies the [section] in File where you defined the values and strings for the combo box.

File	The name of the combo box data file that contains the list of items and values to show in the combo box. Usually, you will use the name of the WSX file, substituting the INI extension. If you do not supply the full path, WinSysEx searches its home directory, followed by the directory of the WSX file. See the notes below.

Default	The value of the text that will appear in the combo box when it is displayed. It must be equal to one of the values in the data file.

Creating a combo box data file

Create the data file with any text editor, such as NOTEPAD.EXE. It's wise to use the same name for the data file and WSX file, but use an INI extension. Put all the combo box definitions for your WSX file in that single file.

The file can contain any number of combo box definitions. The section referred to by the Section parameter is enclosed in square brackets.

Type each item you want to display in the combo box on separate lines after the [Section]. Each item definition consists of a number, an equals sign "=", and the text to be displayed in the combo box. The default format for the numbers is decimal, but you can follow a number with an "h" to specify the number is in hexadecimal format, or "b" for binary format. The range of the value must fall within -2147483648d to -2147483647d. You can type comments in the INI file by starting a line with a semicolon and typing your comment

Examples

;This combo box declaration is in a WSX file

.CB("The Prompt", "The Stuff", "thefile.ini", 64d)

;This is in the file "THEFILE.INI"

[The Stuff]

0=Zero

64=Sixty-four

127=One hundred twenty-seven

When you run the dialog, the default "Sixty-four" shows up in the combo box. When you send the data to the MIDI device, the MIDI byte that the combo box defines equals 64.

See also

Creating input controls


Creating Checksums

Some manufacturers require that their system exclusive messages contain a checksum calculation. WinSysEx calculates checksums for you automatically when you hit the Send button while running SysEx Dialogs.

To create a checksum byte, surround the MIDI bytes with [square brackets]. WinSysEx calculates the checksum for the bytes between the brackets and inserts a checksum byte in the data at the position of the closing bracket. You can place any type of data between the brackets including input-controls, variables, and equations.

Note: WinSysEx currently supports Roland checksum calculations. If you require other types, please tell  me.

Examples

;Calculates the checksum for 21 and 03. The checksum byte is inserted in the MIDI data after the 03.

F0 43 [21 03] F7

;WinSysEx calculates checksums for controls and equations too.

F0 43 [.SB("Volume", 1, 128)-1 03] F7


Creating Local Variables

You can make a MIDI byte take on the value of an input control you declared in another part of the editor. Create a local variable by preceding an input-control declaration with the "at" sign @ and a string to identify it.

Note: Because Text input controls hold several byte values, they require special consideration if you need to access the individual bytes. When you define a Text control variable, WinSysEx creates a variable for each character (byte) of text. For example, if you declare "@Pat.TX("Text Control", 32, 7F, "Patch")", WinSysEx internally creates 5 variables, appending index numbers to each: @Pat0, @Pat1, @Pat2, @Pat3, and @Pat4, so, you can access each character individually. See an example of this in  Creating Text Controls. You can still refer to the entire 5 bytes using "@Pat".

Examples

;Get an oscillator number and name it @osc

F0 43 21 @osc.ED("Oscillator Number", 0, 15d, 0) 00 .SB("Volume", 0, 127d, 100d) 00 F7

;Refer to @osc in the same SysEx Dialog

F0 43 21 @osc 01 .SB("Resonance", 0, 127d, 64d) 00 F7

Winsysex will put only one "Oscillator Number" edit control in the SysEx Dialog and use its value wherever it sees the "@osc" identifier in the SysEx Dialog.

;Input a word value. Put the high 8 bits in one MIDI byte and the low 8 bits in another

F0 43 21 @frequency.ED("Frequency", 0, 60000d, 30000d)>8 @frequency 00 F7

See Also

Global variables

Creating MIDI messages


Creating Global Variables

Sometimes, you will want to use the value of an input control in more than one SysEx dialog. For instance, you may want to use a channel number for all the MIDI messages you send to a particular synthesizer and you certainly don't want to enter the channel number every time a SysEx dialog pops up. To handle this, WinSysEx recognizes a special SysEx Dialog named "Globals".

Each file can have one SysEx Dialog named "Globals". The "Globals" SysEx Dialog is unique because its MIDI bytes can be referred to from other SysEx dialogs in the file.

References to global variables differ from that of local variables in that the reference is to the MIDI byte defined by the variable rather than the input control itself.

Example

;If you type this into the "Globals" SysEx dialog, you can use "@chan" to refer to the channel number in any SysEx Dialog in the file.

@chan.ED("Channel Number", 1, 16d, 1)-1

;When you refer to @chan in another dialog, you don't have to subtract 1 because you are actually referring to the MIDI byte rather than the input control.

C0|@chan 00

See Also

Local variables

Input-controls


Using Equations

You can write an equation to modify the value of a MIDI byte. You can add, subtract, multiply, divide, OR, AND, shift bits left, and shift bits right. These operators. are described below.

WinSysEx recalculates your equations at runtime before sending bytes out the MIDI port and copying them to the clipboard. Intermediate results are calculated using 32 bit values, minimizing the possibility of overflow.

You can use numbers, input controls, local and global variables in equations.

Equations are evaluated from left to right. For example: 1+2*3 = 6. You can override the evaluation order by putting equations within parentheses. Operations within parentheses are evaluated before those outside parentheses. For example: 1+(2*3) = 7 or (1+(2*3)) =7

Equation syntax rules

Parentheses may be nested to any level. (1+((2*3)/2))

Spaces are allowed within parentheses but not allowed outside of the parentheses. For example 1+( 2+4 ) is legal but 1 + 2 is not.

Operators

+	Addition

-	Subtraction

*	Multiplication

/	Division

|	Binary OR

&	Binary AND

< Shift left

> Shift right

Examples

;Subtract 1 from the value of a spin control

.ED("Channel Number", 1, 16d, 1)-1

;A generic program change message. The MIDI protocol defines a program change message as Cn pp where n=the channel and pp=the program number.

C0|.ED("Channel ", 1, 16, 1)-1	; Cn

.SB("Program", 0, 127, 0)	; pp

;Use the binary OR operator to combine three check box values to set the low three bits of a byte.

.CX("Bit 2", 0, 100b, 0)|.CX("Bit 1", 0, 10b, 0)|.CX("Bit 0", 0, 1, 0)

; To transfer a 16 bit word (2 bytes) of data to the Alesis Quadraverb,you must send 3 bytes, The bytes are encoded like so:

;  DATA Bytes/Bits:

;    B7 B6 B5 B4 B3 B2 B1 B0  <- Bits in byte 1 MSB

;    A7 A6 A5 A4 A3 A2 A1 A0  <- Bits in byte 2 LSB

;

;  Bytes/Bits TO SEND:

;    00 A7 A6 A5 A4 A3 A2 A1  <- value1

;    00 A0 B7 B6 B5 B4 B3 B2  <- value2

;    00 B1 B0 00 00 00 00 00  <- value3

;So, to get a value @a into an input control and build the 3 bytes:

@x.SB("Value",1,99d,1)>1&7F (@x&1<6)|(@x>A&3F) @x<4&60


Formatting SysEx Dialogs

SysEx dialogs are laid out in rows and columns:

Context column	Prompt column	Input-controls column

row 1

row 2

row 3

...etc.

If you do not define any contexts, the context column will not appear. The height and width of the rows and columns are determined by the font selected from the Options|Font menu as the dialog runs.

Several backslash commands are provided to let you change the alignment of the text in the prompt column.

SysEx Dialog Contexts

\context"quoted text"

Use this command to begin a new context for the dialog. When you use contexts, a list box is created in the context column and contains a list of the context strings you enter as quoted text. The width of the list box is determined by the selected font and the width of the longest context string. All the input-controls you define after this command are placed in the current context. When you use contexts, you must enter the first context command before defining any input-controls. Otherwise, the input-controls would have no context and will not be shown. When the user selects a context from the list box, the dialog changes to display that context's input controls.

Text

\text"quoted text"

Use this command to insert text in the dialog's prompt column. The text is justified according to the current justification, which defaults to left-justification. Text or prompts following this command will appear in the same row. To move to the next row, use the \space command, described below.

Horizontal Justification

\leftj

 Left-justify text within the prompt column. This is the default justification. Justification resets to left justification at the start of each new context.

\rightj

Right-justify text within the prompt column.

\centerj

Center-justify text within the prompt column.

Horizontal Indentation

\indentp

Indent all the following text to the current column.

\indentc#

Indent all the following text "#" characters from the left of the prompt column. The character width is determined by the size of the font, selected from the Options|Font menu as the dialog runs.

Other Backslash commands

\line

Use this command to insert a line (1 pixel high) that extends the width of the dialog, to separate groups of controls.

\space

Use this command to insert a blank line equal to the height of the current font.


Debugging your SysEx Dialogs

 If your SysEx Dialogs do not seem to do what you expect, the first thing to do is make sure your MIDI output port is set up correctly from the MIDI|Select MIDI Ports menu and verify that your cords are connected properly. A quick way to check that is to play a *.MID file using Window's Media Player application.

If everything seems to be set up correctly, verify that WinSysEx is sending any MIDI data to your synthesizer. To verify this, select Dialog|New to open the editor. Enter "Simple Test" as the caption. Type a simple MIDI message such as this program change message: C0|.SB("Channel",1,16d,1)-1 .SB("Program",0,127d,0). Click the "Test" button, adjust the controls, and send the MIDI data to see if the program has changed on your synthesizer. Chances are that you will find that the data is being sent.

At this point, the problem can be narrowed down to the input-controls, equations, checksums, or lack of checksums in your sysex dialog. From the main window menu, select MIDI|Analyzer. Run the dialog, send the data, and examine the MIDI messages in the analyzer window to find where the problem lies.


Syntax Errors

")" expected	A right parenthesis was expected
.SB, .CX, .ED, or .CB expected	An input-control statement was expected.
= expected on line	An equal sign was not found after a number in a combo box definition file
@ expected	An at sign @ was expected
Binary number is too long	A binary number is too long. The maximum length of a binary number is 32 digits.
Byte expected	A raw hex byte was expected.
Cannot extract number on line	The parser could not extract a number on a line in a combo box definition file
Combo Box filename not found in logged or WinSysEx directory	A combo box definition file was not found.
Comma expected	A comma was expected
Controls defined before the first \context command will not be displayed	You have defined the first "\context" command in the dialog after defining a control. The controls defined before the first context will not be displayed.
Data allocation error	Not enough memory was allocated for the data. If you ever see this error, please notify the author
Decimal number expected	A decimal digit (0-9) was expected
Default Check Box value must equal either Checked or Non-checked value	The default value you entered for a check box definition is not equal to either of the two possible values you entered
Duplicate identifier	You defined two @variables with the same name. Variable names must be unique
End of Checksum Expected "]"	Right bracket expected. This marks the end of a checksum calculation
Hex digit expected	A Hex digit (0-9, A-F) was expected
Hex number too long	A hexadecimal number is too long. The maximum length of a hex number is 8 digits
Identifier expected	A variable identifier was expected after an @ sign
Insufficient data	There isn't enough data to qualify as a system exclusive message
Invalid binary number	A digit in a binary number in invalid. Binary digits may only be 0 or 1
Number expected	A number was expected
Operator expected	An operator (ie. + - ..) was expected (see modifiers)
Prompt too long	The length of a quoted prompt is too long
Quoted string expected	A "quoted string" was expected
Range error. Default must be between Lo and Hi value	When defining an input-control, you entered invalid values
Range error	A number encountered in the data was outside of the acceptable range
Start of Checksum Expected "["	A right bracket was encountered but there is no matching left bracket. Checksum calculations must be enclosed in brackets and must not be nested
Unexpected end of data	The end of the text was reached, but the parser hadn't finished parsing the last statement
Unknown Identifier	The parser encountered a statement it doesn't understand


Contacting the author

Feel free to contact me through CompuServe [72617,132], the Internet dstrenz@rhc.win.net, or US Mail with questions and suggestions. For the quickest response, contact me through CompuServe mail and expect a reply within 24 hours.

Don Strenczewilk

72 Knapp Ave.

Rochester, NY 14609-1127

If you write a WSX file for your synthesizer or other MIDI device, please send it to me and I will forward it to anyone else who wants it. Similarly, before you write a WSX file for your synthesizer from scratch, check with me to see if I already have a WSX file that might help.

WinSysEx is produced by a member of the Association of Shareware Professionals (ASP). ASP wants to make sure that the shareware principle works for you. If you are unable to resolve a shareware-related problem with an ASP member by contacting the member directly, ASP may be able to help. The ASP Ombudsman can help you resolve a dispute or problem with an ASP member, but does not promise technical support for members' products. Please write to the ASP Ombudsman at 545 Grover Road, Muskegon, MI 49442-9427 or send a CompuServe message through Cmail to ASP Ombudsman 70007,3536.


Definition of Shareware

Shareware distribution gives users a chance to try software before buying it. If you try a Shareware program and continue using it, you are expected to register. Individual programs differ on details -- some request registration while others require it, some specify a maximum trial period. With registration, you get anything from the simple right to continue using the software to an updated program with printed manual.

Copyright laws apply to both Shareware and commercial software, and the copyright holder retains all rights, with a few specific exceptions as stated below. Shareware authors are accomplished programmers, just like commercial authors, and the programs are of comparable quality. (In Both cases, there are good programs and bad ones!) The main difference is in the method of distribution. The author specifically grants the right to copy and distribute the software, either to all and sundry or to a specific group. For example, some authors require written permission before a commercial disk vendor may copy their Shareware.

Shareware is a distribution method, not a type of software. You should find software that suits your needs and pocketbook, whether it's commercial or Shareware. The Shareware system makes fitting your needs easier, because you can try before you buy. And because the overhead is low, prices are low also. Shareware has the ultimate money-back guarantee -- if you don't use the product, you don't pay for it.

See Also

Disclaimer - Agreement

Registering

Order Form

Registering through CompuServe SWREG

Contacting the author


Disclaimer - Agreement

WinSysEx - © Copyright 1993 by Don Strenczewilk

Users of WinSysEx must accept this disclaimer of warranty: WinSysEx is supplied as is. The author disclaims all warranties, expressed or implied, including, without limitation, the warranties of merchantability and of fitness for any purpose. The author assumes no liability for damages, direct or consequential, which may result from the use of WinSysEx. WinSysEx is a "shareware program" and is provided at no charge to the user for evaluation. Feel free to share it with your friends, but please do not give it away altered or as part of another system. The essence of "user-supported" software is to provide personal computer users with quality software without high prices, and yet to provide incentive for programmers to continue to develop new products. If you find this program useful and find that you are using WinSysEx and continue to use WinSysEx after a reasonable trial period, you must make a registration payment of $39 to Rochester Heritage. The $39 registration fee will license one copy for use on any one computer at any one time. You must treat this software just like a book. An example is that this software may be used by any number of people and may be freely moved from one computer location to another, so long as there is no possibility of it being used at one location while it's being used at another. Just as a book cannot be read by two different persons at the same time.

Commercial users of WinSysEx must register and pay for their copies of WinSysEx within 30 days of first use or their license is withdrawn. Site-License arrangements may be made by contacting Rochester Heritage.

Anyone distributing WinSysEx for any kind of remuneration must first contact Rochester Heritage at the address below for authorization. This authorization will be automatically granted to distributors recognized by the (ASP) as adhering to its guidelines for shareware distributors, and such distributors may begin offering WinSysEx immediately (However Rochester Heritage must still be advised so that the distributor can be kept up-to-date with the latest version of WinSysEx.).

You are encouraged to pass a copy of WinSysEx along to your friends for evaluation. Please encourage them to register their copy if they find that they can use it. All registered users receive a copy of the latest version of the WinSysEx system.

See Also

Definition of Shareware

Registering

Order Form

Registering through CompuServe SWREG

Contacting the author


Registering

If you have a CompuServe account, you can register through their SWREG service. Otherwise, you can register by filling out an order form and sending it along with a check.

What You Get For Registering

•	When your order arrives, I will send your serial number immediately through CompuServe mail or the Internet to eliminate the opening and closing About dialogs.

•	A laser-printed manual and a disk containing the latest version of the program.

•	WSX source code files for all supported synths.

•	Unlimited support through CompuServe, the Internet and US Mail.

•	I will notify you whenever I release a major upgrade.

See Also

Definition of Shareware

Disclaimer - Agreement

Order Form

Registering through CompuServe SWREG

Contacting the author


Order Form
WinSysEx Order Form

Name:    ____________________________

Address: ____________________________

  ____________________________

  ____________________________

CompuServe UserID and/or Internet address: ________________________

ITEM                                   PRICE    UNITS   AMOUNT

WinSysEx                               $39.00   _____   ______

If you don't live in the U.S.,

Canada, or Mexico, add $5.00 for mailing.               ______

Sales Tax (New York State residents only)

County____________ Rate_______%            Tax:  ______

TOTAL:  ______

Select File|Print from the menu to print this order form,

and send the form and your payment to:

Rochester Heritage

72 Knapp Ave.

Rochester, NY 14609-1127

Include any comments or suggestions you have about the program.

Thank you very much for the order!


CompuServe SWREG
Ordering Through CompuServe

If you have a CompuServe account, you can order WinSysEx through their SWREG service. When you register through SWREG, CompuServe charges your account for the price of the program. The price of the program is $39.00. For shipping destinations outside the United States, Canada, and Mexico, there is an additional charge of $5.00 .

To register through SWREG:

1	Log on to CompuServe with your communication program.

2	Type GO SWREG at any ! prompt.

3	Follow the prompts to register a program.

4	When asked for the program identification number, enter 1458.

When CompuServe notifies me that you have registered I will send you a serial number through CMail to eliminate the opening and closing dialogs, and then process your order.

See Also

Definition of Shareware

Disclaimer - Agreement

Registering

Order Form

Contacting the author


Searching Dialogs

The Search dialog is launched from the Dialog|Search menu. Use it to search dialogs for text.


EdSrchDlgText
Here is where you type the text that you want to search for.


EdSrchDlgCaseSens
Check this box if you want to match the case of the text while searching for a match.


genericDlgOK
Push the OK button to begin the search. The search starts at the insertion point and continues until a match is found or the end of the text is reached. To search all the text type Ctrl-Home before launching the search dialog.


genericDlgCancel
Push the Cancel button or press the [Esc] key to cancel the dialog.


EdSrchDlgReplace
Here is where you type the text that you want to replace.


ReplaceAllOccur
Check the "All occurrences" check box if you want to replace all occurrences of the text from the insertion point to the end of the text.


PromptOnReplace
Check the "Prompt on replace" check box if you want be asked whether you want to replace each occurrence before it is replaced. When a match is found, the text is highlighted and a dialog box pops up.

Press the Yes button to replace the text.

Press No to continue the search without replacing the marked text.

Press Cancel to abandon the search/replace operation altogether.


gcaret
Insertion point

The insertion point shows where the text you type will appear. The insertion point moves when you type text, use arrow keys on the keyboard, typing text, or click the mouse in another location.


selecttext
To select text, drag the mouse over it or, using the keyboard, hold down the Shift key and press the cursor arrows.


gdrag
Drag Refers to dragging the mouse pointer while holding down the left mouse button at the same time.


Search|Find

Select this item from the Editor menu if you want to search for text in the MIDI Messages edit control. It pops up the Search dialog.


Search|Replace

Select this item from the Editor menu to search for and replace text in the MIDI Messages edit control. It pops up the Replace dialog.


EditReplaceOKBtn
Push the OK button to begin the search/replace. The search starts at the insertion point and continues until a match is found or the end of the text is reached. To search all the text hit Ctrl-Home before launching the search dialog.


The Editor Menu

Editor Menu

Edit Ini File	Launches NOTEPAD.EXE to edit a combo box data file. You can select the name of a file  in the MIDI Messages edit box to load that file into NOTEPAD. For example, select "DX100.INI" to edit it with NOTEPAD. If you do not select any text, NOTEPAD launches with an *.INI file matching the name of the current file. For example, if you are editing "DX100.WSX", NOTEPAD launches with "DX100.INI."

Show global vars	Shows you a list of global variables for reference.

Font	Select this item to change the editor font using Window's standard font dialog.

Edit Menu

Undo	Undoes the last edit.

Cut	Cuts the selected text and puts it in Window's clipboard. The keyboard shortcut for this is Shift-Del.

Copy	Select this item to copy the selected text to the clipboard. The keyboard shortcut for this is Ctrl-Ins.

Paste	Pastes text from the clipboard into the editor at the insertion point. The keyboard shortcut is Shift-Ins.

Delete	Deletes the selected text from the editor. The deleted text cannot be recovered.The keyboard shortcut for this is Del. Use Edit|Cut if you want to paste the text into another location.

Clear all	Select this if you want to clear all text from the editor.

Search Menu

Find

Replace

Next	Repeats the last search/replace operation from the current position of the insertion point Hot Key is F3

See also

Using the editor


SysexDlgHighlight color
Highlight color. Select the color to draw input-controls whose value is not set to the default. The highlight color helps you identify the controls that you have changed.


Navigating The Input Controls

Note that when you resize the dialog, a scroller appears on the right side of the dialog that you can use to scroll controls into view that are outside the viewing area.

Action	Keyboard	Mouse

Next	Down Arrow or Tab	Click on the control

Previous	Up arrow or Shift-Tab	Click on the previous control

Next Screen	Pg Dn	Click on the dialog scroller

Previous Screen	Pg Up	Click on the dialog scroller


Selecting Contexts

Mouse

To select a context with the mouse, double click on its name in this list.

Keyboard

To select a context with the keyboard, use the arrow keys to highlight it and type [Enter].

To change the keyboard focus from the context column to the control column, type [Tab].

To change the keyboard focus from the control column to the context column, press and hold the up arrow key


psrch_texttofind
Text to find This is where you type the text you want to find.


psrch_Beginbtn
Begin Search Click this button to search for the text. If matches are found, the dialog names are listed in the Dialogs where text was found list box.


psrch_srchwhere
Search Where?

Use these check boxes to specify where to search.

Input control prompts Check this box if you want to search input control prompts for the text. An input control prompt is the text that appears to the left of each input control.

Context text Check this box if you want to search context strings for the text. Not all dialogs have context strings. They appear on the left side of dialogs in a list box.

Source code Check this box if you want to search dialog source code for the text. This item is disabled for WSD files because they don't have any source code.


psrch_DialogListBox
Dialogs where text was found After you click the [Begin Search] button, the dialogs where matches are found are listed in this list box. Double-click one to select it in the main window's SysEx Dialogs list box.


psrch_ok
OK Click this button to close the search dialog. The dialog you select in the Dialogs where text was found list box is selected in the main windows' SysEx Dialogs list box. This button is disabled if you haven't made a selection from the Dialogs where text was found list box.


psrch_helpbtn
Help This button launches help for this dialog.


Up/Down Buttons

Use these buttons to reorder dialog captions and control state names in their lists. You can also move an item by clicking the right mouse button on it and selecting Up or Down from the pop up menu.


SysEx Dialogs List box

This box lists the captions of the SysEx dialogs in the files. You can double-click a caption to launch a dialog, or click the right mouse button on one to pop up a menu. For more information about SysEx dialogs, see Dialogs Menu and Running SysEx Dialogs.


Editing a Spin Control
Changing a Spin Control

Simply type a new value into the text box.

To raise the value, click the up arrow or type +.

To lower the value click the down arrow or type -.


Editing a text control

To edit a text control, simply type in the text.


The Main Window

Click on each item of this picture to see its purpose.


Toggling a Check Box

Mouse

To toggle a check box, click on it.

Keyboard

To toggle a check box, press the spacebar.


Using a Combo Box

Mouse

To drop down or close a combo box, click the down arrow

Click on and item to select it.

Keyboard

Press [Enter] to drop down or close a combo box.

Use the arrow keys to select a value.


Dialog Pop Up Menu

This menu pops up when you right click on the name of a dialog in the SysEx Dialogs list box:

Run

Send

Edit

Delete

Rename

Move up

Move down

Note: If the file is a WSD file, only the Run and Send items appear on the menu.


grightclick
Right click Means to click the right mouse button on an item.


Control State Pop Up Menu

This menu pops up when you right click on an item in the Control States list box:

Restore

Delete

Move up

Move down

Save as..

See Also

The Main Window

About WinSysEx files

Control States menu


gclipboard
Clipboard The clipboard is where Windows stores text and other objects. The objects can be copied and pasted to and from various Windows applications.


Dialog|Run
Dialog|Run Runs the highlighted SysEx dialog.


Dialog|Send
Dialog|Send Sends the dialog's MIDI messages data out the MIDI port.


Dialog|Edit
Dialog|Edit Launches the editor with the highlighted SysEx dialog.


Dialog|Delete
Dialog|Delete Delete the highlighted SysEx dialog.


Dialog|Rename
Dialog|Rename Rename the highlighted SysEx dialog.


Dialog|Move up
Dialog|Move up Moves the dialog up in the list.


Dialog|Move down
Dialog|Move down Moves the dialog down in the list.


Dialog|New
Dialog|New Creates a new dialog and launches the editor.


Dialog|Send All
Dialog|Send All Sends all the data in all SysEx dialogs in the current file out the MIDI port.


Dialog|Cascade
Dialog|Cascade Cascade the open SysEx dialog windows.


Dialog|Close all
Dialog|Close all Close all SysEx dialog windows.


Control State|Save as
Control State|Save as Saves the current input control settings. A dialog pops up to let you name the control state.


Control state|Restore
Control state|Restore Sets input-controls to the values saved in the highlighted control state.


Control state|Delete
Control state|Delete Delete the highlighted control state.


Control state|Move up
Control state|Move up Moves the highlighted control state up in the list.


Control state|Move down
Control state|Move down Moves the highlighted control state down in the list.


Typing numbers

A simple SysEx dialog consists only of numbers, such as: F0 41 10 42 12 40 00 7F 00 F7. You can enter numbers in hexadecimal, decimal, or binary format by typing h, d, or b after the last digit. If you do not specify the format, WinSysEx assumes you want a hexadecimal number. You must use upper case characters to enter the hexadecimal digits "A" through "F". Otherwise, WinSysEx cannot know whether "1d" should be interpreted as "1 decimal" or "1D hexadecimal."

See Also

Creating MIDI messages

Using Equations


More Examples

You can create any type of MIDI message with WinSysEx. The following tables show some common MIDI messages and examples of how to enter them into the editor.

Characteristics of system exclusive messages

·	System exclusive messages consist of a series of bytes.

·	The first byte in the series is F0h  (240d).

·	The last byte in the series is F7h  (247d).

·	The bytes in between must be in the range of 0h (0d) to 7Fh (127d).

System Exclusive Message Examples

; System exclusive message to reset a Roland Sound Canvas:

F0 41 10 42 12 40 00 7F 00 F7

;You can type as many MIDI messages as you want in the editor.

F0 41 10 42 12 40 00 7F 00 F7

F0 41 10 42 12 40 00 7F 42 F7

Examples of common MIDI channel messages.

Description	Example
Program Change	C0|.SB("Channel",1,16d,1)-1 .SB("Program",0,127d,0)
Volume	B0|.SB("Channel",1,16d,1)-1 07 .SB("Volume",0,127d,0)
Panpot	B0|.SB("Channel",1,16d,1)-1 0A .SB("Pan",-64d,64d,0)+64
Expression	B0|.SB("Channel",1,16d,1)-1 0B .SB("Expression",0,127d,0)
Hold1	B0|.SB("Channel",1,16d,1)-1 40 .CX("Hold1",0,127d,0)
Pitch bend	E0|.SB("Channel",1,16d,1)-1 @bend.SB("Bender", -8192d,8191d,0)+8192d&7F @bend+8192d>7&7F
Registered Parameter Messages.

These are expanded control change messages. They consist of 4 MIDI messages. This table describes some common RPN’s.

Description	Example
Set pitch bend sensitivity	B0|@ch.SB("Channel",1,16d,1)-1 65 00 B0|@ch-1 64 00 B0|@ch-1 06 .SB("Bend sensitivity",0,12d,0)  B0|@ch-1 26 0
Master fine tuning	B0|.SB("Channel",1,16d,1)-1 65 00 B0|@ch-1 64 01  B0|@ch-1 06 @ft.SB("Fine Tune", -8192d, 8191d, 0)+8192d>7&7F   B0|@ch-1 26 @ft+8192d&7F
Master coarse tuning	B0|@ch.SB("Channel",1,16d,1)-1 65 00  B0|@ch-1 64 02  B0|@ch-1 06 .SB("Coarse Tune", -24d, 24d, 0)+40>7&7F  B0|@ch-1 26 00
RPN Reset	B0|@ch.SB("Channel",1,16d,1)-1 65 7F  B0|@ch-1 64 7F B0|@ch-1 06 00 B0|@ch-1 26 00
Channel Mode Messages

This table describes some common General MIDI channel mode messages you are likely to use

Description	Example
All sounds off	B0|.SB("Channel",1,16d,1)-1 78 00
Reset all controllers	B0|.SB("Channel",1,16d,1)-1 79 00
All notes off	B0|.SB("Channel",1,16d,1)-1 7B 00
Omni off	B0|.SB("Channel",1,16d,1)-1 7C 00
Omni on	B0|.SB("Channel",1,16d,1)-1 7D 00