11
When you consider that every effect can be modulated with up to 16 parameters, and that effects can also be sent
into each other (Chorus send to Reverb Depth for example), then you get the picture of the mind-blowing amount of
DSP that this card has. We shall go into the effects, their routing and bussing options later in this guide.
NRPN’S – Non registered parameter numbers
Think of these as additional controller types. You send out an NRPN controller number MSB (known as the Most
Significant Byte), followed by the number of the parameter you wish to control (E.G 24 = Drum Pitch Coarse).
Followed by the NRPN LSB (Least significant byte) which for example could be 38 = snare drum. Followed by the
data value controller number (CC#6) and give it a value of 127 (maximum value for all NRPN and controllers is 127
(7 bit). If this is too quick and loose a description, then it is intended to be, as the mission of this book is not to explain
MIDI in great depth, but to cover the workings and methods of working with the SW1000XG.
Needless to say, the SW1000XG works extensively with NRPN data, which again when mastered can bear great
fruits.
This is covered again, in great depth in the XG Guidebook mentioned earlier.
The BIG ONE..SYSEX (System Exclusive Data)
Known to reduce grown men, and hardened MIDI programmers to jelly, sysex is a powerful friend when mastered. It
forms the heart of all devices and is the one set of parameters that when a device is sent sysex, no other device
(unless programmed to do so) will understand. This is why sysex is such a powerful weapon for XG.
Every manufacturer has a sysex ID number. These are set out by the MIDI Manufacturers Association, and as
system exclusive works in the Hexadecimal form (Base 16 for counting as opposed to your standard base 10), we
will use HEX values from now on for all sysex notation.
Yamaha’s value is 43H, and as you will see. This is one of a few sysex numbers that you will see a lot more of. (43H
= 43 Hex)
The world of sysex is very daunting at first. We have all been though it here at Yamaha, and once you have grasped
the main concepts it is a very rewarding way of working.
Before we go into some typed examples we will try to explain the fundamentals of SYSEX data.
SYSEX is a way of talking to the SW1000XG at one of its most basic levels. The SW1000XG is a computer, and to
talk to a computer you need to learn how to program it. As with computers, application packages are designed to
help make things easier to use, and the excellent XGEdit by Gary Gregson, is one such program. We shall go into
much more detail on XGEdit later in this guide, if however you wish to modify things at a real base level then sysex is
the way to do it.
Sysex is comprised of a series of data bytes, they have a specific order and mean specific things when typed in that
order. When typed in incorrectly they will either do nothing at all or will give an unexpected result.
If you think as we said, of the SW1000XG as a computer, then as any programmer will know, computers work based
upon the operating system code that they have embedded or loaded into them. A computer will have an amount of
memory dedicated to this function, and the locations within this are known as memory addresses. Sysex allows you
to feed data into these memory address slots by giving you the memory areas (that complex bit in the back of the
user manual) that each parameter lives in. This is a simplified way of thinking about it, but it works!
The following data bytes are as we mentioned in what is known as Hexadecimal. This is a 2 byte alphanumeric
format which basically is a number anywhere between 0 and 255 (e.g. 00 = 00 OA=10 7F= 127).
To manually edit a parameter using sysex you should familiarise yourself with the way in which your sequencer of
choice or application allows you to do this. It is then just a case of typing by hand the data in. The way in which data
is entered using the sysex editor or event list editor in your sequencer (more of which is discussed later) can be
shown by the following example.
F0,43,10,4c,02,01,00,7f,f7
Some editors require a ‘comma’ between hex values, some do not. Some require you to enter with the letter ‘H’ after
the value denoting a hex value, some do not. It is up to you to investigate how your specific software works.
Anyway, a breakdown of the above string is as follows.
The first data byte (F0) is known as the start of sysex, all sysex will begin with F0
Byte 2 (43) is the Yamaha ID code
Byte 3 (10) is the device number for the SW1000XG by default
Byte 4 (4C) is the XG native control parameter (other devices attached to the SW1000XG by the PLG socket
may have a different control byte, for example the PLG150-AN responds to 5C for it’s control byte)
The last byte (F7) is always F7. This indicates the end of the sysex stream