spaceblog

wacom graphire 3 on Debian unstable

I’ve finally gotten my Wacom tablet to work!

The linuxwacom Debian guide is kinda helpful but a bit redundant, and the howto is terribly verbose; of course the kernel drivers and XFree86 drivers are woefully out of date despite the best efforts of the maintainers of those packages, so…

Jamie’s Quick Guide to Making Your Wacom Graphire 3 Work In Debian, You Idiots

  1. Ensure that you have the kernel-headers package for your kernel installed; or if you built from source, have that tree lying around somewhere.

  2. aptitude install wacom-kernel-source wacom-tools. The wacom-kernel-source package will attempt to build the driver for you right away, so find out what your headers path is (in my case, /usr/src/kernel-headers-2.6.11-1-k7).

  3. Download the linuxwacom tarball that matches the version of your wacom-kernel-source package, and untar it somewhere useful.

  4. Install prebuilt/wacom_drv.o_4.3k2.6 as /usr/X11R6/lib/modules/input/wacom_drv.o (assuming you’re on an i386 platform; if not you’re going to have to build the X input driver from source and to do that you’ll need the full XFree86 source…)

  5. dpkg -i /usr/src/wacom-<TAB> to install the new wacom kernel driver.

  6. Edit your /etc/X11/XF86Config-4 to add the InputDevice Sections and ServerLayout Section.

  7. Reboot the machine to get all your shiny new drivers.

  8. X will probably recognise the wacom tablet now, and it’ll work as a mouse; firing up The Gimp may tell you that it can’t find any extended input devices. Check dmesg and /var/log/XFree86.0.log to see if the drivers loaded and have the right versions, anyway.

  9. If The Gimp can’t find your device, chances are there’s some errors towards the bottom of the X log complaining about ioctls on /dev/input/event0. Run wacdump /dev/input/event0, and again on event1, event2, etc until it reports the device as a Wacom tablet; re-edit XF86Config-4 and correct the device entry.

  10. Restart X.

  11. If it’s all worked by now, then The Gimp will now recognise the tablet as an Extended Input Device.

Hurrah!

switched to Markdown

I promised myself I’d never write a blog entry about my blog, preferring to keep the fourth wall intact (I guess, more of a head-in-the-sand, ravenous-bugblatter-beast-of-traal approach; the less I refer to the fact that I have a blog, the easier it is to cope with the stigma of having a blog :-)

However, I decided to rework my site using Myghty and decided to rewrite the blog code, and in the process discovered Markdown; as Myghty is Python, I toyed with the idea of porting it – then googled and came up with two Python ports of Markdown: python-markdown and pymarkdown.

Unfortunately, neither of them support the full Markdown syntax; python-markdown doesn’t cope with HTML entities (it converts the & into an &amp;) or automatic links, whilst pymarkdown doesn’t understand preformatted code sections.

Patching one or the other seems like the right thing to do; merging their codebases is not going to happen though, as they’ve taken wholly different approaches to the parsing and generation method. Probably going to have to get out a big shoehorn..

So there you have it, my first (and hopefully last) meta-blog post. I’m going to let this one slide becuase it let me have a little rant :-)

using FAM with baz and SCons to speed up changed-files detection

On the drive home from LCA yesterday evening, Benno, Eman, and myself brainstormed the idea of using FAM to track changes to a working copy, in order to speed up the detection of changed files for SCons and baz. The theory goes like this: stat()ing every file in a directory tree to see if the file has changed sucks for large trees, and sucks on NFS, so let’s use a different method for finding out changed files.

Incidentally, SCons actually detects if the file contents have changed, which I can only assume requires more work than the stat(). baz must do the same to work out its changesets; but probably only diffs on the set of files that are known to have changed (I hope!).

So lets assume that FAM can be asked to monitor a directory tree, and then queried for information about file modification times relative to some time of interest. Then the algorithm is pretty simple:

If we have no last-build timestamp:
    Ask FAM to monitor the directory tree
    Do a regular stat
Otherwise:
    Query FAM for all the changes since the last-build time
    If FAM has no results:
        Ask FAM to monitor the directory tree
        Do a regular stat
    Otherwise:
        Do the build with the results of the FAM query
        record the timestamp at the end of the build

The local timestamp could be recorded in much the same way as SCons already uses its .sconsign to record hashes of the file contents and build commandlines; baz could record it in {arch} somewhere.

Update: Benno reports that FAM will only work for a long running process that keeps a connection open to FAM, so SCons and baz, being relatively short-lived, can’t take advantage of this scheme. That’s crap.

Om, OSC, supercollider

Dave Robillard spoke at the LCA Audio MiniConf about OSC, a next-gen MIDI protocol that specifies a way to control musical tools in ways that aren’t just limited to the properties of notes; he also demoed his elite LADSPA patching tool, Om.

Om lets you plug LADSPA plugins together, a-la gst-editor does with gstreamer plugins. This means you can start pulling together effects in all sorts of audio applications without requiring built-in support for LADSPA – all they need is JACK support.

Suggestions for projects that would be useful, according to Dave: an OSC sequencer, for prerecording OSC patterns just as MIDI sequencers do; this would allow the user to script audio programs for real ultimate power; an OSC patch bay and control panel (similar to but I guess more unifying than the ALSA and JACK panels).

Also of note: supercollider is an awesome language/toolkit/thingy; it’s a compiler/bytecode interpreter and OSC aware synth… it needs to be seen and heard to be fully understood; I can’t do it justice here :-)

Shane mentions wanting to get supercollider tied into Togra somehow :-)