macsaif Posted June 26, 2018 Report Share Posted June 26, 2018 Hello, is there any example how to transform and forward received midi messages? I will use Midibox KB form serving of 2 Fatar keybeds. This board will send The info on MidiCH 1 - Upper keybed, Midich 4 - Lower keybed. It will send also SUSTAIN, EXPREESSION, MODWHEEL, PITCHBEND values. I want to use the second board (Midibox NG)to transform the received information like: Key transpose (Octave +1, +2, -1, -2, 0) Velocity MAP - transforming of velocity values based on the velocity MAPs Mapping (CH1 to CH1, CH4 to CH4), (CH1 to CH4, CH4 to CH1), (CH1 to CH1, CH4 to CH2), layering(CH1 to CH1, CH4 to CH4 and CH4), splitting (CH1 to CH1, CH4 to CH3low, CH2high), etc Mapping of Modwheel and Pitchbend (CH1 to CH1), (CH1 to CH4), (CH1 to CH1 and CH4) This bourd should serve all the pots and Leds/buttons and the patch memory, but the first step to do the Midi mapping function. Is there anybody with some experience with application of this function? Thank you in advance! Frank Quote Link to comment Share on other sites More sharing options...
Zam Posted June 26, 2018 Report Share Posted June 26, 2018 (edited) Hello Frank NG offer midi router, but it seem it's not enough for your need You should then use event sender/receiver to format/forward midi event, in addition with conditional definition you can flip or select different midi mapping depending of some buttons status e.g for all notes from ch1 to ch4 if button 1 is pressed (simplified definitions) event_receiver id=1 fwd_id=sender:1 type=noteon key=all chn=1 if_equal=button:1:127 event_sender id=1 type=noteon key=all chn=4 event_button id=1 range=0:127 button_mode=toggle Best Zam Edited June 26, 2018 by Zam Quote Link to comment Share on other sites More sharing options...
macsaif Posted June 26, 2018 Author Report Share Posted June 26, 2018 How to implement Transpose and velocity map? Do you have any suggestions? Quote Link to comment Share on other sites More sharing options...
Zam Posted June 26, 2018 Report Share Posted June 26, 2018 I'm not used to keyboard with MB_NG but there is kb_transpose= and kb_velocity_map= You can define multiples KB event id (same hw_id), with different map, then select the proper event with a button (if_equal=) Best Zam Quote Link to comment Share on other sites More sharing options...
macsaif Posted June 26, 2018 Author Report Share Posted June 26, 2018 A know these functions because I am running a Midibox KB however now I have to solve the transpose and velocity map as midi router, it means there will be not used the KB function just the receiver and sender. Somehow I have to solve for example...if I receive NoteOn 12 than the sender will send NoteOn 24 (Transpose +12), etc. The same for velocity values Quote Link to comment Share on other sites More sharing options...
Zam Posted June 27, 2018 Report Share Posted June 27, 2018 yes you use 2 core... KB+NG what about KB remote from NG for those particular function ? I mean a button at NG that send CC, nrpn or sysex to KB core that flip/change those functions (with dummy led or button receiver that handle the status, used as conditional like I explain before) Right now I don't see how to format note transpose at NG without a keyboard directly hooked to it (with functions named below) Best Zam Quote Link to comment Share on other sites More sharing options...
macsaif Posted June 27, 2018 Author Report Share Posted June 27, 2018 Hello, it was my first ide, however I do not know what Sysex messages I have to send to Midibox NG to change these parameters (Transpose, Break is Make, Fastest and Slowest parameters, Assigned Midi Channel to Key 1 and Key 2). Is there any manual for that or anybody who can help with it? My previous post about that: http://midibox.org/forums/topic/20759-starting-up-the-dual-manual-organ/?page=3 Velocity MAP can not be solved however maybe It is possible to solve in NG. Lets see! Frank Quote Link to comment Share on other sites More sharing options...
Zam Posted June 27, 2018 Report Share Posted June 27, 2018 It's up to you to define the event type you want to use as a trig for other event. The idea is to have different event activated depending of button status or external midi, it work. Now for transpose (in a NG router) I maybe just find something: receiver with note=all and use_key_number=1 to process the note n° range= have to be a map like (for 1octave transpose) 0:11 11:23 23:31 etc... You can also use a button that set pitchbend to different fixed value? Best Zam Quote Link to comment Share on other sites More sharing options...
macsaif Posted June 27, 2018 Author Report Share Posted June 27, 2018 It is not a problem to define the event type to trig the other event, I will figure out. You have mentioned that there is a possibility to change the predefined values in Midibox KB via SYSEX. I think It will be the best solution for me. Maybe in that case I will change my concept And the Midibox KB will be connected directly to the sound module. Than Midibox NG will be connected to the KB module to change parameters via SYSEX. Other evens coming from NG (CC values, PCH values) will be forwarded by KB directly to the sound module. I think there is an integrated Midi route in the KB. The question is how to change predefined parameters of the Midibox KB via SYSEX - I have not found any literature or example! Frank Quote Link to comment Share on other sites More sharing options...
Zam Posted June 27, 2018 Report Share Posted June 27, 2018 Ok, my bad, I just look at MB_KB manual, I was thinking it use the same .NGC .NGR text event definition but it's only configurable via mios studio terminal. Maybe its possible from other midi device (like NG) to trick sysex stream to enter and send data/config bit like mios studio ? Best Zam Quote Link to comment Share on other sites More sharing options...
macsaif Posted June 27, 2018 Author Report Share Posted June 27, 2018 FanomXR has written me about this possibility however till now he jas not replied me how can I solve it, what kind of Sysex I have to send to KB. Frank Quote Link to comment Share on other sites More sharing options...
Zam Posted June 27, 2018 Report Share Posted June 27, 2018 You can monitor in mios studio what output to the core when you send a specific command via the terminal, you can try to copy this stream and send it with NG core in a button event type=sysex stream="..." Best Zam Quote Link to comment Share on other sites More sharing options...
macsaif Posted June 29, 2018 Author Report Share Posted June 29, 2018 Some basec question, I have started up the STM32F4 based board, NG installed... Can you help how to configure the connected boards? 1x AINSER64, 1x DIO MATRIX (leds and buttons connected - see enclosed file, 1x MIDI board, 16DOUT via J10A and J10B, 2x AIN via J5A The main question is how to set shift registers of DIOMATRIX and AINSER module and then which HW ID will belong to which button, LED, POT? NG concept.pdf Quote Link to comment Share on other sites More sharing options...
Zam Posted June 29, 2018 Report Share Posted June 29, 2018 Hello Frank Everything is well documented at the NG user manual, specifically .NGC configuration file info for matrix and AINSER, with examples For HW id, first pin first SR is ID one, second pin first SR is ID 2....first pin second SR is ID 9 etc... You can monitor SR nb in debug mode. Best Zam Quote Link to comment Share on other sites More sharing options...
macsaif Posted June 29, 2018 Author Report Share Posted June 29, 2018 I did a basic configuration of AINSER module however nothing happened. I think I have to check it in debug mode! I think the AINSER should be not a big problem. I am not sure how to configure the DIO MATRIX with connected LEDS and BUTTONS to the same module as shown in the example drawing for DIO MATRIX module. Frank Quote Link to comment Share on other sites More sharing options...
macsaif Posted June 29, 2018 Author Report Share Posted June 29, 2018 The AINSER module is configured. I had to set cs=1 because I wired the module as the 2nd module. One MX is not working but it is HW peoblem, tomorrow I will solve it. I have tried to configure the DioMatrix module however I think it will be more dificult issue! If somebody has expeeience with it, please send me a post. Thank you in advance! Frank Quote Link to comment Share on other sites More sharing options...
macsaif Posted July 2, 2018 Author Report Share Posted July 2, 2018 Hello, Finally, all the pots and buttons are working. I have checked the leds too (they should work because I have tried the fwd_id function however it sends the binary value for 8 LEDS). I need to address each LED separately in the matrix. Which command or procedure I can use? Basically these tasks and questions are remaining(hopefuly): Make the control logic of the controller (selecting banks, assigning the knobs and buttons to Midi ch1 or 4 depending on button status, assigning of pots to CC depending on button status, sending PCH values, etc.) – probably in .NGR file Is it possible to assign a LED to a Button or CC status? How? Is it possible to make some register of values and not to send directly the CC and PCH but write them to the register, then send the register values to CC, PCH, LEDs. Probably I will need them when I want to save patches. Are the CC values remembered separately for each Midi channel? I need to send and store the same CC´s but with different values to MCH1 and MCH4. What is the procedure to write and read a group of the values(CC, PCH, register) to SD card? I want to make 256 memory positions storing approx 150 values each. This task is the part of the first phase of my project – how to receive sysex files in KB (not KB under NG) to schitch the Break is Make, Octave and Midi channel parameters? I see not so high activity in answering my questions, but it would be very helpful if somebody could answer them! THank you in advance! Frank Quote Link to comment Share on other sites More sharing options...
Zam Posted July 2, 2018 Report Share Posted July 2, 2018 Hello Frank 3 hours ago, macsaif said: I see not so high activity in answering my questions, but it would be very helpful if somebody could answer them! Honestly most of your request/question here are handled by MB_NG, none will explain what is already explained at NG user manual Please have an extended read about it (i'm sure you already have some), write your .NGC / .NGR files and share when it don't work, then we can help fixing part of the configuration files. NG is powerful, sometimes there is different way available to achieve same result, it really depend of the whole picture, so again with a preliminary .NGC at your side it might help us helping you now, 1- check if_equal= parameter 2- check fwd_id parameter 3 and 4 -check meta and snapshot 5- not sure want you want here but maybe check bank mechanisme 6- I already give you some idea about it, you have to try if it work... Best Zam Quote Link to comment Share on other sites More sharing options...
macsaif Posted July 3, 2018 Author Report Share Posted July 3, 2018 I mean under point 5 the storing of CC, PCH and some internal adjustment parameters. It is basically approx 60 CC parameters, 1 PCH parameter and approx 6 Bytes for internal adjustment for MidiCHannel1 and the same for Midi CHannel 4, it means 2x64Bytes=128 Bytes per Patch. I am planning to store 256 Patches. When I want to load a Patch I can do it wit combination of 20 buttons 4x8x8 (like 4 Banks x 8 Patches x 8 Variations). The selection process will consist of pressing of 3 buttons, Pressing of the Variation button will close the process and will read the parameters of the selected Patch and send them to the MidiCH1 and 4. The potentiometers will work in mode that they will start to send parameters only in case the actual parameter is the same as adjusted from the memory. The internal parameters will be used for (Octave, Break is Make, Midi Mapping, Selection of Midi CHannel where the group of pots will send the parameters) On the panel I have only controls for 1 midi channel, if I want to send the parameters to Midi channel 4 I have to switch it by button then the same pots will send the parameters to Midi channel 4. F Quote Link to comment Share on other sites More sharing options...
macsaif Posted July 22, 2018 Author Report Share Posted July 22, 2018 6. I think It should be easier if the author of KB could tell the possibilities of Midibox KB. Quote Link to comment Share on other sites More sharing options...
macsaif Posted July 27, 2018 Author Report Share Posted July 27, 2018 I think the bank mechanizme is not for storing of parameters on SD card, however I think that it would be possible to solve many of my questions if there will be not just Bank 0-256 which means only 1 acrive bank in the same time. If there will be a possibility to split it to more smaller Banks like Bank1 to Bank 32 with 8 subbanks (it means 32 possible banks in the same time - in totalbthe same 256 positions) it will ne much more flexible. Quote Link to comment Share on other sites More sharing options...
Zam Posted July 29, 2018 Report Share Posted July 29, 2018 (edited) Hello Yes, bank mechanism don't store data at SD card Did you consider the snapshot mechanism ? Best Zam Edited July 29, 2018 by Zam Quote Link to comment Share on other sites More sharing options...
macsaif Posted July 29, 2018 Author Report Share Posted July 29, 2018 The first think I want to solve is the basic functions, like: 1.sending Cc parameters from pots to different Midi channel depending on the combination af some buttons 2. Cycling the radiogroyp leds and cc by one button etc, then the last step should be the storing/restoring of datas on SD card. Of course that I have to know how to store the parametera because I have to build the ehole program to allow it. As I am studying the documentation I am starting to have a feeling that the NG will be not possible to do all the functions I need. Today I am returning from holiday and I will check all the functions. Quote Link to comment Share on other sites More sharing options...
Zam Posted July 29, 2018 Report Share Posted July 29, 2018 For info, there is also the LOAD command that can flip and change whole configuration (.ngc .ngr) Quote Link to comment Share on other sites More sharing options...
macsaif Posted July 29, 2018 Author Report Share Posted July 29, 2018 I have used it in the kb section however finally used another function to solve my needs. How fast is the switching to another ngc and ngr? Do I have to do a reset after switching(to start the ngc with hw reset) ? 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.