In late 2011 I bought a stock Ibanez S420 guitar, which I’ve used for most of my musical projects since then. While I like the guitar I’ve always felt that I wasn’t happy with the stock pickups, the Ibanez INF1 and INF2. I can’t even articulate what it was I didn’t like about them. Maybe they were too boomy? Maybe they lacked definition? I don’t know, but I’d managed to convince myself I didn’t like them.
Fast forward to 2014, in order to deflect my increasing frustration with music I decided I would actually change the stock pickups out for something new. This led to the first problem: what to exchange them with?
I haven’t made new gnu pneu New Year’s music for a couple of years, because I haven’t seen the point of retreading that ground, having already done the same thing twice. I did make a super awexome music video this year though.
So for the fourth fifth year – following the pattern, the end of the year rolls around and bundle up all the music from the past year and put it under one collection. This year’s fantastic album is Crap Chute’s Pinched Loaf. This collection features nothing not previously released in the year, no tracks have changed, and there aren’t any bonus items this year either.
You can listen to the whole thing right here:
Like previous years, the only good part of the whole mess is the wonderful cover art by Ro Karen.
The entire collection is available via Bandcamp. If you’re homeless and destitute and somehow are downloading music off the intarweb you can once again enter the secret code of $0.00 for the price and not pay a damned cent for it. Also, don’t complain to me about it. If you want to put your money to good use give something to your local animal shelter, or Ro Karen, or some new media disruptive kickstarter indie go go douchebags.
Following last year’s successful campaign by Dicks, Everywhere, output this year was not as prolific as year’s past. In fact, this year has the least number of tracks (36), and the least running time (three hours and forty-eight minutes, give or take). Even less than 2009, which was the year where I only put out material for half the year. It’s enough material to maybe get you through the morning, or the whole day if you like to go to the bathroom a lot or work for the government.
Still all covered by Creative Commons. I know, you still don’t know what that means. That’s okay.
I’m not going to bother to make the MD5 joke this year. Once again, the offer still stands that if you can somehow figure out how to ask nicely, and actually provide a mailing address, I’ll send you a disc with the material on it. Number of discs I sent out in 2013: zero (0).
A frequent request has been that my SerialCommand library be usable with SoftwareSerial objects. I’ve never had a use for this myself, so I never tried to code anything for it. In order to test this I had to put a setup together where I could be reading/writing to a SoftwareSerial port and still have access to the hardware serial for debugging.
For this I used a CP2103 Breakout I bought a long time ago from Sparkfun and had sitting in a box. How old? It has a green-not-red circuit board, that should be an indicator. To make it more complicated I used an entire second computer connected to that CP2103 using our old friend Hyperterminal so I could debug it. I tested this on an UNO R3 and Arduno IDE 1.0.5.
This version is now on github. I have not tested it extensively, except to modify the included demo program to see that it works correctly with the SoftwareSerial line.
If you have trouble, be sure your SoftwareSerial ports are actually working the way you intend. The library includes a tiny test program that spits stuff out your SoftwareSerial port and your hardware serial port, so you can identify which one is which.
As a note, if you used this library before, you now have to include SoftwareSerial.h in your project, even if you’re not using it. Don’t blame me, blame the way the Arduino IDE compiler wants to preprocess things. You could also keep using the old version of the library, as there were no functional changes other than the SoftwareSerial support. Other than the include I don’t think it should have any effect on existing code.
Like a lot of people, I bought Logic X, and have been digging my way through it. One thing I ran into was that my EXS24 sample instruments were missing the “edit” button, which you use to edit the zones and velocities associated with the samples.
Googling around didn’t help, the usual things that people who don’t know the actual answer tell you what to do are “repair the permissions” and “check the disk” (which I did do), usually moving on to “reinstall everything” (which I wasn’t going to do).
Turns out with Logic X, especially if you have a fresh installation on a machine you didn’t have Logic 9 on before, there are some options under “Advanced” for enabling things for advanced users. Logic X (and previous Logics) are pretty complicated pieces of software, and hiding options seems counter-productive to me – but hey, I don’t write Logic I just use it.
Anyway, easy solution: Go into the Logic X Preferences, and under “Advanced” you can turn on the “Audio” selector, that will enable editing EXS24 instruments again.
Maybe while you’re there, you’d like to check the rest of them too. That’s up to you.
Mapping and GIS information is one of the classic “big data” problems. An awful lot of work goes into the formatting and display of mapping information in Google maps/Google earth/Apple maps etc. Satellite and aerial Photography calibrated against position information, layouts of roads and streets, boundaries, etc. It’s a big problem, it’s always been a big problem, and it’s a good example of how reliance on that data can ruin an otherwise good service.
I live in a decidedly rural area, and for many years Google’s maps products had my road labelled with the wrong name. That was annoying, but wasn’t a big deal because not much depended on that information being correct. It actually did get fixed just a few months before Apple released their new replacement for Maps on iOS which uses Apple’s data instead of Google’s data.
In September 2012, Apple replaced the Google-data driven maps with it’s own Apple-data driven maps application. Mapping is a big problem, and I don’t think Apple treated it lightly. They acquired companies and brought in data from different sources to start from scratch to try to catch up to the level of detail Google has in their datasets.
Problem: my road which had just been fixed in the Google datasets, was now wrong in Apple datasets. It was really wrong, too. In the Google sets the road was named wrong, but the house numbers were more or less correct. In the new Apple datasets, the road I live on disappeared. The road overlay itself does show on the map, but now has no name and doesn’t correspond to any civic address, just a rural area name and a postal code which covers a broad area. They actually have the first hundred meters of the road labelled correctly on the map, which then mysteriously ends (even though the real and overlayed roads continue). Consequently all the civic address numbers for the entire road are bunched up in this little 100 meter-or-so stretch. So not only does the dataset not know where I live, it thinks my address is in a place about six kilometers away.
This, naturally, would play havok with navigation directions. Thankfully, I already know where I live and don’t need GPS to find my way back home. If I have to tell anyone else navigating to my place, I have to say “If you’re using Apple’s maps it will lead you to a place about six kilometers away, just keep going down the road”
This is where things start going bad. Several services in iOS are now based around this “geofencing” concept. Applications and system operations get triggers based on proximity to a fixed geographic reference. The easiest example of this is the iOS “Reminders” application, where you can put in a reminder to do an alert when you enter/leave a geofenced area. i.e. – “Remind me when I get home to take out the garbage”
This geofencing idea is fantastic, since I never remember to actually look at the reminders app, and doing reminders based on times can be inconvenient. “Remember to take out the garbage at 7pm” “Oh wait, it’s 7pm and I’m still at work, guess no garbage removal then”
Geofencing completely falls apart when the system can’t determine what “home” is. “When I get home” sounds pretty simple, but if the map data returns that “home” is a place six kilometers from the actual home, geofencing will never be set off. You’ll never get a reminder to take out the garbage, and soon you will be wallowing in filth.
Lots of applications use the Apple map data as a backend for their geofencing, and they will all break because of the bad data. Garbage in, Garbage out as they say, or in my case – Garbage never taken out.
Here’s where things get silly: location services in iOS uses real GPS (and A-GPS, depending on your point of view). GPS returns coordinate data for position as latitude/longitude: you know those crazy numbers like “48.945462, -69.676252” which give a position here on planet Earf. At some point in this chain iOS converts latitude/longitude GPS coordinates from the GPS device into civic address map data. The problem is that despite the fact that location services’ position derived from GPS coordinates, you cannot use GPS coordinates to specify a location in the iOS address book (which is about the only way to specify places for use by other applications).
This would be the easy solution to poor civic address data. Just be able to enter the latitude/longitude GPS data into the address book of a location, and let location services do the rest. After all, GPS data is the source of all this information. Dummy up a new field in the iOS address book, call it something like “geo” and enter the GPS coordinates, you would be able to just use that data as a location. “Remind me when I get to geo to take out the garbage.”
Sorry, it doesn’t work like that. You can enter that information into address book, but iOS will tack the country onto the end of it (“Canada” in my case), ignore the latitude/longitude and try to pick some position that indicates the country, like this.
Which makes it even more useless than being six kilometers away, now it’s about a thousand kilometers away. Even better: Apple’s Maps actually understand the coordinates, because if you go into the field at the top of the app and backspace over “Canada” and re-submit it, it works correctly. You can’t remove the Canada from address book, though, and address book is where all the queries for “home”, “work”, “geo”, “dog pound” go through.
When iOS 6 initially was released, and it had this bad map data, I was disappointed. After all, it had been wrong for years in Googles map dataset, and only just got fixed. What the new Apple-derived maps application had that the old Google one did not, however, was a way to fix it. Right in the application, “Report a Problem.”
I used this to report the problem. In fact, I’ve used it many times. It’s going on eight months since the release of iOS6 and the data has never been fixed. I’ve also tried using the “send feedback to Apple” section on their website to no avail. There’s actually no guarantee that this will ever get fixed, not in iOS7, or anything later because it’s not iOS that’s the problem: it’s the data it’s sourcing.
I don’t even know where this bad data comes from. According to the maps app, data comes from (but I’m sure isn’t limited to) Tomtom, Acxiom, AND, CoreLogic Inc, DigitalGlobe, DMTI, Factual, Getchee, INCREMENT P CORP, Intermap, LeadDog, Localeze, MapData Services Pty Ltd, MDA Information Systems Inc., Urban Mapping, Waze, Yelp, CanVec, CIGAR, Flickr, GeoNames, GlobCover, NASA, OSDM, OSM, StatCan, Tiger/Line, and VMAP0. Someone in that group has my road entered wrong, and there’s no way to find out who, or get them to fix it. My only interface into this is the Apple “Report a Problem.”
The point of all this is that because of this Bad Data, all these services that hinge on the geolocation data are rendered useless. I can’t take advantage of them, it’s as if they do not exist. Apple and other companies invest lots of money in time developing good software and hardware, and it’s rendered completely useless by a few bad entries in a database table somewhere, which is the real shame.
What can you do about this? The easiest solution really is, “just fix problems when they’re reported.” But that takes manpower, and as I wrote earlier, who knows even where this data is wrong. For all I know Apple gets ten thousand “problems” submitted every day which are kids who think it’s funny to ask that the street they live on be renamed “BUTT.”
There are solutions like the OpenStreetMap project (and similarly, Waze) which uses “crowdsourced” information. That’s great as long as you’ve got a crowd to source. When Openstreetmap was younger than it is now it had zero information at all about the area I live in. No streets, no roads, no names, no nothing. I invested a decent amount of my time to use my GPS logger to map out roads and enter the information and names for my region into their database, only to have another member of “the crowd” come along and delete it all. Openstreetmap is a little better populated these days, but it doesn’t mean anything with respect to the Apple maps problem since Openstreetmap’s data is not reflected in Apple’s data.
While writing this piece I went to Openstreetmap and checked. They do have the road name correct, but the civic house numbers are about one kilometer off. I’d consider editing it to fix it, but why bother if someone else will just revert it?
This is the problem of Bad Data, and isn’t just Apple’s problem, it’s just that Apple’s map problem is the best illustration I can give with personal experience.
If you’ve been a visitor to this place over the years, you’ll have noticed a progression in how the music I make is posted. Originally I used the wordpress.com built-in audio player. I was unhappy with that, so I transitioned over to using Soundcloud. Then I moved from that into using both Soundcloud and Bandcamp. Now I’ve removed all the Soundcloud content from here and moved everything over to Bandcamp. In this egotastic article I’ll discuss some of the choices behind all this.
In the beginning, there was the wordpress.com audio player (this thing):
The wordpress player is a perfectly serviceable thing. It plays audio. The problem I had is that’s all it does. If you show up here, and play one of those, I can’t tell. I’m a relentless statistics and data nerd, and I’d like to know if anyone actually listens to anything. It also doesn’t feature any native download link, which means I have to put a second link in for people to download my music. That’s fine, it’s not like another line of html is going to kill me. I’ve had a lot of problems of readers who actually can’t figure out how to use the audio player. Other than my hate mail, I hear so little from people that I figure if I get a few people complaining they can’t play the music there are probably a lot more who can’t figure out how to email me. Again, it seems pretty obvious to me how play buttons and download links work – but I realize that not everyone knows that facebook is not the internet.
For a long time, the wordpress audio player was the only thing I could embed on wordpress.com that could play music right on the page. I could store music elsewhere and link to it, but given the problems of people who can’t figure out ‘play’ buttons I didn’t think that wasn’t going to work well. This lame-ass blawg is hosted on wordpress.com (not a wordpress.org installation, there’s a difference) and so my options are limited to whatever the wordpress.com admins bless. In return I theoretically get a wordpress site I don’t have to micromanage and isn’t hacked every twenty minutes.
At one point wordpress started providing native support for soundcloud. Meaning I could upload stuff to soundcloud, embed a widget on the page that people could play music directly from, provide download links, and provided statistics too. Soundcloud has tiers of service ranging from “free” to “holy shit that’s a lot of money”, and I’m not really afraid of paying money for service so I signed up in September 2011 and started loading music that way.
This is the soundcloud player, if you haven’t seen it before:
The New Set Layout
In this period I was still including everything: download link on the blawg, wordpress audio player, and the soundcloud player. Again, it’s only html but it means I have to upload stuff to two places, which takes a little while on my poor-ass Bell Aliant 1Mbit DSL connection.
The intial problem I had with soundcloud wasn’t with soundcloud, it was with me: too much material. The default “free” level of soundcloud offers two hours of storage. That’s a lot of storage for no money. The fact that soundcloud offers a free tier at all is a gamble on their part. In my case it pays off for them, as I make between four and eight hours of new material a year. My total output since 2009 is about seventeen hours, so I blow right on through the free tier and the bottom two tiers of paid levels of soundcloud (2 hours, 12 hours). I started out with the 12-hour tier (€79/year) but I filled that up and was left with the choices of “only have some stuff on soundcloud”, “do some janky shit with mulitple accounts” and “pay even more money”. Despite how things seem to turn out, I actually want to do less work managing stuff, so I did pony up and move the “fuck that’s a lot of money” tier (€250/year, about CAD$300).
After a while of using soundcloud I stopped using the wordpress audio player, which meant I didn’t have to upload tracks to both wordpress and soundcloud, didn’t have to put as much html (ooo the hardship), and hopefully presented fewer confusing options to the people who get confused easily. With the €250 soundcloud gives “full stats” which satisfied the data nerd.
So here’s where things start to get complicated. I’m not rich, and €250 is a lot of money, especially for a hobby I’ve sunk untold thousands of dollars into for really not much return. Thank fuck I actually do the music for myself and not for anyone else, or I’d have given up years ago. I can justify costs in my head if I think I’m getting some benefit for my money.
At first glance, and for a long time, I didn’t have any issue with the soundcloud statistics – even if they were weird in some aspects. My most poopular track? Booze n’ Snooze, and not by a little – by a wide margin. I have never figured out why it’s the most poopular. I realize that it only has 300 plays total (or 160 plays, depending on how you read things, but I’ll get to that), and your Skrillex-Fire-Engine remix has 100,000 and wub-machine-people-fucking has 315,000, but I’m talking about my shit here not yours.
With soundcloud, the “fuck that’s a lot of money” tier gives me (supposedly) “all” the stats. Meaning I get lists of people (who have soundcloud accounts) who listen, the geographic regions of listeners, and the source of the play (widgets on websites, etc). That’s how I realized Booze ‘n Snooze was inexplicably poopular in Poland. What’s up, Polish types, why do you listen to that?
Here’s where things start to fall apart. Soundcloud’s stats say that for “all time” (since September 2011) Booze ‘n Snooze has “160 (of 299 total) plays”. So which is it, 160 or 299? What’s the difference? No idea.
So from where were all these people discovering and playing Booze ‘n Snooze? According to the soundcloud sources stats: Six plays total. Four from this lame-ass blawg itself, one (and only one) from some other website, and one from exfm. So my only conclusion I get is that the rest of the 154 (or 293) plays came from people playing it directly on the Soundcloud website. There’s no more detail available than that. I can’t glean any insight into why that one is more poopular than the rest. The plays don’t carry over into adjacent tracks so I infer they’re not on any of my profile pages looking at stuff, which implies they’re finding it via search. I have another (older, unrelated) track called “Booze” which has a total of ten plays, so I conclude it isn’t people searching for Booze. Why would you search for booze, anyway?
I’m using Booze ‘n Snooze as the example only because it has the most plays, but this pattern carries through for the rest of my tracks. My total plays for all-tracks all-time (since September 2011) is either 3594, 3612, or 3452 depending on which stats page I look at. According to the sources information 140 plays come actually from this lame-ass blawg, 209 from exfm, 135 from the souncloud iOS apps, 3 from tumblr, and 3 from soundcloud’s android app. That totals about 490 plays from known sources, so the rest (almost 3000) must be “on soundcloud’s website”. Let’s start with the obvious fact: nobody is listening to the music on this lame-ass blawg, and I’ve always known that from the wordpress.com’s stats. Everyone visits this lame-ass blawg looking for me to do their homework for them, not to listen to crappy music.
The Soundcloud stats have always been puzzling like this, and I just figured the soundcloud reporting isn’t fine-grained enough. Then a few months ago I realized something pretty obvious that I should have noticed from the start. What on Soundcloud counts as a “play”? How much of the track do you have to get through for it to count? When I first joined soundcloud my own plays counted towards the total, but thankfully they fixed that, at least making one more step for people trying to game soundcloud. I did some tests as a not-logged-into-soundcloud user and I found that if you press the “play” button, let it play less than five seconds and press stop, that counts as a play.
So of 3612/3594/3452 plays, how many are “real” plays? How many people click play by accident? How many are the people who can’t figure out the internet and click on everything and immediately stop? How many start playing, hate it, and stop? I can’t tell. I’m going to bet “a large number” though.
Here’s an example how the stats don’t really provide insight. For a brief period of about a week, inexplicably “Hey Man Do You Know Anything Else” surged in poopularity (I use “surged” in the context of the comically few plays my stuff gets, it’s not shit beef level). It got 112 plays over the span of about a week, in a constant and consistent rate during the day. The stats give me a long list of soundcloud users, most of which played it one time, from all around the stupid planet with no trend in country and most importantly – no sources listed at all on the source tab. So I can gain zero insight into why people were playing it. Was it on a website? Was it on tumblr? Probably not, according to the tumblr stat of 3. If no source is listed I have to conclude they’re using the soundcloud website. If it was directly on soundcloud’s website how were people getting to it? Mailed around as a link? Posted a joke on forum? Just as inexplicably as it started it ended, and it hasn’t had a play since. Given context I can’t even tell who listened to the whole thing. For all I know of the 112 plays 111 clicked “play” and immediately clicked “stop”. I’d almost say “spam” except there didn’t seem to be any point why someone would.
Since I said that “s” word, in another tangent, let’s talk about soundcloud spam. Since it started, and especially with the new redesign of soundcloud, in which soundcloud wants to be the new tumblr of audio, spam is a pretty easy thing to do. Make an account, don’t make any music yourself, “repost” other people’s stuff (what’s the point of that feature, anyway?), comment on tracks with random statements like “HUGE DROP!” and usually a spam link to join your spam facebook group. Interestingly I got rid of a lot of that just by not tagging my stuff as “electronic” anymore. That, and I don’t join groups promoted by spammers and delete spam comments so they probably realize it’s not worth the bother. The culture of soundcloud really is based around the Skrillex-fire-engine-remix/wub machine people fucking/novelty shit beef crowd and everyone calling everyone else a producer. That’s fine, I just delete the spam comments and other people can do what they want.
So back to stats. I figure a better metric is “downloads” since you have to do work to download a track from soundcloud (find the small download button), so fewer downloads are probably accidental. All time downloads for all tracks is about 248, Booze ‘n Snooze being 16 downloads. In both cases the download rate is around 5-7% of the number of plays. I can’t see any reason you’d download a track if you didn’t actually listen to it/like it. So I’m inferring from this that most of the 3612/3594/3452 plays are people who do it by mistake, or don’t like it and give up.
So where the fuck am I going with all this? If I was still in a free/cheap soundcloud tier, I probably wouldn’t care as much. My soundcloud bill is due on the day I’m writing this, and if I don’t cough up €250 my stuff falls back to a free-tier account, I lose the stats, and only the last two hours of stuff remains. If I was relying on soundcloud as the embedded player on this lame-ass blawg I’d be up shit creek, as those would all disappear. In context though, nobody listens here anyway so I probably wouldn’t notice. (In fact, since I removed all the soundcloud stuff from this place I haven’t noticed any change in soundcloud play traffic anyway, which agrees with the low number of on-wordpress blawg plays from the stats).
How much do I want to pay for nobody to listen? That’s what it really comes down to. €250/$300 is a lot of money to support 248 downloads. I really only have one consistent listener, so for $300 I could send them a CD every time I make a new track, save money, and get just as much exposure.
Let me back up here a little bit. I want to make a point that I’m not really on a “I hate soundcloud” path here, because I don’t hate soundcloud. I think it’s great, I think it provides a great service to people who actually want to make music and have people listen to it. If I was a doofus who made five tracks a year and loved dubstep soundcloud would figuratively be the best thing since sliced bread. My personal situation makes soundcloud a pricy service. If I had a huge audience who were big soundcloud users maybe I’d care more. I don’t think that I have no listeners because of soundcloud, I think I have no listeners despite soundcloud.
At the €250/$300 level I get lots of other things that I’m not interested in. Stuff like Dropbox support (don’t care), pro support (I only ever had one problem, and that was a minor issue when they did the new redesign, which they happily responded to and did get fixed), groups (I don’t even know what the groups are for), and spotlight tab (which they got rid of with the redesign, then had to bring back. I don’t think anyone sees it anyway).
Also if I didn’t have an alternative, I’d definitely be sticking with soundcloud. In Dec 2012 I started putting stuff on Bandcamp, which overall is cheaper ($120/year), has no storage limit (at least none they’ve tried to impose on me, and I have everything I’ve made there now), and is geared towards people who want to download stuff, as they will generate a variety of mp3/aac/alac/flac/boogityboogity formats. My stats on bandcamp are terrible compared to soundcloud – if you believe the 3500+ plays are real plays. If you believe the true value is much much lower, then the bandcamp stats are probably right in line.
So in case of my limited finances and not enjoying having to duplicate things, I’m going to let soundcloud expire, save my €250, keep my bandcamp account, and see where that takes me.
I know this entire thing was not interesting to you. That’s why it went into “administrivia.”