empty list on specific ports is interpreted as defaults

entries/presets allow to specify other devices to override the project/preset defaults. That works fine. issue is when the list is empty; I expect that no code would run, but the default device list is run instead.

 

Please see the below picture and BMPT, I could not atach this to the bug report web page.

 


Attachments:
1576689936737_default-devices-bug.bmtp
![](upload://a5LHOd0W2ETvNkACTfxrzSmfYiY.png)

Hi, in the rules of your translators you have the following rules:

0.0 – Goto “running default code”

0.1 – Goto “runnning specific code”

 

However you do not have any corresponding labels within the rules.

0.0 – Label “running default code”

0.1 – Label “runnning specific code”

 

This is why you see the error messages.

Since you have no other rules, you should be able to just delete the goto lines

The source and destinations can be set at the project, preset or translator level as indicated in this tutorial.

Preset level destinations override project level destination. Translator level destinations override everything.

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

 


Attachments:
![](upload://pH8l6VY3DBoQacNL1MtIxrrH5Qx.png)

a) The “gotos” are not errors. They are just a poor man debug printf.

b) seleting an entry override, not selecting any devices on purpose, saving and reloading the project moves the entry back to default. That is my issue.

 

 

How can I edit and add new attachemnts to comments?
will add as new comment

now the attacmenet. I had to try several times until I managed to upload this

 


Attachments:
![](upload://tPpIrXroNxgGnSW8y1O3AcvmQGV.png)

please see above the picture and comment

Ah, a debugging technique. Never thought about using that. Anyway, if you don’t select an override, then it will go to the default ports indeed but will still run. If you don’t want to run the translator, rather you need to either disable the preset (which will disable all translators within, or disable the translator itself by clicking the checkbox at the left until the check mark disappears. You can disable presets also through outgoing actions of translators. You cannot do this however disable translators this way, however. Yet you can change a variable and then have a rule as the first rule to check and see if the variable is a given value and then abort the rest of the translator that way.

IE

if ga==1 then exit rules, skip outgoing action

as the first line will only run the remaining part of the translator if ga is not 1.

Alternatively, you can select and unused MIDI port but the translator will still run (but no-one will be listening)

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz


Attachments:
![](upload://qINp6PjIwUSS0PRSPs7dYZDvLgA.png)

understood.
I wanted to disable this on the specific device list because I’m trying multiple devices.

regarding debugging: how do you output random strings to see at a glance if the flow is going where you think it is?

Hi, if you put each set of device translators under a different preset, and define the each preset as a different outgoing device, you can switch devices by enabling/disabling presets with an incoming MIDI message.

This video should give you and idea.

As far as random messages, I like your idea. I usually just output a different MIDI message for each and look at the log to see what is happening.

The attached example should show you. Your input device will select a device by preset number with program changes from the input device. Then since the presets all target a different device, the 3 byte messages (ie note or CCs) from you incoming device will pass to the selected output.

 

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz


Attachments:
1576730604273_Device-Selector-2019-12-18.bmtp