jukebox sampler

Every thousandth track from my library:

Track Title Artist Album
1000 How the West Was Won and Where It Got Us R.E.M. New Adventures in Hi-Fi
2000 Lesson 8 / Ex 3 David Hamburger The Acoustic Guitar Method, Book 2
3000 Way of Woe Peter Stampfel The Jig Is Up
4000 Exercise: Changing Chords Jack Hatfield First Lessons Banjo
5000 The Edison Museum They Might Be Giants No!
6000 Got The Jake Leg Too Ray Brothers
7000 Light Is Returning Rise Up Singing: The Teaching Disc O
8000 Birmingham Sunday Rise Up Singing: The Teaching Disc J
9000 Bring Me A Leaf From The Sea Carolina Tar Heels Mountain Frolic (Rare Old Timey Classics 1924-37) – Disc D (1925-30)
10000 Window to Mars Elf Power In a Cave
11000 The Book Of Doves Alasdair Roberts Spoils
12000 Grounded Pavement Wowee Zowee
13000 O Holy Night Classic Carols Classic Carols (Piano-Vocal Harmonies)
14000 Track 23 Peter Gelling Teach Yourself Harmonica
15000 Priscilla The Soft Machine The Soft Machine
16000 Colours Gorp Shapes And Colours Game
17000 The Mayor Of Simpleton XTC Upsy Daisy Assortment
18000 Jóga Björk Homogenic
19000 Everything Merges With the Night Brian Eno Another Green World
20000 Great Races – The Marathon Ivor Cutler, et al King Cutler, Part 6
21000 Coal Creek March Dock Boggs His Folkways Years (1963-1968) Disc 1
22000 The Ghost You Draw On My Back Múm Summer Make Good
23000 Tidy (Previously Unreleased Demo) Dressy Bessy Little Music: Singles 1997-2002
24000 Careless Soul Daniel Johnston 1990
25000 Introduction Joyce Ochs First Lessons: Dulcimer
26000 On A Monday Morning Rachel Unthank and the Winterset Cruel Sister

awe-inspiring terminal output

sheevaplug terminal outputWell, not really that awe-inspiring. But it does show that the Sheevaplug boots and runs out of the box. Given that it has only 512MB of RAM and the same amount of Flash storage, it’s a fairly small system.

I really want to have this replace my Firefly Media Server installation on the laptop. First, I need to work out how to get it to boot from an external HD.

how does he do that?

Someone asked how the automatic podcast works. It’s a bit complex, and they probably will be sorry they asked.

I have all my music saved as MP3s on a server running Firefly Media Server. It stores all its information about tracks in a SQLite database, so I can very easily grab a random selection of tracks.

Since I know the name of the track and the artist from the Firefly database, I have a selection of script lines that I can feed to flite, a very simple speech synthesizer. Each of these spoken lines is stored as as wav file, and then each candidate MP3 is converted to wav, and the whole mess is joined together using SoX. SoX also created the nifty (well, I think so) intro and outro sweeps.

The huge wav file of the whole show is converted to MP3 using LAME and uploaded to my webhost with scp. All of this process is done by one Perl script – it also creates the web page, the RSS feed, and even logs the tracks on Last.fm.

Couldn’t be simpler.

blues minus the blues

All the “… Blues” tracks I have, minus the blues:

  • 12th street
  • 1st precinct
  • 30-20
  • 99 year
  • airplane
  • alcoholic
  • all
  • all in down and out
  • all night long
  • answering machine
  • apron string
  • arcade
  • arkansas hard luck
  • autogeddon
  • back door
  • bad shoes
  • bamalong
  • banker’s wife
  • bankhead
  • barber’s
  • barnyard
  • bath house
  • bay rum
  • beach boy
  • bedside
  • bert’s
  • big house
  • big mouth
  • big spit
  • billy goat
  • black and blue
  • black bottom
  • black cat
  • black crow
  • black dog
  • black-eyed
  • black hand
  • black sheep
  • blowing
  • bluebottle
  • blue coat
  • blue day
  • blue jeans
  • bob dylan
  • bob lee junior
  • bone dry
  • boogie woogie
  • bottle of
  • bourgeois
  • bread line
  • brownie’s
  • brown’s ferry
  • brown skin
  • bull frog
  • cairo
  • candy man
  • cannonball
  • carroll county
  • carter’s
  • catfish
  • c.c. & o
  • cell phone
  • checkout
  • chester
  • chicago
  • chile
  • chilly wind
  • choking
  • city
  • coal mine
  • coal tipple
  • cocaine
  • cold penitentiary
  • columbus stockade
  • coming into hard times
  • country
  • courting
  • crazy
  • crooked creek
  • cross road
  • cross tie
  • crow jane
  • cumberland
  • custard pie
  • custom-made woman
  • cut 1/2
  • dachau
  • dago
  • dark holler
  • davidson county
  • dead shrimp
  • death bell
  • deep elem
  • deep river
  • depot
  • diamond ring
  • dickson county
  • dirty guitar
  • dixie flyer
  • dom
  • don’t let your deal go down
  • do right daddy
  • down south
  • dreaming
  • dry town
  • dust bowl
  • dust pan
  • dust pneumonia
  • dying crapshooter’s
  • early mornin’
  • east virginia
  • ec
  • electro-shock
  • elk river
  • empty bottle
  • empty pocket
  • evening prayer
  • evil twin
  • expressman
  • farewell
  • farm girl
  • fine artiste
  • fisherman’s
  • fishin’
  • fishing
  • fixin’ to die
  • florida
  • folsom prison
  • football
  • framer’s
  • franklin
  • franklin county
  • freddy’s
  • freight train
  • fresno
  • frisco whistle
  • gambler’s
  • gambling
  • georgia brown
  • georgia wobble
  • ghost woman
  • ginseng
  • go easy
  • goin’ away
  • goin’ to leave you
  • got the drunken
  • got the farm land
  • grace kelly
  • gravel camp
  • guitar
  • hard time killing floor
  • haunted road
  • helena
  • henhouse
  • hesitation
  • highway
  • highway 51
  • hobo
  • hometown
  • honey babe
  • honky tonk
  • hot jelly roll
  • housefly
  • huckleberry
  • ice water
  • indian squaw
  • intersoular
  • jailhouse
  • jake bottle
  • jake leg
  • jake walk
  • james allen
  • james alley
  • jellyfish
  • jersey bull
  • john henry
  • johnson city
  • just like tom thumb’s
  • kansas city
  • kentucky
  • killin’
  • kindhearted woman
  • kozmic
  • kristin’s
  • kyle’s worried
  • labor
  • land locked
  • leake county
  • lee highway
  • left all alone again
  • lightnin’s
  • little
  • living here
  • logan county
  • lonely
  • lonesome
  • lonesome road
  • lonesome weary
  • long chain charlie
  • lost boy
  • lost train
  • louisburg
  • lovesick
  • low d
  • mad man
  • maggie walker
  • man trouble
  • married life
  • married man’s
  • married woman
  • match box
  • mean conductor
  • mean old ball and chain
  • mean talking
  • mehitabel’s
  • mexican
  • middlin’
  • milk cow
  • milwaukee
  • minglewood
  • mississippi boweavil
  • miss meal cramp
  • mistreated
  • mistreated mama
  • mitchell
  • mixed
  • moatsville
  • mobile county
  • morning
  • mourning
  • mr. e’s beautiful
  • muleskinner
  • multiple relationship
  • muscle shoals
  • my human gets me
  • narrow gauge
  • natural bridge
  • new ground
  • new minglewood
  • newport
  • new river
  • new talking
  • new white house
  • new york j-d
  • night woman
  • north country
  • no sleep
  • n.r.a.
  • number
  • old lonesome
  • old rock island
  • old weary
  • old woman
  • ontario
  • oozlin’ daddy
  • original stack o’lee
  • outlaw
  • paddlin’ madeline
  • pan american
  • parchman farm
  • patrick county
  • phonograph
  • poca river
  • police dog
  • police sergeant
  • pony
  • poor boy
  • poor girl’s
  • poor jane
  • port arthur
  • pot licker
  • pouring down
  • prison cell
  • puckett
  • quill
  • rabbit foot
  • radar
  • railroad
  • railroad hammer
  • ramblin’
  • red night gown
  • reno
  • restraining order
  • rheumatism
  • richmond
  • rip van winkle
  • rising river
  • rising sun
  • river
  • rock style
  • rollin’ dough
  • rolling log
  • roll my
  • rooster
  • rotten world
  • rowdy
  • rub alcohol
  • salt lake city
  • salty dog
  • san francisco bay
  • seattle rainy day
  • shaking wee
  • showers of rain
  • sisco harmonica
  • situation comedy
  • skool dinner
  • sobbin’ woman
  • sonny’s
  • spanish
  • spike driver
  • starvation farm
  • statesboro
  • station
  • steel rail
  • stockade
  • stove pipe
  • strawberry
  • string band
  • subterranean homesick
  • sugar
  • suits crybaby
  • sundown
  • sven
  • sweet woman
  • talking dust bowl
  • talking fishing
  • talking world war iii
  • talkin’ hard luck
  • talkin’ woody, bob, bruce & dan
  • tallahatchie river
  • teasin’ brown
  • tennessee river bottom
  • tequila hop
  • terraplane
  • testosterone
  • the france
  • three ball
  • tinker’s
  • tipple
  • toby woman
  • tokyo business
  • tombstone
  • tough luck
  • train
  • trane’s slo
  • travelin’
  • travelin’ railroad man
  • triangle
  • t&t
  • turtle
  • tuxedo
  • two-timing
  • unexplained
  • unknown
  • up country
  • upside down church
  • v.b.
  • violin
  • walking
  • wang wang harmonica
  • washington
  • washington talkin’
  • way down yonder
  • wayward girl
  • weeping willow
  • west carey street
  • whiskey & gin
  • white flag
  • white house
  • white-shoe
  • wilkes county
  • window pane
  • winnsboro cotton mill
  • working girl
  • workingman
  • worried
  • worried man
  • xmas prison
  • yodeling
  • yodeling fiddling
  • young girl

And yes, I excluded I Guess That’s Why They Call It The

the little computer that should

My home server went phut last week. There was a brief power outage, and everything else came back on — except the server. It was a three year old Mini-ITX box, and I’m casting about for ways to replace it.

To serve my immediate music serving and podcasting needs, I have pressed The Only Computer That Runs Windows into service, running Ubuntu using Wubi. Unfortunately, I do still occasionally need to run Garmin Mapsource, which only runs on Windows, and also The Only Computer That Runs Windows is also rather too nice a laptop to be sat doing server duty.

I have some options:

  • Get a new motherboard for the mini-itx box. Via still has some crazy ideas about pricing (over $200 for a fanless C7?) but maybe I’ll go for Intel’s snappily-named D945GCLF, which looks okay for what I need and is only $80.
  • I could resurrect the old Athlon box I got in 2002, but it’s big, loud, and its components are probably near end of life. Also, why disturb a mature spider habitat?

What I was really looking for was one of those tiny fanless internet appliance boxes that were so 2007 (like the Koolu and the Zonbu, both of which have moved on to other things), but such units, without the tied storage service contract, are upwards of $500.

My needs are simple:

  • run Firefly to feed the Soundbridges;
  • generate the automatic podcast every day, which realistically means a linux box with Perl, sqlite and the like;
  • have something to ssh into when boredom strikes the need arises. Perhaps unwise having an open machine sitting directly on the internet, but only the ssh port will be open.

I really also need to get rid of all the computer junk in the basement. It now includes two fritzed mini-ITX systems and the world’s slowest PostScript laser printer. Such fun.

cleaning up your FireFly Media Server database

mp3 tagging is a minefield. Like all metadata, one has to balance obsession with detail against ease of acquisition.

Some Firefly clients are pickier than other about tagging. Regrettably, some of the music I get from emusic has bad characters in the tags, which throws the players right off. Finding the problem files is the majority of the problem – here’s a method that at least helps:
wget -O- http://host:port/rsp/db/1 | perl -pwe 's,<(?![/\?]),\n<,g;' > firefly.xml
xmllint --noout firefly.xml

You’ll likely get a few lines like:

firefly.xml:463415: parser error : PCDATA invalid Char value 65535
<title>�Singing in the Bathtub</title>

In this case, the song title tag has some junk characters in it that you’ll need to fix. After cleaning up the tags and rebuilding the database, try this process again to see if you’ve caught all the errors.

ffms2m3u.sh – create playlist for all files on a Firefly Media Server

ffms2m3u – create playlist for all files on a Firefly Media Server.

If you run Firefly Media Server, you can run this script to create an M3U of all the tracks on your server. You can play this in most audio players; VLC likes it, as does iTunes (though big playlists take an age to load). Rhythmbox and the default Ubuntu Movie Player won’t touch my playlist of over 17,000 tracks.

To configure the script you need to edit three lines:


# where the Firefly database lives
DATABASE="/usr/var/cache/mt-daapd/songs3.db"
# server domain name or IP address
SERVER="server.example.com"
# Port to talk to server - don't leave blank
PORT="3689"

If you’re running Ubuntu, you’ll probably only need to change the SERVER line. It spits the M3U playlist, ordered by album, to stdout. Note that in the default Ubuntu install, regular users can’t read the database file.

If you’re running this from a cron job, it’s probably a good idea to fill in the real paths for sqlite3 and awk.

less than 100 CDs to go …

1492 Artists / 999 Albums / 15245 Tracks / 34.9 Days / 62.12 GB
(and here’s me thinking I had about 2000 CDs, too)

CDs that wouldn’t read: 0 (so far). That’s not to say that there weren’t some difficulties (copy-controlled CDs can go die, glitching and gronking in my drives) and my oldest CD (XTC’s Skylarking, my copy of which I think has just turned 20) had a ton of retries.

Lost CDs: Thomas Dolby’s Aliens Ate My Buick is somewhere in the house, but nowhere I’ve looked.

Found CDs: My long-lost promo copy of the (Portland) Decemberists’ Picaresque, which I thought had vanished in a road trip to Missouri. It was lurking in a long-forgotten portable CD player in the bottom of a storage bin.

Pleasant surprises: that freedb is generally better than it used to be.

Peeves: copy-controlled CDs (see above); flappy cardboardy cases that only have the title on one spine; oversized CD cases (Japanese imports, I’m looking straight at you), dark blue text on a black background, idjit freedb submitters who insist on Band, The syntax or worse, submit whole albums called sdfsdf;aefhsdf; bonus DVD “premium” releases (who watches these?).

song counts

1332 Artists / 774 Albums / 12074 Tracks / 27.1 Days / 47.34 GB
— and the sad thing is, this would barely half fill a current iPod.

m4a2mp3

m4a2mp3 – convert AAC to MP3. Uses Perl, LAME and faad. Semi-gracefully converts weird iTunes genres to ID3v2, or to “Other” if it’s something else. Uses lame’s new VBR settings, so you end up with an MP3 not massively bigger than the source M4A.

PS: broke the 8000 tunes on the Firefly server …

rockin’ the plastic: four turntables and an mp3 share

Now I’ve got the Soundbridge set up to share from my server, I’ve been ripping CDs like crazy. I’ve got two drives on my Ubuntu box, and hooked an external CD drive to my laptop, so I’m rocking four drives at once. After years of using Grip, I converted to Abcde this weekend. What I really like about it is that I can run multiple copies at once, and it very nearly things right (aka “my way”) out of the box.

By the end of tonight, I should have about 6700 tracks on my share, and a bunch of CDs in storage.