Hi, so i have made a preset with a math mistake.
This preset activates on project launch. And my project is default - it opens with Bome.
So when I open Bome, it gets stuck…
Is there a way to open Bome with presets turned off?
Or is there a way to edit project file to turn there my fault preset off?
When you close a Bome MIDI Translator Pro project, the preset state will be the same state as the last time you saved the project file.
You can add startup actions (series of translators) that trigger when the project file is opened. See this video on best practices.
Since Perform was introduced, however I now use that instead of a timer.
I have one translator trigger a perform “init” at project start. Then several other translators with incoming trigger of perform “init” as a trigger to handle other housekeeping tasks.
If your project gets stuck when it opens, you can always quickly hit the ‘stop’ button. The keyboard shortcut is SHIFT-ESC.
I am facing a strange issue…
I thought that I have made math mistake due that Bome stucks…
But I have not done a mistake. Instead of it Bome just change variables for its own…
Here is the project.
The issue is with 10th oreset called SMC - VS.
Turn it on to run it.
The idea is to cycle throu 16 iterations and send out midi notes.
Variable named "‘ve’ need to go from 1 to 17.
And i used ve=ve+1 to uncrease it.
But after 1 iteration - it goes straight higher than 17…
i see that shift+esc was designed to prevent midi loops…
but my case is different - i got rules infinite cycle sometimes whet a variable is set to ve=ve+1 and there is no imiter for that iteration, so Bome just continues to increase the value and stucks…
the only was to fix that is kill the process from task manager, and not to save the project with that preset active. Or if it was saved in active state - disable active state by editing project file in notepad app.
Without fixing your code (because I don’t completely understand it) I make the following suggestions.
When possible use local variables to pass parameters. You are using a lot of global variables and it is unclear whether some translators are overwriting global variables that they should not. As a general rule, only 1 translator should be in charge of changing a given global variable.
You might consider using a repeating timer for an outgoing action instead of perform as perform will only happen once (unless it calls itself in which case, there should be a way to stop it in rules).
On the version you posted there is no continuous loop.
It would help if you documented what each parameter is used for in rules and maybe its intended use also in incoming rules of the perform.
Right now this doesn’t tell me much.
Perform "perf_oct_3_color_set_counter", vo, ve, vp, vk, vn, vr
Looks like vo has something to do with the octave, ve is the iteration number and the rest are colors.
Documenting the parameters and their use, will also save you a lot of time if you come back 6 months later to figure out what you were trying to do.
I assume that you want to iterate through LED’s when the preset is activated to update them all to a given color. Beyond that, I’m having trouble following your logic.
Steve Caldwell
Bome Customer Care
Also available for paid consulting services: bome@sniz.biz
The difference between local and global variables is unclear for me - I will dig into, thanks.
The preset I am focused to us 10th. All other presets can be inactive.
So fot 10th preset variables and translators are:
Init - starts the action and tells on what octave the task should be done via pf variable. And send it to pf_calculate
Then pf_calculate defines starting note via vo and 1st iteration via ve
And colors - vp, vk, vn, vr
And sends them to counter (OCT 3 Color set counter)
Counter acts for iteration counts of ve ( in range of 1-16), calculates colors as velocity and send tasks to executor (OCT3 Color Set exec)
That’s all.
So counter increases ‘ve’ on each cycle. But after 1st cycle it breaks. ‘ve’ becomes 2, but rule identifies it like it is >17…
How could it be true?
Yes, i use stoppper.
And right now there are no infinite loops.
But at some point there were some - bome stucked - was killed by task manager. Infinite loops were found by me and rewritten. And after that Bome started to act abnormal - it changes variables by its own…
so i have removed all unnecesarry stuff
changed ve to vz - but that doesnt helped…
moved vu calculation to conter - doesnt helped…
and issue still presist
can you execute and share the log please?
yeah, i putted
vo=pf*16
vo=vo-16
back
and changed the order in counter
Perform ‘perf_oct_3_color_set_counter’, vo, vz, vp, vk, vn, vr
so now vz(ve) is on a second place
and it works fine
so what is the rule for transfered parameters order?
i suppose that if translators triggering action is a perform action - so there is a line for parameters. And the order in that line should be exact same as in the line where we call this perform:
Perform ‘perf_oct_3_color_set_counter’, vo, vz, vp, vk, vn, vr