Permanently Store Values

Hi Stve (or anyone else)...

My mind is boggling... I have a tendancy to always dream bigger and bigger...

Is there a mechanism for permanently writing a values into Bome from external inputs?? Ideally into the bomebox. I can't find anything to suggest you can... but that would be amazing.

e.g. in my toggle layers on my Qu16, I can set up various mods using all 16 faders that are then operating by a single fader when the toggle is turned off. I'm currently planning to manually write preset values for these toggle layers (each of the 16 toggle layers will have 16 different presets)... But then I wonder:

If I could permanently store values, then I could just fiddle with faders - when I like what I have, I hit a button combination to store that value in one of the 16 preset slots for that toggle layer... Even when Bomebox is unpowered, those values are stored.

So it would be a "write" command of some sort...

If not available (which I suspect would be the case), is there any discussion / motivation to include this in the future??... I can think of a lot of useful reasons to include this, well beyond my music-use interests :)

e.g. on an apc mini, you could use faders to setup line-weights/styles and colours in a CADD program on the fly (e.g. AutoCad or Microstation), and then permanently save those settings to a given pad for easy access... (I'm a road designer by trade, using CADD, so that idea comes to mind... actually - that's a good idea... I might try using my apc mini for something similar, even if it's all just preset messages! :)....)

Your question is spot on to something I've been looking for and requested in the past, but I'm not sure what the timeline for adding this would be.  (I'm generally not privey to development roadmaps).  I can ask Florian if it is planned but I doubt if he will provide any time lines if it is.  


To summarize, I want a way to "save" and then later "restore"  global variables within a project so the next time I start the project up, I can restore the saved state from last time it was run and pick up where I left off.

I know some users that have MIDI devices that can store data have used SysEX messages to do so but the storage actuall lives on the MIDI device and not within BomeBox.   I've considered writing something like this for PC platform but it just has never been high priority.  So for now, what I do is when I have something the way I like it I:

1)  in the log window dump the global variables.

2) In a project startup (on project open), have rules to set the global variables. I set them to what my dump showed (yes manually).

Then I can remember at least that state of things so the next time the project starts, I know where I am.


Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist

Cool - glad you see the merit and benefits there... I forget that you're not in product dev ;) Your description is exactly what I'm after...

I was wondering about that idea of storing sysex on a separate device as a back-up... or writing a batch script for a USB stick (although I don't think that's practical with my programming knowledge, as that would have to understand midi too)... obviously, as you note, it would be ideal to have it in the Bome MT script, updated to your values though.

All good - I'll pop that on the back burner for now and run with the hard-coded preset option to start (the front burners are on high, and spilling everywhere lol)...

Is there a command for that "dump variable values" technique? ... and could I query "dump all variables from preset "X"...?" or give a range or something?...  That might be handy for getting values when I'm hard-coding presets too...

In random good news: I'm just finishing up my assignments for my Qu16 toggle faders (the 16 x 16 faders) - It's taking ages because everytime I "test" that my settings were correctly entered, I spend 20 minutes jamming out haha...

Hi for dumping variables I just

  1. Go to the log window
  2. Click "Dump Vars"
  3. Then use copy and paste to put into a text editor
  4. Edit to a format that works for MT Pro (only the lines I want to save. One line at a time)
  5. Paste into the appropriate section of my Init rules.

Since variables dumped are global, it will dump them all and not just from that preset. You will have to choose which ones you want to save.


Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist

I used a cumbersome technique for writing variables using a MIDI sequencer.

On the sequencer (a Squarp Pyramid, incidentally) I dedicate one Track to storing/loading values, so I have a dedicated Port and MIDI Channel for BMT/BomeBox to 'listen' to.

I created a Preset in BMT to put it into 'write to sequencer' mode, which breaks up some Global Variable values into single bytes which are stuck as the Velocity value of a Note On Event where the MIDI Note # is the Index for where it goes. This Preset has the trigger of a Sequencer Start command to start sending the data, so to 'store' it in the sequence I just have to put the BomeBox into 'write' mode, then do the usual Record routine on the sequencer.

The Translator to read that data from Note On Events and then put it into Global Variables is always 'on', tho - when it receives a Note On on the Port/Channel it sticks that byte into appropriate Global.

It's limited to 127 bytes of Data this way, but that's enough for my application.

Just a thought.

Thanks, Jim!

Ah ok cool… That’s a clever workaround… I was wondering avbout what I could use (another external gadget) to store values… That’s a handy option that I already own several of (i.e. sequencers with write ability). I’ll have a think further… I think ultimately, having Bome store values directly would be amazing - but I’d rather work with what I have than dream of what I don’t have!..

the part of my script that does this stuff isn’t written to be portable (ie documented and using clearly defined variables), but I’d be happy to share it with you privately if you’d like.

I don’t think it’s very complex if you’re used to that bitwise manipulation sorcery.

Thanks for the offer there creepy - very kind :)… I may look into it (and a few other ideas I have) solo for now, but may touch base if I go with the sequencer / write approach. I must admit, I nearly had a bitwise-nervous-breakdown a day or two ago ahah… Think I’m FINALLY understanding it though!.. I’m very new to the whole MT world (although I’m progressing very nicely!)…

I have a helper application now for Windows that allows persistent globals. If interested , shoot me an email
Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Hi everyone,
I’ve seen in the MT pro 1.9 there’s the possibilety to write variables to the log-window, and at the BoomeBox they would be written to the log-page. Is there then a way to get this variables stored with the Bome Box?

I’ve the same “problem” as above.
Wan’t to make some global var permanent, so that I can recall them with the next start of the BomeBox.
In my case i want to make the programming also safe in case of a accidently power-down.
I don’t want to take this workaround with an external sequencer…

Hope to hear some good news :wink:


Sorry, there is not currently a way to make global variables permanent between sessions. I believe it is on the list of requested enhancements.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Hi Steve,
thank you for the immediate reply.
OK - we’ll see what the future will bring to MTpro.

At least in my use-case it would be very helpful - because the Setup of my Midi-Faderwing got lost with power down.
But this Setup is a littlebit different at every Live-gig. So I initialise a standart Setup, which get’s modified, and this takes some time.

Thanks for your work, MTpro and BomeBox is doing a great Job - they got an important role in my setup → love it!



Thanks for the kind words!

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Hi everyone!
After nearly one year - I want to bump this thread up again…

Storing variables permanent in the Bomebox would be very helpful, flexible and more secure for my setup…

Maybe a log file only for variables?
And the possibility to read it out?


Hi fuzzi… hope youve had a good year :grinning:

Ive semi paused music and bome projects for a busy family life (although still doing music), but recently started investigating this very issue again (planning to finish off my mega bome project).

As far as i can tell, there’s no intent to include this in e.g. bomebox, which is a shame, but fine… small company etc. What ive started to look into is:

Phone app sysex programs - several options designed for storing backups of synth data to phones. Confident that I/we could write complex sysex read/write functions and store / read data. Not 100% how deep i can go though for my needs and havent tested any at all (because: life… not in a bad way… just busy). My first thought is use a known synth we dont own with lots of variables available in sysex, and just hijack that sysex for our own needs. Second but preferred thought is: just try sending a write command to a phone sysex backup, spam out sysex as i see fit with my needed globals mapped to variables in the sysex and see if it writes and reads it?

Have a search online if that interests you… cant remember what i found, but a few basic free apps pop up from what i assume are freindly solo devs.

Aside from that ive thought about usb based programs which could run basic comnands from a usb drive. A possibilty but WAY beyond me at the moment. Was thinking of paying someone to code that… cbf doing that for the moment though :wink:

We’re at a point where we’ve decided to add a way for persistent storage of variables in MIDI Translator Pro, and subsequently, in the BomeBox. As always, we cannot promise a specific release date, but it will come.

The idea is to add an outgoing action “Variable Storage” with these options:

  1. Store Variables
    Select Storage Space: _________
    Comma-separated list of variables to store: __________
    → will store the respective global variables and their current value to the given storage space.
  2. Load All Variables
    Select Storage Space: _________
    → will initialize all the global variables which were previously stored to the given storage space with the values found in that storage space. Global variables not found in storage are not modified.
  3. Load Selected Variables
    Select Storage Space: _________
    Comma-separated list of variables to load: __________
    → will initialize the given global variables with the value in the given storage space. If a variable is not found in the storage space, it is initialized with 0.

The Storage Space is an arbitrary name that you can use to create multiple storage spaces (if needed), or to pass variable values from project file to project file.

For a set of persistent variables, use the “Load All” action at project start, and store them when you’ve done changes to them.

We may also add Rules for storing/loading variables to/from a storage space.


The man himself! Love your work :grinning:

But more importantly: thats AWESOME!! The application of storing variables you suggest above seems thorough and perfect for my needs.

Im incredibly pumped now - there are… some insane options ahead for me. E.g. My QU16 motorised 16 track midi sequencer (with storage!) is back on the cards!! Sounds like i might even be able to use this function for copy/paste and even undo functions too… I might have trouble focussing on work today now haha… I’ll keep an eye out on progress, but for now I’m just happy to know its in the pipeline!

Hi Florian,

Genialst! - thx a lot.

Don’t hurry - no problem my system is still working, but every restart I have to configure as I need it this time - so a specific recall of differen parameter set’s is exactly what I’m looking for!

Great news!

Have a good day,
all the best,