Kinect and OSC Human Interface Devices

To make up for the boring title of this post, lets’s start off with a video:

XYZ with Kinect a video by celesteh on Flickr.

This is a sneak preview of the system I wrote to play XYZ by Shelly Knotts. Her score calls for every player to make a drone that’s controllable by x, y, and z parameters of a gestural controller. For my controller, I’m using a kinect.

I’m using a little c++ program based on OpenNi and NITE to find my hand position and then sending out OSC messages with those coordinates. I’ve written a class for OSCHIDs in SuperCollider, which will automatically scale the values for me, based on the largest and smallest inputs it’s seen so far. In an actual performance, I would need to calibrate it by waving my arms around a bit before starting to play.

You can see that I’m selecting myself in a drop down menu as I start using those x, y and z values. If this had been a real performance, other players names would have been there also and there is a mechanism wherein we duel for controls of each other’s sounds!

We’re doing a sneak preview of this piece on campus on wednesday, which I’m not allowed to invite the public to (something about file regulations) but the proper premiere will be at NIME in Oslo, on Tuesday 31st May @ 9.00pm atChateau Neuf (Street address: Slemdalsveien 15). More information about the performance is available via BiLE’s blog.

The SuperCollider Code

I’ve blogged about this earlier, but have since updated WiiOSCClient.sc to be more immediately useful to people working with TouchOSC or OSCeleton or other weird OSC devices. I’ve also generated several helpfiles!
OSCHID allows one to describe single OSC devices and define “slots” for them.
Those are called OscSlots and are meant to be quite a lot like GeneralHIDSlots, except that OSCHIDs and their slots do not call actions while they are calibrating.
The OSC WiiMote class that uses DarWiinRemote OSC is still called WiiOSCClient and, as far as I recall, has not changed its API since I last posted.
Note that except for people using smart devices like iPhones or whatever, OSC HIDs require helper apps to actually talk to the WiiMote or the kinect. Speaking of which…

The Kinect Code

Compiling / Installing

This code is, frankly, a complete mess and this should be considered pre-alpha. I’m only sharing it because I’m hoping somebody knows how to add support to change the tilt or how to package this as a proper Mac Application. And because I like to share. As far as I know, this code should be cross-platform, but I make no promises at all.
First, there are dependencies. You have to install a lot of crap: SensorKinect, OpenNi and NITE. Find instructions here or here.
Then you need to install the OSC library. Everybody normally uses packosc because it’s easy and stuff…. except it was segfaulting for me, so bugger that. Go install libOSC++.
Ok, now you can download my source code: OscHand.zip. (Isn’t that a clever name? Anyway…) Go to your NITE folder and look for a subfolder called Samples. You need to put this into that folder. Then, go to the terminal and get into the directory and type: make. God willing and the floodwaters don’t rise, it should compile and put an executable file into the ../Bin directory.
You need to invoke the program from the terminal, so cd over to Bin and type ./OscHand and it should work.

Using

This program needs an XML file which is lurking a few directories below in ../../Data/Sample-Tracking.xml. If you leave everything where it is in Bin, you don’t need to specify anything, but if you want to move stuff around, you need to provide the path to this XML file as the first argument on the command line.
The program generates some OSC messages which are /hand/x , /hand/y and /hand/z, all of which are followed by a single floating point number. It does not bundle things together because I couldn’t get oscpack to work, so this is what it is. By default, it sends these to port 57120, because that is the port I most want to use. Theoretically, if you give it a -p followed by a number for the second and third arguments, it will set to the port that you want. Because I have not made this as lovely as possible, you MUST specify the XML file path before you specify the port number. (As this is an easy fix, it’s high on my todo list, but it’s not happening this week.)
There are some keyboard options you can do in the window while the program is running. Typing s turns smoothing on or off. Unless you’re doing very small gestures, you probably want smoothing on.
If you want to adjust the tilt, you’re SOL, as I have been unable to solve this problem. If you also download libfreenect, you can write a little program to aim the thing, which you will then have to quit before you can use this program. Which is just awesome. There are some Processing sketches which can also be used for aiming.
You should be able to figure out how to use this in SuperCollider with the classes above, but here’s a wee bit of example code to get you started:




 k = OSCHID.new.spec_((
  ax: OscSlot(realtive, '/hand/x'),
  ay: OscSlot(realtive, '/hand/y'),
  az: OscSlot(realtive, '/hand/z')
  ));

 // wave your arms a bit to calibrate

 k.calibrate = false;

 k.setAction(ax, { |val|  val.value.postln});

And more teaser

You can see the GUIs of a few other BiLE Tools in the video at the top, including the Chat client and a shared stopwatch. There’s also a network API. I’m going to do a big code release in the fall, so stay tuned.

The Free CD for Mac

I just gave a talk about FOSS and music and gave out copies of the Fossbox free software CD for mac. Here is the readme file that came with it, with download links. You can also find a bunch of cool free mac software from the website http://www.opensourcemac.org/

Welcome to the Fossbox Free CD


The free CD gives you a taster of the free
software options available for the Mac. In this document, you’ll find
a brief description of the software and links to instructions for
installing it. You can find free
tutorials and books to help you get the best from the software
on
the Fossbox website.

Office and project software


Open
Office
is a free alternative to MS Office. It’s very similar and
most people are able to get started and carry on as usual without any
special training to use it. It has a word processor, a spreadsheet,
presentation and data-base with wizards. Download it here.To get you started
using
Open Office you’ll find tutorials here
and some
flash tutorials here
.

If you find Open
Office to be too slow, Neo
Office
is a mac-specific version of it that has fewer features
but quite a bit more speed. You can download
it here
.

Skim
is a PDF viewer that allows you to modify and annotate PDF files, for
example, by filling in forms. Download it here.

Scribus
is a free Desktop Publisher. Download it here. You’ll
find free
Scribus video tutorials here

Internet


Thunderbird
is a free email programme
. Download it here. and
follow the on-screen instructions. To get started using Thunderbird
you will find illustrated
tutorials here
.

If you would like a
calendar, this can be added to Thunderbird. Follow
these illustrated instructions to add a calendar
.

Browsing the internet


Although the Safari browser is included with OS X,
there’s an alternative browser called Firefox. Download it here.. It
has more features and is more customisable.

Website editor


To help you make simple websites, Kompozer
is a visual HTML editor with formatting buttons. Download it here.You’ll find free
Kompozer tutorials here

These tutorials are for a previous version of
Kompozer called NVU but Kompozer is almost identical so you should be
able to get started:
http://www.designyourownweb.com/nvu/settingup-nvu.htm

To upload website files to the internet, you need
an FTP client so check out Filezilla. You can download it here.. (In order to install it, you
may need to first install The Unarchiver utility. Click the link to download it.)
Your ISP will be able to
give you the login information you need to set up FileZilla – ask
the people you rent your website space from.

Instant Messaging


Audium
allows you to connect to multiple IM accounts, including Facebook, in
a single app. Download it here.

File Sharing


Transmission
is a Bit Torrent client. Download it here..

Graphics


There are two graphics programmes included on the
CD.

If you want to do serious photo-editing, you need
the GIMP, a
fully-featured graphics programme
. Download
it here
. Gimp on OS X requires X Windows, which is included with
your system CD or a free version can be downloaded
here
. Free
GIMP tutorials here

Inkscape
is vector drawing software., which also requires X Windows. Download it here. You’ll
find tutorials
for Inkscape here

Note
that Open Office also
has a vector drawing application.

Media


Multi-media player
VLC
is
a light and versatile movie player which opens more types of movies
than Quicktime. Download it here.


Ripping DVDs
HandBrake
is a DVD ripper. Download it here.


Video Editing
Processing
is an open source programming language environment for people who
want to program images, animation and interactions. Download it here..

Sound


Editor
Audacity
is a light-weight sound editor. There is a stable version and a beta version. The beta has more and better features, but you will need to save early and often. If that worries you, get the stable version instead. Download the stable version here. or Download the beta version here.


Ardour
is a a fully-featured Digital Audio Workstation with plug-in support
that can be used for serious audio projects. You can download it here. They will ask you if you want to donate to the project. You can put whatever amount you wish in the box, including $0.
Ardour
relies on a helper application called Jack,
which is also useful in it’s own right. Download
Jack here
.


Programming
Pd
is a real-time graphical dataflow programming environment for audio,
video and graphical processing. It is especially useful for rapid
prototyping and can be used to write reactive music or the iPhone via
the RjDj app.
Download PD here.



SuperCollider
is an environment and programming language for real time audio
synthesis and algorithmic composition. It has a bit of a learning
curve, however, it is extremely
powerful and useful. Download
it here
.

How To Data Bend

I got email asking me how to do data bending for audio. (If you want to know how to do it with images, check out Hello Catfood’s posts.) Databending means taking one kind of data and using it as another kind of data. For example, playing an image file as a sound. Or processing an audio file with an image program and then returning it to it’s audio format. This post will focus on how to open non-audio files as if they were audio.
There are two different programs I’ve used for databending. One is Sound Hack, which is free, but mac-only and the other is Audacity, which is also free and cross-platform. For mac users, I suggest running 1.2.6 instead of the beta version.

Data Files

Opening data files with either Sound Hack or Audacity is easy. A data file is a file used by an application, for example a text file created by Word or Open Office or an image file or anything you might find in your Documents folder. With Sound Hack, under the File menu, select “Open Any” and pick a file. The go to the Hack menu and select “Header Change.” You can try a few different headers and listen to them until you pick one that you like. Once you’ve found a good one, go to the File menu and select “Save a Copy.” That will open a new dialog. At the top is the file name. Add a “.aiff” (without the quotes) to the end of the file name, no matter what you decide to name it. At the bottom, make sure to set the Format to “Audio IFF” and the Encoding to “16 bit linear.” I’ve found that Sound Hack does not save reliably into other formats.
To open a data file with Audacity, under the Project menu, select “Import Raw Data.” Pick the file you want to open. A dialog will pop up asking what header you want. I usually go with the default values, but you can try playing around with that. You can then modify the file with Audacity, using the Effects or whatever. When you think you’re done, first go to Preferences and then go to the File Format tab. Make sure that the format you want (Aiff, WAV, etc) is selected. Then, go to the File menu and “Export As” that file type.

Applications

You can also open applications as audio, but this is a bit weird on the mac. Go to the finder and find the application you want to open. Control-click on it. (by holding down the control key as you click). In the menu that pops up, select, “Show Package Contents” A new window should open with a folder in it called Contents. Open that folder, and you should find some stuff in it including a subfolder called MacOS. In that folder, you’ll find, probably, a file with the same name as the program. Like in Garage Band, under Contents/MacOS/ there’s a file called GarageBand and two other files, all of which may be interesting. Control-click on the file and select “Open With”. Then select “Other . . .”. A new dialog will open. In the Bottom part of the window, change the menu from “Recommended Applications” to “All Applications”. (Do NOT check the box under that!) Then find Audacity or Sound Hack, select it and click the Open button. If you use Sound Hack, you can try out different headers, by doing a Header Change under the Hack menu. Save these files is the same as described above.

Examples

I haven’t used this technique for years, but if you’re searching for examples of how it sounds, I’ve got some pieces. My supervisor, Scott Wilson, also uses this on his CD Muellmusik, in the track Photo Shopped Music. Other examples abound. You’ll find that if you do this a bit, you’ll not only be able to recognize other people doing it, but also sometimes be able to recognize what kind of file they’re using. Stochastic Synthesis also sounds quite a lot like data bending.

OS X Network

I have two macs. One is a laptop and one is a mini. The mini has not mouse, monitor or keyboard. I control it with VNC. This works out great 95%-99% of the time. Except for last week when it didn’t. I told the Apple Updater to do some install it wanted to do and the computer didn’t come back on the network. I hooked up the computer to a video projector and discovered that it wasn’t booting. The round sunburtsy thing it does during startup was just going and going and going.
I borrowed a mouse and keyboard and re-installed the OS from a 10.5 disk and then re-enabled Remote Management and then installed all the updates, etc and it works now. What a pain, though.
And, also, there’s a slight difference. On my laptop, finder windows have a left-most column which list the drives on my computer under “devices” and “places” and “search.” There’s also a section called shared and it shows my Mac Mini. If I click on that, I get a big icon of the disk and two buttons. One says “Disconnect” and the other says “Share Screen.” Below those are a list of shared directories and drives. Before my computer had it’s troubles it listed the external firewire drive in the list. Now it does not, but still has the internal drive, my home directory and shared folders on the internal drive.
I’ve gotten addicted to doing network file transfers via drag and drop, and now I can’t get to my data disk? I have no idea where one would configure it to show up. It was not a shared disk, I just had access to it because I was logged in as me. Why has it gone away? How do I get it back? Woe is me! What search terms do I type into the help menu? I’m stuck!

Edit

According to some help file someplace, since I’m connected as an admin user, I should have access to the entire computer. Bugger it.

BrumCon07 – lunch

. . . continuing in too much detail . . .
After the first talk, came the Break for lunch. I took advantage of the gap to do my sound check. While I was trying to do it, three teens, two boys and a girl, approached me to mock me for using a mac. About half the computers that were used on the stage were macs, actually, a number that surprised me. I was somewhat annoyed with the teens as I was trying to do a sound check. They told me that they liked to spend their free time going to the Apple store to start arguments. Part of what was especially amusing / annoying is that I had exactly the same attitude at their age! I also liked getting into arguments with mac users! Gah, karma!
Mac users are fun to argue with because they’re so religious about their computers. But, of course, it was completely different when I used to do it. Because it was me and anything I do is justifiable because I do it.
When I was a young’un, PCs ran DOS and Macs ran MacOS. If you liked to do strange things to the operating system on your computer or to type rather than mouse around and generally try to cause small disasters, DOS was way better. Really. It was so clear at the time. Looking back, though, I’ve lost a lot of certainty. But, now Windoze is the hugest piece of crap ever excreted from a software company and OS X is unix.
I explained that when I started doing Pro Audio, linux’s support for it was not adequate and it’s gotten better lately, but I’m still on a mac. I also said that I was born and raised in Cupertino, California, so it was the home team for me. And anyway, it’s unix, it’s not like I’m running windows or something. “It’s BSD” the girl said, as the boys seemed confused by unix != linux. And I wondered why the right speaker was silent. They regrouped, it was the BSD that nobody wanted, shoved out the backdoor. I became satisfactorily annoyed and they wandered off. I went to find food ASAP, to become less peeved.
This was too funny. Anyway, for the record, there are some pieces of software which are not implemented well in FOSS, including score notation. I need to run mac or win to run Sibelius. And I’m sure as hell not going to run windows. Unix is better than Windows. Any Unix is better than any windows.
OS X does have a kind of reject history, though. It started out life as the Mach Kernel, invented at Carnegie Mellon. That kernel was not BSD, but was faster because it emulated BSD in an efficient manner. NeXT used it for NeXTSTEP, their weird operating system. This OS was used in some minor advances in Information Technology, like the invention of HTTP (aka, the World Wide Web). The first web server ran on what would become on OS X. MAX was invented on NeXTSTEP. Along with many other things. It’s hard to overstate how fucking cool NeXT boxes were when they first came out. By the time I got a job being a sysadmin on a NeXT cluster, though, the glory had faded completely and NeXT OS was about to die. It had such obvious faults. Like the totally proprietary windowing system. Why didn’t they just use X windows like everybody else?
Steve Jobs founded NeXT, so when he came back into Apple, he killed the plans to use the (far superior) BeOS, and switched directions so that the new OS would be NeXTSTEP. It’s fortunate that this did not turn into a disaster, since it certainly looked like one from the outside. Anyway, OS X is a respectable OS with a respectable history. Although it still has a propreitary window manger. bah.

HIDden Options

I’m trying to plug a new joystick into SuperCollider. I got a Logitech Attack 3 joystick which I want to do a short act with, maybe next week at a drag king bar. But I can’t get SuperCollider to talk to it.

The newer version of SC broke all of my joystick code. That’s fine, except I can’t get the newer stuff to work. When I try running the examples under GeneralHID, it can see my joystick and knows about all the buttons and the XYZ stuff, but it doesn’t seem to notice when I push one of those buttons or wiggle the stick. I tried the joystick briefly with JunXion, so I know it works, but SC just isn’t getting data from it.
I wonder if there’s some sort of trick or secret to this? I had to switch my audio stuff to an aggregate device to read in and out. Is there something like that for HIDs? Some secret magic?

Ardour Report

I have advice. I spent some time with the native version of ardour yesterday, and, of course, a lot of time previous to that with the X11 version. If I were on OS X 10.4, I would run the X11 version because it’s very reliable and it’s pretty easy to install. The only drawback is that you have to first install X11, but that’s worth doing anyway.
On Intel 10.5, I’m going to run the native version. While using it, I encountered a crash bug, (which I reported). It crashed very reliably, but, unlike Audacity, crashes do not result in the loss of saved data. The way I work with audio software is that whenever I make a change to a project, I save. Record audio. Save. Adjust panning. Save. To use the native version of Ardour, you must work this way, but you should be working this way anyway. Save early and often!
(I’ve worked in higher education as a lab assistant and I can’t tell you how many times I’ve comforted weeping students who’ve just lost hours of work. Every program crashes occasionally. My sad students were all using commercial software and lost their data. Save. And backup!)

Getting Started

First do all the configuration and whatnot in my previous post. Then

  1. Start Jack Pilot
  2. Click it’s start button
  3. Start Ardour

That’s either version, native or X11. (The other issue I encountered with Ardour is that I keep forgetting to turn on Jack. This is not a big deal, as the friendly GUI will altert you and you can go do it. I’m forgetful enough that I created an Automator script to do it for me. If there is demand, I will distribute some version of the script.) After you start it, Ardour will open a dialog box in which it asks you to eiahter make a new session or open a previous one. Then, a large window opens which should look familiar to you if you’ve used other audio software before.

A Wee Bit More Configuration

Go to the Options menu, then go to Autoconnect. Put a checkmark next to “Auto-connect inputs to physical inputs”. Then, again in Autoconnect, put a checkmark next to “Auto-connect outputs to physical outputs”. Finally, still in the Options menu, go to Monitoring and select “Software Monitoring”.
These options are what I think most users will need. If you have fancy hardware or whatever, you may need to do something different.

Why I Recommend Ardour

  • Quality of product – Ok, the version I’m using has a crash bug, which sucks, but it’s beta. However, this is software does everything I need it to do and does so well. It might crash occasionally, but it doesn’t glitch. And let’s face it, protools has bugs too (what version is it where sometimes, inexplicably, it wouldn’t bounce to disk?). Ardour’s bugs are less annoying than the bugs I’ve faced with protools. And the developers tend to respond to bug reports.
  • Economic – This is a fully-featured audio workstation and it’s free. The developers would like it if you donate, but if you’re an impoverished student and you can’t, that’s ok. And if you’re an impoverished non-profit/NGO and you can’t, that’s ok. Or if you’re just impovershed and you can’t, that’s ok. Sliding-scale software means access for everybody. (The corollary is that if you’re not impoverished, you should make a donation.)
  • Support – Help is always available via IRC or the forums on the Ardour website. Also, unlike certain other software companies (grr), the developers of Ardour aren’t going to suddenly drop support for you to force you to purchase an upgrade.

Blogged with Flock

Audio software on 10.5 / Intel

Audacity

I’ve been starting to try to record things on my new mac, despite feeling cruddy with a bad cold. I first started out with trying to use the beta version of Audacity. It acted much more like an alpha version. After the 4th crash in which all my data was lost, I took a look back at the non-beta version of Audacity. This seems to be stable and work well. However, it just doesn’t have enough features to use it for composing. It’s great for recording a vocal-only podcast or running FX on pre-existing audio, but it’s not going to cut it for my needs now. So I turned to Ardour.

Ardour

Ardour does just about everything I need. It’s a competitor to Protools and Digital Performer. And it’s free!! W00t. In the past, I only ever used this on my macmini because I had a disk space shortage on my old laptop. I was less worried about the program itself and more concerned about having space for y projects. Audio files can take up a lot of space.
It has some system requirements. If you’re on 10.4, you will need to install x-windows, if you don’t already have it, which means you need to go dig out your system disk. If you’re on 10.5, you will have other issues. It requires a helper application called Jack.

Jack

Jack is awesome. If you’re on intel, once you install it, you will need to open /Applications/Utilities/Audio MIDI Setup. Under the Audio menu, open the Aggregate Device Editor.
Aggregate Device Editor

At the top part, you can create aggregate devices and give them names. In the bottom part, you can see the actual audio devices on your computer, with check boxes next to them. Check the ones that you want to use.
Then, you need to configure jack. Fire up JackPilot. You need to tell the preferences to use your aggregate device.

JackPilot Preferences

Patching the X version

10.4 is now ready to go, but 10.5 has some changes in how X windows is handled. You have two options on running Ardour. One is to run a patch. The development team has already figured out how to solve this problem, but they’re short staffed or something and haven’t updated the version or download. Ergo, you need to apply some small changes to the program by typing a few things at the prompt. This is easy enough, but if you don’t like prompts, skip to the alternate solution.
The terminal application is located at /Applications/Utilities/Terminal. Open it up. Between you and me, the terminal is awesome. It gives you all kinds of power over your computer. In a future post, I’ll link to a cool manual, but I can’t find it right now, alas. Anyway. Here’s what you do:

  1. Select the following text and copy it (by going to Copy under the Edit Menu or typing apple-C)
    Index: script
    ===================================================================
    --- script      (revision 2354)
    +++ script      (working copy)
    @@ -32,17 +32,22 @@
         sed 's/xterm/# xterm/' /usr/X11R6/lib/X11/xinit/xinitrc >> ~/.xinitrc
     fi
     
    -mkdir -p $TMP
    -cp -f "$CWD/bin/getdisplay.sh" $TMP
    -rm -f $TMP/display
    -open-x11 $TMP/getdisplay.sh || 
    -open -a XDarwin $TMP/getdisplay.sh || 
    -echo ":0" > $TMP/display
    +if uname -r | grep -sq '^9' ; then
    +    # leopard will auto-start X11 for us
    +    :
    +else 
    +    mkdir -p $TMP
    +    cp -f "$CWD/bin/getdisplay.sh" $TMP
    +    rm -f $TMP/display
    +    open-x11 $TMP/getdisplay.sh || 
    +       open -a XDarwin $TMP/getdisplay.sh || 
    +       echo ":0" > $TMP/display
     
    -while [ "$?" == "0" -a ! -f $TMP/display ]; do sleep 1; done
    -export "DISPLAY=`cat $TMP/display`"
    +    while [ "$?" == "0" -a ! -f $TMP/display ]; do sleep 1; done
    +    export "DISPLAY=`cat $TMP/display`"
     
    -ps -wx -ocommand | grep -e '[X]11' > /dev/null || exit 11
    +    ps -wx -ocommand | grep -e '[X]11' > /dev/null || exit 11
    +fi
     
     cd ~/
     shift
    
    
  2. Ok, now be relaxed. If you don’t want to know more about what that code is doing, you don’t have to. Go to your terminal and in the window there, type:
    cd; cat > ardpatch
  3. Now, still in your terminal window, paste in all the code from the clip board, by selecting paste in the edit menu or typing apple-v
  4. Still in the terminal window, type ctrl-d. What you did just then was change to your home directory (with “cd”) and then put the code into a file called “ardpatch” (with the cat > ardpatch). And then closed that file by typing ctrl-d.
  5. Ok, now you need to know the directory where you put Ardour. If you put it in /Applications, then you’re going to type:
    cd /Applications/Ardour2.app/Contents/Resources/

    but if you put it in a folder in /Applications called Audio, then what you’ll need to type is:

    cd /Applications/Audio/Ardour2.app/Contents/Resources/

    cd is changing directory and you need it to change to a hidden directory inside Ardour, so the first part is the location where you stuck the program.

  6. Then type:
    patch -p0 < ~/ardpatch

    It will tell you strange things and possibly give you an error. Ignore all that. Instead, start jack with JackPilot and then click on the Ardour2 icon to start the program. It should start up, but for me, this took several minutes, I think just because it was the first time.

You only have to apply the patch once, so you're good to go from now on. Or you can try a riskier but easier route.

Native Version

Beta software is always fun, isn't it? You can try running the native version instead. It's beta. It could crash terribly. I haven't tested it much, so I can't recommend it or warn you away or do anythng else aside from tell you it's semi-secret location.
Well, it's more an open secret. I got it from the IRC channel on freenode. If you need help, that's a good place to go, by the way. (Is IRC undergoing a renaissance or is it just me?)
The native version is at http://ardour.org/files/releases/Ardour2.2-Intel-2920.zip
It's probably a secret for a reason. I'll give it a try this afternoon and let y'all know what I think.
The native version still requires Jack. You will still need to do all the Jack configuration listed near the top.

Conclusion

The nice thing about configurations is that you usually only need to do them once. Given the amount of awesomeness crammed into Ardour, it's totally worth the bother.

HOWTO: Flash your N800 with a Mac

Basically, follow the instructions here,
especially the part about the backups and where to download the flasher (the 770 flasher for OS X works with the 800 too) and where to download the image to flash.

However, there is one crucial step not mentioned on that page. After you do your backup and download the flasher and the image, you need to unplug your tablet from the wall and from the computer and turn it off. Take out the SD card. Then, run the flasher. When the flasher says it’s waiting, plug in the device to the USB. Hold down the home key (the one on the front with the poorly drawn house on it) while pressing the power button. Make a note of holding down the home key, because it’s rarely mentioned in documentation.
For some reason, I had to try running the flasher app more than once. The first time, it had a USB error. The second time, I tried to run it with the tablet already in the ready-to-flash state. I would have turned the tablet back off to try all this, but it doesn’t seem to want to turn off before flashing when it’s in that state. I don’t know what happens if you have it like that and can’t get the flasher to work. Does it return to normal if you pop out the battery?
After the flash is complete, turn the device off, pop the SD card back in. With mine, it asked me for some date and time and the restore application popped right open. I restored everything, regardless of date. The utility does not backup software and everything on the device is wiped, so I’ll have to re-download everything. Alas.
Reviews of how well it works post-upgrade will be forthcoming.

Jacked

Yeah, so I can get Ardour to display on a remote machine, but forget about making sounds thus displayed. Run it in VNC and it’s fine. Run with ssh X tunneling, and there are problems. What kind of problems, you ask?

allocate_mach_clientport: can't find mach server port
Can't allocate mach port

For the longest time, I thought that error was originating within Ardour. So I downloaded the source. Man, you need a ton of libraries to compile it, several of which are either in Fink’s unstable tree or not present within fink at all. Ardour developers use Darwin Ports, I guess. Anyway, the fink version of jack absolutely does not work for me. So I was giving up on the project, when I looking at console logs revealed that the problem seemed to be coming from Jack.

Maybe if I could just discover the name of the jack sever, there exists an undocumented command line argument to pass to Ardour to tell it which server to use! Fortunately, there exists a utility for just such discovery: jack_lsp. So after learning of it’s existence, I typed in the command and got:

allocate_mach_clientport: can't find mach server port
Can't allocate mach port
jack_client_open() failed, status = 0x  

aha! So I downloaded the JackOSX code and it was a terrible mess. So I downloaded the Jackit code, but it doesn’t play well with core audio. There’s some goofy thing on mactel computers such that you have to create an aggregate device or else in and outs are treated differently. There’s probably a command line argument to fix this, but I like the nice JackOSC GUI, so I went back to their messy, messy code and started banging away at the core audio driver, since that seemed like a possible culprit.
Several hours later, after learning about some macros in C that I’d never heard of and borrowing some code form JackIt and otherwise swearing, I got a new library for coreaudio to build and link. Hooray. That was way too much effort. And I fired up the JackOSC GUI and everything worked. Yay!
And then I typed jack_lsp and got the same error again. grrrr. The code for jack_lsp is not in the Jack OSX source repository, as far as I can tell. It is included with JackIt, but it’s clearly not the problem. The problem is some Jack library that they ship out as a binary. Perhaps using my special sekrit powers, I can build the JackIT kit to use my core audio library, since it’s got a bunch of jackit code in there now anyway. Or maybe I can give up and just use VNC.
Anyway, this is why I haven’t written any music the last few days, nor implemented a very, very fast pitch tracker that just uses the samples around zero crossings.
In other news, the weird mole on my back was not cancer. Wonder why it itched so much.