What is the OMAC Application registry?
Essentially a shared property list (plist) that is administered
centrally of symbiotic iOS music apps and free source code software for querying
the registry and fast-switching to other participating apps (including via
MIDI messages).
I'm a music app developer. Why would I want to participate?
There are some excellent benefits in participating:
- Other participating apps can switch to your app without home buttoning
- You can allow your users to switch to another app, without home
buttoning
- Users can use MIDI messages to switch to/from your app from their own
controller devices or apps.
- You can provide a list of apps to your users that they can explore and
download that are related to your app.
- You can increase exposure of your own app as it appears in the list of
OMAC apps in other participating apps.
A demonstration video of fast-switching is available on
youtube
Sounds great, what do I need to do?
We have created a guide to help you get
started.
Who is currently fast-switching?
If you examine the plist file you will get a list of all apps that have
registered as switching receivers, ie. apps with a switching UI will be able
to switch to these apps.
Currently the following apps are fast-switch senders (check them out!)
App Name | Supports MIDI switching |
MidiBridge | YES |
MidiVision | YES |
Little MIDI Machine | |
BassLine | |
MoDrum Rhythm Composer | |
Genome MIDI Sequencer | |
FreEWI (sort of) | YES |
Let us know if your app is missing.
How often is the registry list updated?
On demand as new applications are added, maximum once every 24 hours.
Registry changes are checked by a human manually to ensure the data in the
registry is valid and reasonable.
What is the specification of the inter-app messages?
You can have a look at the processMIDIMessage method of the OMACApplicationRegistry
class, but here is the specification (hex spaced 7bit bytes):
F0 1F nn {7bit bytes} F7
Where nn (message type) is one of the following:
- 00 aa bb - app switch message with serial number aabb, where serial number is
a 14 bit value with aa as MSB and bb as LSB. The serial number of an app is a unique
number for each app allocated in the OMAC registry. You can get an app's serial number
as a property of an OMACApplication object.
For example, to switch to app with serial number 9 in the registry, the message looks
like: F0 1F 00 00 09 F7
What is this DNS Versioning thing all about?
The current version of the property list file is maintained in DNS at a
fixed hostname. When your app looks to update it's property list dynamically
it just needs to check the hostname with a simple gethostbyname() call and
only fetches the update if needed. Thus, we can leverage the sophisticated
worldwide DNS caching infrastructure to minimise update traffic. Note, this
is all handled for you in the class.
It's not working. How do I get help?
Post to the Open Music App Collaboration group (linked below) or email
the address below.
|