A time-honored indie/punk rock tradition going back to the 80s American underground network: the band mailing list. You know the deal: you go out to a rock club, or some rented hall, to see a band, and playing the same night is some other band that you hadn’t heard much about before, but you end up really digging their sound. You’re interested – maybe not enough to fork over cash for a CD or t-shirt just yet, but definitely enough to fork over some contact info, and the band has provided for just that purpose, sitting on the merch table, a sign-up sheet for the mailing list. Back in the pre-Internet days, the music underground, having no ins to the big media, communicated and provided to its consumers largely by mail, with mail-order a heavy component of indie labels’ business models; so in those days, these were literally mailing lists: if the band or their label had their shit together well enough, you’d eventually start receiving postcards announcing tour schedules and CD releases.
With the advent of the Internet, these mutated into e-mail lists. Indie bands and labels couldn’t ignore the economics involved, after all; printing and postage cost money and time. But an email message could be typed up and sent to dozens of people for practically nothing. It was so cheap and easy, in fact, that soon even pissant local bands like mine had email lists. I’ll skip over the more recent move into social network sites like MySpace, which is certainly relevant, but a topic for another post – even with MySpace as much a hotbed of indie music promotion as it is, email lists are still prevalent and useful.
However, email, by virtue of its ephemeral nature, doesn’t quite carry the import of physical mail, and with the volume of spam sludging its way through the tubes these days, it can be hard to poke your head above the deluge and get someone to pay attention to your message. Even without software spam filtering, most users of email have a mental spam filter that they use to gauge whether to even bother opening a message, once they see the subject line and sender.
And that’s where band email lists have started to fall down. I sign up to a band’s email list and pretty soon I’m getting emails announcing each of their shows. Problem is, 90% of the time, they’re playing nowhere near me. No matter how much I think your music kicks ass, I find it really hard to give much of a crap that you’ve got yet another gig in NYC or Chapel Hill. And after opening up some number of emails from your band and finding no content of direct relevance to me therein, I start to ignore your emails altogether, out of habit. Meaning that there’s a good chance that by the time you eventually do get around to playing in the Midwest, I’ll have stopped paying attention and may not even find out about it – by then, you’ve lost me.
An alternate strategy is, of course, to email your whole tour schedule once, just before the tour; that way I’m not bombarded with emails from you. But there are other psychological forces at work there: first, I have to scan your list of tour dates to see if any are near me; second, even if you are playing in my area, it may not be for several weeks. There are a few bands I’m willing to plan ahead for, but usually I’m just interested in something to do later this week or maybe next. If you want to get into that upper echelon of bands I’ll bother writing down on my calendar, you’ll have to work to get there. Until then, you’ve got to hit me on that “what to do if I’m feeling like going out next Thursday night” level.
What I’m about to show you is the not-really-a-secret behind something I’ve been working on for Radio Dramamine. The idea actually came to me based on a project that I worked a little bit on at my previous employer. They were looking for a way to provide a little widget on clients’ web sites that lets visitors to the web site find certain things near them – say we had a client that runs a chain of stores of some kind; we could give their website a feature that lets people find the stores in their area. Don’t worry, I won’t get in any trouble for taking this concept I got from my last employer and passing it on to you – it’s really just built on a mix of free, publicly available information, and a bit of math. Similar features are used in many other places on the Web. What I’m doing is turning it around backwards: instead of having the customer look for store locations, we’re going to look for customers that are near where we’re going to be.
It starts with adding one more blank to the email list signup sheet: ask people to write down what zip code they live in. From there, we can use that zip code to send targeted emails announcing each of our gigs only to people who live within a certain distance of the venue, based on its zip code.
Next thing you need is a way to lookup the latitude and longitude of a zip code, usually of its centroid. Some zip codes are oddly shaped and so on, but I’m going for “good enough for what we’re using it for” over scientific precision here. A little time Googling around should turn up somewhere you can get this information from, often for free. Zip codes do get changed some, so try to go for the most recent data you can get.
Now latitude and longitude are basically degrees along a circle around the Earth, so it’s not too hard to visualize what we’re going to do here. Imagine a right triangle drawn on a map with the center of the venue’s zip code, and the center of the zip code of a kid on your mailing list, at the opposite ends of the hypotenuse. If we could convert the latitude and longitude differences from degrees to miles, we’d have the length of the other two sides, and I’m sure you remember the Pythagorean theorem from high school.
Of course there are some accuracy issues: at close range, driving distance can vary greatly from this as-the-crow-flies distance due to bodies of water or other geography in the way. And at large distances, we’ll lose accuracy because we’re not accounting for the curvature of the Earth. But at “driving to a rock gig” distances, say 50 or 100 miles (up to maybe 200 once you’re a bit more popular), those considerations may not be too awful bad. But then there’s the distance calculation itself and how best to go about it. The simplest version that pops into one’s head is to just apply the Pythagorean theorem to the number of degrees along the two orthogonal sides of the triangle to get a “degrees” version of the distance, then divide by 360, and multiply that by the circumference of the Earth. But then again, this line is not usually going to lie along a circle whose distance is the whole circumference of the Earth, so what then? Using an “average” circumference, like maybe a particular parallel, seems too crude to be accurate enough. So it looks like Pythagoras fails us here, beyond giving us a mental image.
Don’t despair: you’re hardly the first person to want to be able to calculate distances on the surface of a sphere. Certainly someone somewhere has worked out the math for this, and nowadays we have the Internet to help us find such things. Also the Internet is chock full of programmers, so we can skip looking up a mathematical formula and just go looking for some code. Here’s what I’m planning on using, though I’m not too thrilled with the design: it requires setting up a MySQL database table of the zip codes, which strikes me as a needless coupling of algorithm and storage mechanism. For my purposes, a simple text file of the zip code list will be fine. Fortunately I can pick apart the code and get the meat out (that is, the distance-between-coordinates calculation), and while I’m at it I could even port it to a different programming language of my choosing, if I’m so inclined. On the other hand, if I did use a database table, it’s possible to do the entire thing in one single, long, beautifully ugly SQL query – I’ve done just that once before, but luckily for you, I can’t find it right now.
So now the idea is that for each upcoming gig, I can run a script whose inputs are: the zip code to latitude/longitude table; my band mailing list with zip codes; the zip code of the venue; and a maximum distance between mailing-list zip code and venue zip code that I want to select mailing-list entries by. The output will be those mailing list entries having that set of zip codes. I email that bunch of people, and that bunch only. (Naturally, there are still good reasons to email the entire list, like when our CD comes out.)
There could be some great ways to expand on and re-use this idea, too: imagine just entering your tour schedule into an application, and having it do the emailing for you automatically at a particular number of days before each show. Or imagine being able to plan out where to find things you may need while on tour; you could use this to compile a directory of music stores that are on your tour route, so you’ll be prepared if you need to replace a busted drum head or something.
Since Radio Dramamine is not at the level of touring yet, this may well be overkill for us, but I want to try it out, and I’m interested in maybe finding a few other musicians I know who do tour that might be interested in it too. If you’re a musician and finding this all to be a bit too much to get your head around, consider implementing a simpler version of the same idea: partition your email list by nearest major city or something, and target your gig announcement emails along those groups. My intention here was just to show one example how independent musicians can harness technology to make their promotional efforts more effective.