

 

 
 
  
 
  
 
  
 
  

 

 
|
Sysex Calculator
Here's a Visual Basic program I wrote to calculate the checksum in sysex messages.
It also has a built in hex converter, and you can copy the sysex into your PC sequencer.
It's written in 16-bit code, so it should run on just about any Windows PC.
Just enter your sysex message, type ?? where the checksum belongs, and all will be revealed!
Click here to download the Sysex Checksum Calculator (just 14K).
This program uses a Microsoft library file called VBRUN300.DLL - if you don't already have a copy in your Windows System folder, you can download it here (243K).
Hex Numbers
Numbers can be represented in different ways.
The decimal system is widely used, and counting looks like this:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Computers deal in binary numbers 0 and 1 only, and for convenience these are grouped in a hexadecimal (or hex) system.
This system has 16 different digits before you "carry the one".
The 16 digits are 0 to 9, then letters A to F, so counting looks like this:
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 and so on.
Hex numbers are usually indicated with a small "h", so 14h means 1 x 16 + 4 (20 in decimal).
My SysEx calculator here has a built in decimal/hex converter.
MIDI data falls in the range 0 to 127 (MIDI status values are in the range 128 to 255).
Here's a table showing decimal and hex values for MIDI data:
| decimal to hex |
| 0 = 00h |
16 = 10h |
32 = 20h |
48 = 30h |
64 = 40h |
80 = 50h |
96 = 60h |
112 = 70h |
| 1 = 01h |
17 = 11h |
33 = 21h |
49 = 31h |
65 = 41h |
81 = 51h |
97 = 61h |
113 = 71h |
| 2 = 02h |
18 = 12h |
34 = 22h |
50 = 32h |
66 = 42h |
82 = 52h |
98 = 62h |
114 = 72h |
| 3 = 03h |
19 = 13h |
35 = 23h |
51 = 33h |
67 = 43h |
83 = 53h |
99 = 63h |
115 = 73h |
| 4 = 04h |
20 = 14h |
36 = 24h |
52 = 34h |
68 = 44h |
84 = 54h |
100 = 64h |
116 = 74h |
| 5 = 05h |
21 = 15h |
37 = 25h |
53 = 35h |
69 = 45h |
85 = 55h |
101 = 65h |
117 = 75h |
| 6 = 06h |
22 = 16h |
38 = 26h |
54 = 36h |
70 = 46h |
86 = 56h |
102 = 66h |
118 = 76h |
| 7 = 07h |
23 = 17h |
39 = 27h |
55 = 37h |
71 = 47h |
87 = 57h |
103 = 67h |
119 = 77h |
| 8 = 08h |
24 = 18h |
40 = 28h |
56 = 38h |
72 = 48h |
88 = 58h |
104 = 68h |
120 = 78h |
| 9 = 09h |
25 = 19h |
41 = 29h |
57 = 39h |
73 = 49h |
89 = 59h |
105 = 69h |
121 = 79h |
| 10 = 0Ah |
26 = 1Ah |
42 = 2Ah |
58 = 3Ah |
74 = 4Ah |
90 = 5Ah |
106 = 6Ah |
122 = 7Ah |
| 11 = 0Bh |
27 = 1Bh |
43 = 2Bh |
59 = 3Bh |
75 = 4Bh |
91 = 5Bh |
107 = 6Bh |
123 = 7Bh |
| 12 = 0Ch |
28 = 1Ch |
44 = 2Ch |
60 = 3Ch |
76 = 4Ch |
92 = 5Ch |
108 = 6Ch |
124 = 7Ch |
| 13 = 0Dh |
29 = 1Dh |
45 = 2Dh |
61 = 3Dh |
77 = 4Dh |
93 = 5Dh |
109 = 6Dh |
125 = 7Dh |
| 14 = 0Eh |
30 = 1Eh |
46 = 2Eh |
62 = 3Eh |
78 = 4Eh |
94 = 5Eh |
110 = 6Eh |
126 = 7Eh |
| 15 = 0Fh |
31 = 1Fh |
47 = 2Fh |
63 = 3Fh |
79 = 4Fh |
95 = 5Fh |
111 = 6Fh |
127 = 7Fh |
|
Subtract 1 from channel and patch numbers
MIDI channels are numbered from 1 to 16, however, if you compose your own MIDI messages, these channels are actually sent as numbers 0 to 15 (or 0 to F in hex).
For example, MIDI channel 7 would appear in a MIDI message as 6, one number lower.
The same applies to patch numbers.
These are displayed on the JV/XP synths as 001 to 128, but in MIDI messages are sent as programs 0 to 127 (or 00 to 7F in hex).
Bank Numbers
The JV/XP synths use banks and program numbers to select performances, patches and rhythm sets.
MIDI banks are selected with 2 controller messages: "msb" is MIDI controller 0, and "lsb" is MIDI controller 32.
Patches are not changed until a MIDI program message is sent.
Some sequencers combine the two bank numbers so banks can be selected with a single number.
This is simply "msb" x 128 + "lsb".
Both types of numbers are shown below.
| Sound Selection |
MIDI Bank msb,lsb (number) |
MIDI Program |
| User |
Patch 1 - 128 Performance 1 - 32 Rhythm Set 1 - 2 |
80,0 (10240) |
0 - 127 0 - 31 0 - 1 |
| Preset A |
Patch 1 - 128 Performance 1 - 32 Rhythm Set 1 - 2 |
81,0 (10368) |
0 - 127 0 - 31 0 - 1 |
| Preset B |
Patch 1 - 128 Performance 1 - 32 Rhythm Set 1 - 2 |
81,1 (10369) |
0 - 127 0 - 31 0 - 1 |
| Preset C |
Patch 1 - 128 Rhythm Set 1 - 2 |
81,2 (10370) |
0 - 127 0 - 1 |
| Preset D |
Patch 1 - 128 Rhythm Set 1 - 2 |
81,3 (10371) |
0 - 127 0 - 1 |
| Preset E |
Patch 1 - 128 Rhythm Set 1 - 2 |
81,4 (10372) |
0 - 127 0 - 1 |
| Data Card |
Patch 1 - 128 Rhythm Set 1 - 2 |
82,0 (10496) |
0 - 127 0 - 1 |
| PCM Card |
Patch 1 - 128 Rhythm Set 1 - 2 |
83,0 (10624) |
0 - 127 0 - 1 |
Expansion Slot A (or 1st inbuilt card) |
Patch 1 - 128 Rhythm Set 1 - 128 Patch 129 - 256 |
84,0 (10752) 84,0 (10752) 84,1 (10753) |
0 - 127 0 - 127 0 - 127 |
Expansion Slot B (or 2nd inbuilt card) |
Patch 1 - 128 Rhythm Set 1 - 128 Patch 129 - 256 |
84,2 (10754) 84,2 (10754) 84,3 (10755) |
0 - 127 0 - 127 0 - 127 |
Expansion Slot C (or 3rd inbuilt card) |
Patch 1 - 128 Rhythm Set 1 - 128 Patch 129 - 256 |
84,4 (10756) 84,4 (10756) 84,5 (10757) |
0 - 127 0 - 127 0 - 127 |
| Expansion Slot D |
Patch 1 - 128 Rhythm Set 1 - 128 Patch 129 - 256 |
84,6 (10758) 84,6 (10758) 84,7 (10759) |
0 - 127 0 - 127 0 - 127 |
| ... etc ... |
| Expansion Slot H |
Patch 1 - 128 Rhythm Set 1 - 128 Patch 129 - 256 |
84,14 (10766) 84,14 (10766) 84,15 (10767) |
0 - 127 0 - 127 0 - 127 |
Manuals
Information on these pages was obtained from these documents, supplied on the JV-1010 CR-ROM:
|