Musical Beats & Pieces

The music player

The last hoard of Emacs-related code I’ve written over the years is part of my Emacs-based music player.  It started off (in 1997) as a way to rip my CDs and play mp3s (as well as swap out the mp3s to CD since I didn’t have enough disc space to store all the mp3s).

It’s grown over the years and changed focus somewhat.

Most of the stuff has been written pretty monolithically, with all the code stashed in jukebox.el.  So I’ll be attempting to disentangle parts that could have some reuse value over the next weeks, as time permits.

last.fm web interface

But if you want a system that you can use yourself, the EMMS system is probably a better bet.

The first result from the disentanglement process is scrobble.el. It’s a library for interfacing with the last.fm web site.  I like last.fm.  It’s the only “social networking” site I use — I find it genuinely useful for finding concerts and stuff.

Following will be a cddb library, a DAE (i.e. cd-ripping interface), a sampling-and-splitting interface, and probably other bits and bobs.  As well as the jukebox itself.

Emacs Movie Browser

See Emacs. See Emacs play movie

In the continuing story of Emacs@Home (don’t worry, I think there’s only one part left now), we’ve now come to the part where I watch TV.  I know, it’s something most people manage quite perfectly without resorting to Emacs, but why would you?

Well, actually, I think that the interfaces I’ve seen have been somewhat lacking.  Mostly mouse-based and not very practical.  I just want to sort by name or by recording date, and I don’t want to use an HTPC pointer device.  So:

User story: Keyboard-based and snappy.

Emacs is ready for its close up

Solution: Emacs.

I think this Emacs movie browsing interface demonstrates how little code you need to get a satisfactory result.  Emacs does all the difficult stuff for you, and presto! You have the interface as shown at the top there, displayed in blurrovision.  I just couldn’t get my camera to focus.  What if I take a the picture closer?  Yeah, that’s a bit better.

Anyway, I’ve got a little wireless keyboard next to me, and viewing a program just requires paging up and down a bit and hitting RET, which suits me fine.

Oh, and it just forks mplayer to actually play the movie.  Sorry, I didn’t implement H.234 decoding in Emacs Lisp.

Olde Stylee

So, not much code this time…  but it’s a bit interesting how writing about stuff like this changes the stuff itself.  Before starting to write this, the interface was even more minimal.  It didn’t have thumbnails and wasn’t in Futura.

The last picture there is how it used to look.  Just as functional (if you squint), but I thought “hang on, an Emacs interface without any pictures would be just to stereotypical”, so I added the thumbnails.

When writing software that I’m just going to use myself, it gets a lot more basic.  I get to embarrassed about the code quality, and I start cleaning it up, and before you know it, it has all these…  frills.  I’m not actually sure it’s a positive effect.  It might be.  Hm.

Anyway!

Sennheiser HDR 180

Headphones cradled on the charging cradle

Most hardware seems to have been created in a “will this do?” mind set.  They have a bit of technology, and they have some economic restraints, and then they rush it to market.  It makes perfect sense, and I can’t envision that it’ll ever change, but it’s somewhat depressing.

The hardware in question this week are the Sennheiser HDR 180 wireless headphones.  They use Klear wireless technology, and they sound really good.  There are no drop-outs, there is no buzzing — they just work, even if I walk to the far side of the apartment.  They’re, technically speaking, what you would call “ace”.

Cradle on/off button

But then there’s the User Experience details.

The headphones usually rest on the charger thingie you see up there.  It’s nice.  So when I start watching something on the “TV” and I want to use the headphones, I pick up the headphones and put them on my head?

Nope.

I pick up the headphones.  Then I hit the “on” button on the base station.  Then I hit the “on” button on the headphones themselves.  Then I put them on my head.

Headphone UX

Because, I mean, why would you assume that just because I’m picking them off the charging station, I want to use them?  Perhaps I want to do something completely different.  Perhaps I picked them off the charging station to hang them out to dry on the balcony?  Or perhaps I wanted to dance around with them, fondling them inappropriately?  I mean, that’s so much more likely than wanting to use them.

This is why I hate all hardware.  Hardware never works the way it should.

And I didn’t even want to go into the UX of the headphones themselves.  You see those five buttons on the headphones?  Yes, there’s volume up, on/off, and volume down buttons.  Fine.  But then, next to them, there’s two balance buttons.  So when I have the headphones on my head, which is usually where they are when I’m using them, I have to feel around, tentatively, for the volume buttons, because once you hit the balance buttons, you’ll never get the right balance back again.  There’s no “return the balance to the, er, balanced position” button. It’s like FAIL!!!1! And who the fuck wants to change the balance, anyway?

Oh, by Emacs.  I hate hardware.

Hardcore Food

I was looking through my cookery books for meatball recipes, and this was one of them.

It just seems too hardcore for me.  It starts with “half a kilo of meat from ox, calf, sheep, horse, moose, whale”.  And then you add blubber or lard or whatever “spekk” is.  And half a liter of milk.

Yum?

Quimby Upgrade

The old Quimby

Quimby (the machine doing everything at *.gnus.org) has been unstable lately.  (It’s died mysteriously two times.)  So instead of investigating what’s going on, I just installed Debian Squeeze on a new machine and rsynced over all the pertinent parts.  The old Debian installation was too stale, anyway, and 32-bit, so it was probably time.

The old machine (pictured at the top) was a self-built 2U machine with a couple of disks.  The new one is a 1U machine with dual dual-core 2.4GHz Opteron CPUs.  It’s ridiculously over-powered, but what are you going to do?  It was a six year old machine ready for the scrap heap.

The new Quimby

It is bemusing that a machine that old is that over-powered these days.  However, going further back in time is usually not very rewarding.  You get into serious problems with what kind of disks they’ll accept, for instance. Even this one was problematic.  It refused to boot up if there was a SATA disk larger than 500GB installed.  So I’d either have to use an external USB2 disk (which is not a very attractive solution) or use smaller disks and RAID5 them together.  I went for the latter option, but it’s still slightly exasperating that something as stupid as that should be a problem.  The last BIOS upgrade was from 2006, and didn’t help.

Oh, well.  The travails of a free software programmer.