Translator PRO Processing Sequence


When Bome 1) receives a new midi event to a ‘in’ port but 2) Bome has not yet finished processing the last MIDI event…what happens? Is the new incoming event queued for processing after the last event is done processing, or is a new process spawned such that both events are processed simultaneously?



The best resource for this type of question is probably page 95 of the user manual.

Bome MIDI Translator is multi-threaded, therefore extremely fast for the most demanding situations. For the most part, timers can trigger asynchronously so multiple things can be happening at the same time.

Care must be used with global variables to avoid two translators from using or changing the value with different translators. For the most port, you should try to use local variables within translator input and output actions to avoid race conditions. You should also limit the translators that touch a give global variable to set your timers to ensure that more than one translator is not trying to change a global variable at the same time.

In a rare case that a given MIDI event takes a long time to processor (usually do to delays introduced by the programmer), you would need to set up some sort of queuing system (temporarily storing the values for later processing). This requirement is rare, so if you describe in more detail, what you are trying to do, perhaps I can assist.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services: