Tag: mp3

  • Pied Beauty, ya pie

    I’m of an age that I had to learn to recite Gerard Manley Hopkins’ Pied Beauty at school, on several different occasions. I did not excel at learning poems by heart; at least, not the ones I was told to learn. I have a difficult relationship with the poem, you could say.

    So when my mother-in-law asked for me to recite it for her daily poetry readings (and knowing full well what she would get), I said yes. Here’s something like what she got:

    Pied Beauty, read by Stewart Russell — much against his better judgment

    It’s a great poem, but one that should never be inflicted on a teenage boy. Yer man GMH was quite the one for making up words: brinded isn’t a thing, and I dunno what happened with the accents on ‘áll trádes’, but they’ve gone well into the twee zone. And as for ‘trout that swim’: is there any other kind, Gerry? Mibbee there’s ones that fly where you’re from, but they’re all strictly aquatic here.

  • all I wanted to do was rip a CD on my Raspberry Pi …

    So, the DVD drive on my laptop’s on the fritz. It reads data fine, but ripping CDs with CDDA checks makes it go over the transport error rainbow bridge. So, partly through necessity and partly for lulz, I wondered how well a Raspberry Pi B+ would do on ripping CDs. I’ve got an old IDE DVD-R drive in an external 5¼” USB enclosure (huge!). I set about installing abcde, which is about the leanest way of ripping CDs in a terminal that I know. The standard sudo apt-get install abcde didn’t quite come up with all of the options I’d want to use, so I made the mistake of trying this:

    sudo apt-get install --install-suggests abcde

    Nooooooooooooooooooooooooooo! This horror suggested I install the following:

      abcde acl akonadi-backend-mysql akonadi-backend-postgresql
      akonadi-backend-sqlite akonadi-server alien antiword apache2 apache2-doc
      apache2-mpm-worker apache2-suexec apache2-utils apache2.2-bin
      apache2.2-common apmd aptdaemon aptdaemon-data at atomicparsley auctex
      autoconf autoconf-archive autoconf-doc autoconf2.13 automake automake1.4
      autopoint autotools-dev autotrace avahi-autoipd avahi-daemon bc bind9-host
      binfmt-support binutils-multiarch bsd-mailx bsh bsh-doc bsh-gcj
      ca-certificates-java catdvi cd-discid cdparanoia cdtool chktex chromium
      chromium-browser chromium-inspector chromium-l10n cjet cl-asdf cl-swank
      clisp clisp-dev clisp-doc cm-super cm-super-minimal colord comerr-dev
      common-lisp-controller cpufrequtils cup cups cups-filters cups-pdf
      cups-pk-helper cups-ppdc darcs db5.1-util dbtoepub dc debhelper
      debiandoc-sgml debiandoc-sgml-doc default-jdk default-jdk-doc default-jre
      default-jre-headless devhelp devhelp-common dh-make dhelp diffstat distmp3
      djtools djview-plugin djview4 djvulibre-bin djvulibre-desktop doc-base
      docbook docbook-defguide docbook-dsssl docbook-dsssl-doc docbook-mathml
      docbook-xml docbook-xsl docbook-xsl-doc-html docbook-xsl-saxon dot2tex
      dvidvi dvipng eject elfutils enscript ethtool exim4 exim4-base exim4-config
      exim4-daemon-light exim4-doc-html eximon4 exiv2 eyed3 fam fancontrol feynmf
      ffmpeg finger firebird-dev firebird2.5-common firebird2.5-common-doc
      firebird2.5-examples firebird2.5-server-common flac fontforge fontforge-doc
      fontforge-extras fonts-arphic-bkai00mp fonts-arphic-bsmi00lp
      fonts-arphic-gbsn00lp fonts-arphic-gkai00mp fonts-beng fonts-beng-extra
      fonts-comfortaa fonts-deva fonts-deva-extra fonts-dustin fonts-freefont-otf
      fonts-gfs-artemisia fonts-gfs-baskerville fonts-gfs-complutum
      fonts-gfs-didot fonts-gfs-neohellenic fonts-gfs-olga fonts-gfs-porson
      fonts-gfs-solomos fonts-gubbi fonts-gujr fonts-gujr-extra fonts-guru
      fonts-guru-extra fonts-hosny-amiri fonts-inconsolata fonts-indic
      fonts-ipaexfont-gothic fonts-ipaexfont-mincho fonts-ipafont-gothic
      fonts-ipafont-mincho fonts-junicode fonts-knda fonts-knda-extra
      fonts-liberation fonts-linuxlibertine fonts-lohit-beng-assamese
      fonts-lohit-beng-bengali fonts-lohit-deva fonts-lohit-gujr fonts-lohit-guru
      fonts-lohit-knda fonts-lohit-mlym fonts-lohit-orya fonts-lohit-taml
      fonts-lohit-telu fonts-mlym fonts-nakula fonts-navilu fonts-oflb-asana-math
      fonts-orya fonts-orya-extra fonts-pagul fonts-sahadeva fonts-samyak-gujr
      fonts-samyak-taml fonts-sil-gentium fonts-sil-gentium-basic fonts-smc
      fonts-stix fonts-taml fonts-telu fonts-telu-extra
      foomatic-db-compressed-ppds foomatic-db-engine foomatic-db-gutenprint
      foomatic-filters fop fop-doc fragmaster freeglut3 freetds-common
      frei0r-plugins gawk gawk-doc gcc-4.6-doc gcc-doc-base gcj-4.7-base
      gcj-4.7-jre-lib gcr gdal-bin geoip-bin geoip-database geotiff-bin gettext
      gettext-doc gfortran gfortran-4.6 gfortran-4.6-doc ghostscript-cups
      ghostscript-x gimp gimp-data gimp-data-extras gimp-gutenprint
      gimp-help-common gimp-help-en gimp-ufraw gir1.2-atk-1.0 gir1.2-freedesktop
      gir1.2-gdkpixbuf-2.0 gir1.2-gst-plugins-base-0.10 gir1.2-gstreamer-0.10
      gir1.2-gtk-3.0 gir1.2-pango-1.0 gir1.2-vte-2.90 gnome-keyring
      gnome-mime-data gnu-standards gnuplot gnuplot-doc gnuplot-nox gnutls26-doc
      gocr grads graphicsmagick graphicsmagick-dbg graphviz graphviz-doc groff
      gstreamer0.10-alsa gstreamer0.10-doc gstreamer0.10-ffmpeg
      gstreamer0.10-gconf gstreamer0.10-plugins-bad gstreamer0.10-plugins-base
      gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly
      gstreamer0.10-pulseaudio gstreamer0.10-x gutenprint-doc gutenprint-locales
      gv hardening-includes hdf4-tools hdparm heirloom-mailx hp2xx hpijs
      hpijs-ppds hplip hplip-cups hplip-data hplip-doc hplip-gui hspell html2ps
      html2text hylafax-client i2c-tools iamerican icedtea-6-jre-cacao
      icedtea-6-jre-jamvm icedtea-6-plugin icedtea-netx icedtea-netx-common
      icedtea-plugin icoutils id3 id3v2 ienglish-common ijsgutenprint imagemagick
      imagemagick-common imagemagick-doc info2www intltool-debian ir-keytable
      ispell jadetex java-wrappers javascript-common jlex kate-data katepart
      kde-runtime kde-runtime-data kdelibs-bin kdelibs5-data kdelibs5-plugins
      kdepim-runtime kdepimlibs-kio-plugins kdoctools ko.tex-extra-hlfont
      krb5-config krb5-doc krb5-multidev krb5-user lacheck latex-beamer
      latex-cjk-all latex-cjk-chinese latex-cjk-chinese-arphic-bkai00mp
      latex-cjk-chinese-arphic-bsmi00lp latex-cjk-chinese-arphic-gbsn00lp
      latex-cjk-chinese-arphic-gkai00mp latex-cjk-common latex-cjk-japanese
      latex-cjk-japanese-wadalab latex-cjk-korean latex-cjk-thai
      latex-fonts-sipa-arundina latex-fonts-thai-tlwg latex-sanskrit latex-xcolor
      latexdiff latexmk liba52-0.7.4 libaio1 libakonadi-kabc4 libakonadi-kcal4
      libakonadi-kde4 libakonadi-kmime4 libakonadiprotocolinternals1 libamd2.2.0
      libao-common libao4 libapache-pom-java libapm1 libappconfig-perl libapr1
      libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libapt-pkg-perl
      libarchive-zip-perl libarmadillo3 libart-2.0-2 libasm1 libasound2-plugins
      libatk-wrapper-java libatk-wrapper-java-jni libatk1.0-doc libatkmm-1.6-1
      libattica0 libaudio-scrobbler-perl libauthen-ntlm-perl libauthen-sasl-perl
      libautotrace3 libav-tools libavahi-core7 libavalon-framework-java
      libavalon-framework-java-doc libavdevice53 libavfilter2 libavfilter3
      libavformat53 libavresample1 libbabl-0.1-0 libbackport-util-concurrent-java
      libbackport-util-concurrent-java-doc libbatik-java libbcel-java
      libbcel-java-doc libbind9-80 libbonobo2-0 libbonobo2-bin libbonobo2-common
      libbonoboui2-0 libbonoboui2-common libboost-program-options1.49.0
      libbsf-java libc6-dbg libcairomm-1.0-1 libcanberra-gtk-module
      libcanberra-gtk0 libcanberra-gtk3-0 libcanberra-gtk3-module
      libcanberra-pulse libcanberra0 libcap-dev libcap-ng0 libcap2-bin libcdaudio1
      libcddb2 libcdt4 libcf0 libcgraph5 libclass-accessor-chained-perl
      libclass-accessor-perl libclass-load-perl libclass-singleton-perl
      libclone-perl libclucene0ldbl libcommandline-ruby1.8 libcommons-codec-java
      libcommons-io-java libcommons-io-java-doc libcommons-logging-java
      libcommons-logging-java-doc libcommons-parent-java libconfig-inifiles-perl
      libconvert-binhex-perl libcpufreq0 libcrypt-openssl-bignum-perl
      libcrypt-openssl-rsa-perl libcrypt-ssleay-perl libcupscgi1 libcupsdriver1
      libcupsfilters1 libcupsmime1 libcupsppdc1 libcurl3-dbg libcurl4-gnutls-dev
      libcxxtools-dev libcxxtools8 libdap11 libdapclient3 libdapserver7
      libdata-dump-perl libdata-float-perl libdata-integer-perl
      libdata-optlist-perl libdata-page-perl libdatetime-format-mail-perl
      libdatetime-format-w3cdtf-perl libdatetime-locale-perl libdatetime-perl
      libdatetime-timezone-perl libdb-ruby1.8 libdbd-mysql-perl libdbi-perl
      libdbi1 libdbusmenu-qt2 libdevhelp-3-0 libdigest-hmac-perl libdirac-decoder0
      libdiscid0 libdjvulibre-text libdjvulibre21 libdlrestrictions1 libdns88
      libdom4j-java libdom4j-java-doc libdvbpsi7 libdw1 libebml3 libelf1 libelfg0
      libemail-valid-perl libencode-locale-perl libepsilon0 libescpr1
      libexcalibur-logkit-java libexiv2-12 libexpat1-dev libfam0 libfbclient2
      libfbembed2.5 libffcall1 libffi-dev libfile-listing-perl libfile-remove-perl
      libfile-which-perl libfont-afm-perl libfontforge1 libfop-java libfreexl1
      libftdi1 libgail18 libgavl1 libgcc1-dbg libgcj-bc libgcj-common libgcj13
      libgcj13-awt libgcj13-dbg libgck-1-0 libgconfmm-2.6-1c2 libgcr-3-1
      libgcr-3-common libgcrypt11-dev libgcrypt11-doc libgd-gd2-perl
      libgd-graph-perl libgd-graph3d-perl libgd-text-perl libgdal1 libgdraw4
      libgegl-0.2-0 libgeoip1 libgeos-3.3.3 libgeos-c1 libgeotiff-epsg libgeotiff2
      libgettext-ruby1.8 libgettextpo0 libgfortran3-dbg libgimp2.0 libgl1-mesa-dev
      libglademm-2.4-1c2a libglib2.0-bin libglib2.0-dev libglib2.0-doc
      libglibmm-2.4-1c2a libglu1-mesa-dev libgnome2-0 libgnome2-common
      libgnomecanvas2-0 libgnomecanvas2-common libgnomeui-0 libgnomeui-common
      libgnomevfs2-0 libgnomevfs2-bin libgnomevfs2-common libgnomevfs2-extra
      libgnuinet-java libgnujaf-java libgnujaf-java-doc libgnumail-java
      libgnumail-java-doc libgnutls-dev libgnutls-openssl27 libgnutlsxx27
      libgpg-error-dev libgraph4 libgraphics-magick-perl libgraphicsmagick++3
      libgraphicsmagick3 libgraphite3 libgrib2c0d libgssapi-perl libgssrpc4
      libgstreamer-plugins-bad0.10-0 libgstreamer-plugins-base0.10-dev
      libgstreamer0.10-dev libgtk-3-doc libgtk2.0-doc libgtkimageview0
      libgtkmm-2.4-1c2a libgtkmm-3.0-1 libgusb2 libgutenprint2 libgutenprintui2-1
      libgvc5 libgvpr1 libhdf4-0 libhdf4-0-alt libhdf4-alt-dev libhdf4-doc
      libhdf5-7 libhpmud0 libhtml-form-perl libhtml-format-perl libhtml-lint-perl
      libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl
      libhtml-tree-perl libhttp-cookies-perl libhttp-daemon-perl libhttp-date-perl
      libhttp-message-perl libhttp-negotiate-perl libi2c-dev libib-util libical0
      libice-dev libice-doc libid3-3.8.3c2a libid3-tools libidl0 libidn11-dev
      libieee1284-3 libio-pty-perl libio-socket-inet6-perl libio-socket-ip-perl
      libio-socket-ssl-perl libio-string-perl libio-stringy-perl libiodbc2
      libipc-run-perl libipc-sharedcache-perl libipc-sharelite-perl libisc84
      libisccc80 libisccfg82 libiso9660-8 libjavascriptcoregtk-1.0-0 libjaxen-java
      libjaxme-java libjaxme-java-doc libjaxp1.3-java libjaxp1.3-java-gcj
      libjboss-jmx-java libjdom1-java libjdom1-java-doc libjline-java
      libjline-java-doc libjpeg-progs libjpeg62 libjpeg8-dev libjs-jquery
      libjs-underscore libkabc4 libkadm5clnt-mit8 libkadm5srv-mit8
      libkatepartinterfaces4 libkcal4 libkcalcore4 libkcalutils4 libkcmutils4
      libkdb5-6 libkde3support4 libkdeclarative5 libkdecore5 libkdesu5 libkdeui5
      libkdewebkit5 libkdnssd4 libkemoticons4 libkfile4 libkhtml5 libkidletime4
      libkimap4 libkio5 libkjsapi4 libkjsembed4 libkldap4 libkmediaplayer4
      libkmime4 libkml0 libknewstuff2-4 libknewstuff3-4 libknotifyconfig4
      libkntlm4 libkparts4 libkpathsea6 libkpimutils4 libkprintutils4 libkpty4
      libkrb5-dev libkresources4 libkrosscore4 libktexteditor4 libldap2-dev
      liblensfun-data liblensfun0 liblircclient0 liblist-moreutils-perl
      liblog4j1.2-java liblog4j1.2-java-doc liblqr-1-0 libltdl-dev liblua5.1-0
      liblwp-mediatypes-perl liblwp-protocol-https-perl liblwres80 liblzo2-2
      libmagickcore5 libmagickcore5-extra libmagickwand5 libmail-box-perl
      libmail-dkim-perl libmail-imapclient-perl libmail-sendmail-perl
      libmail-spf-perl libmailtools-perl libmailtransport4 libmath-round-perl
      libmatroska5 libmhash2 libmicroblog4 libmime-tools-perl libmime-types-perl
      libmodule-implementation-perl libmodule-runtime-perl libmpcdec6 libmpeg2-4
      libmtp-common libmtp-runtime libmtp9 libmusicbrainz-discid-perl libmyodbc
      libmysqlclient-dev libmysqlclient16 libmysqlclient18 libneon27-gnutls
      libnepomuk4 libnepomukquery4a libnepomukutils4 libnet-dns-perl
      libnet-domain-tld-perl libnet-http-perl libnet-ident-perl libnet-ip-perl
      libnet-ssleay-perl libnetaddr-ip-perl libnetcdf-dev libnetcdfc++4
      libnetcdfc7 libnetcdff5 libnetpbm10 libnl-route-3-200 libnspr4-0d
      libnss-mdns libnss3-1d libntrack-qt4-1 libntrack0
      libobject-realize-later-perl libodbc1 libodbcinstq4-1 libogdi3.2
      libopencv-core2.3 libopencv-imgproc2.3 libopenraw1 liborbit2 libosp5
      libostyle1c2 libp11-kit-dev libpackage-deprecationmanager-perl
      libpackage-stash-perl libpackage-stash-xs-perl libpam-cap
      libpam-gnome-keyring libpango1.0-doc libpangomm-1.4-1
      libparams-classify-perl libparams-util-perl libparams-validate-perl
      libparse-debianchangelog-perl libparse-recdescent-perl libpathplan4
      libpcre3-dev libpcrecpp0 libperl5.14 libperlio-gzip-perl libphonon4
      libplasma3 libplot2c2 libpod-plainer-perl libpolkit-qt-1-1 libpoppler-glib8
      libpostproc52 libpotrace0 libpq-dev libpq5 libproj0 libpstoedit0c2a
      libptexenc1 libpthread-stubs0 libpthread-stubs0-dev libpulse-mainloop-glib0
      libpython2.6 libqca2 libqca2-plugin-cyrus-sasl libqca2-plugin-gnupg
      libqca2-plugin-ossl libqt3-mt libqt3-mt-mysql libqt3-mt-odbc libqt3-mt-psql
      libqt4-declarative libqt4-declarative-folderlistmodel
      libqt4-declarative-gestures libqt4-declarative-particles
      libqt4-declarative-shaders libqt4-designer libqt4-dev libqt4-dev-bin
      libqt4-help libqt4-opengl libqt4-opengl-dev libqt4-qt3support libqt4-script
      libqt4-scripttools libqt4-sql libqt4-sql-mysql libqt4-sql-psql
      libqt4-sql-sqlite libqt4-test libqt4-xmlpatterns libqtassistantclient4
      libqtwebkit-dev libraptor2-0 librarian0 librasqal3 librdf-storage-mysql
      librdf-storage-postgresql librdf-storage-sqlite librdf0 librecode0
      libregexp-java libresid-builder0c2a librhino-java librhino-java-doc
      libroman-perl librpm3 librpmbuild3 librpmio3 librpmsign1 librrd4
      librrds-perl librtmp-dev libruby1.8 libsane libsane-common libsane-extras
      libsane-extras-common libsane-hpaio libsaxon-java libsaxon-java-doc
      libsaxonb-java libsaxonb-java-doc libscalar-number-perl libsensors4 libserf1
      libservlet2.5-java libsgmls-perl libshp1 libsidplay1 libsidplay2 libsigsegv2
      libslp1 libslv2-9 libsm-dev libsm-doc libsnmp-base libsnmp15 libsocket-perl
      libsocket6-perl libsolid4 libsoprano4 libsp1c2 libspatialite3 libspeexdsp1
      libspiro0 libsqlite0 libsqlite0-dev libsqlite3-dev libssh-4 libssh2-1-dev
      libssl-dev libssl-doc libstreamanalyzer0 libstreams0 libsub-install-perl
      libsub-name-perl libsvn-perl libsvn-ruby1.8 libsvn1
      libsys-hostname-long-perl libsystemd-daemon0 libtar0 libtasn1-3-dev
      libtemplate-perl libtemplate-perl-doc libtemplate-plugin-gd-perl
      libtemplate-plugin-xml-perl libterm-readkey-perl libterm-readline-gnu-perl
      libtext-format-perl libtext-template-perl libthreadweaver4 libtiff-opengl
      libtiff-tools libtiff5 libtntnet-dev libtntnet10 libtool libtool-doc
      libtry-tiny-perl libtwolame0 libudunits2-0 libumfpack5.4.0 libuninameslist0
      libunistring0 libupnp6 libupower-glib1 liburi-perl liburiparser1
      libuser-identity-perl libutempter0 libuuid-perl libva-x11-1 libvcdinfo0
      libvirtodbc0 libvlc5 libvlccore5 libvte-2.90-9 libvte-2.90-common
      libwebkitgtk-1.0-0 libwebkitgtk-1.0-common libwebrtc-audio-processing-0
      libwebservice-musicbrainz-perl libwmf-bin libwmf0.2-7 libwww-perl
      libwww-robotrules-perl libx11-dev libx11-doc libxalan110 libxalan2-java
      libxalan2-java-doc libxau-dev libxcb-composite0 libxcb-doc libxcb-keysyms1
      libxcb-randr0 libxcb-xv0 libxcb1-dev libxdmcp-dev libxdot4 libxerces-c28
      libxerces2-java libxerces2-java-doc libxerces2-java-gcj libxext-dev
      libxext-doc libxml-commons-external-java libxml-commons-resolver1.1-java
      libxml-commons-resolver1.1-java-doc libxml-dom-perl libxml-libxml-perl
      libxml-namespacesupport-perl libxml-parser-perl libxml-perl
      libxml-regexp-perl libxml-rss-perl libxml-sax-base-perl
      libxml-sax-expat-perl libxml-sax-perl libxml-simple-perl libxml2-dev
      libxml2-doc libxml2-utils libxmlgraphics-commons-java libxom-java
      libxom-java-doc libxpp2-java libxpp3-java libxsltc-java libxslthl-java
      libxt-dev libxt-doc libxvmc1 libyajl2 libyaml-tiny-perl libzvbi-common
      libzvbi0 lintian linuxdoc-tools linuxdoc-tools-info linuxdoc-tools-latex
      linuxdoc-tools-text lirc lirc-x lm-sensors lmodern locales-all lsb lsb-core
      lsb-cxx lsb-desktop lsb-graphics lsb-languages lsb-multimedia lsb-printing
      lsb-release lsb-security luatex m4 magicfilter man2html man2html-base
      media-player-info mesa-common-dev mgetty-viewfax mkcue mp3gain mpg321
      mplayer mplayer-doc mscompress mysql-client mysql-client-5.5 mysql-common
      mysql-server-core-5.5 netcdf-bin netcdf-doc netpbm netselect netselect-apt
      normalize-audio ntrack-module-libnl-0 odbc-postgresql odbcinst
      odbcinst1debian2 ogdi-bin oidentd openjade openjdk-6-demo openjdk-6-doc
      openjdk-6-jdk openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib
      openjdk-6-source openprinting-ppds openslp-doc opensp openssl-blacklist
      otf-freefont oxygen-icon-theme paman paprefs patchutils pavucontrol
      pavumeter pax pdf2djvu perl-doc perl-tk perlmagick pfb2t1c2pfb pgf phonon
      phonon-backend-gstreamer phonon-backend-vlc plasma-scriptengine-javascript
      pm-utils po-debconf postgresql postgresql-9.1 postgresql-client
      postgresql-client-9.1 postgresql-client-common postgresql-common
      postgresql-doc-9.1 potrace powermgmt-base preview-latex-style
      printer-driver-all printer-driver-c2050 printer-driver-c2esp
      printer-driver-cjet printer-driver-escpr printer-driver-foo2zjs
      printer-driver-gutenprint printer-driver-hpcups printer-driver-hpijs
      printer-driver-m2300w printer-driver-min12xxw printer-driver-pnm2ppa
      printer-driver-postscript-hp printer-driver-ptouch printer-driver-pxljr
      printer-driver-sag-gdi printer-driver-splix proj-bin proj-data proj-ps-doc
      prosper ps2eps psgml pstoedit pstotext psutils pulseaudio
      pulseaudio-module-gconf pulseaudio-module-x11 pulseaudio-module-zeroconf
      pulseaudio-utils purifyeps python-apt python-apt-common python-apt-dbg
      python-apt-doc python-aptdaemon python-aptdaemon-gtk
      python-aptdaemon.gtk3widgets python-aptdaemon.gtkwidgets python-cairo
      python-chardet python-cups python-cupshelpers python-dbg python-debian
      python-defer python-dev python-distribute-doc python-doc
      python-egenix-mx-base-dbg python-egenix-mx-base-dev python-egenix-mxbeebase
      python-egenix-mxbeebase-doc python-egenix-mxdatetime
      python-egenix-mxdatetime-doc python-egenix-mxproxy python-egenix-mxproxy-doc
      python-egenix-mxqueue python-egenix-mxqueue-doc python-egenix-mxstack
      python-egenix-mxstack-doc python-egenix-mxtexttools
      python-egenix-mxtexttools-doc python-egenix-mxtools
      python-egenix-mxtools-doc python-egenix-mxuid python-egenix-mxuid-doc
      python-egenix-mxurl python-egenix-mxurl-doc python-examples python-eyed3
      python-fontforge python-gconf python-gdal python-gdbm python-gdbm-dbg
      python-gi-dbg python-gi-dev python-glade2 python-gnome2 python-gnome2-doc
      python-gnomekeyring python-gnupginterface python-gobject python-gobject-2
      python-gobject-2-dbg python-gobject-2-dev python-gobject-dbg
      python-gobject-dev python-gst0.10 python-gst0.10-dbg python-gst0.10-dev
      python-gtk2 python-gtk2-doc python-imaging python-imaging-dbg
      python-imaging-doc python-imaging-doc-html python-imaging-doc-pdf
      python-imaging-tk python-imaging-tk-dbg python-kde4 python-libxml2
      python-notify python-pexpect python-pkg-resources python-pycurl
      python-pycurl-dbg python-pyorbit python-pyparsing python-qt4 python-qt4-dbg
      python-qt4-dbus python-renderpm python-renderpm-dbg python-reportlab
      python-reportlab-accel python-reportlab-doc python-setuptools python-sip
      python-sip-dbg python-smbc python-smbus python-software-properties
      python-subversion python-vte python2.6 python2.6-doc python2.6-minimal
      python2.7-dbg python2.7-dev python2.7-doc python2.7-examples python3-gi
      pyzor qt-assistant-compat qt4-designer qt4-dev-tools qt4-doc qt4-doc-html
      qt4-linguist-tools qt4-qmake qt4-qmlviewer radeontool radiance radiance-doc
      radiance-materials raptor2-utils rarian-compat rasqal-utils razor re2c
      read-edid realpath recode redland-utils rhino ri ri1.8 ri1.9.1 rpm
      rpm-common rpm-i18n rpm2cpio rrdtool rtkit ruby ruby-bdb ruby-commandline
      ruby-dev ruby-gettext ruby-locale ruby-open4 ruby-svn ruby-switch
      ruby-text-format ruby1.8 ruby1.8-examples ruby1.9.1-dev sane-utils sensord
      sessioninstaller setcd setserial sgml-data sgmls-doc sgmlspl
      shared-desktop-ontologies sidplay-base slime slpd slv2-jack smistrip
      snmp-mibs-downloader soprano-daemon sp spamassassin spamc spell
      spf-tools-perl sqlite sqlite-doc sqlite3 sqlite3-doc ssl-cert subversion
      subversion-tools svn2cl swaks swath swish++ system-config-printer
      system-config-printer-kde system-config-printer-udev t1utils tcl-tclreadline
      tcl8.4 tcsh tdsodbc tex-common tex-gyre texinfo texinfo-doc-nonfree texlive
      texlive-base texlive-binaries texlive-common texlive-doc-base texlive-doc-en
      texlive-doc-zh texlive-extra-utils texlive-font-utils texlive-fonts-extra
      texlive-fonts-extra-doc texlive-fonts-recommended
      texlive-fonts-recommended-doc texlive-generic-recommended
      texlive-lang-african texlive-lang-all texlive-lang-arabic
      texlive-lang-armenian texlive-lang-cjk texlive-lang-croatian
      texlive-lang-cyrillic texlive-lang-czechslovak texlive-lang-danish
      texlive-lang-dutch texlive-lang-english texlive-lang-finnish
      texlive-lang-french texlive-lang-german texlive-lang-greek
      texlive-lang-hebrew texlive-lang-hungarian texlive-lang-indic
      texlive-lang-italian texlive-lang-latin texlive-lang-latvian
      texlive-lang-lithuanian texlive-lang-mongolian texlive-lang-norwegian
      texlive-lang-other texlive-lang-polish texlive-lang-portuguese
      texlive-lang-spanish texlive-lang-swedish texlive-lang-tibetan
      texlive-lang-vietnamese texlive-latex-base texlive-latex-base-doc
      texlive-latex-extra texlive-latex-extra-doc texlive-latex-recommended
      texlive-latex-recommended-doc texlive-luatex texlive-metapost
      texlive-metapost-doc texlive-pictures texlive-pictures-doc texlive-pstricks
      texlive-pstricks-doc texlive-xetex thailatex time tipa tix tk8.4 tntnet
      tntnet-demos tntnet-doc tntnet-runtime transfig ttf-dejavu ttf-dejavu-extra
      ttf-dustin ttf-indic-fonts ttf-liberation ttf-marvosym ttf-wqy-microhei
      tzdata-java ufraw ufraw-batch unattended-upgrades unixodbc unixodbc-bin
      unixodbc-dev unpaper upower videolan-doc virtuoso-minimal
      virtuoso-opensource-6.1-bin virtuoso-opensource-6.1-common vlc vlc-data
      vlc-nox vlc-plugin-notify vlc-plugin-pulse vorbis-tools vorbisgain
      w3-dtd-mathml w3-recs w3c-dtd-xhtml wamerican weblint-perl wwwconfig-common
      x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev xalan
      xapm xaw3dg xfig xfig-doc xfig-libs xfonts-75dpi xhtml2ps xindy xindy-rules
      xorg-sgml-doctools xsane xsane-common xsidplay xsltproc xtrans-dev zip
    

    Eep! That looks like the full TeXLive system, most of QT4, almost every TrueType font ever (plus a font editor), printer drivers, the full Apache webserver setup, MySQL, a couple of web browsers, scanner drivers and OCR programs, a mail server … 2.4 GB of downloads, or over 6 GB installed. And all this for a command line script for ripping CDs.

    Eventually, I got by by installing just this:

    sudo apt-get install abcde lame eject id3 id3v2 eyed3 normalize-audio vorbisgain mkcue mp3gain libdata-dump-perl flac

    Much better. Installed in a couple of minutes. Worked quite well, if not fast — ripped and encoded a 45 minute CD in just under 26 minutes (using lame -V2, which is good enough for me). For setup hints for abcde, abcde: Command Line Music CD Ripping for Linux is a good resource. On a Raspberry Pi, with its single core processor, you probably want to set MAXPROCS=1 in the abcde.conf file, or the encoders will fight for resources and get really slow.

  • Faster MP3 options for Raspberry Pi

    Hi there! This post is beyond ancient, and made sense back when the original Raspberry Pi Linux distributions didn’t have floating point support. With the multi-core Raspberry Pi 3, lame now runs at an acceptable rate. You should probably ignore this post unless you’re deliberately trying to recreate that bubbly old MP3 sound.

    One thing the Raspberry Pi is not good at is encoding MP3s at any great speed. At best (using lame) you might get slightly better than 2× real time playback. If you’re using your Raspberry Pi to transcode to another format, that might be slow enough (with other system overhead) to make the output stutter.

    While it would be nice to have the GPU as a general media encoder, we’re not there yet. If you must encode mp3s quickly on a Raspberry Pi, there are a couple of options:

    Please note that both of these are based on the old ‘8hz’ mp3 encoder, which was a fairly literal interpretation of the original Fraunhofer code. They only start producing okay sounding files at high bitrates.

    If you need to decode mp3s quickly, MAD is pretty good: http://www.underbit.com/products/mad. It’s in the repos as ‘madplay’.

  • Raspbian ftw!

    Raspbian is good. If you haven’t upgraded your Raspberry Pi to run it — or any other hard float distro — then you should. It makes the little board seem positively zippy.

    The processor on the Pi is an odd beast. It’s an ARMv6, somewhere between the ARMv5 that the original Debian distro supported, and the ARMv7, which has to have hardware floating point support. The Pi’s processor has floating point in hardware, but it wasn’t supported in the first distribution. Raspbian fixes this, and also has a nice hardware setup wizard (which I wish I’d known about before I spent a while preconfiguring the SD card on another Linux box, grr).

    My highly unscientific benchmark of how fast a computer is is encoding an audio file with ‘lame -V2′. If it comes out faster than real time, it’s fast enough. My first trial in late June came out at a dismal 27% real time — so that would mean that a 4 minute song would take 14′ 49″ to encode. Very poor. Trying it again with Raspbian today gave me 209% real time — so that same song would be done in 1′ 55″. Much better.

    While I was fossicking about with the Pi, I switched its power adapter over to a battery-backed outlet on my UPS. With summer storms, our power has been a bit glitchy, and the tiny USB power supply wasn’t able to ride through any of them. This, I hope, will allow me to have an uptime better than the time between storms …

    I also made this last week:

    It’s a GPIO breakout, a sort of home made Adafruit Pi Cobbler. It’s on a tiny 13×4 fragment of stripboard. The soldering was fiddly, as stripboard is only single sided, so there was much fine tipped soldering iron action (and swearing). I now have the parts to built Mike Cook’s Breakout board with zener diodes providing protection, but this will do for simple applications if I’m careful.

  • mockingbird

    Very little urban hum this morning (holiday), and the air conditioners really hadn’t started yet, so please be amused by the sounds of the garden (featuring mostly mockingbird): about quarter to nine. It does a passable seagull and also a red-tailed hawk. The vehicle reversing sound, though, is real.

    (at least I don’t have a mockingbird problem.)

  • “Go scratch a rock on some congealed oil and tell me what it sounds like”

    I’m either getting old or conventional, ‘cos I bought something I said I would never have enough time or space for: a turntable. I won’t forsake my beloved MP3s, but there are somethings you just can’t get electronically. One of them being the 1981 Stampfel & Weber album “Going Nowhere Fast”, which I snagged from Etsy from a west coast seller.

    I bought an elderly Technics from Ring Audio, and set it up with a USB phono preamp from Phonopreamps.com. It sounds good, I guess. It certainly sounds different from MP3s, but better …? Dunno. My two cynical theories hypotheses of vinyl snobbery are:

    1. The more you have invested in your system, the more confirmation bias tells you it sounds better.
    2. Vinyl is the record industry’s last-gasp attempt attempt at relevancy, because you can’t home-cut your own discs. As there’s always analogue loss in ripping from vinyl, it’s self-policed rights management by the sound quality snobs. Imagine that: DRM conditioned into the listeners themselves!

    I have not got a lot of records:

    Albums

    1. Going Nowhere Fast — Stampfel & Weber
    2. The Holy Modal Rounders
    3. The Holy Modal Rounders 2 (are you sensing a pattern here?)
    4. Acedia — Black Walls

    Single-ish Things

    1. The Television Tells Us / Freeing Song by Reindeer — The Music Tapes (Julian sent me this in 1998, and I think this is the first time I’ve played it. For a few days, it was the only record I had, and it was merciful that Catherine was away, as she only has a normal human tolerance for this sort of thing)
    2. Ghetto Kitty Island Split 7″ – featuring Chicken on a Raft, Of Montreal, Bart Davenport and The Minders.

    Speaking of which, I understand that the latter EP is not exactly widely known, is totes OOP, and completists might dig Of Montreal‘s ”Epistle to a Pathological Creep (demo)”, so here it is ripped for your listening pleasure:

    Ghetto Kitty Island Split 7" (2004)I recorded it with arecord, and edited it with Audacity.  The arecord command line (more for my reference than your interest) was:

    arecord -D 'hw:CARD=CODEC,DEV=0' -V stereo -c 2 -f dat -d 900 ghettokittyisland.wav

    which records 900 seconds of audio at DAT quality to the file ghettokittyisland.wav, while showing a simple text meter on the screen.

  • JohannG, autotuned

    Songify has a lot to answer for: JohannG.

  • Generational loss in MP3 re-encoding

    Okay, name this tune:

    madplay / lame – 1000 iterations

    (You’ll have to scroll about half way in before anything starts)

    Didn’t get it? Try this:

    madplay 24-bit / lame – 1000 iterations

    (Again, you’ll have to scroll about half way in before anything starts)

    Missed that one? Okay then, how about:

    lame / lame – 1000 iterations

    (no need to scroll here.)

    Unless you’ve been living under a rock, it’s a clip from Adele‘s Someone Like You. Sure, you can’t make out the words too well in the last one, but at least they don’t sound like some dire paen to Cthulhu, like the first two do.

    All of the above samples are the same source file re-encoded 1000 times. I’d heard that there was some loss to encoding MP3s, but thought that if you kept about the same bitrate, there wouldn’t be too much loss. I wanted to test out my theory, so I took:

    • LAME — a quality mp3 encoder (that can also decode to WAV)
    • madplay — a decent mp3 decoder that uses fixed point for speed
    • a shell script (see below) that encodes an MP3 1000 times, feeding the output of the last run as the input of the next.
    • a sample clip; in this case, ganked from Amazon.com: 21: Adele: Music using Audio Hijack Pro.

    The original sample looks pretty clean; it’s not the highest quality, but it’s clear:

    The first thing that strikes about the multiply-reencoded file is that it’s much longer:

    This is because LAME adds padding to the beginning and end of each song. All this padding adds up over 1000 runs.

    I’d used madplay extensively before, so I knew it worked reliably. First, I tried it using an intermediate sample size of 16 bits (same as the source) and no dithering. Just after 100 runs, Ms Adkins’ plaintive voice becomes hard to understand:
    madplay / lame – 100 iterations

    I’d turned dithering off in the first test, as I thought it would overcome the signal. As the signal was pretty much gone, I didn’t think I had much to lose, so I tried it at madplay’s full capability of 24 bit internal processing. Again, 100 runs was where things started to go really sideways:
    madplay 24-bit / lame – 100 iterations

    LAME can also decode MP3s, and remarkably, the lyrics remained discernable after 1000 interations (so go and see the third sample up top). Sure, it sounds scratchy, but the piano sounds like a piano and not like some underwater harp. LAME is clearly able to recognize its own input, and decode it accordingly. madplay, on the other hand, just treats an MP3 as a generic MP3, hence the over-compression and extra silences.

    So really, if you’re going to re-encode music, it matters more what you use to decode your MP3s. If you can use the same tool for both, all the better.

    (more…)

  • Richard Harvey – A New Way of Seeing

    A New Way of Seeing was created by Richard Harvey for ICL for the launch of a new series of computers in 1979. Since it was only released to ICL dealers and their clients, it’s not widely known. This is a shame, as it’s a delicious slice of electro-prog.

    So here it is: A New Way of Seeing – Richard Harvey (mp3).

    Quality’s not great, ‘cos the audio’s ganked from this YouTube video. Seeing as ICL is long gone, this is probably the best we’ll have to live with.

  • Banjo at home

    Got some better pictures of the banjo yesterday. And sounds, too!

    Please excuse the ropeyness of the following playing; I’d never played fretless until I built this:

  • mississippi john dalek

    I really, really don’t know what my iPod was thinking when it rendered a perfectly good mono MP3 of Mississippi John Hurt like this:

    Mississippi John Hurt – Frankie (accidental robot mix)

    [wpaudio url=”http://scruss.com/wordpress/wp-content/uploads/2010/06/Mississippi_John_Hurt-Frankie-accidental_robot_mix.mp3″ text=”Mississippi John Hurt – Frankie (accidental robot mix)” dl=”0″]

  • Old Man Luedecke instore

    Old Man Luedecke just gets better and better. Here’s a half-hour instore he did at Criminal Records last week.

    [wpaudio url=”http://scruss.com/music/luedecke-criminal_records_instore-20100408/old_man_luedecke-criminal_records_instore-20100408-mono.mp3″ text=”Old Man Luedecke – Criminal Records (Toronto) instore, 2010-04-08″ dl=”0″]

  • Amiga chiptune

    It’s the demo that came with MED 3.1 in 1991: Teijo_Kinnunen MED SynthSong2.

  • something went wrong

    At the automatic podcast today, something went very wrong with the announcements. Hear what I mean.

    I was playing with flite‘s new voices, and I think the command line went up the chute.

  • fast fixed-point MP3 encoder for ARM

    CompRec, though extremely poor quality (no psychoacoustic modelling! Old-school twinkly-burbly MP3s here we come!) is a fast MP3 encoder you can build on the SheevaPlug. It’s perfect for my limited needs.
    (thanks to wb6ymh for finding this.)

  • time to get MAD

    The prime reason I bought the Sheevaplug is to run the automatic podcast. Every day, the script has to decode a bunch of mp3s to WAV format.On a normal computer, this takes a few seconds per file. On the Sheevaplug – with no floating-point instructions, things get painful:

    $ time lame --mp3input 03-in_the_aeroplane_over_the_sea.mp3 03-in_the_aeroplane_over_the_sea.wav
    ID3v2 found. Be aware that the ID3 tag is currently lost when transcoding.
    LAME 3.98 32bits (http://www.mp3dev.org/)
    Using polyphase lowpass filter, transition band: 16538 Hz - 17071 Hz
    Encoding 03-in_the_aeroplane_over_the_sea.mp3
    to 03-in_the_aeroplane_over_the_sea.wav
    Encoding as 44.1 kHz j-stereo MPEG-1 Layer III (11x) 128 kbps qval=3
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
    7750/7750  (100%)|    8:45/    8:45|    8:46/    8:46|   0.3851x|    0:00
    -------------------------------------------------------------------------------
    kbps        LR    MS  %     long  %
    128.0        2.1  97.9       100.0
    Writing LAME Tag...done
    ReplayGain: -8.9dB

    real    8m46.408s
    user    8m45.940s
    sys    0m0.090s

    That’s right – nearly 9 minutes to decode a song! My very first Pentium 75 could probably do better than that.

    I’d heard that MAD was really fast on integer-only CPUs, so I tried it:

    $ time madplay -o 03-in_the_aeroplane_over_the_sea.wav 03-in_the_aeroplane_over_the_sea.mp3
    MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
    Title: In the Aeroplane Over the Sea
    Artist: Neutral Milk Hotel
    Album: In the Aeroplane Over the Sea
    Track: 3
    Year: 1998
    Genre: Alternative
    Comment:
    7748 frames decoded (0:03:22.3), +1.2 dB peak amplitude, 1423 clipped samples

    real    0m7.134s
    user    0m6.500s
    sys    0m0.580s

    Seven seconds sure beats nearly nine minutes. Now, if only I could find an integer MP3 encoder …

  • good, not quite great

    I accidentally dropped and broke my car mp3 player, so had to come up with another music solution. I caved and bought an iTrip for my iPod Nano. It sounds pretty good.

    What’s good about it is that it allows you to charge your iPod from a standard USB Mini-B. What’s not so good is that it doesn’t have full USB pass-through, so you can’t sync your iPod, and have to stick with that stupid dock cable.

    (and don’t get me started on the really annoying connector on my work cell phone …)

  • 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.