Steve Albini, Guitar Amps & Encapsulation
by Dave Tufts - May 25, 2007 / 2:46pm View more articles
Music and programming seem to go hand in hand.
Steve Albini plays and records music. In addition to playing guitar and singing for the band Shellac, he is also a highly recognized audio engineer.
I'm not sure if Mr. Albini knows anything about computer programming but he certainly understands the concept of encapsulation. Encapsulation, in computer programming, conceals details of how a piece of software works. Sometimes called information hiding, one of the goals of encapsulation is to provide the most restrictive, most protective interface into the software.
The concept of encapsulation is clearly demonstrated in Steve Albini's beautifully simple, homemade guitar amplifier.
Public
The public interface to Mr. Albini's amp is a completely non-descript aluminum box with three controls:
- 1 large power button with a blue indicator light
- 1 giant volume knob (excellent usability, Steve)
- 1 VU meter to precisely monitor output levels.

Protected
Like any good object oriented programmer, Steve Albini strings a number of more complicated components together inside his clean public interface.
Looking inside the homemade aluminum box, we find...
- an old Tapco IVP Transistor preamp
- a 1965 Fender Bassman head
- a small Carver 50-watt amp.

Info and graphic from GuitarGeek.com
Similar to the world of programming, these protected components can be overridden or changed, but require knowledge of the system. If Steve is in the studio and needs more treble on the guitar, he can open up the aluminum box and change the settings inside.
Private
Finally, there are "private" components–the transistors, tubes, pots, and electronics in each amplification device. Updating these, much like updating a private method in object-oriented programming, requires intimate knowledge of the system.
Show vs. Hide
When programming, we tend to start as restrictive as possible. However, a minimalist public interface is not always ideal. Whether it's an amp with just a volume knob or Google's seeming simple interface, if I need to change a setting frequently, hiding that setting is less usable. If Steve Albini wanted to constantly fiddle with the mid-tone setting on the Fender Bassman, his aluminum box public interface would be a horrible design decision.
In programming, after starting with highly restrictive class, there eventually comes a time when we need to access data outside the private scope. When that day comes, do the following:
- Question whether you really need access to the data
- Try and figure out a way to access the data using existing methods - use your imagination...
- Repeat steps 1 and 2
- Edit the private method and make it protected or public
Do that, and your computer programs will be as cool as Steve Albini's guitar amp.
Comments have been turned off on this blog.
Read something more recent.
1 Comment