Post by dwarman on Sept 15, 2015 22:13:54 GMT
Is iOS Bluetooth MIDI Port Support in or planned for the MidiBus library (and by implication MidiBridge, which has been showing signs of bitrot lately)? You have a lot of client Apps that will instantly get this. Currently very few support it. Adding it to a router and SDK will effectively give it to everybody.
Press any key to continue
Post by nic on Sept 16, 2015 9:19:53 GMT
Adding support to MidiBus library is a bit tricky. Although it is just a couple of lines of code, you have to hand off the BT stuff to Apple's UI. The MidiBus library itself doesn't have any UI stuff in it and it would need a hook that the app dev has to invoke to start up the BT stuff. I could not just invoke it by default since that would be very rude to users and devs using MidiBus.
Adding support to an app is really easy:#if !(TARGET_IPHONE_SIMULATOR)
// CoreAudioKit not available on simulator
CABTMIDILocalPeripheralViewController *viewController = [[CABTMIDILocalPeripheralViewController alloc] init];
[self.navigationController pushViewController: viewController animated: YES];
That is all an app dev needs to add, as well as providing the UI hook to invoke the IBAction function above. Once the user switches on BT in the Apple UI then the connected BT device appears in CoreMIDI (and thus as an interface in the MidiBus library) straight away.
In terms of MidiBridge and bitrot, I find myself in a quandary. In order to make any updates, Apple is forcing an app to be delivered with 64 bit support. Currently there are no 64 bit libraries for the Akai SynthStation 25 and Line 6 Midi Mobilizer (original). Right now, MidiBridge is pretty well the only app that supports these controllers and bridges them into CoreMIDI. No new app can add this support since both Akai/Line6 are no longer 'MFI' listed with Apple. Currently existing apps are OK. I either have to beg both Line6 and Akai to release 64 bit slices of their SDKs (or offer to do this for them) or remove support for them on 64 bit devices. I plan to pursue the former if possible but am unlikely to do the latter since that would leave owners of the above controllers unable to use them at all on a 64 bit device.
MidiBridge is pretty stable and I don't really have any new features that I would be planning to add in any case, but each release of iOS strikes fear into my heart that they will irreparably break MidiBridge and I would be stuck.
If I do manage to get 64 bit versions of both Akai/Line6 SDKs then it would be very doable to add an 'enable bluetooth' button into MidiBridge. I'm in the middle of updating the MidiBus app with MIDI controlled tap tempo and support for a new companion app I am working on, so if I can find a nice place in the MidiBus app to do the same 'enable bluetooth' then I will have a go. In the meantime there are at least 2 apps that have copied MidiBridge (one is almost a carbon copy including the UI) so there are now alternatives.