0. Get the MobMuPlat iOS or Android app
1. Create a user interface in the MobMuPlat Editor
2. Create an audio engine in PureData
3. Drag those two files into the MobMuPlat Documents folder in iTunes (iOS) or send them to your device storage (Android)
4. Play your app on your device!

Slightly more detailed:MobMuPlat is a standalone iOS+Android app which hosts and loads from a list of available works. Creating your own work consists of two parts. First, creating a graphical user interface (GUI) with the MobMuPlat Editor (OSX and Java versions available); second, creating the audio engine using the graphical programming language Pure Data (PD). With both of these applications open, and data sent between the two, you can simulate the app behavior on your laptop/desktop. Once development is complete, just drag the two saved files into the "Documents" folder of iTunes, and they are uploaded to your iOS device and can be opened in the MobMuPlat app. (For android, get the files onto your device storage folder anyway you like, then open them in the MobMuPlat app).

MobMuPlat can do synthesis, sampling, MIDI, OSC, networking via local wifi, query and set hardware characteristics like tilt/compass/camera flash, display images and vector graphics, be used within AudioBus (iOS only), take joystick/gamepad input (Android only) and much more.

2. Download and unpack the zip file below. It contains the MobMuPlat Editor (both Cocoa and Java versions), a pair of utility PD files, and a folder of tutorial files (the same files that come bundled in the app).

P.S. the editor creates ".mmp" files, which are actually just JSON-formatted text files. You can edit and create these manually if you are hard core.

3. Get PureData .46 or above. (.46 is necessary for communication with the desktop editor via OSC. However, patches made on previous versions will still load correctly in the app. Note that built-in externals work, but externals loaded via deken do not work).

4. Learn how to program in PD. That takes a bit of time. Some places to start: (1), (2), (3)

Learn the workflow by making your first piece - Hello, sine wave world!

1. Open MobMuPlatEditor
-Under the "Doc" tab, select your device under "Screen Size"
-Under the "Add" tab, click "slider", and drag/resize it on the canvas until it is nice and big
-Under the "Prop" tab, note the OSC-style address ("/mySlider"). Each GUI object should have a unique name. Leave it for now, though.
-The default range of a slider is 2, which means it sends continuous values 0-1. Change the range to 12, and it will send out integer values 0-11
-Hit the "Lock" tab, the editor is now in locked mode, so drag the slider and see the outgoing messages in the console
e)Save it, give it a distinctive name. it will create a ".mmp" file. (which is a JSON-style string, in case you care about that). Keep the editor and this file open.

2. Open Pd (vanilla, .46 or later)
-open the patch "PdWrapper.pd". Don't change anything in this patch, this patch allows communication between the editor and your Pd patch.
-open the patch "MMPTutorial0.pd". Take a look at it. When you slide your slider in the editor, its value should show up in the patch. In the Pd window (apple-r) click "DSP" to turn on audio. You should hear a tone that responds to the slider. Feel free to tinker around in this patch before continuing.
-go back to the "doc" tab of the Editor, hit "Choose", and select the "MMPTutorial0.pd" patch.

3. Get patches onto your device:

iOS via iTunes: Connect your iOS device to your computer and open iTunes
-click the device in the left bar of iTunes, and then click "apps" along the top bar
-scroll down to the section "Apps with Documents", and then click MobMuPlat. If you've already used MobMuPlat on the device, then you'll see a list of files (.mmp files, .pd files, sound files, graphics files). Drag your saved .mmp file AND the "MMPTutorial0.pd" into this box, and they will be automatically copied onto the device.

iOS AND Android, via file association: .mmp, .pd, and .zip files are associated with MobMuPlat, so get these files onto your device by any means (email, file sharing e.g. Dropbox/Google Drive, download from web, Air Drop, etc). Then tap (or in some programs, long-press) the file, and open it in MobMuPlat. This will copy the files into the MobMuPlat folder (iOS: the app's Documents folder; Android: the MobMuPlat folder in the external storage folder aka SD card folder )

4. On your device, open MobMuPlat
-click the menu button on the top-left of the welcome screen
-on the documents list, find your distinctively-named file, and click it
-you should see your slider. drag it up and you should hear your pitch. Congrats, you have made something!

5. ???

6. PROFIT!

Get more into it

Check out the series of tutorials (installed in the app, and also included in the software package), to see how various features work: GUI elements, networking, sampling, image files, hardware info, and more!

Documents and distribution

MobMuPlat finds whatever files it is looking for (.mmp, .pd, audio, images) in its documents folder. You drag all your files into this folder via iTunes on your computer (see workflow instructions above). You can also drag a .zip archive (containing all your work's files) into this folder, and it will show up in MobMuPlat's file list; click it there and it will unzip the files to the documents folder internally.

But wait, there's another way: you don't even need a computer/iTunes! MobMuPlat is associated with .mmp, .pd, audio, and .zip files. This means that if someone emails you an .mmp, .pd, audio, or .zip file, open it in your mail app, tap (or hold down) the attachment link, and a popup will ask if you want to open the file in MobMuPlat. This will copy that file into MobMuPlat's document folder! (And if it is a zip it will unzip automatically). This also works for versions of Safari/Chrome links, Dropbox/Drive, etc.

Yes, Automatonism patches, as they are Pd-vanilla only, will load on MobMuPlat (and on all libpd-based apps). The user-saved state of the modules (the text files within the subfolder) will load correctly on open. Note that this loading is within the audio engine, not the GUI.

Automatonism patches will work with MobMuPlat interfaces (.mmp) on all versions of MobMuPlat. For opening "native" PD GUI, please update to the most recent versions (iOS:v1.81 Android:v0.33). Given the reverse-engineering nature of the "native" Pd GUI mode in MobMuPlat, there are more likely to be bugs in "native" Pd GUI mode, than in MobMuPlat interface mode. Please file bug reports on the github issues page.

The GUI elements within the Automatonism modules will NOT be visible, nor user-usable, when opening in "native" Pure Data GUI mode. For both native and MobMuPlat interface modes, all parameters must be controlled via passing "CV" signals/values (in the parlance of Automatonism) into modules. This means that those module elements without CV control (e.g. "pitch" in the basic-osc module) cannot be changed by the user when opened (but will have their state saved from when last saved on desktop/laptop).

MobMuPlat currently requires .mmp and .pd files to be at the top level of the app's "Documents" folder. This means that, due to the Automatonism file structure (in which all openable items must be at top level, and with an Automatonism subfolder with a fixed name which holds all the patch save data), there can only be one openable Automatonism file on the mobile device at a time. Future updates will address this issue by allowing navigation to subfolders (and opening of contents witihn them), allowing multiple Automatonism projects on a device.

Acknowledgements

This work is indebted to other pieces of code!
-Most notably Libpd, which runs Pure Data patches on iOS and Android (among other platforms)
-unzipping files with minizip and objective-zip
-OSC messaging with the nice VVOSC and JavaOSC packages
-PGMidi MIDI library
-iOS "Native" PD GUI object rendering by Dan Wilcox in PdParty

Wait, does this cost money?

MobMuPlat is free in both senses of the word; MobMuPlat and the MobMuPlatEditor are now open source on Github!
If you'd like to support this work, please donate with the link below.