)
MidiBridge has 3 tabs at the bottom of the screen:
 |
Interfaces, which shows all the MIDI ports in the system and is where you
connect inputs to outputs and set port filters and names. |
 |
Preferences,
which allows you to configure options and connect to CoreMIDI wireless hosts. |
 |
Instructions,
your user guide - which you are now reading. |
Interfaces
On the interfaces tab, you will find a set of MIDI inputs and outputs that have
been detected by the app. Inputs are on the left and outputs are on the right. If
your iOS device is running iOS version 4.2 or greater then you will have CoreMIDI
support. CoreMIDI network inputs and outputs have a wi-fi symbol embedded in them
for easy identification. CoreMidi virtual inputs and outputs have a virtual cable logo
embedded in them also. When the app starts, network CoreMIDI is enabled to permit incoming
connections from other hosts.
Each port (input or output) has three touchable areas:
To connect inputs to outputs you do the following:
- Choose an input that you wish to connect from. It will
change to a green colour to show it has been selected.
- Now touch one or more outputs to connect that output to the
currently selected input. A green line from the input to the output
will be shown to indicate that the two are connected.
- Touch the orignally selected input (or another input) to deselect
that input.
The same procedure works in reverse if you wish to select an output
and connect a number of inputs to it. To break a connection you simply
repeat the above on a pair of inputs and outputs that are already connected.
Also, when you select a port, all connections to that port are highlighted,
so, if you want to see which ports an input or output is connected to you just
touch that port. Remember to touch it again to deselect it.
When MIDI events pass through a port (received on an input or sent from an
output), the port will flash briefly. The flashing can be disabled from the
Preferences window.
MidiBridge keeps track of the MIDI interfaces it sees and the connections
made between them and will restore any connections that were made previously.
Naming of ports
You can define your own names for each port, for example the name of the
instrument or MIDI device connected to it. Just touch the
icon in the port and use the keyboard to change the name. The name you set
will be remembered and when MidiBridge is run again your own port
names will be restored.
Port Filters
Each port (input or output) has its own midi event filter.
The filter view allows you to filter out (or in) certain types of midi
events from passing through the input or output. To access the filter settings
of a port, touch the
button.
Note!
When a filter is activated for the first time, the default setting is
to block no events (pass-thru)
This section describes each control and how it affects the filter:
- Bypass/Active
This segmented control determines whether the filter is in effect or
whether it is bypassed. If bypassed, the other filter controls are not
accessible and events are not checked against the filter.
When the filter is active, an
badge will be shown on
the filter button in the Interfaces window
in order to remind you if a filter is active on that port.
Note also, that
if an event is blocked by the filter, the port itself will not flash, but the badge
will flash instead, as a visual indicator of events being blocked.
- Mode
The filter operates in one of two modes:
Allow
mode specifies that events which match the event
types/channels specified below are used. All events that do not match the
event types/channel matrix settings will be ignored. This type of filter
is generally used to focus in on a particular type of event stream.
Block
mode specifies that all events received are allowed unless
they match the event types/channel matrix settings. This type of filter is
generally used to exclude unwanted events from the capture/midi thru.
- Channel Matrix
The channel matrix (shown below) allows you to choose the channels that are
to be used in the filter. You select/deselect channels by touching them. In
itself the channel matrix does not specify the events to filter, but is used
in conjunction with the Event Type switches described in the next section.
- Event Type On/Off
Below the channel matrix are the event types that can be used by the
filter. The event types that can be filtered are as follows:
- Note On/Off - Note On, Note Off messages
- Aftertouch - Channel pressure, Aftertouch messages
- Controller - Channel Controller, Pitchwheel messages
- Program Change - Program Change messages
- Sysex - System Exclusive messages
- Time/Song - MIDI Time Code, Song Position/Select messages
Touch each of these event type buttons to toggle their inclusion (or not)
in the filter.
In addition, note, aftertouch, controller and program change event types
can be also checked against the channel matrix by toggling the mini channel
matrix button to the right of each of these types.
If the matrix button for
an event type is not selected then all channels for that event type are
included in the filter.
By way of example, the above two pictures show that Note On/Off messages are to be included in
the (Allow) filter and that only those note on/off events that are sent on
the channel specified in the channel matrix (1 and 2) will be considered.
Aftertouch messages will not be considered at all.
- Use the 'Done' button to save your filter changes or the 'Cancel' button to forget any
changes made.
Filters can be used to split events from one input into multiple outputs. Simply connect
the input to the outputs and then set an 'allow' filter on each output (or block filter) to
allow only the desired channels for that output to be forwarded.
With keyboard controllers (or other devices) that send active sense messages, you may
find that blocking TimeSong events on that input (and thus filtering out active sense) will
improve performance.
CoreMIDI Wireless Networking
One of the core features of MidiBridge is the ability to connect externally connected
MIDI devices to remote CoreMIDI hosts via wi-fi from your iOS device. Here are some important
things you should know:
- When MidiBridge starts, it allows incoming connections from any host on UDP port 5004 on the local network.
You can initiate a CoreMIDI network connection from a Mac, PC (with appropriate software) or
another iOS device running a CoreMIDI supported app (or even another MidiBridge app to interconnect
two MIDI devices wirelessly).
- Your iOS device can be connected to more than one remote host at the same time. In which case,
all MIDI events from any networked host will be received by MidiBridge and all networked hosts will
receive events sent to the network output.
- MidiBridge can initiate one network connection to another host (see Preferences)
- When one or more remote hosts are connected, the port wi-fi icon will be highlighted yellow
and the badge on the Interfaces tab bar will show the total number of remote hosts connected to
your device.
Preferences
The Preferences page allows you to customise the way MidiBridge behaves and is also
where you can initiate CoreMIDI network connections.
All settings (including filters, names and connections) are remembered between app
invocations.
The settings are:
- Enable/Disable Inputs (default: All enabled)
Pressing this button will bring up a seperate panel from where you can choose to
have MidiBridge disable or enable any of the input ports detected in your device. If
an input is disabled, no events will be processed from that input and the input port on
the Interfaces tab will be darkened.
- Jitter/Sync Latency (default: 0 ms)
With a value of zero, MidiBridge will pass an event to the routed outputs as fast as
possible and it is best to use this value when playing live. However, for sequences or
time based traffic, increasing this value (250ms works well) will delay the event and
tell the system to play the event at the relative time at which it was received on each
input and thus syncing the event streams without any jitter.
- Run in Background (default: Off)
If this option is set to 'On', then MidiBridge will continue processing MIDI
when the app is backgrounded. Naturally, this can reduce battery life if there are
many apps running. Note, that if no MIDI data is received for 20 minutes, MidiBridge
will suspend (and inform you via notification) to preserve battery life.
- Visual Events (default: On)
Switching this on will cause ports (or filter badges) to flash briefly as event data
is processed. Turn this off to gain more performance and reduced latency.
- CoreMIDI Destination Host/IP Address (no default)
In order to initiate a connection to a remote host from MidiBridge, the name of
the host (network hostname) or raw IP address (eg. 192.168.1.30) should be set here.
- CoreMIDI Destination Port (default: 5004)
The port number to use when initiating a connection. This must match the port number
set on the remote host for CoreMIDI networking for the desired session. Please note that
your iOS device will only receive connections on port 5004.
- Connect Automatically (default: Off)
When MidiBridge starts if this option is set to 'On' then it will immediately attempt to
connect to the host/port specified in the preceding settings.
- Connection Dialogs (default: On)
When a CoreMIDI network session is connected or disconnected (whether initiated
by MidiBridge or from a remote device) informational dialogue boxes are displayed.
Setting this to 'Off' will suppress these.
- Connect (Disconnect)
Pressing the Connect button will initiate a connection to the remote CoreMIDI host
specified above manually. When one or more networking sessions are active, this button
becomes a 'Disconnect' button. Pressing 'Disconnect' will terminate all network
sessions; both initiated from the device and remotely initiated from another host.
Known limitations and issues
This section describes some of the known issues and limitations of
MidiBridge.
Landscape Mode - Landscape mode is only supported on the iPad,
although you can rotate an iPhone or iPod Touch upside down.
Sysex with CoreMIDI Network/Virtual - Currently individual SysEx messages greater than
1010 bytes are truncated/lost when sent to a CoreMIDI network or virtual output. Similarly,
any sysex message greater than 256 bytes received by a CoreMIDI network or virtual input is
truncated. In both of these cases MidiBridge discards the (now useless) truncated data
and warns you it has had to do this via a 'once-per'session' dialog. This is an
Apple iOS issue (presumably the iOS CoreMIDI network driver has a bug).
Other Audeonic Apps
We'd like to mention our other iOS apps which may be of interest to you.
Touch the app icon to view in the App Store
You, for downloading (and presumably purchasing) this application. We
hope it will be useful to you. Please do take time to review it in the App
Store for others. If you have any suggestions for improvements, have found
bugs, want to vent your spleen or even
need an app developer, please contact us at apps@audeonic.com or visit
www.audeonic.com.