I have used (and taught) Adobe AIR/Flash in the context of physical computing projects for many years now. As I stated before, the Flash Platform is a great framework for tangible interactivity. But what if we could make it even better ?
I am starting the list with three missing features and hope others will join the conversation and suggest more. So, without further ado, here is my, rather short for now, list of things that could be improved to make AIR the perfect physical computing environment.
1. MIDI Support
First of all, native MIDI support would be nice. I know ActionScript in AIR supports UDP so we can use a great alternative called Open Sound Control. However, OSC is still not as widely supported as MIDI. On the contrary, pretty much every piece of audio hardware and software released in the last 30 years supports MIDI. It is still the golden standard for music data communication and has applications in many other areas such as lighting control, automation, synchonization, etc.
I know that external solutions are available in the form of MIDI-to-network or MIDI-to-OSC proxies: JunXion, Visp MIDI proxy, OSCulator, etc. However, in my experience, a setup with multiple components tends to be less reliable and harder to maintain than an integrated one. Until OSC is as widely supported as MIDI, it would be nice to have a free, cross-platform, bidirectional API to work with.
Vote for native MIDI support on the Adobe Bugbase page.
2. A Decent Audio API
Anyone who’s ever worked with a DAW is baffled by the way ActionScript’s audio API works. I mean, you retrieve a sound’s channel by playing it… Really?! And you stop a sound from playing by stopping the channel… wait, what?!
Why not have channels on which you play sounds, whose property you can change (volume, panning, etc.) and that can be grouped together. You could send those channel’s output to any of the available system outputs (meaning support for discrete channels and whatever sound card you have installed). While at it, why not support Audio Units or VST plugins ? I can dream… can’t I ?
3. Serial Port Support
Despite its name, I heard it was possible to access pretty much any serial port with the as3-arduino-connector ANE (ActionScript Native Extension). I have not yet tried it so I cannot comment on any specifics. Still, it would be great to be able to do it directly from the ActionScript API.
Considering the nature of serial communication, I figure it should be pretty easy for Adobe to implement this in a cross-platform fashion.
Vote for native serial port support on the Adobe Bugbase page.
4. What else?
What else do you think should go in that list ? Please leave your comments and suggestions below and let us push for the greatest AIR we can have.
Adobe wants to keep the AIR runtime as small as possible. We all agree that’s a good thing. With that in mind, I would be happy to see my requests fulfilled in the the form of RSLs (runtime shared libraries). In my experience, RSLs have been a bit of a pain to work with but if that meant I could get the extra functionalities, I would be all for it. Anyway, all my worries with RSLs have been solved by simply merging them into code.
Adobe is currently tooling AIR mostly for mobile and gaming. But what if physical computing was another good niche for the Flash Platform? Without even really trying they have been a solid alternative to Processing, Max/MSP and others. What if they started trying? Adobe, are you listening?