boops Posted September 22, 2009 Report Share Posted September 22, 2009 After i 've finished a stereo sid ,a fm and the midicv MB;hi i 've planed to build a surface control to replace a roland mpg 80 (rare and very expensive around 1000 euros) to programming my mks 80 roland...two solutions:1_buy "the interpreter"a little box who convert the midi CC in 62 octets sysex long (cost around 90 euros) +a midibox 64 with a special front panel with each fonction in midi CC .2_ make a custom app for a midibox64 +special panel ... cheaper and less connections( wallwart ,midi cable),etc.but,for the moment i've just compil some lines for lcd,filter,outng option luckly who work fine...how can i programm this new app..there are these controls: 0-127, on off,and control for 3 choice or four choices(eg lfo tri ,saw,square ,random)i 've got the midi implentation of the mks (62 octets sysex) i don't know where begin in this custom APP ???.thanks for your light ,regards;-) Quote Link to comment Share on other sites More sharing options...
julienvoirin Posted September 22, 2009 Report Share Posted September 22, 2009 I can help you out, I've thought to the same device for a Matrix 1000 programmer :Pexemple : /////////////////////////////////////////////////////////////////////////////// This function is called by MIOS when an button has been toggled// pin_value is 1 when button released, and 0 when button pressed/////////////////////////////////////////////////////////////////////////////void DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) __wparam{#if 1 // only for debugging - remove this (or change "#if 1" to "#if 0") in a common application! DEBUG_MSG_SendHeader(); DEBUG_MSG_SendCString("Button: "); DEBUG_MSG_SendBCD3(pin); DEBUG_MSG_SendChar(' '); DEBUG_MSG_SendCString(pin_value ? "depressed" : "pressed"); DEBUG_MSG_SendFooter();#endif // a button has been pressed, send Note at channel 1 MIOS_MIDI_BeginStream(); MIOS_MIDI_TxBufferPut(0x90); // Note at channel 1 MIOS_MIDI_TxBufferPut(pin); // pin number corresponds to note number MIOS_MIDI_TxBufferPut(pin_value ? 0x00 : 0x7f); // buttons are high-active MIOS_MIDI_EndStream();case 0 :if (pin-value = 0){MIOS_MIDI_TxBufferPut(message SysEx);// et allumage de Led : MIOS_DOUT_PinSet(unsigned char pin, unsigned char value);}else{faire une truc}}case 1 :etc ../////////////////////////////////////////////////////////////////////////////// This function is called by MIOS when an encoder has been moved// incrementer is positive when encoder has been turned clockwise, else// it is negative/////////////////////////////////////////////////////////////////////////////void ENC_NotifyChange(unsigned char encoder, char incrementer) __wparam{}/////////////////////////////////////////////////////////////////////////////// This function is called by MIOS when a pot has been moved/////////////////////////////////////////////////////////////////////////////void AIN_NotifyChange(unsigned char pin, unsigned int pin_value) __wparam{switch (pin) {MIOS_MIDI_BeginStream();case 0 : //potard 0, soit AIN1 pin0 // a pot has been moved, send CC# or SySex<pin-number> at channel 1 MIOS_MIDI_TxBufferPut(0xb0); // CC at channel 1 MIOS_MIDI_TxBufferPut(0x00); // pin number corresponds to CC number MIOS_MIDI_TxBufferPut(pin_value); or MIOS_MIDI_TxBufferPut(message sysex + pin_value)); // don't send 10bit pin_value, but 7bit valuecase 1 :etc .... MIOS_MIDI_EndStream(); // notify display handler in DISPLAY_Tick() that AIN value has changed last_ain_pin = pin; app_flags.DISPLAY_UPDATE_REQ = 1;} Quote Link to comment Share on other sites More sharing options...
boops Posted September 23, 2009 Author Report Share Posted September 23, 2009 thanks a lot ,i understand the general idea...each case..;button,fader,pot,encoder..now i have to detail each info you gave me et ca c'est pas gagné!!!!...merci Monsieur Quote Link to comment Share on other sites More sharing options...
boops Posted October 16, 2009 Author Report Share Posted October 16, 2009 After a few days: ;)Here is the sysex format used:Each message consist of 10 bytesRemember All here is in hexadecimal values F0 41 36 0F 20 (variable A.....20=tone or 30=patch) (variabel B parameter select) 01 (variabel C value of parameter) F7 F0 41 36 0F 20 (XX) (XX) 01 (XX) F7 All together = 10 bytes there are 48 knobs for tone edit (variable A....20=tone)there are 16 knobs for patch edit (variable A....30=patch) variabel A can either be 20hex or 30hex only 2 possibilitiesvariabel B can be from 00hex (00dec) to 30hex (48dec) when variable A is 20hex (tone edit)variabel B can be from 00hex (00dec) to 10hex (16dec) when variable A is 20hex (patch edit)variabel C is depending on how many values there is in the different parameters (tone edits or patch edits) The difference from a normal midibox is that the strings are longer and have more variablesI l have to change the firmware to support the 3 variables and make these new meta events .....Who can explain mefor that ,an example..please below a part of the midi implantation..thanksHere are the different values for each pot/switch: All values are in decimal tone edit 1=0-100 2=0-100 3=4 position 4=0-100 5=0-100 6=0-100 7=0-100 8=3 position 9=2 position10=0-10011=3 position12=0-10013=0-10014=2 position15=3 position16=pot 17=4 position18=3 position19=3 position20=pot21=0-10022=4 position23=0-10024=0-10025=0-10026=0-10027=2 position28=2 position29=0-10030=0-10031=0-10032=0-100 33=0-10034=0-10035=0-10036=2 position37=2 position38=0-10039=0-10040=0-10041=0-10042=0-10043=2 position44=0-10045=0-10046=0-10047=0-10048=0-100 Patch edit 49=4 position50=pot51=0-10052=11-8853=5 position54=0-10055=0-10056=3 position57=0-10058=0-10059=3 position60=3 position61=0-10062=2 position63=0-10064=not used mks midi implant.doc Quote Link to comment Share on other sites More sharing options...
boops Posted October 18, 2009 Author Report Share Posted October 18, 2009 good news..the file for a mb64 ,mpg 80 for all the mks 80 tone and patch controls is ready,just i have to try it in a few days...i will let news... Thanks TK(again )and Rasmus,a real good guy:-)pm me if you want it..wait a fews days please,for test..best regards Boop's Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.