Scripts

Purging "PMEDIA" spam from my music library with Beets and Mutagen

I have been cleaning up my music collection, which I have ripped from CDs over the years, finally getting around to tagging them properly. I used MusicBrainz Picard to tag my music, but what I didn’t know is that it was adding a bunch of tags which contain ‘PMEDIA’ (even in places like the composer field, which makes no sense).

Seeing this as annoying, I needed a way to clean up my tags to remove this unwanted metadata. Since I have imported the music via beets.io, I was able to use that to help fix up the metadata. However, I ran into several albums in my library where the “PMEDIA” watermark kept reappearing, even after Beets reported that the fields had been successfully cleaned and synced.

Simplify Binary Management with `update_gitbin`

I run a variety of systems including a couple which are running Debian stable. This means that packages (although stable) are often not as current as I’d like. To help get around this I started using prebuilt binaries directly from the upstream projects when they are hosted on GitHub. But this created a new problem - how to keep them up to date.
This article introduces a shell script designed to automate the process of downloading and updating binary files from GitHub repositories.

Console-based podcaster - updated

It has been a while since I first posted my version of bashpodder (a console-based podcaster in a single bash script)

Since then a bunch of small fixes have been added to the script to better handle ‘odd’ rss feeds and also to clean up the output.

The configuration of the script now sits in the file ~/.bashpodder Inside this file you can specify where the logs go to and where the files download to (makes it easier to run the script automatically)

MusicXML/MIDI for Arduino

For a recent project I wanted to add music.

Being that I am not musically talented in any way I figured the best way to do this was to generate the music from a midi file.

To help with this I wrote a converter that would take a MusicXML file and output an include file.

It simply reads the XML and outputs an array where each note is stored in two uint16 values - the first is the note name as a defined in pitches.h (ie NOTE_C4), the second is the duration in milliseconds. The entire array is stored in PROGMEM so as to not use up too much ram on the AVR.

Console-based podcatcher

A few days ago I installed a new disk in my laptop to replace the existing small one. Being the careful person I am I backed up the important data and then migrated the contents from the old disk to the new one via rsync. Everything worked well and I was able to boot into the new disk right away without issue. That is until I went to update the podcasts I listen to.