Snake on a Plane

No one uses Java any more, eh, Steve Jobs? Why, we use Java for … you know … useful stuff. Work stuff. (Shown: Snake on a Plane, built in Mobile Processing.)

All rational arguments for development on mobile phones aside, some phone owners are driven by the irrational, purely personal need to tap into their phones and do stuff. Our friend Sebastian Tomczak reports back on a first experiment with the mobile version of Processing, the Java-based “coding for artists” tool.

Simple Live Synth for Phone

Phone ho

Sebastian says, hello, world — now, we’re looking forward to DIY music apps from all of you.

This is nothing fancy, but that’s the point: simple is the best way to get started. It’s the sound version of “Hello, World.” In programming, I find, even simpler than I think is necessary is often the best place to start. Erm, especially if you’re me and screw things up really quickly.

Mobile Processing is an example of what the future could look like if we could program phones with standard Java libraries. After all, your phone is a computer — often a pretty expensive computer, considering. And then, when you upgrade, it becomes useless without service. Recycling phones into something useful is only natural. And because they’re simple computers, there’s an opportunity to return to the days when programming was actually considered a killer app — for “end users.”

And yes, this does fit in the category of “things you can’t do with Ajax on iPhone and can do with zillions of other, cheaper phones.” I’m glad to be over the “what might actually impact iPhone sales” category and into the “completely useless phone applications that appeal only to insanely geeky musicians” area again. Phew! Much better.

Non-Processing/Java geeks can stop reading here, but I should elaborate a bit. Mobile Processing is much earlier in development than the other tools we routinely mention here. On the visual side, Marius Waltz (of Code & form fame) was recently seen in shock at how alarmingly primitive phone programming can be. The issue comes back to what Apple chose not to do — hardware-specific SDKs — though, in fairness, mobile Java has gotten much more consistent across the hardware. The issue is how conservative the core Processing libraries are; if you really want features, you’ll want the bleeding-edge, higher-end stuff recently added to the external libraries section of the Mobile Processing site.

At least, I think. My Processing work has all been desktop-bound. I’ll be hanging out next week in Aspen, Colorado with Processing’s creator, Ben Fry; I’ll be sure to report back on what I learn. And later this summer, I intend to do more mobile work. Since Sprint just sent me a Samsung UpStage, naturally, I’ll have to make something for it.

  • I want cell phone music apps, but how to use the crummy interface?

    Everything that I am forced to carry with me throughout the day should be able to make music if called upon to.

  • Crummy interface meaning the numeric keypad?

    I think we'll see other alternatives. The aforementioned Samsung Upstage has four-way touch sensors on the front, which could actually work really nicely for music, especially if you designed for them specifically. And in general, more touch is clearly on the way.

  • Personally, I'm not so thrilled about Java. Although I have nothing to complain about with respect to the language, all apps I know running with java are woopin at a staggering 100Mb of mem usage and perform very poorly no matter how well the app has been written. Azureus (?) is a good example of that. It's a wonderful app but it's going to use 50% of your resources just because it runs on java. And we can't say it's a very intensive app in terms of computation..

    From my experience, and with respect to current state of the embedded world, you need direct access to the hardware and its resource to do something decent – audiowise at least.

    So my view is that the gaming platform are still the way to go for portable music machines. There's a fantastic community behind them and they have very different but compelling specs.

    I also dare to say that in terms of effectiveness and speed (we want to *do* something with those right ? not just show off) the DPAD+ 6 Button combo is still to be beaten.

  • Java applications most definitely don't need to use 100MB, but what you're seeing is Java's biggest problem — the massively bloated JRE. The good news is, the Java community seems finally to be waking up to just what a big problem this is. I think you'll see a much better "consumer" JRE as soon as early 2008, and the OpenJDK initiative is likely to mean people will start working on open source development initiatives that address some of the other issues. Even now, there are ways around that.

    Mobile is going to be a completely different story — it's designed to be small. You don't get direct access to the hardware, necessarily, but you get a lot. I don't think cell phones are every likely to be serious music tools, but you ought to be able to do *something* with them. 🙂

    And I agree … buttons are great!

  • divbyzero

    A reasonably featureful real-world J2ME application (i.e., Java for mobile phones) I'm currently developing for my day job clocks in at 800 kb total memory usage. Yes, thats kilo, not mega. Obviously if they're trying to support devices with noticably limited hardware, they're going to optimize the runtime a heck of a lot more than the desktop version.

    The available APIs are fairly limited, but not necessarily prohibitively. If your phone supports the right optional media APIs, you should be able to run a nice little toy MIDI sequencer on the go. I'd write one for myself in a heartbeat, but my personal phone is on the Verizon network (USA), which is, for all intents and purposes, completely closed to independent developers.

  • Interesting to hear, divbyzero … which provider would you say is better? Both Sprint and AT&T/Cingular appear reasonably open.

    I found Verizon really closed in general and dumped them, finally — especially when they stopped supporting phone-as-modem features they actually pitched *to me* when I went with them. (And that's a case where the closed/open thing will be painfully obvious even to a fairly average consumer.)

  • Thanks for the fix.. good to know there's an opening there. what about the amout of processing you can do ? All cell phonezee I've seen so far are dead slow even for their regular usage (sending message, accessing the phone book). Hi end nokias have bell and whistles but still browsing the photos is a pain in the butt. Is there anything worthwile there ?

  • well most cell phones have a general midi synth that shouldnt use much cpu to drive.. i think I would be interested in a decent sketch pad that could export midi from songs made with that..

  • Oh, yeah … and I never did get to fully appreciate the Beatnik technology, developed by a startup led by Thomas Dolby, that powers MIDI phones … I don't know how much of that is actually left in modern phones, though I know it had an impact.

    Some phones now have pretty high-performance CPUs. I think sometimes they bog down because of poor bloatware running on them — possibly just memory consumption. I've seen exactly the same hardware perform radically differently. Some here probably know more than I do, though…

    I'd love to have a totally open phone platform.

  • I'm not too much gaggin for the 'phone' part.

    I'd rather have a dumb 10$ cell phone for talking and a small-ish powerful device to write exciting apps that won't ring. With that respect, the GP2X is a *blast*, I still can't believe how much power I get out of it.

    I think my perfect machine at this point would be the bastard child of the GP2x and DS:

    + Power and open-friendlyness of the 2X

    + Nice 320×240 of the 2X

    + Linux on board for remote telnet/samba

    + Wi-fi

    + Touch screen from DS

    + 200 euros price tag.

    + Before some mention some tablet/pocket pc:

    it needs the knobs too.

    As Extra:

    + The DS's dual screen for extra clarity

    + Twice the power (so I can start cramming

    more algorithms in the piggy)

    I tried to mate mine but they don't see too attracted to each other 🙁

  • and I forgot in the wish list:

    !! A SDK !! 🙂

    The difficulties in getting homebrew running is a major point. That's why I'm not even considering porting LGPT to the PSP for example. When consume your free time in writing application, the last thing you wanna do is struggle with dumb plateform issues.

  • bluderfok

    I am wondering now how to play games and create music tunes on iPhone with its lovely multi-touch screen device

  • alexislli

    In the there is double tap to zoom in on the New York Times–not multi-touch finger spread zoom? Where is it?