Tame the Web MIDI API with my new WebMidi.js Library

If you have used the Web MIDI API, you probably thought that it was a bit too low-level for the average web developer. Thinking the same, I figured this amazing technology needed a simpler API. This is why I created the WebMidi.js JavaScript Library.

How to display a single fullscreen window across multiple screens in Adobe AIR

In a previous post, I explained how to create separate fullscreen windows on multiple monitors. In this post, I will explain how you can create a single window that spans multiple monitors. This is useful when you want your stage to spread on more than one physical output.

How to use two fullscreen windows in two monitors with Adobe AIR

Two fullscreen native windows in two monitors with Adobe AIR

In my physical computing classes, the need often arises to display content on more than one video output (monitors, projectors, etc.) from a single AIR application. While this is certainly possible, my students often have a hard time figuring it out. This is why I put together this little tutorial.

Accurate Timing in ActionScript

I’m currently working on a music app for tablets and needed a metronome to synchronize musical events. Simple enough, right ? Well, it turns out that creating an accurate time-reference in ActionScript is not as easy as I initially thought it would be. 

Using the Flash Platform in Physical Computing Projects

Adobe Flash Platform

The Flash Platform is an amazing environment to develop physical computing projects. It’s easy to learn, ubiquitous, well-supported and, this might be a shocker for some people, it can be completely free. In this article, I will tell you why the Flash Platform is my goto choice for physical computing projects.

Basic Math Cheat Sheet for ActionScript Programmers

My students do not necessarily have a strong background in mathematics. When the time comes for them to animate objects, pick out random values or manipulate hex colors using ActionScript, many are just overwhelmed. That’s why I put together this cheat sheet as a handout for them.

Problem with accented characters in Flash CS6 when compiling for iOS

If you keep getting an error when using Flash CS6 to compile an iOS application, you might have misplaced an accented character… It took me a looooong while to figure this one out.

Using multiple Starling instances in multiple native windows

It might not be obvious at first but multiple Starling instances can be run concurrently. They can even be attached to the Stage reference of different NativeWindow objects. 

Let’s make Adobe AIR an even better physical computing platform!

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 ?

Using the Nape v2.0+ Physics Engine in ActionScript 3

Nape Game Dynamics Logo

Nape is a powerful 2D physics engine which compares favourably in many regards to the oft-used Box2DFlashAS3. It is free and, more importantly, simple and quite intuitive to use. 

10 ActionScript Tips


With experience, any developer will gather a bunch of useful tricks that are not easily found in books, sometimes undocumented and a bit cryptic or perhaps so obvious they’re easily overlooked. Wouldn’t it be nice if you could learn those tricks without having to go through the many painful hours it took to acquire them? 

Using the Nape Physics Engine in ActionScript 3

Nape Game Dynamics Logo

If you have been pulling your hair out trying to figure out how Box2DFlash (aka Box2DAS3) works, you are not alone. The problem is that, until recently, there were very few simple, free and solid alternatives. And then came the Nape Physics Engine…

Linking .swc files in your ActionScript Editor

Linking .swc files in various IDEs

My students often ask me how to use .swc files within their physical computing projects. They know how to use external libraries in the form of class packages but are a bit stomped when the library is delivered in the form of a .swc file. Here is the linking procedure for various ActionScript editors.

stage.stageWidth returning incorrect values ? Let me help.

ActionScript File Icon

Are you trying to fetch the actual stage width or height of your project on startup and are getting weird results ? Perhaps it reports a width of 500 and a height of 375 ? If that’s the case, read on, I might have a solution for you.

My humble attempt at an ActionScript video feed color-tracking library

I’m releasing today a beta version of my new ChromaTracker ActionScript 3 library. This library allows the tracking of blobs of color within any DisplayObject. Of particular interest is the ability to track colors within live video feeds such as those from webcams.

Logic Studio 9 MIDI note numbers

Logic 9 MIDI Note Numbers

MIDI note numbers are the unique numbers assigned to each note in the MIDI system. The MIDI numbering scheme uses 7 bits to identify all the notes. This means there are 128 notes (27) that can be assigned in MIDI. However, knowing which note is which is not always straightforward. 

Alternative scale tuning in Logic Pro 9

Logic's Tuning Options

As some of you may already know, it is possible to use an alternative scale tuning in Apple’s Logic Pro version 7, 8 and 9. If you tried creating completely custom user scales, though, you probably had a hard time fiddling with cents adjustments. There is a better way…

Dynamically modifying a TextField inside the evil SimpleButton class

ActionScript File Icon

As of yesterday, I had never used the ActionScript 3 SimpleButton class… and now I wish I nad not ventured anywhere near this ill-devised piece of *&?%. Should you ever want to use it or if you are currently struggling with it, I strongly suggest you read this quick primer.

Using OSCulator as an OSC-to-MIDI bridge

Getting custom open sound control messages to properly trigger MIDI events in OSCulator is not as simple as it might look like. Since I made good progress in the last few days (with the gracious help of Camille Troillard, the author of the software), I though I’d share some of my findings.

WiiFlashServerJ crashing or slowing down on Mac OS X ?

If, like me, you are using the officiel 0.4.5 release of WiiFlashServerJ from wiiflash.bytearray.org on Mac OS X, you might have encoutered problems such as slowdows or crashes. If that’s the case, read on. I might have a solution for you.

Announcing Jmulator : an ActionScript 3 library to work with keyboard emulators

This winter, I’m trying something new with my students. I am inviting them to use a keyboard emulator for my physical computing class. It should make it very easy for them to receive physical switch data within their authoring environment (Adobe Flash). And because I want them to focus on the interaction rather than the […]

Styling the ‘alt’ attribute of images

Why on earth would anybody want to style the alternative text that is used when images cannot be displayed ? Isn’t that text meant for visually-impaired users (who couldn’t possibly care less about the text’s style) or for text-only browsers like Links ?!? Well, not quite. 

Opening a local socket from an SWF file

Opening local sockets is by default prohibited in the Flash Player. This actually makes a lot of sense. You wouldn’t want any website you visit being able to open a socket on your machine. However, there are some times when you actually need this.

Using CTRL-ENTER to compile ActionScript code in FDT

If you have made the switch from the Flash IDE to PowerFlasher’s FDT you might be missing the beloved CTRL-ENTER (or COMMAND-ENTER on Mac) shortcut to compile your code. Don’t sweat it. This is easily fixed.

Getting rid of warning messages from external libraries in PowerFlasher’s FDT

A bunch of ActionScript libraries use rather "loose" variable-typing practices. One such library is TweenMax. While I love this library, it really annoys me to see all those warning messages show up in FDT when I’m coding. How can one get rid of those ?

Using a Widcomm-based Bluetooth receiver with a Wiimote on Windows XP

If you bought a Bluetooth USB key in order to connect a Wiimote to Windows XP, you might have gotten stuck on the screen where the driver asks for a “passcode”. This is frustrating because the Wiimote usually has already been recognized. If that’s the case, read on I might have a solution for you.

Apache 2 .htaccess Cheat Sheet

The Apache HTTP Server is a very customizable piece of software. For newcomers, simply trying to customize a basic .htaccess file can be overwhelming. When I was tasked with teaching the basics of the .htaccess file to my students, I figured it would be helpful to hand them out a nicely edited printable cheat sheet.

Stop Thunderbird from littering your desktop with attachments

I love Thunderbird. It is both flexible, powerful and user-friendly. But, on Mac OS X, it has the nasty habit of saving a copy of all the opened attachments on the desktop leaving a messy trail… Can something be done about that ? You bet !

Drupal 6.x, from A to D

You read right. We are not going all the way to Z. This article is only meant to be a quick setup guide for a very common Drupal environment. To be perfectly honest, this is my own personal check list of tasks to perform when setting up a new website with Drupal.

Physical Computing Bookmarks

Do you keep losing your physical computing bookmarks ? Well, for some reason, I do. I lost them when I reinstalled my OS. I lost them when I switched browser. I’m so hopeless that I’ve decided to write this blog post in the hope to put an end to this awful sequence.

Printing from Mac OS X to a Windows Vista shared printer

If you ever needed to print from a Mac OS X computer to a printer shared on a Windows Vista workstation you most likely entered a world of pain and frustration. For most people, except perhaps some masochistic types, this is definitely not what printing should be about. Especially not on a "user-friendly" Mac anyway…

Fixing Garbled French Accented Characters in the Outlook Web Access Thunderbird Plugin

The OWA Thunderbird plugin (link down) is a life-saver. Especially if you have an employer that’s not too keen on open standards. However – for a long time – I have been plagued by  a problem that garbled French accented characters in the messages I sent. Until I got a message from Alvaro…

The Browser Screenshot Compendium (2009 edition)

Every web designer is – at one point – faced with that question: “What is the optimal width and height for that new site I’m working on ?“. Let’s try to answer that question using common sense and a little tool I developed which I dubbed the “Browser Screenshot Compendium”.

Making the Alesis Multimix 12 Firewire mixer work in BootCamp on a MacBook Pro

If, like me, you are the owner of an Alesis Multimix 12 Firewire mixer and can’t seem to get it to work on your MacBook Pro under Windows XP, I have a fix for you. Read on.

Dotted, double and dashed CSS border styles peculiarities

A student once asked me in which zones of an HTML element is the background color visible. The answer, so I then thought, was simple: the background color is visible behind the content and the padding but not in the margin. It turns out the answer is not quite as straightforward as I thought…

SerialProxy v0.1.4 can use COM ports above 9

SerialProxy (aka serproxy.exe) v0.1.3 or lower cannot use COM ports above 9 on Windows (due to a weird syntax issue in Microsoft’s API). If, like me, you ever faced that same problem, there was no easy solution… until today !

SerialProxy vs COM10 : The ultimate deathmatch

If you ever tried to access COM port 10 or above with SerialProxy on Windows you already know it just does not work. Period. Let me tell you why it does not work and how we can fix that.

Interfacing Flash and Arduino, from scratch

The Arduino micro-controller is a powerful little wonder. We already know it can be programmed using the Arduino IDE, but wouldn’t it be cool if we could interact with it strictly using Flash ? This article shows you how it can be done.