Thursday, October 28, 2010

Oct.22 Gig at Wingin' It

Our last two gigs were to near-empty audiences. I think at the last gig at Friar's Tavern at one point literally the only person in the audience was our soundman. It was strange but we treated it like practice. We'll be back there Dec.3 and hopefully it'll be more like Wingin' It depicted above at our last gig, Oct.22. I much prefer playing to a full room and at this gig we had a good turnout. In the pic someone wanted to blurt out something over the mic, so I got a couple minutes' break in which I could snap a quick pic on my iPhone. So you get to see what the room looks like from the drummer's point of view. This was probably one of our better gigs: we played well and I think the audience was getting into it, especially during the third set when we tend to play faster, more recognizable stuff. The Allman Brothers' One Way Out has a rather recognizable riff (and ride cymbal) that the audience usually responds to pretty well. I think we played that song particularly well and I had a blast banging out those snare rolls at the end of every verse.

Wednesday, October 20, 2010

Dylan

This past weekend we went to the Dylan concert held on campus in what is normally the basketball arena. An excellent show for which we had pretty decent seats except maybe a bit too close to the stage. It was great seeing Dylan and his band up there, but the sound was, for us, imbalanced as it was mainly directed toward the left ear. The highlight, for me I think, was Ballad of a Thin Man which they played at a pretty fast tempo. Come to think of it, they played most things at a pretty fast pace, which I rather enjoyed. I'm always being told by my band mates to slow down, but I think a slightly faster pace is better enjoyed by the audience.

Hounds at Friar's Tavern

This is a shot from The Hoodoo Hounds' gig on Oct.1. It's a new(ly refurbished) place called Friar's Tavern (the old Explorers'). The stage is pretty small there, but we managed to fit somehow. My drums were right behind our front man who said that I was trying to beat the snare through his head :) I like my snare to snap when I hit it, what can I say? For this gig our front man brought in some fancy equipment that can analyze the room acoustics and automatically balance the output while canceling feedback. It does this by having you stick a microphone in the middle of the room while it sends out white noise through the speakers. Some home theater systems do this as well. I think we sounded pretty good that night, but unfortunately we played to a non-existent audience. It ended up being a practice gig for us with the only person applauding being our sound man...Another gig is coming up this Friday (Oct.22) and hopefully there'll be a larger crowd.

Saturday, September 11, 2010

Luggage refit

When traveling on business, I take my favorite piece of luggage, the rolling folding garment bag. I bought this a few years ago, and it's now been on several trips and has been hauled around various city sidewalks in different weather. It's gotten beaten up a fair bit. The last such trip that I remember it was on was Copenhagen in winter time—I remember rolling it to the hotel from the metro on cold, slushy pavement. That did a number on the bag's bottom that tends to drag on the ground when I overstuff it. I've been re-applying duct tape to the bottom as a way to prevent more damage, but having to replace this every trip was becoming a sticky, gooey mess. The last trip I took it on (to San Antonio), the bag came back with the handle screws ripped through the bag's top fabric (maybe the third time this has happened). I knew it would happen, it was only a matter of time. Previously, the plastic backing that was there had broken and so the only thing between the handle bolts (on the outside) and the nuts (on the inside) was fabric. It couldn't last. So for a long time I've been thinking about some kind of backing, but I couldn't decide on what to put in there. Plastic? That would break sooner or later. Wood? No...I can't remember what made me finally think of it, but aluminum was finally what I came up with. At the hardware store I found two cheap pieces of aluminum that seemed just the right size: one for the inside, the other as a kind of guard plate to replace the duct tape. The above pics show one of the plates (trimmed with tin snips) going in. I had to drill four holes and had to get the alignment just right to get the handle to line up. At bottom are two more pics of the outside. The plate took 12 bolts (stainless) to hold in place. I used rubber washers to prevent moisture from seeping in. I used oversized fender washers underneath all the nuts to ensure that they don't rip through the plastic/fabric. Hopefully this will hold for a while.
Oh, I should also add that the wheels you see above are roller-blading wheels that I bought at a sporting goods store. I've replaced the factory-made luggage wheels twice now. Both times they (Victorinox) were good enough to send me a pair for free, but all three pairs (including the original) were fairly cheap plastic things, which these sort of rubber bands glued to the outside. All three pairs wore out rather quickly. The roller-blade wheels are solid, roll pretty well, and hopefully should be more durable. So far so good—the couple of trips they've been on they've performed really well. And they're fairly distinct so picking out the bag from the rest similar black rollies on the luggage carousel was fairly easy. That aluminum backing plate should also help.

Tuesday, August 3, 2010

Real-time heatmaps

Some of you already know what the above images are about, but I'm so happy about getting this to work, that I thought I'd post a blog about it. It happens to coincide with the end of this year's REU (Research Experience for Undergraduates) program during which I had 5 undergrads in the lab working on several eye tracking projects. This year it was all about video, which prompted me to develop the program responsible for drawing the above images. Collecting eye movement data (x,y,t) over video is what I worked on in Barcelona. It took me pretty much most of those 6 weeks to get enough C/C++ code together to be able to display video while recording gaze data. Once that was done, I handed the program over to the REUs who then ran four studies and who also extended the program to do various other things. Meanwhile, the whole effort motivated me to figure out how to display the captured data atop the video frames as a means to visualize the recorded gaze data. The algorithm for generating the above heatmaps is pretty straightforward and is well-known. Step 1 involves dropping a Gaussian point-spread function at each gaze location, growing the resultant heightfield with as many gaze points as collected per each video frame. Step 2 requires finding the maximum value in the heightmap. Sounds easy, but for an NxN image, it takes O(N^2) operations. Step 3 then requires normalization of the heightfield (division by the max value). Step 4 then recolors the height (luminance) by mapping it to the rainbow color palette. The last two steps, which can be combined into one, together take another O(N^2) steps. The image above at left was created this way for a data set of 24 scanpaths (sequence of gaze points) on the CPU. Looks good but it's slow (took about a minute). The image at right took only a fraction of a second and looks almost identical. The trick here is to use the GPU to reduce the number of operations form order O(N^2) to O(log(N)) for the max value localization and O(1) for the recoloring. On one particular workstation with a decent graphics card I observed a 700-fold speedup due to these reductions. That just blew me away, which is why I'm so excited about this development. I recently moved that bit of GPU code onto my video playing code and sure enough, even for a fairly large data set (oh, about 8 people or so), the code appears to play the video at real-time (30 Hz) rates. I suppose I should take timings of this just to confirm how long it takes...this could make a nice little paper someplace. Other eye tracking types might like to know how the whole thing is put together...