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.
Side notes
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?
It’s funny you mention MIDI support, as I am currently preparing to release a Native Extension that provides just that.
Wow, that’s excellent news! If you ever need someone to beta test it, I could definitely chip in (just tweet me). What platforms are you planning to support?
I’m currently using OSCulator as an OSC-to-MIDI bridge on an interactive project. It’s working fine but I’d rather do away with any external applications.
Absolutely! I was actually trying to get it up on github last night but was too exhausted 🙂 It’s a side project that I can only devote some time to each day.
The NE supports multiple devices as well as MIDI time clock in the form of AS3 Signals, the idea being you can have Traktor or some other dj software sending a timecode out and synching graphics to it.
It’s very very alpha, though, and Mac OSX only at this time. But to have other people interested in it is enough motivation for me to get it out there now rather than later!
I’m sure there are many more people out there that would be interested in it. That’s great news for the Flash/Flex/AIR community!
I’m curious, what MIDI devices do you have and are familiar with? Any dj software like Traktor?
One of my projects is writing wrappers for very common ones. I use an APC-40 and an Akai 25 Key midi keyboard..
I use Logic on a regular basis with a lot of software made by Native Instruments (I bought the Komplete 9 package). As far as devices, I have an AxiomPro 25 from M-Audio and a V-Drums set from Roland.
Hi Jean,
have you received any good answer from Adobe? I am very interested in the decent audio API. I have a project now in which I could use max msp to control to audio, but if it would be possible to use directly as3 to spatialize the sound it would be very great!
Thank you!
Giorgio
Giorgio,
I’ve seen very little progress with Flash’s audio engine. You can still do some pretty amazing things with it (e.g. AudioTool) but it’s going to require a lot more work than using Max or PureData.
Cheers!