Blip Festival 2011

Posted on 21st May 2011 in Something Daily

Continuing with the collection of surreal experiences that I’ve been experiencing lately, I decided at the last minute earlier this week to stay in the city a few days longer than planned and attend Blip Festival number five at Eyebeam. First of all, that was the best decision I’ve made all week, if not all semester. For those who don’t know, Blipfest is a three-day music festival/social hub for the New York City chiptune scene (chiptunes, of course, being musics created using hacked video game hardware from the 80s and 90s). There are a ton of bands who play, some of which are relatively popular for this niche genre, and some of whom are just getting their start. Regardless, there’s lots of awesome chip music to be heard.

So I got there on Thursday evening knowing one person there, and feeling a little awkward. I knew that a lot of the designers, gif-makers, developers, and musicians who I follow on Twitter and Tumblr were going to be in attendance, and I planned on introducing myself to as many as possible and making some contacts. That didn’t really happen on Thursday nights, because I really didn’t know a single person there after my friend left.

I did say hi to the guys from Anamanaguchi though. They played an incredible set, providing what was without a doubt one of the most fun performances I’ve seen in my short life. The crowd was crazy, to say the least (a guy was crowd surfing during Anamana’s soundcheck) and no one was dancing so much as pushing people around and attempting to support the hailstorm of stagedivers.

Anamanaguchi really owned the night on Thursday, as they were effectively the headliner and also awesome, but there were a few lesser-known acts that I’m very happy to have caught. Specifically, minusbaby came out with a many-piece acoustic ensemble including a baritone brass of some type that actually proceeded to rock really hard. Talk to Animals, as well, was the first act of the show to really get the crowd going; she walked down into the audience and jumped around with them while singing, her Gameboy pulsing out beats from the stage.

Night one was awesome, I got a lot of free stickers and saw a rad Anamanaguchi set. I didn’t really meet anyone, though, and last night I was determined to change that. I talked with Diego “Radstronomical” Garcia on Twitter and we arranged a meeting, which was thankfully a huge amount less awkward than I feared it might be. He turned out to be awesome and to know or know of a lot of the same people I’d wanted to meet, so it worked out nicely. Included among those people were (by Twitter handle) DeMarko, who was sporting the “I’m Fat, Let’s Party” Seibei shirt; JimmyRepeat, one third of MisterGif who bought me most of my beer and insisted on calling me a nickname that I don’t want to mention for fear it might catch on (you can find it on Twitter if you really want to know); DoodlesAndGifs, another one third of MisterGif, who was an incredibly friendly dude, and, lulinternet, who I met briefly with Diego and stared at dumbly for a few moments, apparently in awe of her internet fame or something. Also Liz (as in My Life as Liz) was there, as well as Pete from Anamanaguchi. So I’d say mission accomplished as far as meeting people goes.

As for the night two music, I didn’t know any of the acts before the show, but I now have a lot to check out. Pretty much every act last night was worth checking out again, in my opinion. The opener was NNNNNNNNNN, this young dude from Japan who made surprisingly rocking dance music. Tristan Perich, the creator of the One-Bit Symphony, also performed a piece for harpsichord and one-bit electronics, which was likely the most conceptually-driven piece that that festival will see this year (nonetheless incredibly rad). Ten Thousand Free Men and Their Families was also an interesting shift of genre for the festival; he’s a one-man 8-bit punk/hardcore band. His set was very raw.

I spent a lot of the other sets talking and meeting people, but I didn’t miss the opportunity to dance around like a fool during the BitShifter set. The guy absolutely killed it. He made some absolutely incredible 8-bit dance music that I feel like I’d actually be able to listen to outside of a live setting, which is rare for dance music. It was forty minutes of sweaty nerd in the front of the stage, with people constantly crowdsurfing up onto the stage to dance around for a few moments. Total mindless insanity in the first few rows. But so much fun. Also, I stayed for most of the cTrix set, which was also unbelievably cool. He debuted a new instrument that looked like a guitar body with a video game console and a bunch of stompboxes glued on, which worked after a few minutes of tinkering and actually sounded awesome.

I’m a bit (hah) disappointed that I won’t be able to make it to night three, but I don’t see it as a missed opportunity. This was an incredible experience. I’m totally going back next year.

BIG UPS

Posted on 15th May 2011 in Something Daily

Yesterday was certainly one of the strangest days in recent memory, likely due to the fact that I, in a rare move against my antisocial tendencies, decided to go out. I presented my game Spaceratops to the Music Technology open house, where people who were considering joining the program came and checked out everyone’s projects from the past year. There were also a lot of people there who weren’t considering, but were just acquainted with somebody in the program and came to see cool stuff. So I had a more or less constant stream of people coming up to talk to me about my game. It was the only game at the open house, and the one that arguably had the least to do with “music technology”. But there were middle school kids (one of whom became seriously addicted to Spaceratops and played it three times), a guy with a Kraftwerk shirt, a lot of potential grad students, and a lot of people who heard from someone else that there was “someone around here who’s into chiptune” (me) and could not wait to talk to me about how Anamanaguchi went to NYU. But everybody seemed to really like the game. I didn’t know that there were any type of awards given out, but I ended up winning the award for the best undergraduate presentation (!!) to my complete surprise. I was blushing like a fool, I’m sure. But I got to plug my website a lot, and I made a lot of connections.

The other thing that happened was that I went to my first Big Ups performance last night at National Underground, and it was everything I expected and more. Big Ups are a punk band who are all juniors or seniors in music tech, and they put on crazy shows. During the second song, the singer, Joe, climbed up on this table that was out in the audience and wrapped his leg around one of the big columns that was holding it up. And of course he fell, knocking over a bunch of glasses and cutting his hand open. He rubbed the blood all over his face, it was awesome. Also one of the low-hanging stage lights got knocked over by the kids in the front who were moshing. I don’t know how the National Underground ownership feels about this. But it was an incredibly rad show.

Chiptune Binge

Posted on 14th May 2011 in Something Daily

It’s been a while since I wrote anything, let alone a full blog post, but this is because I’ve come to the realization that writing about what I do every day is dumb. At least, it was nice for a while, but not really worth my time anymore, I feel. But check it out, cool stuff has been happening.

Last Tuesday was the release of GOBLIN by Tyler the Creator from Odd Future as well as Starscream’s first full album, Future, Towards the Edge of Forever. These are both sweet albums. Listening to (and buying the deluxe version of) the former has sparked a lot of heated conversation about whether or not Odd Future are actually worth listening to. When I hear people talking about them, I just get really happy for them, because six months ago they were just a a bunch of kids recording stuff in their basements and now they’re huge. I don’t mean to be condescending, seriously. Just good for them, you know? The Starscream album (which I paid ten bucks for on a whim about twenty minutes after it released) is my first exposure to really any chiptune other than Anamanaguchi, and it began a chiptune binge that’s been continuing since that point. I got some of the albums from a few years ago on which Starscream were featured, and right now, I’m listening to this British chip dude called Syphus whose music is also really awesome. Check it.

I’m living out of a suitcase since my parents took my stuff away from NYC, and that means no video games, which in turn means less distractions from playing with my sweet new Wacom Bamboo tablet. I got it because there was this picture of an excited Asian guy that I thought would look really cool with fire in his hand, so I bought a tablet and drew the fire on him. Totally a worthwhile purchase. But seriously though, it is, because it means that I can draw 100% more stupid cartoons per hour.

Trying not to kill this weirdly good mood I’m in. Follow me on Twitter.

Buffer Overflows pt. 1

Posted on 7th May 2011 in Tutorials

From a book I’m reading called Hacking: The Art of Exploitation, I recently learned what a buffer overflow is, and how it can be used to make a program do something totally separate from what it was designed to do (such as run code that spawns, for example, a shell prompt with root privileges). A buffer overflow is the result of a character buffer in C being filled with more bytes of data than were allotted to it. C doesn’t have any measures in place to stop the programmer from accidentally (or purposefully) overflowing a character buffer, which means that if you put ten bytes (characters) into an 8-byte buffer, you’ll see the entered values actually overflowing into variables that are next to the buffer in memory. Example:

Let’s say you declare two 8-byte buffers, one after another, at the top of your main function, like this:

char buffer_one[8], buffer_two[8];

What is this line of code actually doing? It allocates memory that will be used to store two buffers. The buffers are actually located right next to each other in memory. buffer_two might be located at 0xbffff29c, and buffer_one might be located at 0xbffff2a4. The reason that the second buffer is at a lower memory address is that the stack structure in memory that contains a function’s variables grows up toward lower addresses, rather than down toward the higher ones. You’ll notice that the two example memory addresses I just gave are exactly 8 bytes apart (a4-9c), which is due to the declaration of buffer_two as one that would be used to hold up to 8 bytes of data (buffer_one is also 8-bytes long, with the allocated memory ending at 0xbffff2bb). This is fine if nothing longer than 8 bytes ever gets copied to these buffers, but in the event that it does, it will cause a buffer overflow.

Say that we used strcpy() to copy a command-line argument into the space allocated for buffer_two like this:

strcpy(buffer_two, argv[1]);

We could run the example with different values for buffer_two just by adding them at the command line. Something like

./a.out AAAAAAAAAAAAAAAAAAAAAA

where the long string of A’s is the set of characters that will be copied into buffer_two. Remember that since the second character buffer is located at a memory address lower than that of the first one, any characters beyond the eighth in buffer_two will overflow into the next memory addresses, which happen to belong to buffer_one. If, after copying the argument to the buffer, you were to print the contents of each buffer with

printf("buffer_two is at %p and contains \'%s\'\n", buffer_two, buffer_two);
printf("buffer_one is at %p and contains \'%s\'\n", buffer_one, buffer_one);

you’d see that both buffers contained some part of the argument string. buffer_two, located before buffer_one in memory, has overflowed into buffer_one. We only ever assigned the argument to the second buffer, yet part of it appears when we print the first buffer. This is the basic idea of a buffer overflow.

Check back for more in the next few days. I’m going to explain some more, including how to use a buffer overflow to divert the control flow of a program to different sections of the existing code. Thanks for reading!

From my brain to yours

Posted on 7th May 2011 in Something Daily

If you were to ask why I haven’t written in a few days, there are a lot of possible answers that I could give you. Most of them are true, except for the one where I tell you that I didn’t write because I was held captive by samurai – that one’s not true….yet. Among the more “real” responses to that question are “because I was moving from my dorm to an apartment”, “because I was completely caught up in trying to learn buffer overflows and wouldn’t rest until I could get one to work”, “because I felt that I had nothing to write about” and “because I was taking finals and writing final papers”.

I’ve been doing a lot of thinking recently about how I want this blog to go. I seem to be leaning in the direction of making it much more tech-oriented, despite the fact that certain sectors of my psyche get very angry with that idea. I’m not worried about those sectors, though, so I plan to start doing a lot more tutorials and writing about technology in general. It’s something I think I can do well at. For close to six months, I’ve used this blog basically as a place to dump all the thoughts of a day out of my mind, a process which, while being quite therapeutic, probably yields incredibly uninteresting reading. Not that I’m just in blogging for the popularity – readership really isn’t my primary concern. But I’m realizing the power of the blog platform and that it’s totally within my reach to do something awesome with it.

So with that new knowledge (or assumption), I’m going to attempt and change the focus of this blog just by changing what I write about. Expect much more knowledge to flow forth from my brain to yours.

comments: 0 » tags: , , ,

Changes Ahead

Posted on 4th May 2011 in Something Daily

This blog is going to get way more tech-oriented soon. I might start another one where I talk strictly about tech stuff, or I might just continue this one and start writing differently. But I want my blog to be worth reading, and filling it with knowledge seems to be a very applicable way for me to achieve that goal.

comments: 0 »

Mr. Emmett

Posted on 2nd May 2011 in Something Daily

I just put my first game up on my website – you can play it with Web Start and download the source. Here’s the link. I just presented this game, which was my Java 101 project, to a current Java 101 class. It was a very good experience having to go over old code of my own and reacquaint myself with it enough to explain it in a manner that made at least a little sense. People in the class didn’t have that many questions, which was not entirely surprising to me. I remember when I was in that class, despite being mostly clueless as to how something like that would be implemented, being unsure of what question to ask due to lack of knowledge, and because of how confident and knowledgeable the presenter seemed. Now I get to be on the other side of it, where I’m the confident and knowledgeable one simply out of experience, and people are asking me questions. It was very nice, and I got to plug my website. All around a great experience, and I hope I get to do more of that.

Having a website that I update regularly is changing the way I use this blog. I used to post everything I did right here, but now I have a series of specialized outlets for all of my work, that have developed as a result of me trying to come up with a good website design. Basically,

  • stuff I draw goes on tumblr
  • music goes on Soundcloud and then embedded here
  • i write here most days
  • websites and everything else that’s worth it get posted to the gallery

That’s the basic breakdown of how I’m handling my online portfolio at this point. It’s changing like crazy, but that’s how it exists right now.

As for how am I doing today, it’s been very hectic and will continue to be hectic. I don’t think I’ve been less motivated to do a Music History paper than I am right now, and it’s due tomorrow. Also I’m recording a concert tonight, and I still have to finish my roommate’s website before I leave for the summer. And of course, all I really want to do is go through this hacking tutorial. But it’s a pretty good day.

The Sound of Death

Posted on 1st May 2011 in Something Daily

I’m in the 4th semester of the music theory track at NYU, which means that the time of talking about tonal harmony is kind of over. This whole semester, the focus has been things that are post-tonal and/or experimental in nature. We started with Debussy, who was one of the first composers to start to develop a practice against the tonal system. We’ve mentioned Ives, Varese, Stravinksy, Reich, Glass, Cage, and lots of other composers similar to them. They all make music that, to some degree, can be considered “not normal” from the viewpoint of high classicism. The point of mentioning this is that it functions as an explanation for why the below soundcloud embed sounds like so much death.

Death by Raised by Robots

This is my third and final composition for Music Theory IV. My process was as follows: use SoundHack to change the headers on several video files (Star Wars, Fight Club, Aqua Teen) to cause them to be interpreted as audio. That is, the raw video and audio data bytes contained within the mp4 files were interpreted as audio data with absolutely no preprocessing. As you may have guessed, this resulted in close to six hours of almost nothing but white noise. The first second of each transcode, though, had a unique bit of digital evil, for whatever reason. I took the first second from each of my three transcodes and arranged them in a rhythmic pattern in Logic. I also included a low, repetitive drone from LSDJ.

I bounced this twenty-second clip to a stereo mix, and then opened it in Spear, a specialized granular synthesis engine. Spear analyzes the audio data and breaks it into its constituent sine wave partials, visualizes the partials on a graph, and resynthesizes the source material granularly. It also allows you to timestretch and move the partial data in a lot of different ways. So basically, I slowed the whole file down to a tenth of its original speed, then chopped the heck out of it, moving partials around all over the place.

That’s what you’re hearing. The love child of several technologies that may or may not have been intended for use on the same project. The noise created when an Aqua Teen mp4 file is read as audio. The sound…of death?