User's Manual
Table Of Contents
- 1 Welcome
- 2 Quick Start
- 3 MIDI Setup Guide
- 4 Program Interface
- 5 MIDI Translator Concepts
- 6 The Project
- 7 The Preset
- 8 The Translator Entry
- 9 Actions
- 9.1 MIDI
- 9.2 Keystrokes
- 9.3 Timer
- 9.4 Preset Change
- 9.5 Disable/Enable Processing Actions
- 9.6 Mouse (Outgoing)
- 9.7 Execute File (Outgoing)
- 9.8 Serial Port
- 9.9 AppleScript
- 10 Rules and Variables
- 11 Settings
- 12 Behind the Scenes
- 13 Tips & Tricks
- 14 Usage Example
- 15 MIDI Translator in Hardware: the BomeBox
- 16 Reference
Bome MIDI Translator: User's Manual 13 Tips & Tricks
executed one after another, because both Incoming Actions will be
triggered from the (matching) event. Note that for this to work, you
must uncheck “Stop Processing”.
2. For the MIDI outgoing action, you can use the Raw MIDI outgoing type
and concatenate multiple message directly in the MIDI message field,
e.g.: 90 40 7F 90 44 7F 90 4A 7F will play 3 notes directly.
3. For a different way to trigger multiple Outgoing Actions “at once”, see
Timer with 0ms.
13.6 Performance Optimization
For most use cases, MIDI Translator's performance will be near real time, so
there should not be the need to optimize. However, for larger projects (i.e.
100's of Presets / 1000's of Translators), it will be worthwhile to know some
optimization techniques.
13.6.1 Deactivate Presets
Every Translator is “processed” for every event when its owning Preset and
itself are active. Now for a couple hundred Translators this will not be a
problem, but you may experience a performance degradation in large
projects (also depending on processor).
One easy way to optimize your project is to make sure that you disable as
many Presets as possible. When a Preset is disabled, none of its Translators
are even looked at during processing of an event. So it's worthwhile to
group Translators that are used together into Presets and activate the
Presets as needed.
For example, let's say that the first Preset is an “Initialization” preset with
100 Translators that execute after the project was opened. Subsequently,
after initialization is fully done, every Incoming Event will walk through
those 100 initialization Translators before reaching any useful Presets.
A straight forward way to solve this is to add a last Translator to the
Initialization preset like this:
Preset 0: "Initialization"
Translator 0: init 1
Incoming: On Project Opened
Outgoing: [initialization 1]
...
Translator N: "deactivate Init preset"
Incoming: On Project Opened
Outgoing: Deactivate Preset "Initialization"
(c) 2019 by Bome Software GmbH & Co. KG page 84