blog

Classic product packages.

Sun Apr 19 2009 13:57:45 GMT-0700 (Pacific Daylight Time)

tags: retro style junk

There's a new Goodwill very close to my house, so I'm able to visit frequently.

I'm constantly amazed by the quality of the packages on vintage/retro merchandise. The just don't make them like this anymore:

cassette tape recorder weights for women

There's really something to be said for not having that photoshop-polished picture perfect glossy sheen.

Over a million points in Robotron 2084

Sun Apr 19 2009 13:53:18 GMT-0700 (Pacific Daylight Time)

tags: robotron gaming

I had a milestone in Robotron gameplay last week:

robotron million

This is the first time I've cleared a million points! Probably the best classic arcade game of them all!

Pd shirt idea

Thu Apr 02 2009 23:11:55 GMT-0700 (Pacific Daylight Time)

tags: pd puredata shirt

There's been a fair amount of talk on the pd list lately about doing a new batch of shirts and since I've long thought it might be nice to have a pd shirt, I decided to bang out a design:

pd shirt

Now it's up to the community to decide how much they love it!

Make sound on Fluxbox volume changes.

Wed Apr 01 2009 23:38:20 GMT-0700 (Pacific Daylight Time)

tags: msi msiwind wind fluxbox debian linux sound audio

scream that sound

I recently acquired a certain netbook so that I could be frugal but still have the ability to hack while mobile. Of course, I have to run Debian...it's a curse...but it rules.

Surprisingly, things work altogether very very well. I still don't think I'm that savvy, but I've gotten things to play together quite nicely. I will create a real page and post my results/settings/findings soon....but I made a stupid simple hack tonight that I thought I'd share.

So I'm running Fluxbox again. It's clean, simple, and takes up very little screen real-estate. It's been a few years, but it's as elegant and non-intrusive as I remember it.

The default keys file for fluxbox has commands that grok asla (via alsactl) and are able to nudge the volume up/down based on the magical function modifier keys (like Fn+F7 or Fn+F8 on the Wind). That's all great...but at least with the sound apps I run (including Flash!), the defaults aren't enough because this "Front" control keeps stomping on things (eg. it apparently needs to be massaged after the Master is massaged). I wish this wasn't the case, it's stupid, I should complain...Whatever.

Scripts to the rescue.

For the MSI Wind, I made three scripts, one does muting, the other two do volume up/down. They look something like this:

#!/bin/bash
for control in Master Front ; do
        amixer sset ${control},0 1+
done
aplay ~/media/sounds/volume_change.wav

The 1+ indicates volume up, change to 1- for volume down.

And then in ~/.fluxbox/keys we can map things like:

176 :Exec ~/bin/volume_up
174 :Exec ~/bin/volume_down
160 :Exec ~/bin/volume_mute

What this provides is two things. First, when you press Fn+F7, for example, the Master and Front volume levels will both decrement. The Front is changed last, so that the actual volume output level is applied. Secondly, the 'aplay' line gives a little chime to audibly indicate the volume level...something akin to the sound that those $2000 Macintoshes make.

I found this bink sound on freesound and think it works quite well.

Until I can create a real page for my Wind setup, scream loud and enjoy the hack.

First kolpxnty boards chained.

Mon Mar 09 2009 01:43:44 GMT-0700 (Pacific Daylight Time)

tags: kolpxnty circuitbending dorkbotpdx dorkbot

Just a quick peek at the first set of 3 kolpxnty boards that I had fabbed:

kolpxnty

They are not without problems and have not yet been instructed to bend the circuit things, but they will soon.   The above is being driven from Pd via MIDI by way of Benito.

More to come...

Noise and the future is now.

Sat Feb 28 2009 01:20:28 GMT-0800 (Pacific Standard Time)

tags: archive archive org internet

MySpace has always sucked...so fock MySpace. Well fine, it has it's place, so do the other social nets... Not only is archive.org officially and formally a nonprofit with library status, they are also classified as the bee's knees, the good stuff, what's good, what matters. Although this is nothing new, I have to keep reminding myself (and you!) just how fundamentally RAD it is that I can listen to an amazing recording of a noise performance in Estonia a mere day after it was made. The future really is now. This is what radio should be, or at least will be...once we all work around the restrictions. I keep coming back to this idea...about ditching the restrains of monetized networks, for-profit tools, and encouraging people to seek enlightenment. Seek answers through knowing the potential of your tech..... Learn what's out there, what can be done freely, truly freely, let's build tools to help people get free...

Retinal tattoo gun

Wed Feb 25 2009 23:22:25 GMT-0800 (Pacific Standard Time)

tags: dorkbotpdx dorkbot portland pdx lightbar

So my pal Mykle has done this EPIC event called LIGHTBAR to cheer people out of their seasonal affective disorder during February in Oregon. If you can't see the victory in building a GIANT and BRIGHT bamboo-event-party-dome, by hand, in the middle of winter, then you need to be poked (with sharp bamboo).

A few of us from dorkbot PDX have been peripherally involved, even contributing some works.

retinal tattoo gun

My friend Brian and I collaborated on a light-based project dubbed the RETINAL TATTOO GUN. The concept involved a series of bright flashes intended to [temporarily] imprint iconic imagery directly into the retina with strong after-images (ghosts).

We had a semi-working prototype up at LIGHTBAR last weekend before it collapsed(!!!) this week. This iteration of the retinal tattoo gun was a pretty big technical failure, but it was a fun project and we have a nice foundation going forward.

The circuit I designed/built had a series of issues, the worst of which was some form of ground bounce or inductive jibber jabber that caused all 8 flash channels to fire when any of them fired. Turns out that yeah, it's nontrivial to sequence a bunch of disposable camera flashes.

The day of installation we also found out that the repurposed viewmaster switch was connected in a way that caused the flashes to trigger when the advancer jobby was directly in front of the slide...so most of the light power was dampened. Whoops, doh!

We hope you enjoy the above image, and we hope to have something dangerous, compelling, and electrical to mount to your face in the near future.

Open source WIN

Wed Feb 25 2009 22:49:58 GMT-0800 (Pacific Standard Time)

tags: linux sanyo katana foss

Another victory for open source. I've been trying to stay fairly cutting edge again at home -- with my Debian unstable and pretty up-to-date kernel builds. I'm usually surprised at just how easy things are now...

sanyo phone

But my crappy little phone stopped automounting for some reason when I plugged it in. I managed to search and find this bug thread which suggested a similar problem and a patch for Nokia phones. A few minutes later I had downloaded the patch, applied it, and then tweaked it to match the manufacturer/product IDs of my silly phone.

It ended up looking something like this:

UNUSUAL_DEV(  0x0474, 0x0749, 0x0000, 0x0481,
        "Sanyo",
        "Sanyo Mass Storage",
        US_SC_DEVICE, US_PR_DEVICE, NULL,
        US_FL_FIX_CAPACITY),

One kernel compile and reboot later and it worked like a champ.

Of course, all this begs the question "Why did it happen in the first place?"...which is another topic completely. Having the ability to take ownership and fix the problem to get work done (until the upstream [kernel]) is priceless. You'll never get that same experience with your closed source OS.

2008 noisybox.net recap

Wed Dec 31 2008 22:27:17 GMT-0800 (Pacific Standard Time)

tags: 2008 noisybox misc reflection zeitgeist

Year-end recaps are all the rage this time of year, and since I've never really done one I figured what the hell. I hope that by rehashing some of the happenings this year and reflecting on successes/failures that I can gear up for a rock solid 2009. I should point out up front that a massively important part of 2008 included spending time with and caring for my family. I won't emphasize it here, though, because I've decided to mostly stop publishing personal information that involves my family. Recapturing privacy and retaining control of one's personal, private life while still maintaining an online presence/persona is a newish goal for me. It's a real challenge at times, and I have no idea how it's all going to work out...but I know that I'm just not that comfortable anymore posting pictures or stories about family details. It's too much of a liability, and for now the risk outweighs the rewards. It's probably already obvious, but the main focus is to make noisybox.net a project site where I can share my technical experiences and clever hacks. Sure, it will sometimes still get interrupted by the occasional rant or personal anecdote or political standpoint. Wait, that's nothing new right? So what happened with me in 2008? In January I organized and hosting a circuit bending workshop called Haywire with Dorkbot PDX. About 40 geeks and noise hackers showed up and had a great time stirring up some junk toy cacophony. There's been talk of doing another bending workshop, but I'm not sure when it'll be (ideally after I finish a small run of kolpxnty boards). In the months after the workshop, I worked on polishing up some software and configuration for my audiopint. The audiopint became a main tool used in a 1 hr live performance I did on KBOO on Jennifer Robin's NOTLT on May 1st. There's HD video of the performance, but I haven't yet managed to stitch it together in a way that I'm comfortable releasing. All in all, playing KBOO was a great experience and I'm happy to have been part of Jennifer's now sadly defunct radio show. In the spring I learned of Michael Waisz's passing and was asked by an avant garde composer to build a cracklebox. I used one of the dorkbotpdx open workshops to etch a small run of 3 new cracklebox boards, one of which was fully populated and sent to the east coast. The remaining two boards are built but are still waiting for enclosures to be built. I started tinkering with image manipulation from Perl with ImageMagick and then started generating video. I created two short abstract video works and submitted them to the 2 mile QUADRUPLEX (video bending and noise films) for consideration...but was really too far past the deadline to be considered seriously. I'm rather proud of these pieces and hope to make them available online soon. Later in the summer, I was asked to host a circuit bending table/outdoor workshop as part of the first St. John's No.Fest organized by Ong and KBOO on the summer solstice. We had a table with circuit bent keyboards and toys and spent a full day explaining to people what circuit bending is and showing them first-hand just how satisfying it can be. I did a short live radio interview thing and encouraged people to come by and experiment. The Kelso Noise BBQ raged up at the BrizShack in Vancouver, and I dragged a few friends up for the brutal experience. Like the other past noise BBQ events, this was so much fun, filled with amazing and inspiring performers and a collection of friendly, approachable ragers in a sea of raw power, On top of it all, David introduced me to the BBQ glory of the New Seasons curry lamb sausage. During the summer I ended up bike commuting to work on a more regular basis, and I participated in the Portland Bike Commute Challenge during the month of September. 200+ miles were conquered in that month, and I continued to commute on the bike very frequently. I rediscovered my love of cycling! Dorkbot continued to inspire me in the fall, and Jared introduced me to the 4066 CMOS switch (yeah, I'm dense). I designed a small circuit board that can trigger 16 individual switch points (buttons) and I built a 2-sided prototype with SMT parts (not a light undertaking for me). The working name for the board is the unpronounceable "kolpxnty", and the prototype is able to control/sequence the guts of a Barbie telephone quite well. My intention is to cascade several boards together in order to control a fairly large number of circuit bent devices at the same time. I am hoping to finish up a revised design before having a small number of boards professionally fabricated. Speaking of "professional", I should give some recognition to my "professional" life and acknowledge the fact that we've had a pretty fun and crazy year. My full-time work with Ensequence on their powerful Blu-ray offerings has been both an enjoyable experience and a stressful ride. It's exciting for me to see our software shipping on more than 50 commercial discs (yes, major titles you've heard of). "Millions of users" is probably the largest audience my software has ever seen. As the year was drawing to an end I started learning Python, rewriting the noisybox photo album, and got snowed in for a few days before xmas. And that's really just about it. "Time for reflection." the little voice nagged. What went well? Well...I'm proud of finishing some projects, and I really enjoy being part of and supporting local communities (like KBOO and DorkbotPDX). I keep finding that branching into unfamiliar territories (like performance or teaching or new technologies) is very rewarding, and I hope to continue that effort in 2009. What sucked? I'm still terrible at time management and wonderful at procrastination. In 2009 I will carve out more free time for family and projects, and I will be more responsible in how I manage that time to yield productive results. I am disappointed that Infiltration Lab didn't have a single audio release this year, so 2009 should see several. I really want to collaborate with people I admire and respect, whether it be in performance, recording, or on great tech hacks. I will complete at least one significant collaboration project in 2009. I will perform live more than once. I will start a side business and plant the seeds of corporate independence. I should never do one of these posts ever again. :) My friend Chelsea did a very nice 12-month-12-resolutions format list. I should have done one of those instead.

Learning Python by building image-pooping Markov chains

Fri Dec 19 2008 23:41:05 GMT-0800 (Pacific Standard Time)

tags: python programming markov

In my ongoing attempt to learn yet another utilitarian programming language, I have decided to pick up some Python. I'm only still scratching the surface (for example I haven't even touched python regular expressions yet, nor object persistence/marshalling), but I've managed to make a few toys. I often learn best by just diving in and doing, and I've come to enjoy stumbling through toy projects when learning a new language.

So I thought it would be interesting to see what kind of images I could create with a self-modifying, mutative Markov chain. While the results below aren't yet self-modifying, they're somewhat entertaining eye-candy that's probably been done hundreds of times before.

image image image image image image image image image image image image image image image image image image image image image image

I'm using the Python Imaging Lirbary (PIL) to create/paint the images. Sure, it's pretty well documented and intuitive, but doesn't immediatly support drawing with alpha transparency, which is a real bummer. There is at least one other drawing toolkit that does alpha, and one that does that with opengl. It would be nice to render these in realtime, but the current incantation seems to take about a second to do about 54k 2d polygons, which isn't exactly fast. I'm also not yet sure how much of that time is spent in python versus actual Tk rendering.

I'm now mostly interested in switching drawing toolkits to support alpha, doing marshalling to save/restore interesting chains, and coming up with interesting strategies of self-modification. The current models are very linear, and it might be nice to have a little abstraction that allows nonlinear curving to happen more seamlessly.

I'll probably share the code after I continue to learn from my mistakes and make things more better.