# MWorks on iOS: custom plugins and MIDI protocol

**URL:** <https://mworks.discourse.group/t/mworks-on-ios-custom-plugins-and-midi-protocol/221>\
**Category:** Support\
**Created:** [November 6, 2019, 8:24pm UTC](https://mworks.discourse.group/t/mworks-on-ios-custom-plugins-and-midi-protocol/221 "2019-11-06T20:24:07Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![cstawarz](https://yyz1.discourse-cdn.com/flex031/user_avatar/mworks.discourse.group/cstawarz/32/3_2.png) [@cstawarz](https://mworks.discourse.group/u/cstawarz)\
**Post date:** [November 6, 2019, 8:24pm UTC](https://mworks.discourse.group/t/mworks-on-ios-custom-plugins-and-midi-protocol/221/1 "2019-11-06T20:24:07Z")

</div>

Dear Chris,

I am writing from Stefan Treue’s Lab where we will soon start using MWorks on iOS with marmosets.

But before starting we would need to compile some of our custom MWorks plugins onto the iPad (issue number 1) and we also would need a way of controlling a digital / analog input / output board that Ralf designed (issue number 2).

The two issues are related I guess, because the IO board (based on the teensy 3.5), has its own plugin in MWorks that handles communication. In the conventional setups and in the XBI such board is connected to a MacBook and uses the standard serial protocol for communication. On the iPad I think it is possibile to use the MIDI protocol, which offers many channels and rather short delay (at least this is what the music making community says).

Do you have any plans already to make these two things possibile on iOS? Have you already solved similar problems in alternative ways?

best  
Antonino

---

<div class="post-metadata">

**Author:** ![cstawarz](https://yyz1.discourse-cdn.com/flex031/user_avatar/mworks.discourse.group/cstawarz/32/3_2.png) [@cstawarz](https://mworks.discourse.group/u/cstawarz)\
**Post date:** [November 6, 2019, 9:05pm UTC](https://mworks.discourse.group/t/mworks-on-ios-custom-plugins-and-midi-protocol/221/2 "2019-11-06T21:05:06Z")

</div>

Hi Antonino,

> Have you already solved similar problems in alternative ways?

MWorks on iOS supports general purpose analog/digital I/O via the [Firmata interface](https://mworks.github.io/documentation/latest/components/firmata_device.html). While MWorks on macOS supports both serial and Bluetooth LE connections, MWorks on iOS supports only BLE.

If you can adapt your I/O board to be compatible with Firmata over BLE, then you won’t require any changes to MWorks. (Here in the DiCarlo Lab, we’re using [Adafruit Feather M0 Bluefruit LE](https://www.adafruit.com/product/2995) boards with our iPad’s running MWorks.)

> On the iPad I think it is possibile to use the MIDI protocol, which offers many channels and rather short delay (at least this is what the music making community says).

That’s an interesting idea that I had not considered previously. The [Firmata protocol](https://github.com/firmata/protocol/blob/master/protocol.md) is actually based on MIDI, so this might give us a way to support wired, non-BLE connections on iOS.

> we would need to compile some of our custom MWorks plugins onto the iPad

This is not so easy. There’s no way to load a user-provided plugin in to the [released MWorks app](https://apps.apple.com/us/app/mworks/id1389408331?ls=1). This means that you’d have to compile the entirety of MWorks for iOS yourself, along with your custom plugin(s), and then jump through the various hoops needed to install a non-App Store app on your iPad’s. Depending on how many setups you have, this may be infeasible or impossible.

Cheers,  
Chris

---

<div class="post-metadata">

**Author:** ![cstawarz](https://yyz1.discourse-cdn.com/flex031/user_avatar/mworks.discourse.group/cstawarz/32/3_2.png) [@cstawarz](https://mworks.discourse.group/u/cstawarz)\
**Post date:** [July 19, 2022, 8:44pm UTC](https://mworks.discourse.group/t/mworks-on-ios-custom-plugins-and-midi-protocol/221/3 "2022-07-19T20:44:00Z")

</div>


