Ganska nyligen rensade jag ordentlig i min hemkatalog, flyttade alla kritiska konfigurationsfiler till en särskild katalog och började versionshantera dem; allt sådant som jag borde ha gjort för länge sedan. Jag fick mycket rensat och det är mycket lättare att hitta i min hemkatalog.

Något senare installerade jag om FreeBSD på min huvudsakliga maskin, min Thinkpad X60s, och återställde hemkatalogen från backup. Jag insåg då att jag inte hade räddat min konfiguration för musikspelaren moc!

Naturligtvis hade jag gjort tangentbordsbindningarna i moc ganska Emacs-lika. Tyvärr lyckades jag inte fullt ut och fick inte Meta-tangenter att fungera. Men nu var alltså min konfiguration borta.

Hellre än att göra om min konfiguration började jag leta efter andra musikspelare med ett trevligt användargränssnitt eftersom jag ändå stört mig lite på moc. Mina krav är ändå ganska enkla:

  • Fri programvara! Naturligtvis.

  • Textbaserad, curses (eller libslang eller något motsvarande), inte CLI.

  • Inga enbart dekorativa utsmyckningar, som ramar eller färger som inte fyller någon funktion. moc har till exempel en irriterande ram som inte kan konfigureras bort, tyvärr.

  • Tangentbordsbindningar som kan användas utan piltangenter eller PgUp, PgDn, et cetera. Gärna vänliga för någon som har Emacs eller vi i ryggmärgen. I brist på detta duger förstås alldeles utmärkt om det går att binda om tangenterna.

  • Kan spela FLAC, Ogg Vorbis och MP3.

  • Kan spara och ladda spellistor som vanliga filer.

  • Kan välja ljudfiler från katalogstruktur.

Extra poäng, men inte absoluta måsten:

  • Förstå sig på ID-taggar i ljudfilerna.

  • Skriven i ett programspråk jag behärskar.

Jag hittade efter lite letande en lovande kandidat som jag inte hört talas om tidigare: Herrie. Det visar sig dessutom att den är utvecklad av FreeBSD-hackern Ed Schouten!

Herrie har ett enkelt användargränssnitt som visar en fillista och en spellista. Överst visas nu spelande låt. Det går att skapa spellistor från fillistan och vandra runt med hjkl, som i vi eller Nethack. TAB byter mellan vyerna. Det verkade trevligt.

Programmet är skrivet i C, använder vanliga curses och förstår sig enligt websidan på att spela åtminstone MP3, Ogg Vorbis och FLAC och förstår dessutom ID-taggar i filerna om det finns några.

Jag installerade så klart Herrie för att testa. Tyvärr visar det sig att Herrie som paket inte kan FLAC! WTF!?

% herrie -v
herrie 2.2 (Two-clause BSD license, using GNU GPL licensed libraries)

Global configuration file: /usr/local/etc/herrie.conf
Audio output: oss
Support for AudioScrobbler: yes
Support for HTTP streams: yes
Support for XSPF playlists (`spiff'): yes
Supported audio file formats:
- Ogg Vorbis
- MP3

Av någon för mig okänd anledning har paketversionen inte länkat med libsndfile som också ger FLAC-stödet. Nåväl, in med ports-versionen i stället:

% herrie -v
herrie 2.2 (Two-clause BSD license, using GNU GPL licensed libraries)

Global configuration file: /usr/local/etc/herrie.conf
Audio output: oss
Support for AudioScrobbler: yes
Support for HTTP streams: yes
Support for XSPF playlists (`spiff'): no
Supported audio file formats:
- Ogg Vorbis
- MP3
- libsndfile

Och jodå, nu kunde den spela FLAC (och WAV, om jag nu skulle vilja).

Gränssnittet blir mycket trevligare om jag slår av färgerna helt och hållet med:

gui.color.enabled=no

i .herre/config. Det ser då ut så här i en urxvt:

urxvt med herrie

Kort sagt: Det uppfyller i stort sett alla mina punkter i den lilla kravlistan ovan. Rekommenderas!