NEW programs for MKC MIDI keyboard controller! --------------------------------------------- (MKC controller homepage: www.geocities.com/jdpetkov/) What is this for? Using this MKCC2.HEX (for MKCC151.HEX see the APPENDIX at the end of text) file and a simple schematic change you may program at runtime keyboard's MIDI channel, Starting octave, Starting note (Transposition) and default Velocity value! This is possible due to PIC ability to store and hold a number of data bytes in its non-violative EEPROM memory. What to do? - First, you should change JP1 jumpes (as shown on schematic) with any kind of pushbutton. This button wil be called "Program button". - Second, you should download mkcc2.HEX file wich contains the new PIC program. - Third, you should burn this program into PIC. At this moment you keyboard is almost ready to work. Default settings are: MIDI channel : 1 (MIDI channel number range is 1..16) Starting octave: 4 (Octave number range is 1..11) Starting note : 41 (F-Fa, note number range is 0..127) Velocity value : 127(Velocity value range is 0..127) To adjust these values you should press Program button, and holding it down, press once or more times some of first (leftmost) 8 keys on your keyboard. The meaning of these keys is: Key1: MIDI channel -1 Key2: MIDI channel +1 Key3: Starting octave -1 Key4: Starting octave +1 Key5: Starting note -1 Key6: Starting note +1 Key7: Velocity -1 Key8: Velocity +1 Every parameter you change this way becomes default until you change it next way. You may experiment new values at runtime. The last change you make is memorized and remembered every time the keyboard is switched on. EXAMPLES: All examples consider that keyboard is connected to PC Joystick port and PC is on. In order to hear changes you make, proper software (MIDIkey, MIDImon, Cakewakl etc.) must run on the PC. You can download my 'midikey.exe' or M$ 'midimon.exe' from MKC controller homepage. During adjustements, every time when changing some setting, you will hear sound, generated thru current MIDI channel and having new settings. 1. You want to use your keyboard to generate percussive sounds: Percussive sounds are placed on MIDI channel #10 (GM - General MIDI). This means you have to change you keyboard's MIDI channel to #10. What to do: - press and hold down keyboard's Program button - press Key2 as many times as needed to go to MIDI channel#10. - release Program button 2. You want to transpose your keyboard a octave down. What to do: - press and hold down keyboard's Program button - press Key3 once - release Program button 3. Your keyboard first key is C (Do) starting while controller's default starting note is #41 (F-Fa), so you want to adjust controller's starting note to C(Do). What to do: - press and hold down keyboard's Program button - press Key5 5 (five) times to go to lower C(Do) - MIDI note #36 OR press Key6 7 (seven) times to go to upper C(Do) - MIDI note #47 - release Program button 4. You want to change default keyboard Velocity. What to do: - press and hold down keyboard's Program button - press Key7 as many times as needed to decrease Velocity OR press Key8 as many times as needed to increase Velocity - release Program button NOTES: MIDI channel and Velocity are open (linear) range settings. When increasing such setting you reach it's maximum value, next increase will no take effect. When decreasing such settingthe you reach it's minimal value, next decrease will no take effect. Starting octave and Starting note are closed (circular) range settings. When increasing such setting you reach it's maximum value, next increase will set it to range staring value (minimal value). When decreasing such settingthe you reach it's minimal value, next decrease will set it to range ending value (maximal value). --------- APPENDIX: --------- Originally file MKCC2.HEX was designed to work with ANY souncard. Some of the cheaper soundcards (mine Yamaha for example) ocasionally miss 'NoteOff' message generated by controller. This causes 'hanging notes' (notes that continue after the proper key was released). To avoid this effect I designed MKCC2.HEX to generate 'AllNotesOff' event after the last key is released. This could cause problems on systems using more than one keyboard controllers working on the same MIDI channel. Let's imagine that user plays on two-keyboards on the same MIDI channel and the second of them is MKCC2. If user is holding an accord on the first keyboard and at the same time press and release one or more keys on MKCC, this would cause breaking accord held on the first keyboard. There were demands for a version of MKCC that doesn't generate 'AllNotesOff' during playing. Such file has been added to this ZIP file (MKCC151.HEX). It supports ALL features of MKCC2.HEX mentioned above, excluding the 'AllNotesOff' message after last key releasing. Jordan D.Petkov, j.d.petkov@mailcity.com www.geocities.com/jdpetkov