a project of Iglesia Intermedia
MobMuPlat and the MobMuPlatEditor are now open source on Github!
0. Get the MobMuPlat iOS 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
4. Play your app on your iOS device!
Slightly more detailed:
MobMuPlat is a standalone iOS 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 (currently OSX only); 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 device and can be opened in the MobMuPlat app.
MobMuPlat can do synthesis, sampling, networking via local wifi, query and set hardware characteristics, display images/graphical scores, and much more.
Update 1.1, 1 March 2013: MobMuPlat now has a PD console, MIDI input, GUI widget translucency, can run audio in background, can load PD files without an interface, and more.
1. Put the MobMuPlat app on your iOS device. Get it here
2. Download and unpack the appropriate zip file below. It contains the MobMuPlat Editor, a special distribution of Pd-vanilla, a pair of utility PD files, and a folder of tutorial files. PureData is available separately on all operating systems; the included version is 0.43 with some externals included.
- OSX: (contains a Cocoa version of the editor for OSX 10.7+, and a Java version for older)
- Windows: See readme for notes (fonts and multicasting have some issues)
- Linux and others: just contains the Java version of the editor and the Pd patches. Up to you to install PureData; see readme for more info.
About the PD distribution: PD patches for your iOS device must be made with "PD vanilla" (not Pd-extended), the basic distribution. However, in order to simulate the app on OSX (using OSC + UDP to communicate between PD and the MobMuPlat Editor), a few extra objects were needed, and so they've been included in this distribution, but they will not work if used in a patch in iOS. Pd-vanilla externals (expr, fiddle~, etc) _do_ work!
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. 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
-open the patch "MobMuPlatWrapper.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. 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.
4. On your iOS device, open MobMuPlat
-click the round info button on the welcome screen
-on the load screen, 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!
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 iOS Mail app, 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 iOS versions of Safari links, Dropbox, etc.
This work is indebted to other pieces of code!
-Most notably Libpd, which runs Pure Data patches on iOS (among other platforms)
-unzipping files with minizip and objective-zip
-OSC messaging with the nice VVOSC package
-JSONKit to make/parse JSON files
-PGMidi MIDI library
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.
questions? bug reports? email: info -AT- mobmuplat.com
How to find iOS crash logs