> --- In xl7@yahoogroups.com, erik_magrini@B... wrote: > If you can send bank select messages, you can send MSB/LSB values > too (same thing, different name from what I understand). As for > the implementation, I honestly have no idea. I'm guessing Steve > can help us out here? Anyone know what the bank selects are for > the various ROMs? Thanks for the opportunity to feel useful again. (At least I hope this is useful.) I will back up quite a bit to get everyone on board who wants to be on board. Apologies to those who know this and/or have no use for this. It is OK to skip to part 2. It should stand on its own. BTW: robotchas is right. B=Byte. (Bit = Binary Digit, that is 1 or 0) ===================================================================== PREVIEW: I. LSB/MSB A. Basics of Bits, Bytes and Hexidecimal numbers B. MIDI numbers: commands and data C. THE BOTTOM LINE (see part 2: Selecting E-MU presets) ===================================================================== I. LSB/MSB A. Basics of Bits, Bytes and Hexidecimal numbers A byte is a number represented by 8 bits. 0 0 0 0 0 0 0 0 = 00 in hexidecimal (base 16) and decimal (base 10) 0 1 1 1 1 1 1 1 = 7F in hex; 127 in decimal 1 0 0 0 0 0 0 0 = 80h 128d 1 1 1 1 1 1 1 1 = FFh 255d --the highest number that can be represented by an 8-bit byte is 255. 256 = 2 hundreds + 5 tens + 6 ones or 2 x 10^2 (2 x 10x10) + 5 x 10^1 (5 x 10) + 6 x 10^0 (6 x 1) 1001b = 09h 09d (BTW, 1/2 byte = nybble) 1 x 2^3 (1 x 2x2x2) = 08 0 x 2^2 (0 x 2x2) = 00 0 x 2^1 (0 x 2) = 00 1 x 2^0 (1 x 1) = 1 --the highest number that can be represented by an 4-bit nybble is 15 (0Fh) HEX: 0 1 2 3 4 5 6 7 8 9 A B C D E F ===================================================================== B. MIDI numbers: commands and data MIDI commands are 80h - FFh (128-255) 80 -> 8F signify note-off commands --here, the 8 is the most significant NYBBLE (MSN) --the least significant NYBBLE (LSN) represents the midi channel [- 1] --the most significant NYBBLE (MSN) represents the command 90 -> 9F signify note-on commands Since 80 - FF are commands, data can only go from 00 to 7F. Hence, 127 is the highest value of a MIDI data byte. 92 40 7F tells anyone receiving MIDI data the following: 9 (MSN) "HEY, listen up! [80 or higher] a note-on is coming!" 2 (LSN) "It's on channel 3" 40 = the note number (in theory note numbers can go from 00-7F) 7f = velocity For On/Off MIDI commands 00-3f = off, 40-7f = 0n. Hence if you have a sequence whose note on values are all 64 (40h), it was made on a non-velocity sensitive synth. PRESET CHANGE STUFF: C0 -> CF signify program/patch/preset change (1 data byte follows) CA 20 tells the MIDI chain: "HEY, change the patch on channel 11 to patch[preset] 32!" --20h = 2 x 16 = 32 --20h = C-1 on a synth that goes from A-1 to H-8 --20h = 3-0 on a synth that goes from 1-1 to 8-8 Thus, with Program/Patch/Preset Change commands, you can only select 128 presets (from 00->7F, 0-127). ===================================================================== C. THE BOTTOM LINE (see part 2: Selecting E-MU presets)
Message
LSB/MSB & Bank Switching - part 1: bits and bytes
2003-12-03 by steve_the_composer
Attachments
- No local attachments were found for this message.