Posts Tagged ‘Music’

“Mayday” — new single from The Suckers

Tuesday, May 1st, 2012

I’ve just released a new single about what happened in downtown Seattle this morning. It’s my attempt to “Born in the USA” the smashers with a chorus that sounds jingoistic but verses that underscore the stupidity of it all. Here it is:

Mayday

There are a couple of B-Sides, too. Really the whole single has a Seattle feel. The first B-Side is a quick ditty called “Give Me a Break” that’s about the upcoming vote on gay marriage in the state. The final track is a cover of “Message in a Beer Bottle” by Screeching Weasel and its link to Seattle is a little more tenuous… the narrator of the song describes walking in the rain. It’s weak, but I’ve got to have some sort of theme!

The whole single is available for download on the Music section of the site. I guess this means it will be a part of some new Suckers album at some point in the future. Stay tuned.

Video — Mary Jane Parker

Monday, August 15th, 2011

Recently I’ve been playing around with recording videos. Here is an original song, originally written for Nerds With Instruments. True to form, it’s about Spider-Man’s favorite redhead:

Expect more as I get more comfortable editing video.

The Suckers – Sour Grapes

Wednesday, October 13th, 2010

The Sour Grapes album cover depicts a fox disdainfully turned away from a branch of grapes that hang just out of his reach.The newest album from The Suckers is finally available to download for free in the music section. There, you can listen to or download individual tracks or the full album zipped up. There are 17 songs on this record, and I’d go as far to wager that some are even a little catchy. The music is pop-punk, in the vein of The Ramones, Screeching Weasel, Teenage Bottlerocket, and other bands of their ilk. Each song has slightly more than three chords and an attitude.

The cover art, which depicts the literal fable “The Fox and the Grapes”, is a photo montage made from free images courtesy of the Morgue File, and these authors deserve due credit: aquaio, jak, badeendjuh, and missyredboots.

Coming Soon: New Album From The Suckers

Wednesday, July 28th, 2010

I’ve been working on this album for a long time (since my last year of school, if you can believe it). It started out with direct-input guitars but I decided I didn’t like the sound and re-recorded with real, live guitar running through an amp into a microphone — something I hadn’t done since Misanthropomorphic. I also went back and re-sequenced the drums because I didn’t like their sound. I had started on vocals in early summer of 2008 (before Carrie came back from Europe when I had the house all to myself), but stopped for a long time with only about a third of the songs complete. I finally got started with the vocal re-recording around late January (starting from scratch), right before we decided to move. So I got over half the vocals laid down in Montana, and have started work on the remainder. I also considered re-doing the bass lines with my new bass (as my old one had started developing tuning problems), but decided to keep those in the interest of ever finishing the record.

The Suckers are a pop-punk band. When I say pop-punk, I mean in the traditional sense: three chords and simple melodies. Influences include The Ramones, Screeching Weasel, The Queers, Teenage Bottlerocket, Teen Idols, and other bands like that. Since I’ve been mixing as I go, I can post a few preview tracks:

  • Bumper Sticker Warrior — A fast, snotty song about people who outwardly appear to care about an issue, but don’t do anything about it.
  • 4 a.m. — A short little song about being unable to sleep.
  • Not Buying In — A song about trying not to be defined by what you don’t have.

I’m actually going to announce a release date ahead of time, in the effort of giving myself some sort of pressure to finish the album and not endlessly tinker with it. Look for it on August 24, 2010.

NooBrews Episode 1 – Now Available for Viewing

Thursday, January 14th, 2010

The first episode of NooBrews is available for viewing now. Andy and Nico show you how the first steps toward making some delicious (well, I’m only guessing here, but it looked like they enjoyed their sample) hard apple cider.

As I’ve mentioned before, I made the intro music for the show. I’m going to start working on some other cues — incidental music mostly — and of course an ending theme. Should be lots of fun!

New Track – NooBrews Theme

Friday, December 4th, 2009

I’ve gotten my feet wet in the scoring field, and I have to say I like it.

Last night I finished the final version of the introductory theme for a FenixTV web show, NooBrews. I put up a page with all sorts of information. You can also download it there.

And of course, it’s available under a Creative Commons license. Because that’s how much I rock.

Music Section is Live

Friday, October 23rd, 2009

After months of having a tantalizing-looking ‘Music’ link in this site’s main navigation but no payoff after the click, I’m happy to tell the world that the music section is live. There isn’t too much up now, aside from some free MP3s and an archive of music news, but there will be more content when I have more time. I would like to include some info about the lovely Why?-Fi Studio and how I record a song, but those will require a lot of work. I also plan to have an ‘upcoming albums’ section, but that might be unrealistic, as I would feel obligated to give all the projects I’m working on actual deadlines, then would feel the need to meet those deadlines. You see my dilemma.

Someday I’ll have an online store. The plan includes physical copies of CDs as well as digital downloads, initially in mp3 but probably in FLAC eventually. What’s going to be neat is that the digital downloads will feature a ‘Pay What You Like’ option (yeah, yeah, “Simpsons Radiohead did it”), which will go all the way down to free if that’s what people want to pay. I’m having a little trouble with the logistics of the whole project because I would like to include cover songs (I’ve recorded a lot of cover songs, my Christmas albums are almost all covers, and even The Suckers recorded a full-album cover of the Ramones’ first record), but I have to deal with the nasty reality of licensing, which looks to be as much negative fun as making the songs in the first place was. So the covers are going to have a minimum price so I don’t wind up losing money on the venture.

Organizing The Music

Monday, October 12th, 2009

So I’ve begun the process of manually merging my music collection. It’s a mess, quite frankly. I’ve got MP3s I’ve ripped or purchased on four different computers, spread throughout many directories. Compounding this is my iPod, which usually carries the latest tracks that I’ve added. Here’s how I’m organizing things. The fun part is that I got to write a Python script to help out.

First Steps

I’ve got one folder that was my primary music folder throughout my time in school. It rests on my file server. It generally contains all my music and is the most authoratative ‘source.’ In addition, it was the initial source, the ‘seed’ if you will, for the tracks on the iPod. At one point in the distant past, my iPod contained the tracks from this folder and nothing else. This is what I’m going to start with. To really drive home the point of my fresh start, I creates a share on my file server and started anew. These tracks wound up in a folder called ‘library.’

This is already a good start. I’ve been pretty meticulous in organizing my music library, essentially by artist then by album. The /library/ folder is going to be my new, massively-integrated library, as soon as I get finished organzing.

The iPod

Since my iPod contains several albums that never made it to the music share for one reason or another, it can also be considered ‘authoratative.’ So I ripped its contents to another folder in the new music shared, called /iPod/. I used the excellent tool SharePod to do this, as it allowed me to rip the tracks to artist/album folders with very little hastle.

Other Sources

I then rounded up all my other music, and put it into an ‘unsorted’ directory. This is stuff I would go through item by item, once the two primary sources were sorted out, and include or not include depending on if it wound up on my iPod or not. I have yet to get all the way through this step.

The Script

This is the important bit. I wrote a Python script to crawl through the two directories in parallel, and note any missing files or directories. This way, I’ll know what I need to copy from the /iPod/ folder to the /library/ folder. It’s a fairly simple command-line script, used like this:

compare.py left right outfile [filter1,filter2...]

left is the first directory, right is the second. outfile is a text file that the differences will be written to, and the [filter]s allow me to specify a whitelist of file types I care about. In this case, the whitelist would be restricted to audio file types. Here is the command I wound up running (drive Y:\ is the share I set up):

compare.ph Y:\library\ Y:\iPod\ Y:\results.txt mp3,m4a

This ran the Python script, comparing the /library/ and /iPod/ directories (and, recursively, their children), saving the log of all the differences to results.txt at the root of the share. Additionally, the program ignored any files except mp3 or m4a files (and directories, obviously). I wound up with a list of all the folders and files unique to the initial library and the one copied from my iPod. Then it was a simple matter to copy the iPod-unique folders to the library. I could even use it to update my iPod if I really wanted to, although it’s running pretty close to full now.

Of course, there’s still a lot of work to do: I’ve got to tag the /unsorted/ files. Have I mentioned how meticulous I am about my music library?

Source Code

import os # for files and paths
import sys # for command line arguments
 
def matches (path, fileName, filter):
    """Returns true if the given file matches the filter or is a directory, false otherwise.
    path - the directory the file resides in
    fileName - the name of the file in question
    filter - Either None to indicate no filtering should be applied, or a list of allowed extensions."""
    if filter == None:
        return True
    else:
        # if it's a directory, return true
        if (os.path.isdir(os.path.join(path, fileName))):
            return True
        ext = fileName.split(".").pop()
        return (ext in filter)
 
 
def compareDirectories (leftPath, rightPath, uniqueLeft, uniqueRight, filter = None):
    """Recursive function to compare the contents of two given directories. Two lists are
supplied to keep track of the unique files. An optional filter is allowed.
    leftPath - The path to the first directory.
    rightPath - The path to the second directory.
    uniqueLeft - A master list of files unique to the left directory tree.
    uniqueRight - A master list of files unique to the right directory tree.
    filter - Either None, or a list of allowed (whitelist) extensions for files. A unique file in
            either the left or right directory will not be counted as unique if its extension
            does not match one of the filter items."""
 
    # get contents of directories
    left = sorted(os.listdir(leftPath));
    right = sorted(os.listdir(rightPath));
 
    # without a filter, just add all unique files
    if (filter == None):
        # append unique files by using a list comprehension to get all files on one side
        # that are not on the other side
        uniqueLeft[len(uniqueLeft):] = [os.path.join(rightPath, fileName) for fileName in right if fileName not in left]
        uniqueRight[len(uniqueRight):] = [os.path.join(leftPath, fileName) for fileName in left if fileName not in right]
    # otherwise, use the filter function
    else:
        # same as above, but also checks to see that the files match the given filters
        uniqueLeft[len(uniqueLeft):] = [os.path.join(rightPath, fileName) for fileName in right
                                        if fileName not in left and matches(rightPath, fileName, filter)]
        uniqueRight[len(uniqueRight):] = [os.path.join(leftPath, fileName) for fileName in left
                                          if fileName not in right and matches(leftPath, fileName, filter)]
 
    # get a list of files in both directores. Since they by definition must be in both,
    # we can pull them from either side using a list comprehension to check that they're
    # in the other.
    both = [fileName for fileName in left if fileName in right]
 
    # now go through and recursively call the function for any directories in both parent directories
    for fileName in both:
        leftChild = os.path.join(leftPath, fileName)
        rightChild = os.path.join(rightPath, fileName)
        if (os.path.isdir(leftChild) and os.path.isdir(rightChild)):
            compareDirectories(leftChild, rightChild, uniqueLeft, uniqueRight, filter)
 
def usage ():
    print "\n\ncompare.py"
    print "Compares two directories recursively and lists files or folders unique to each one.\n"
    print "compare.py left right outfile [filter1,filter2...]"
    print "\tleft\tFirst directory to compare"
    print "\tright\tSecond directory to compare"
    print "\toutfile\tText file that results are written to"
    print "\t[filter1,filter2]\tOptional comma-separated whitelist"
    print" \t\t\t\tof extensions for files"
    exit()
 
if __name__ == "__main__":
    # slice off name of program from args
    args = sys.argv[1:]
 
    # if there's an incorrect number of parameters, print the usage
    if len(args) < 3 or len(args) > 4:
        usage()
 
    # set up filter whitelist, if any
    filter = None
    if len(args) == 4:
        filter = args[3].split(",")
 
    # set up lists of unique files on both sides
    uniqueRight = list();
    uniqueLeft = list();
 
    # do the comparison recursively
    compareDirectories(args[0], args[1], uniqueLeft, uniqueRight, filter)
 
    # write to the file
    out = open(args[2], 'w')
 
    out.write("UNIQUE TO LEFT:\n")
    for fileName in uniqueLeft:
        out.write(fileName + "\n")
 
    out.write("\nUNIQUE TO RIGHT:\n")
    for fileName in uniqueRight:
       out.write(fileName + "\n")
 
    out.close()

Lutefisk Lament

Saturday, September 12th, 2009

Today, I ended a decade-long search for a specific recording. If you’ve ever tried to search for something very specific and obscure on the web before, you might know my frustration. The recording in question was a Christmas-themed song, “Lutefisk Lament.” It’s basically a satire of “The Night Before Christmas,” about how horrible Lutefisk is.

The song has great sentimental value in my family, as we are mostly Norwegian. I’ve never had Lutefisk and probably never will, a testament to the impact the song has had on me. Our family came across it by way of a cassette tape, recorded from many novelty Christmas records my grandfather came by. He sold RCA stereos back in the time when my dad was a kid, and would occasionally be sent various promo albums. Someone along the lines compiled lots of the strange or novel Christmas songs from those records onto a tape.

This is the tape I remember, although I don’t remember it well. Every Christmas season my mom would pull it out of storage, and I would listen to it on a tiny portable cassette recorder while laying on the couch and waiting for Christmas Eve. I can only remember bits and pieces about the songs that were on it. I’ve searched rather fruitlessly on the web for years, and unfortunately have come across very little. I remember some songs (“We Need a Little Christmas” from the musical Mame), but since it was a homemade tape there’s no way to positvely identify any of the performers or even some of the song titles.

Every year, I google around for a bit, and usually come up short. Today, I started working on the annual Christmas album I record for my mom (if you haven’t gathered by now, she’s the parent who’s really into the holiday, and she definitely passed that fervor on to me). Going through lists of Christmas songs, I recalled my annual search and decided to tread through the same old Google search results, the same old blogs, and the same old dead links, desperate for the song. It’s not on Amazon and it’s not on iTunes, which is unfortunate because I would have bought it straight away if I’d found it.

This year was different. The first page of results had a link to a new page I hadn’t seen before. It mentioned a webpage which included downloads from WCCO-AM (in Minneapolis, MN). I went to the page and — lo and behold! — the track was there. I had the usual moment of fear as I worried that the link to the track would be a dead link, but it downloaded straight away, and I saved it, and now the track is mine, and it’s just as wonderful as I remember it being all those years ago, when Santa was an actual person who came down our chimney.

The song can be found on this page. Scroll down to 1980 under the first section, WCCO Air Checks. This version is done by Charlie Boone and Roger Erickson (this was one of the frustrating things I’d found out in years prior, frustrating because having the song name and performers wasn’t enough to find it). Please listen and enjoy, and spread the word if you can, because the world really needs to know about the terrors of Lutefisk.

Code Monkey (Jonathan Coulton cover)

Wednesday, May 21st, 2008

This is a bare-bones acoustic cover of Jonathan Coulton’s song, “Code Monkey.” The cover’s nothing special, just something I did in between packing stuff. I recorded it live with my Mac’s mic, with very little processing: a little noise reduction here, a little bass reduction there. The hardest part was keeping quiet, since it is technically quiet hours in my dorm. Enjoy!

Download MP3 here.