Jump to content

MBSEQ used as a midi events processor (to alter velocity curve): Possible?


Hermes
 Share

Recommended Posts

Hello everyone and Merry Xmas!

Sorting out things to start construction again after a very very long time  - have to finish my single MBSID 's  CS Step3, to build a MB6582, a MBFM and finally a MBSEQ - all the PCBS, chips and parts are there, but time is an issue nowadays (not to also mention a jasper - wasp clone- project). 

So, the question here is if there is any possibility to use the MBSEQas a midi events processor to alter the velocity curve of my Yamaha KX88, which only transmits velocity values >14 (minimum note on velocity is 15). What I would like the MBSEQ  to do is to subtract 14 from the incoming velocity values and then multiply, say, by 1,124 to achieve scaling from 0-113 to 0-127, I hope it makes sense. 

I understand there exists a MB midi event processor, but since I will build a MBSEQ anyway, I was hoping to achieve this goal too... and things will be easier to edit with the double LCD...

Thanks in advance for any input...

Link to comment
Share on other sites

Hi,

that is quite a long build-list, enjoy! ;-)

Regarding your question: it is not possible with the default MBSEQ firmware, but if you are confident with a bit of C/C++ hacking, this should be doable within the SEQ - but it would be a customized firmware effort that you have to track for every new release TK commits, so it is not really recommended.

So, if you don't want to go that way, it should be possible (most likely there are also other options!) with a MBNG, the minimal version consists just of a core and a few MIDI ports for input/output, you can configure it via "text files" on the SD card, so the build effort and the costs are low.

Many greets,
Peter

 

Link to comment
Share on other sites

+1 for what Peter says,

 I think it would be easiest to do what you are asking in a script file in NG as well. Like Peter says you would edit your configuration in a text file so the screen would be irrelevant. That is way easier development then coding in an existing product. You would not have to worry about processing time as you would adding onto the seq firmware and if you ever wanted to do something different you would have the parts to do it. With editing the code as a script file screens would be irrelevant. You can edit over usb from mios studio. Scripts even saves a ton of time on compiling for that matter you do not even have to setup proper development tools just a text editor. This is especially fast through the testing and development phase.. I would think the only thing you might want if you end up with more then one configuration is an encoder with a built in switch and some leds to show what configuration you are running. possibly even one or 2 leds and one switch say for enable disable depending on what you want to do and how you wire your rig up. You could set one port to have translation and the other to be original. Just some thoughts on the possibilities.

Link to comment
Share on other sites

Thank you vm Peter and Gerald for the time you dedicated to respond to this...and Happy New Year!!! I am not much of a programmer, just fast and skillful with a soldering iron and keen on constructions.... would like to enter the coding field, but I am afraid my time is very very limited due to my ruthless work schedule... so I was hoping to achieve 2 things in one construction (mbseq) as described above. I will consider taking the route you suggested... but if I am  to invest in yet another box (core mbng), maybe i will save more time by getting myself a yamaha mep4 http://sonicstate.com/digital/model.cfm?modelID=242&catid=7&manid=2.Even better would be to sort this velocity problem directly in the KX88 firmware ( if you are not familiar, with this controller, http://www.sonicstate.com/synth_reviews/yamaha_kx88/11/), but that seems an impossible/ daunting task.  The best piano action for my taste even by modern standars, but the velocity problem is common to all of them afaik regardless of firmware... Oh, I guess I am already off topic...

Cheers and I will def. come back to you with updates on the matter...

 

 

Link to comment
Share on other sites

The required source code change isn't so difficult, but I can't provide this as a generic solution to everybody since it generates some overhead at my side (people ask for documentation, more comfortable configuration, special options, etc).

So, for your particular case, the SEQ_MIDI_ROUTER_Receive function has to be enhanced: http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fsequencers%2Fmidibox_seq_v4%2Fcore%2Fseq_midi_router.c

By something like:

if( port == UART0 && midi_package.event == NoteOn && midi_package.velocity > 0 ) {
    int offset = 14;
    if( midi_package.velocity <= offset )
        midi_package.velocity = offset+1;
    midi_package.velocity = (127*(midi_package.velocity-offset)) / (127-offset);
}

This would apply the linear curve to all notes received via MIDI1 (UART0)

Best Regards, Thorsten.

Link to comment
Share on other sites

Thank you very very much Thorsten for taking the time to reply and solve a problem once again!!

As soon as I finish my MBSid CS3, I will deal with the MBSeq and I will post results of the code implementation, the KX88 is a real gem and maybe others that use it could benefit  too from this and I would be more than happy to try to contribute something, even this small, from my side to this amazing community...

I think I am not alone in expressing once more deep respect and admiration for everyhting you have done and are still doing for all of us people over so many years!

Again, Happy and Creative New Year!

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...