a great article on using multiple audio devices with JACK

I’ve been meaning to write a tutorial describing how to use multiple audio devices with JACK, using the “alsa_in” and “alsa_out” tools, but as it turns out, I don’t have to now! Linux Home Recording is a new-ish blog that already has a number of great articles about various Linux recording topics, and the most recent post there is all about using alsa_in and alsa_out.

It pays special attention to one of the most common cases — using a USB microphone — so it’s well worth a read.

this is my minecraft: kerbal space program

It seems like half the people I know have put hours in to Minecraft, but I’ve been spending my time with another indie sandbox game: Kerbal Space Program, a rocket-building spaceflight simulation. KSP gives you a bunch of rocket parts, an editor to build those parts in to complete rockets, and a mini solar system to fly your rockets around. Even though there are no explicit challenges to complete — or at least, not yet — if you’re a rocket nerd like me, it’s still an absolute blast.

Continue reading

melted crayon art: a music video for “texel”

The internet says that you can do awesome things with crayons, glue, a canvas, and a heat gun, and my wife did exactly that on the weekend, with very colourful results. I figured the dripping wax might look cool on film (or on an SD card, rather), so I grabbed the camera, and as it turned out, it looked awesome:

The music is my most recent track, Texel, which seemed like a good match for the video. It was all shot with a hand-held Canon 550D and a 50mm f/1.8 lens, hence the shakiness — it took some time to go through all of the video and find the usable bits, where the camera was both steady and in focus.

I used Kdenlive to edit it all together, and I’m glad to say that it was much more solid than it was during my last video editing project. In particular, it automatically cropped the extra lines out of the 550D’s 1920×1088 files, so I didn’t need to transcode anything. I didn’t apply much processing this time, which may have helped — there’s just a few simple transitions and some colour correction work.

Kdenlive’s ability to use proxy clips — small, low-resolution copies of your original high-res clips that are used during editing — helped keep the preview playback smooth while editing. The original clips are used while rendering the video, though, so the proxy clips don’t affect the final output quality.

on Unity2D and llvmpipe, and the differing approaches of fedora and ubuntu

Ubuntu’s Unity desktop invites comparisons to GNOME 3 for a bunch of reasons, but one important similarity is their reliance on hardware OpenGL support to power their visual animations and effects. In their first releases, both desktops used “fallback” modes to handle systems without OpenGL support, but in Ubuntu 11.10, Unity is available for those systems using a new project called Unity2D.

I think Unity2D is not just a terrible idea, but also another example of the new direction that Ubuntu is taking that makes me wonder if it’ll be my distribution of choice for much longer.

Not so unified

Unity2D removes the reliance on OpenGL by avoiding it entirely: it’s a rewrite of Unity from the ground up, based on the Qt toolkit and using the Metacity window manager instead of Compiz. While it looks and feels much like standard Unity, it’s an entirely separate codebase, and keeping the two in sync as features are added will require a substantial amount of extra work. Perhaps the Ubuntu developers have the resources needed to keep up, but it seems like a very shortsighted approach to me.

GNOME 3’s current fallback desktop is definitely a hack, too — it cobbles together a UI that looks a bit like GNOME Shell using the panel and related components that have been ported from GNOME 2. It has neither the flexibility of GNOME 2 nor the elegance of GNOME 3, so it’s not a particularly compelling experience, but the Fedora developers plan to make the full GNOME Shell experience available for nearly everyone in Fedora 17, using some very cool technology.

Software OpenGL with llvmpipe

OpenGL isn’t inherently limited to systems with hardware acceleration; Xorg actually provides a software implementation of OpenGL by default whenever hardware support is unavailable, but its performance is far low to handle desktop effects. However, a new software renderer, called llvmpipe, aims to change that. By using LLVM, a generic virtual machine that produces optimised x86 or AMD64 code on-the-fly, and utilising multiple CPU cores, llvmpipe performs far better than the standard Xorg renderer.

The gains are impressive: running Quake III Arena at 800×600 on my dual-core laptop, Xorg’s renderer managed 3.9 FPS, while llvmpipe managed a fairly playable 34.9 FPS. While that only makes llvmpipe about as fast as my old Matrox G400, that’s okay — it just has to be fast enough, and for GNOME Shell, and even the odd game, it definitely seems to be. llvmpipe has actually been used as the default software render in Fedora since Fedora 15, but it’s only in Fedora 17 that it supports all of the OpenGL features required to run a compositing window manager.

GNOME Shell on llvmpipe

GNOME Shell running without hardware acceleration on Fedora 17, using llvmpipe

I tested the Fedora 17 development packages (aka “Rawhide”) in a KVM virtual machine, and it worked fairly well; logging in revealed a complete GNOME Shell desktop, and while it was a little choppy, it was definitely usable. I’d definitely expect it to be faster on an actual PC, especially with a mutli-core CPU. The Fedora developers have plans to improve performance, too, by optimising llvmpipe and disabling some minor effects.

So, on the one hand, we have Fedora working on key infrastructure that will improve the Linux desktop experience for all users without hardware OpenGL acceleration, and on the other, we have Ubuntu developers throwing effort away on a developmental dead end. Ubuntu has copped flak before for not contributing to Linux development, but I don’t generally buy in to that argument — “contribution” isn’t something you can measure just by analysing commit logs or counting lines of code. Canonical can pay its developers to do whatever it wants them to do, but increasingly, it seems that the effort they’re expending is pushing Ubuntu in a direction I’m not sure I want to follow.

It’s hard to elaborate on exactly why I feel that way — I think it’s really down to little things, like insisting on forging its own path with Unity, the increasing number of built-in monetised services, and their sleazy dealings with Banshee (be sure to read the comments on that one!). Maybe the result is a great OS for a lot of users, but for me, Ubuntu is slowly drifting away from being the OS I want it to be.