Jump to content

MIDIbox NG Release + Feedback


TK.
 Share

Recommended Posts

  • Replies 353
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

A new version is available - it mainly relaxes previous limitations related to (G)LCDs, existing panels should work like before!

 

 

MIDIbox NG V1.013
~~~~~~~~~~~~~~~~~

   o overworked LCD handling: there is no buffer limitation anymore, any LCD and GLCD size
     is accepted, which especially means that GLCD fonts are displayed correctly
     independent from the specified number of connected devices.

   o this change has freed some RAM which can be used for other purposes in future

 

 

Best Regards, Thorsten.

Link to comment
Share on other sites

A new version is available - let's check if MBNG is fast enough to scan velocity keyboards as well :)

 

MIDIbox NG V1.014
~~~~~~~~~~~~~~~~~

   o the keyboard handler of MIDIbox KB has been integrated.
     The configuration commands are identical "set kb..." as documented at
     the MIDIbox KB page: http://www.ucapps.de/midibox_kb.html

   o keyboard parameters are also stored in the .NGC file, and can be
     configured from there.

   o please note that the latency is 10 times higher than in the MIDIbox KB
     application! Each row is scanned in 320 uS (instead of 32 uS).
     This has to be considered in the velocity delay configuration.
     delay_slowest should be 100 (instead of 1000), and delay_fastest should
     be 5 (instead of 50)

   o DOGM and SSD1306 GLCDs: support for more than 12 displays via DOUT shift
     registers connected to J28

 

 

A typical keyboard configuration would be:


KEYBOARD n=1   rows=8  dout_sr1=1  dout_sr2=2  din_sr1=1  din_sr2=2  din_inverted=0  break_inverted=0  din_key_offset=32 \
               scan_velocity=1  scan_optimized=0  note_offset=28  midi_ports=1000100000001000  midi_chn=1 \
               delay_fastest=5  delay_fastest_black_keys=0  delay_slowest=100 \
               ain_pitchwheel_pin=  0  ain_pitchwheel_ctrl=128  ain_pitchwheel_min=  1  ain_pitchwheel_max=254 \
               ain_modwheel_pin  =  0  ain_modwheel_ctrl  =  1  ain_modwheel_min  =  1  ain_modwheel_max  =254 \
               ain_sustain_pin   =  0  ain_sustain_ctrl   = 64  ain_sustain_min   =  1  ain_sustain_max   =254

 

 

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Great!

 

I'm desparately waiting for another two LPCXpresso boards, I don't wont to rip apart my other controller again. But I will try this as soon as I get them, hopefully tomorrow...

 

btw, provided that the keyboard extension works well, will you incorporate the calibration procedure for the mod/pitchwheel as well?

 

Lars

Link to comment
Share on other sites

that´s fantastic :w00t: . i just ordered 8 additional ssd1306 yesterday, so i will be up to 16 now when they arrive. how many can be connected that way? 
 

Up to 64 SSD1306 displays are supported! :smile:

The configuration is described at the bottom of this page: http://www.ucapps.de/midibox_ng_manual_lcd.html

 

btw, provided that the keyboard extension works well, will you incorporate the calibration procedure for the mod/pitchwheel as well?

Currently the same AIN driver is integrated like in MBKB, which means that the calibration works the same way. The calibration values are stored in the _min/_max parameters.

Once I got the confirmation that the keyboard handling is acceptable (*), I will replace the AIN based pitch/modwheel by a more generic approach (EVENT_AIN resp. EVENT_AINSER) so that also the more accurate AINSER inputs can be used.

(*) Acul already confirmed that the keyboard handler works fine at his side - he doesn't recognize any latency! :smile:

Best Regards, Thorsten.

Link to comment
Share on other sites

Erratum: the keyboard won't be scanned if the parameters are loaded from the .NGC file.

Workaround: enter one of the kb commands into MIOS Terminal which re-initializes the keyboard handler, such as:

 

set kb 1 velocity on

 

 

This issue will be fixed with v1.015

 

Best Regards, Thorsten.

Link to comment
Share on other sites

V1.015 is available:

 

MIDIbox NG V1.015
~~~~~~~~~~~~~~~~~

   o support for GLCD_SSD1306_ROTATED

   o the ^txt and ^txt56 SysEx command now allows to map incoming characters to
     different cursor positions. An example can be found in cfg/templates/logictrl.ngc

   o independent from this map feature, ^txt and ^txt56 now also take lcd_pos=... and
     label=... into account to set the initial LCD and cursor position, at which the
     message will start. The label can be used to change the GLCD font before the
     characters will be print.
     An example can be found in cfg/templates/logictrl.ngc as well.

 

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi Thorsten,

 

Great news about the KB handler integration. I'm currently planning to build an isomorphic keyboard whit MBKB. ( If somebody interested some theory can be found here: http://www.altkeyboards.com/instruments/isomorphic-keyboards. )

Because of the alternative "non standard" keyboard layouts, it needs a configurable key remapping function. I'm wondering if this would be possible in the future via the NG configuration files?

 

Thanks, Norbert

Link to comment
Share on other sites

I have another feature request:

 

It would be great to use some of the onboard-ports of the LPC17 as additional I/Os with MB_NG. TK already confirmed that J10 will be available for standard digital inputs, and it would be really handy to use J5a/b or J28 as digital outputs as well.

 

Today I realized that I need one (!) additional dout pin for connecting a LED, so instead of adding another DOUT board (or breadboard one), it would be much easier to simply use J5or J28 directly. 

 

-----

 

BTW can anybody confirm this: I have a 3-digit LED connected via two shift registers on a DOUTx4: 

 

SR1 D0-7 are connected  to the segments

SR2 D0-2 are connected to the commons (no resistors installed)

so SR2 D3-7 are free, but I can't use them for connecting "normal" LEDs, right?

 

 

Cheers

Lars

Link to comment
Share on other sites

Hi Norbert,

 

once more people successfully tested the keyboard scan with MBNG, I will go for the next step and make the MIDI event configurable via a new EVENT_KEYBOARD command, which works similar to MIDI_BUTTON or MIDI_DIN_MATRIX - this means, that mapping will be available as well.

As a nice side effect this will also allow to map the velocity, e.g. to a curve defined in a MAP. :)

 

@Lars: this will require some testing at my side. E.g. I've to check what happens if somebody connected a pot directly to J5.A0, and enables the output function by accident (e.g. while loading a certain .ngc file without knowing the content). In worst case this could damage the pin forever (but my hope is, that the internal impedance is high enough so that a short circuit protection is guaranteed)

 

Your assumptions for the LED digits is correct, but they are not supported by the firmware yet!

 

Best Regards, Thorsten.

Link to comment
Share on other sites

This could work with conditional events, see also the third example in this posting: 

But I haven't got much feedback on the proposed usage yet... and I'm unsure if there are more cases which have to be considered...

 

Best Regards, Thorsten.

Link to comment
Share on other sites

I have tried the example, but unfortunately it does not work.

 

The Encoder sends both CCs at the same time with vel. 1 when moved cw and both with vel. 127 when moved ccw.

It seems the "if_equal" and "range" command has no effect in the EVENT_SENDER lines.

 

I have played around with the "inc/dec" enc_modes but it does not work in my case. The Encoder should replace 2 buttons which must have different CCs or Notes.

Link to comment
Share on other sites

You missed the context!

 

It's totally clear to me what you want to achieve, and if you read the linked posting again you will notice that I'm trying to cover multiple requests with a single method.

The method isn't implemented yet, which means in other words: it doesn't work because it's still in the planning phase.

In order to determine, if the proposed method is sufficient, I'm asking for feedback to find out, if other usecases would lead to an unwanted conflict which requires a different approach.

 

Best Regards, Thorsten.

Link to comment
Share on other sites

You missed the context!

I have found a workaround with Bomes Midi Translator. For the Encoder I use the enc_mode=Inc01_Dec7F and Bomes translates it to 2 diffrent CCs.

 

Now it works, but it would be great to see the planned feature for diffrent Notes/CCs with Encoders in the future.

Link to comment
Share on other sites

Now available in V1.017:

 

MIDIbox NG V1.017
~~~~~~~~~~~~~~~~~

   o it's now possible to use the same hw_id in multiple event definitions.
     This allows for example to send multiple MIDI events from a single
     control element (e.g. from a single button)

   o the fwd_id now forwards to the event(s) with the given hw_id
     (which is the same like the "normal id" if not explicitely specified)

   o implemented "conditional events".
     See the user manual (.NGC chapter) for details and examples.

   o the new meta event UpdateLcd allows to force a refresh of the complete
     LCD content. This is especially useful in conjunction with conditional
     events: whenever a source value has been changed (e.g. a button state),
     all events which have this value in their condition will print out the
     label if the specified condition matches.

 

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi TK I am having trouble compiling the latest ng release 1.017. I get a compile error saying that keyboard.mk does not exist. After looking through the repository in the modules section the keyboard module does not have a make file in the folder. Am I missing something? Thanks KUI

Link to comment
Share on other sites

A new version is available - let's check if MBNG is fast enough to scan velocity keyboards as well :smile:

 

Hey,

 

I tried it with my keyboard yesterday and all I can say is it works perfectly. No noticeable latency difference compared to MB_KB or to the original keyboard controller.

 

Cheers

Lars

Link to comment
Share on other sites

Hi TK I am having trouble compiling the latest ng release 1.017. I get a compile error saying that keyboard.mk does not exist. After looking through the repository in the modules section the keyboard module does not have a make file in the folder. Am I missing something? Thanks KUI

 

I forgot to commit this file - it's available now.

 

I tried it with my keyboard yesterday and all I can say is it works perfectly. No noticeable latency difference compared to MB_KB or to the original keyboard controller.

 

Great! :smile:

I will release a new version with EVENT_KB (will allow to define a velocity curve via a map) + calibration for AINSER inputs tomorrow. 

 

Best Regards, Thorsten.

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...