TK.

MIDIbox NG Release + Feedback

348 posts in this topic

1 hour ago, TK. said:

Are you using the set_lock command in your .NGR script?

No, I don't use that. 
Hm... strange. At least the LED rings do not update. I didn't doublecheck with the controllers itself. I'll investigate .... 

 

Thanks for adding the load command!! ;-)

Edited by FantomXR

Share this post


Link to post
Share on other sites
1 hour ago, TK. said:

The load command is supported now! :)

Great !

I go to test it right now :)

Best

Zam

Share this post


Link to post
Share on other sites
1 hour ago, FantomXR said:

No, I don't use that. 
Hm... strange. At least the LED rings do not update. I didn't doublecheck with the controllers itself. I'll investigate .... 

I checked this with LRE2x8 - the LED rings will be updated

Or do you mean LED rings, which are assigned to various banks, but not to the selected bank?
Then I guess that they won't show the updated value until the assigned bank will be selected.

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites
45 minutes ago, TK. said:

Or do you mean LED rings, which are assigned to various banks, but not to the selected bank?
Then I guess that they won't show the updated value until the assigned bank will be selected

Yes. That's what I meant. Simple example:

LED ring 1 CC1 bank = 1

LED ring 2 CC2 bank = 2

if my software now sends both values for CC1 and CC2 only the selected bank gets updated. The unselected bank doesnt. If I switch to the unselected bank it shows the old value. If I than turn the controller in my software, the LED ring jumps to this value. 

Share this post


Link to post
Share on other sites

Such a configuration doesn't fit to the intended use case.

Actually only a single bank is supported, and it's intended that all display elements have either an assigned EVENT for this bank, or that they are not assigned to any bank.

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites
LOAD <setup> Switch to another setup (.NGC, .NGS, .NGR, ... files)

 

So <setup> is filename without extension and all .NGC .NGR, etc that match will be loaded?

Share this post


Link to post
Share on other sites
1 minute ago, Duggle said:
LOAD <setup> Switch to another setup (.NGC, .NGS, .NGR, ... files)

 

So <setup> is filename without extension and all .NGC .NGR, etc that match will be loaded?

yes

Share this post


Link to post
Share on other sites

Hi

Load command work fine :)

I just have a question regarding ^section == 0

When this script is read ? only after startup or reset ? before or after .NGC load ?

I'm able to automaticity load another setup without conditional with load setupA at section 0

if ^section == 0
 load setupA
 exit
endif

But I'm not able to chose a setup (with conditional)

The use case is to have "default" acting like configuration router

setupA (user config) automatically loaded at startup,

but if I press some button at startup it will load other setup, like setupB for dedicated calibration, or setupC etc..

if ^section == 0

 delay_ms 2000

 if button:1 == 127
  load setupB
 else
  load setupA
 endif

 exit

endif

 I have the event_button definition at NGC but if I press it, noting happen, setupA nor setupB are loaded and system is locked at default setup.

 

Best

Zam

Share this post


Link to post
Share on other sites

I have another bug report. It's about the NRPNs. As far as I understand a NRPN contains at least three different CCs:

CC#98 = NRPN number
CC#99 = NRPN "bank"
CC#6   = NRPN value

So if I set nrpn=20, it sends CC#98 20, CC#99 0 and CC#6 depending on the value of the controller. If I go over 127, CC#99 changes to 1 and CC#98 counts again from 0. That makes totally sense. But! If I go over 256, CC#99 stays at 1 and doesn't count up to 2. 

Or do I overlook something?

Share this post


Link to post
Share on other sites

Is the range constrained to 255? NRPN works fine for me, at least internally controlling WS2812 hue.

Share this post


Link to post
Share on other sites
45 minutes ago, latigid on said:

Is the range constrained to 255? NRPN works fine for me, at least internally controlling WS2812 hue.

I don't talk about range. I talk about NRPN number and referring to the NG manual this should go up to 16383...

Share this post


Link to post
Share on other sites
On 2016. 12. 30. at 3:41 PM, Zam said:

The use case is to have "default" acting like configuration router

setupA (user config) automatically loaded at startup,

but if I press some button at startup it will load other setup, like setupB for dedicated calibration, or setupC etc..


if ^section == 0

 delay_ms 2000

 if button:1 == 127
  load setupB
 else
  load setupA
 endif

 exit

endif

 I have the event_button definition at NGC but if I press it, noting happen, setupA nor setupB are loaded and system is locked at default setup.

The same problem for me. By further investigate NGR script doesn't go beyond the load command. Anything after "load <setup>" command doesn't execute.

BR Norbim

Share this post


Link to post
Share on other sites

Why don't you call nothing with section == 0 but assign metas to the buttons directly so that they load a NGC file when hitting them?

Share this post


Link to post
Share on other sites
8 hours ago, FantomXR said:

Why don't you call nothing with section == 0 but assign metas to the buttons directly so that they load a NGC file when hitting them?

Hey Fantom

Don't know about Norbim usecase.

In my case it was to select a config at start up, before all buttons get busy for other task.

Your option need a spare/unused button or a conditional flow by hitting two buttons.

Anyway, it's not a critical function for me any more

Best

Zam

Share this post


Link to post
Share on other sites
18 hours ago, norbim1 said:

The same problem for me. By further investigate NGR script doesn't go beyond the load command. Anything after "load <setup>" command doesn't execute.

The problem is that even the load command is in a conditional branch and the condition doesn't match, the commands after load doesn't execute. In the above example the "load setupA" doesn't execute in the else branch. Also miss the other commands outside the if branch.

15 hours ago, FantomXR said:

assign metas to the buttons directly so that they load a NGC file

Is there a meta op that loads a new NGC config?  I coluldn't find it in the user manual. Am I miss something?

BR Norbim

Share this post


Link to post
Share on other sites
46 minutes ago, norbim1 said:

Is there a meta op that loads a new NGC config?  I coluldn't find it in the user manual. Am I miss something?

IIRC it's the same command as NGR:  type=meta  meta=LOAD<setup> ???

also I remember the function was deleted, then implemented again, not sure the downloadable NG1.035 have it,

you may probably build 1.036 from the source.

LOAD will load a "full" config NGC + NGR etc, if you just need to change .NGC you have to duplicate your NGR and just change the name according to both config

Best

Zam

Share this post


Link to post
Share on other sites
4 hours ago, Zam said:

IIRC it's the same command as NGR:  type=meta  meta=LOAD<setup> ???

AFAIK the load command works only from NGR. But never mind, I found the cause in "mbng_file_r.c", corrected and built it and now load commands in conditional branches work correctly.

BR Norbim 

Edit: Attached the diff

mbng_file_r.c.diff

Edited by norbim1
File attached

Share this post


Link to post
Share on other sites

Hi Norbim,

thanks a lot for the bugfix! :)

It's in the repo now.

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites

I noticed that the last release was done 2 years ago, although many preliminary versions have been created meanwhile.

Therefore it's now officially available.

From the ChangeLog:

MIDIbox NG V1.036
~~~~~~~~~~~~~~~~~

   o new .NGR script command: send_seq (see cfg/test/seq* examples)

   o added new MIDI event types: Clock, Start, Stop, Cont

   o added new meta events to control a MIDI clock divider:
     MClkSetDivider, MClkDecDivider, MClkIncDivider

   o added new .NGC file configuration parameters:
     MidiClkOutPorts and MidiClkInPorts

   o new LCD format character '%L' allows to display logic control digits
     (MTC and status digits)

   o added new .NGR commands SET_KB_TRANSPOSE and SET_KB_VELOCITY_MAP.
     The configuration example can be found under cfg/tests/kb_6.ng*

   o encoder absolute mode: negative ranges are now handled correctly

   o .NGR LCD command: %d outputs the ^value

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites
On 04/03/2018 at 10:42 PM, TK. said:

I noticed that the last release was done 2 years ago, although many preliminary versions have been created meanwhile.

Therefore it's now officially available.

Hello

Now I'm used to build my MB_NG with latest pre release and updated code from SVN

But thanks for the official release !

Since I use this one for months, I don't catch any bug so far.

Best

Zam

Share this post


Link to post
Share on other sites

What is the correct usage of MidiClkOutPorts and MidiClkInPorts?

Is this all I need? I'm trying to send an incoming clock on Midi 1 to USB 1, I can't make it work so I'm thinking I might have to insert it into a Receiver / Sender event. Real newbie here on MB_NG, but what potential!

#Set Midi clock input port
MidiClkInPorts = 00001000000000000000
#Set Midi clock output port
MidiClkOutPorts = 10000000000000000000

 

 

Share this post


Link to post
Share on other sites

Ok, figured it out. I found an example of  MidiClkInPorts in one of the test examples seq1.ngc. I can see the clock start/stop now in MIOS Studio but no clock data (FE) I'm thinking it's filtered out so as not to mess up the input monitor display.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now