While writting another program I needed to do a lot of number conversion, so I wrote this conversion application.
It proved so usefull that I still use it a lot now, so thought I might share it.
Just type a number in one the various boxes and it will convert as you type.
There are many views about what octave middle C is (note 60). I have opted for C4 = 60 as that is what Roland and Yamaha use.
14 Bit Midi Numbers
As data in Midi System Exclusive messages must be less than 80H (hex), the biggest number in a byte is 7FH (127).
(bits 0 to 6 are used and bit 7 is always 0)
Combining 2 bytes still means that each of them has to be less than 80H so the max number in two bytes is 7F7F.
so when a number goes above 80H (127) the 1 in bit 7 is moved to bit 0 in the next byte.
0000 0000 0111 1111 = 127 (007F 14 bit)
0000 0001 0000 0000 = 128 (0100 14 bit) instead of 0000 0000 1000 0000 (0080)
0000 0001 0000 0001 = 129 (0101 14 bit)
So 7F7F 14bit number is really 3FFF 16 bit or 16,383 decimal.
I don't know about you, but I find this confusing, so this program will calculate the 14bit value for you.
That is, the lowest 7 bits are placed in the low byte and the next 7 bits go to the high byte.
The Binary value displayed is a 16 bit number so to see a 14 bit Midi value you need to take the 9 bits on the left and shift them to the left of the '-' .
You can enter the decimal value of the two bytes in the 14bit number
The only other slightly tricky bit is the Roland checksum calculation.
To calculate the Roland chcksum take all the bytes from the 4 byte address after the command byte (usually 12H)
up to the last data byte
You can use copy and past from MidiOx or the Roland editors for some idea of the sysex messages and
change them to something useful.
F0 42 10 00 6B 12 01 00 00 23 00 1C 40 F7
F0 ..... F7 system exclusive
10 Device ID
00 6B Fantom S (FanX and also FanXR)
12 Command (Transmit data DT1)
01 00 00 23 Address (Rhythm Pattern Style)
00 1C Data (In this case 2 bytes)
40 The check sum
Like the other programs here it is donation ware. Please help support this software.
I have used the program for some time now, but that doesn't mean there won't be a bug in it somewhere.
Let me know if you have any problems.
Feel free to suggest any improvements you think might be usefull.