Jump to content

MIDIbox NG Release + Feedback


TK.

Recommended Posts

Hi FantomXR

in the Manual: http://ucapps.de/midibox_ng_manual_ngc.html

dimmed=<0 or 1> LEDs can now be dimmed with 16 brightness levels over the value range. This feature has to be enabled with dimmed=1 in the EVENT_* definition.
Configuration example: cfg/test/dimled.ngc.
LEDs in a matrix configuration can be dimmed as well. The dim range is the same (0..15), but the effective dim level is limited by the number of scanned rows:
  • 4 rows: only 8 levels (0..1, 2..3, 4..5, 6..7, 8..9, 10..11, 12..13, 14..15)
  • 8 rows: only 4 levels (0..3, 4..7, 8..11, 12..15)
  • 16 rows: only 2 levels (0..7, 8..15)
Configuration example: cfg/test/dimled_m.ngc.

 

Best Regards

Novski

Link to comment
Share on other sites

  • Replies 353
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Hey,

 

thanks for getting back to me.

 

I found the dimled.ngc before, but not the other one. Thanks... I will try that today evening.

 

 

//edit:
A few days ago when I was in the local music shop I saw, that the company Kenton has a nice little module on the market. With this box you can convert USBMIDI to real MIDI. This is really useful, if you want to implement usb-midicontroller in your environment, that have no midi. The drawback is, that it's at 99€. TK, do you think to implement such kind of feature into the _NG too? 

Edited by FantomXR
Link to comment
Share on other sites

I maybe discovered a bug.... but maybe it should be like this:

 

If I set a EVENT_BUTTON button_mode=toggle, toggle-mode is not working, if I invert the range. If I set it to range=80:90 the button toggles from 80 to 90 and backwards. If I set it like range=90:80 it just sends 90... but does not go back to 80.

Is this like it should be?

 

And: Is it possible to turn LCDs by 90°?


Thanks

Chris

Edited by FantomXR
Link to comment
Share on other sites

Let's call it an imperfection... ;)

In this version inverted and reduced ranges should be supported properly: http://www.ucapps.de/mios32/midibox_ng_v1_030_pre5.zip

 

 

Rotated LCD view: would only work with graphical LCDs, and would require a special LCD driver (not the universal one) which has to be developed for the specific display.

The driver would also consume some memory (which has to be removed from the pool), since direct writes to the display are not possible anymore.

And it would slow down display output.

So: not supported from my side.

 

Best Regards, Thorsten.

Link to comment
Share on other sites

  • 2 weeks later...

Hey!

 

Another bug / imperfection? :)

 

I wanted to route MIDI signals that come into MIDI IN 1 or 2 via USB to the computer. I used the ROUTER command like this:

 

ROUTER

n=1 src_port=IN1 src_chn=all dst_port=USB1 dst_chn=all

 

When I save this as NGC, the MIOS Monitor tells me "warning, unknown command n=1"... something like this.

If type

 

set router 1 IN1 all USB1 all

 

directly into the command line, it works! But this setting is not permanent. So I would need to do this every time I plug in my core.

 

What do you think?

Link to comment
Share on other sites

... shame on me! It was a synthax error....

 

I have another question regarding the keyboard-scanning.

 

I have here a 76key Fatar keybed (TP/8S) which works fine with the LPC-core and the DIO-module. Because the diodes are mounted the other way around, I needed to change the jumper-setting on the DIO and the code to din_inverted=1. 

But I'm wondering, that I only get a few velocity-values and you can recognize a pattern... here are the values:

 

1, 5, 16, 27, 38, 49, 71, 82, 93, 104, 115

 

As you can see it's often velocity+11. Can you explain, why it behaves like this? Has it something to do with the scanrate of MBNG?

 

Thank you!

 

//edit: Okay, checked with MB_KB. It has something to do with the scanrate. With MB_KB I get a lot more velocitys-values. If I want to get the higher resolution but don't want to loose the advantages of the LPC-core, does it makes sense, to use a PIC18F-core to do the scanning, send the MIDI to the LPC and he does the rest? What do you think? How about the scanrate in the PIC? Or does the new STM32F4 improve the situation?

Edited by FantomXR
Link to comment
Share on other sites

  • 2 weeks later...
What do you think? How about the scanrate in the PIC? Or does the new STM32F4 improve the situation?

 

That's a complex question which deserves a separate topic! ;-)

 

 

Finally MIDIbox NG V1.030 has been released with the changes of the last months:

MIDIbox NG V1.030
~~~~~~~~~~~~~~~~~

   o increased event pool size to 64k for MBHP_CORE_STM32F4

   o added ain_mode=Switch for AIN and AINSER events.
     Can be used if buttons are connected to analog inputs. The event will send the
     min value if a 30% threshold is reached, and the max value if a 70% threshold
     is reached.
     Schematic:  Ground |----o Button o-----> analog input + 10k Pull-Up resistor to 3.3V (AIN) resp. 5V (AINSER)

   o .ngr: added "change" command. It works similar to the "set" command, but
     only changes the value, and doesn't generate a MIDI event.

   o .ngr: added "set_min" and "set_max" command which allows to modify the
     min/max range of a EVENT

   o added new meta events to control the internal MIDI clock generator:
     MClkPlay, MClkStop, MClkPlayStop, MClkPause, MClkDecTempo, MClkIncTempo, MClkSetTempo.
     Example can be found under cfg/test/midiclk.ngc

   o added new string formatting items:
     %t to display MIDI clock state (Play/Stop)
     %T to display tempo (BPM)

   o added new MClk menu page to SCS to control the tempo w/o dedicated controllers

   o fixed AOUT_NG module communication issue if AINSER was used in addition

   o added new meta events:
       - CvPitchBend14Bit:<cv-channel>
       - CvPitchBend7Bit:<cv-channel>
       - CvPitchRange:<cv-channel>
       - CvTransposeOctave:<cv-channel>
       - CvTransposeSemitones:<cv-channel>
     see cfg/test/cvtransp.ngc for usage examples

   o BUTTON toggle function can now also handle with inverted and reduced value ranges

 

The user manual has been updated as well: http://www.ucapps.de/midibox_ng_manual.html

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Hey,

 

thanks for the new version!

 

 

I need to change the velocitycurve of one of my keyboards. It is much to sensible. I will plug the midi out from they keyboard into the LPC. After taking a look into the NGC manual I think that I need to create a map with 128 values and add

 

EVENT_RECEIVER id= 1 fwd_id=SENDER:1 type=NoteOn key=any range= 0:127
EVENT_SENDER   id= 1 type=key key=NoteOn range=map1

 

Is that correct? :)

 

 

Thanks,

Chris

 

 

Link to comment
Share on other sites

Okay, I will check that tomorrow! Thanks!
 

Do I have to enter those numbers by myself or is there a program / script, where I can define a velocity curve and it calculates the values? The script, which is provided in the tools-folder is not suitable for that as far as I can see.

Link to comment
Share on other sites

Ok, I see... please try this version:

http://www.ucapps.de/mios32/midibox_ng_v1_031_pre2.zip

 

In addition, you've to set "key=any" for EVENT_SENDER as well: http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fcontrollers%2Fmidibox_ng_v1%2Fcfg%2Ftests%2Fconev_6.ngc

 

Best Regards, Thorsten.

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 months later...

A new version is available:

 

MIDIbox NG V1.031
~~~~~~~~~~~~~~~~~

   o the STM32F4 variant of the firmware supports USB Host mode!
     See also 

   o MIDI clock input ports now disabled by default to avoid feedback loops
     in various setups

   o improved "ain_filter_delay_ms" implementation to support sensors (experimental stage)

   o Covered new use case which allows to transform velocity values of incoming notes.
     See cfg/test/conev_6.ngc
     EVENT_RECEIVER and EVENT_SENDER have to be specified with "key=any", so that any
     key will be received and sent.

   o support for DIN/DOUT emulation on digital IO ports J10A/J10B (LPC17: J10/J28)
     See examples in cfg/test/diocfg_1.ngc and cfg/test/diocfg_2.ngc

 

Best Regards, Thorsten.

Link to comment
Share on other sites

  • 2 months later...

A new version is available:

 

MIDIbox NG V1.032
~~~~~~~~~~~~~~~~~

   o support for mathematical operations in .NGR script.
     They have to be surrounded with square-brackets ([...])
     Syntax: [<left-operand><operator><right-operand>]
     Example:
        - set LED:2000 [LED:2000 + 1]
          will increment the value stored in LED:2000
        - set LED:2000 [LED:2000 - 1]
          will decrement the value stored in LED:2000

     Note that nested operations are supported as well, such as:
        - send CC USB1 1 [LED:2000 + [LED:2001 + [LED:2002 + LED:2003]]]

     More examples in cfg/tests/runscr5.ngc

     Support operators: + - * / % & | ^


   o number of scanned SRIOs now configurable in .NGC file
     with 'SRIO num_sr=<1..32>'

     By default 32 DIN and DOUT shift registers are scanned, which
     result into an update rate of ca. 420 uS on a STM32F4 based core.

     With (for example) 'sr_num=8' only up to 8 DIN and 8 DOUT SRs will
     be scanned anymore, but the update rate is reduced to ca. 110..120 uS
     (a little bit more than a quarter due to SR handling overhead)
     

    o corrected DebounceCtr parameter (value was not passed to MIOS32)
      Now also part of the SRIO configuration, use:
      SRIO debounce_cycles=<1..255>

    o added new meta event "KbBreakIsMake:<keyboard-number>" which will
      already trigger a note event when the break contact is activated
      (nice for playing organ style).
      Trigger it from a toggle button function as shown in cfg/test/kb_5.ngc
      Can be optionally set from the terminal as well with following
      command: "set kb <keyboard-number> break_is_make <on|off>"
      (e.g. "set kb 1 break_is_make on")

   o added ain_mode=Toggle for AIN and AINSER events.
     Similar to ain_mode=Switch it can be used if buttons are connected to analog inputs.
     The event will toggle between the min and max value.

   o .NGR: added "set_no_dump" command. It allows to change the "no_dump" flag
     which specifies if an EVENT_xxx should be sent during a DumpSnapshot.
     This feature can be used to handle different snapshot setups.

   o STM32F4: support for bootloader "enforce_usb_device" flag

 

Best Regards, Thorsten.

Link to comment
Share on other sites

  • 1 month later...

Hi Chris,

 

it won't be possible to load a .NGC file without switching to another session, otherwise this could lead to inconsistencies (e.g. while storing/restoring snapshots, when labels are used, etc...)

 

However, it's possible to switch to another setup.

Please try this version: http://www.ucapps.de/mios32/midibox_ng_v1_033_pre2.zip

 

There is a new .NGR command called "LOAD"

e.g. if you want to switch to XXX.NGC file, write:

 

if ^section == 1
  load xxx
endif

and trigger this section from an event

 

Best Regards, Thorsten.

Link to comment
Share on other sites

  • 2 weeks later...

I've a minor suggestion... maybe it has a reason that it is like it is but:

 

If I have a button with an LED and I invert the button with range=127:0 than the LED still behaves like 0:127 (turns on when button sends "off"). So... in this case I need to handle it with a runsection-command, which is maybe more complicated that it needs to be.

 

//edit: And another thing:
I work on a NGR file and something seems to be wrong here. With this code

 

if AINSER:26 >= 100
  set BUTTON:7 0
  set BUTTON:8 127
endif

 

It works fine

 

but with this code

 

if AINSER:26 >= 100
  set BUTTON:7 0
delay_ms 100
  set BUTTON:8 127
endif

 

Button:8 won't be triggered.

 

I assume it's because I'm in a flow, right? 

Edited by FantomXR
Link to comment
Share on other sites

Hi,

I'm building an analogue synth from a surplus Fatar 88 Keyboard and a custom analog VCO.

I've got the KB integrated with NG and working so far.  I am looking for the best way to create custom mapping of AOUT_NG voltages for my custom VCO range(s).  How is the note to AOUT voltage mapping set if I want something different than the usual Hz/V values?

 

Thanks

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

×
×
  • Create New...