Oct 14

Podiobooks Gondor-Hosted Performance Analysis with NewRelic

Podiobooks is now part of Scribl.com! This post was written in 2012 when we had first converted podiobooks over to Django.

So Podiobooks.com is finally stabilizing after our initial push to get the critical features up and working again.

While we are still formulating the best plan to add the features that require some sort of user authentication, the ‘anonymous’ features have stabilized. One of my major concerns from our emergency launch was performance. While we’d been cooking up the Django version of the Podiobooks codebase for three years, performance tuning was hardly our biggest concern.

So when we set up our Django hosting at Gondor, I opted for a pretty big setup – two dedicated instances with 1GB of RAM each, with Django/gUnicorn app servers running on one, and the Redis cache/Postgres database instances running on the other.  While I think that Gondor’s prices for such instances are very good. Podiobooks is a site that primarily subsists on donations, so the lower we can get costs, the more money we can give to the authors and the folks that keep the site running.

To try and get a feel for how the site is performing, I installed the NewRelic application performance monitoring suite on the Podiobooks production instance. With NewRelic set up as a filter on top of the Podiobooks wsgi.py, it has amazing powers to analyze pretty much every aspect of your application’s performance, from the time it takes the browser to load the page, process the DOM and load assets, to the time it takes database queries to run. For queries it sees as running slowly, it automatically runs an Explain Plan on them, so you can quickly determine how to optimize them.

Here’s the chart that I find the most interesting. Along the Y axis is the response time of the application – how long it took to process the request and return data to the browser. This is the purest measure of your app’s performance, since it only includes your code, not the impacts of the network, their browser, loading images, etc.  We’ll look at that impact in a minute. For now, take a look at the X axis. This shows the number of requests handled per minute.

(Charts have expired, sorry!)

So, why is this important? In short – it shows clearly that the more requests per minute that Podiobooks is getting, the better the response time is. So, we’re not getting swamped with requests and getting slower the more people that hit the site.  This is super good news.

You might wonder how it’s possible that the performance is better with more simultaneous hits, and the answer is caching.  The Redis cache is set to last 5 minutes for most pages right now, so if you get a lot of hits within a 5 minute period, few of them will have to wait for the page to get cooked up by the database and app server, they just get a cached version streamed out of Redis back to their browser.  As requests slow down, the chances that any given user is going to get a ‘stale’ page that has to get refreshed and not just served out of the cache increases.

You can also look at the dot color to see that right around 8PM mountain time is when we get the highest simultaneous traffic to the site.

Once thing that we’ve noticed looking at the Google Analytics traffic to the site is that in terms of pure hits to the site, the iTunes Music Store is by far our biggest ‘user’. Since most of the titles on Podiobooks.com are also listed in the Music Store (as podcasts), the Music Store crawler is regularly checking on all the feeds to see if anything has changed. So making those RSS feed views as low-impact to folks browsing the site as possible was important.

Unfortunately, when I first looked at the ‘Slow SQL’ display in NewRelic, the queries that were underneath the RSS feeds were some of the most impactive. I had spent zero time optimizing those views and queries, and yet the vast majority of hits to the site were going through them! Luckily, a quick application of Django’s ‘select related‘ smoothed out that issue.  Long-term, we should probably be caching those views longer than 5 minutes.

Here’s the database-only equivalent of the application report above:

(Charts have expired, sorry!)

Query time is pretty flat with load still…again likely due to caching, both at the Django level, and natively within Postgres.

And here’s one for just the CPU time being consumed:

(Charts have expired, sorry!)

Good news all around. While I’m of course helpful that we can get the number of users on the site to increase to the point where we’d need to add more capacity…right now I think we have too much capacity, and can likely save some money by going to down a single dedicated instance.

Finally, if you are interested in the total time it takes to load pages, this graph covers that:
(Charts have expired, sorry!)

The tan color is how long it takes from when the network is done loading the HTML to when the browser declares the page to be loaded (DOM Ready), then then teal is the time from that point until the end of the ‘load’ time in the browser, so after all the images are loaded and such. Pages that have fancier CSS calculations, more images, and more JavaScript take longer in that teal zone.  Since that describes most of our pages, it’s the biggest contribution to load time. It’s also the least noticeable to most users, since the page is ‘doing something’ during that time.

Take note that even though about 1/3 of Podiobooks.com traffic is from mobile devices (often on 3G or slower networks), the network time is rarely a factor compared to the page rendering time. That’s on purpose – the pages have minimal HTML (thanks to @brantsteen), so they load over the network quickly, but then the complex CSS and JavaScript for the responsive layout kicks in, and it can take a second or two for everything to look perfect.

Let me know via Twitter if you have any questions about the site or performance tuning!

Cheers,

Tim

Jul 21

Django Many to Many Model Saving with Intermediary (Through) Model

I spent more time than I wanted to pulling together the solution for saving a child and its relation to its parent at the same time, while setting a value on the many-to-many model in between.

It feels like a pretty typical pattern, but the documentation and the info I found all over never quite got me there.

There seems to be a feeling that using inlines for this is the right idea…and I mostly agree. However, the inline stuff was really aimed at having lots of sub-forms, and submitting two forms separately. In this case I need to do them all together. So, I pulled the two crucial fields off of the many-to-many model, and added them ‘manually’ to a ModelForm for the child model.

A little magic in the ‘save()’ method for the form, and voila!

The gists of the related bits are below:

Jul 25

Why do something unprofessionally?

As I’ve been amping up my study of rock drumming, as well as working harder on my knowledge of recording and other music-and-audio-related stuff, I’ve been thinking a lot about *why*.

Why *study* something that you don’t plan to do professionally? I intentionally wrote “unprofessionally” in the title of this post, because it has interesting double meanings. Unprofessional doesn’t just mean amateur – it fact it has such a negative connotation that most people say ‘hobbist’ or ‘amateur’ instead of unprofessional. Unprofessional has the connotation of bad behavior *by* a professional.

If your hobby is scrapbooking, or gardening, or knitting, or lots of other ‘traditional’ hobbies, then you probably don’t practice. Sports and Music seem to be the main hobbies where practice is expected, *even if you are unprofessional*.

So the question always becomes what are you practicing music *for*? To be a rock star? Unlikely. Just like being a professional athlete, only the tiniest percentage of people who play music will ever become even locally known for doing so. But how many professional scrapbookers do you know? (I know a couple, but they are really professional salespeople).

Are you practicing to play a concert? For an open mic night? Or, as the trend is now, to impress people on YouTube? A lot of folks I know that practice quite a bit practice so that they can perform…at their church services. In fact, I know several people of dubious ‘faith’ that have found church services to be the only real musical outlet the can find.

Why has there been an explosion of Ukelele players of late? Why does Guitar Center stay in business?

If you want to play softball, or soccer, or golf, you can find a league near you.

But if you want to play music; it seems like the diversity of musical styles and the ‘independent’ nature of musicians makes leagues so hard to build as to be impossible.

Is that it, or is there more to it? One can’t ignore that watching little kids play soccer poorly is funny. Watching anyone play music poorly is not. So the specator aspect is very different. Why doesn’t my city have a giant park with band practice spaces in it, just like they have soccer and baseball fields? Is the the noise? The spectator aspect? The popularity? Or just the lack of ‘rules’ such that you can achieve a critical mass of people to all do something in an organized way?

It’s pretty weird.

So the question is, why do people still play music? I think one has to develop an appreciation of practice *as* the hobby, which is a bit odd compared to other hobbies. I mean, I may go to the driving range to play golf, but after that, *I go play golf*. But I can enjoy playing drums and guitar just fine without ever playing a concert or in front of other people at all. I record myself mostly as an exercise in learning how recording works, and as a way to analyze my playing.

But there is an element of music…playing with other musicians…that is where the magic really happens, and just ‘practicing’ all the time doesn’t really give you that. I think the Rock Band video game actually gives you a taste of that…better than just playing alone in your basement. It’s not the same as jamming, but at least you can feel how your part contributes to the whole, and what the song lacks if you screw up.

I hate to say it, but I think the key problem with playing musical instruments is that the barrier of ‘good enough’ is way too high. I can play baseball and enjoy myself even the first day I learn how…but perfecting my throwing, catching, and hitting can bring greater enjoyment.

Instruments like the guitar take a long time to even play comfortably, much less play well.

And there is the issue of what you are comparing it to. When you play baseball with your peers, they likely play fairly close to the same level as you do, so you can enjoy the game at the same level…but with music, every song is like learning a brand new game. (Once you have a lot of experience, each song becomes a little easier). If you are a slow runner, chances are the guy on first base is poor at catching the ball. So everyone being bad at the game works in favor of the experience. But for music, it’s the opposite. If anyone is bad, it makes it harder for everyone else.

So what to do? People love music, and games like Rock Band have proven it.

Here’s my blasphemy: I think we need easier instruments. There is no way to ease into most instruments. There’s been a lot of progress with keyboards that light up under your finger and such, but those don’t really help you in a jam situation on a song you are creating.

I think the Fretlight Guitar is one step forward, but you still have to physically master the guitar, which isn’t easy.

I’m sure many of you who have lept the hurdle of playing a ‘real’ instrument are pshawing me. But look at what kids attention is competing with – games that teach them how to do things step by step. Instruments need to evolve. They can, and have (iPad instruments are amazing), but what is missing is that leaping point from being able to play along to your favorite song, to jamming…and somehow moving toward achieving ever-increasing proficiency.

I hope the future gives us more fun ways to be able to bring music back up to something that everyone can enjoy, and not just something that people tackle as a challenge, or practice ‘as it’s own reward’…

May 03

MOTU 896mk3 Audio Interface / Digital Mixer Review and Tips

I’ve been working with computer audio since the 80’s, and I’ve used a number of different little boxes to get audio from a microphone and instruments and into the computer – mostly on the Macintosh.

Mark of the Unicorn (aka MOTU) is a company that’s been around since those early days of Macintosh audio.  Their “Digital Performer” Mac-only DAW is still one of the most respected platforms in an increasingly crowded field.

I recently had the opportunity to upgrade from my M-Audio Profire 610 Firewire Audio Interface to a MOTU 896mk3 Audio Interface & Digital Mixer.

MOTU 896Mk3

The MOTU 896Mk3 - image ©MOTU

My frustration with the ProFire had a lot to do with interference – as I’ve posted before, it was very prone to picking up DVI interference from flat-panel monitors.

While I had been able to get by with the ProFire by using better cables and routing things carefully, I recently upgraded to a new flat-panel monitor which ran at a higher refresh rate.  Once again, the ProFire started picking up the whine, and nothing I could do would get rid of it.  The 896 has been absolutely silent on FireWire. No whine from the monitor, and no noise from guitar pickups or the USB connection for my Fretlight.

In addition, I was looking at being able to record acoustic drums, and the two microphone preamps on the ProFire just weren’t enough to be able to do that.  I did a great deal of research, and in the end chose the MOTU.

Here’s why:

  • 8 microphone preamps with built-in soft and hard limiting
  • 8 analog outputs, each with their own mix of all other inputs
  • 4 ADAT Digital I/O ports, for a total of 16 inputs and 16 outputs (more useful than you’d think…)
  • Extensive front-panel meters and controls
  • Full-19″ rack width, but only ~10″ deep, and only weighing ~ 4 lbs.
  • ADAT Ports can be used to connect another 8 mic preamps and MIDI I/O via a MOTO “8-Pre” box
  • Extremely well-reviewed and tested software and drivers, including many audio analysis tools
  • Firewire 800 I/O to the computer, so works on Mac and PC
  • Recommendation from my friend Brant (based on his pro-recording friend’s recommendation)

What’s missing compared to the ProFire (and other competitors):

  • MIDI I/O (I already have a separate M-Audio USB MIDI box, so this was easy)
  • “Octane” Mic-Preamps (896 mic pre’s are very flat, not as “nice out of the box” as the ProFire)
  • Lots of Software Returns

Dealing with “Flat” Microphone Preamps

The Octane Preamps on the ProFire sound very good for vocals out of the box. Their “natural” EQ is just very flattering.  The 896’s PreAmps are “flat”: they have no particular EQ response.  This is good, in that they are more flexible, but bad in that I’m still working on finding EQ settings in my DAW that recapture the “natural” magic of the Octane pre’s.  I’m still working on this…hopefully a full report later.  I will say that a bit of a boost in the midrange seems to help.  The preamps in the 896 don’t sound bad, they are just very transparent.  The Octane pre’s were part of my sound, the 896 pre’s don’t contribute one way or the other, they stay out of the way.

The gain knob for each preamp on the ProFire is notoriously frustrating though, since it’s a “tapered” potentiometer – the useful range is all within a couple degrees of the knob’s travel.  The 896’s knob seems to have a greater useful range, although it too tends to be smaller than I’d like.

Software Returns

Software returns are the ability to route audio from software on the computer into *inputs* on the device, so they can be mixed into the *outputs* of the device, just like the physical inputs to the device.  You can think of them as “virtual” inputs.  The are critical if you are crafting multiple monitor mixes that include software playback  or software instruments.

The 896 has one stereo return.  You can assign the audio from any output to the return.  However, in order to craft custom monitor mixes for multi-musician jamming and overdubbing, you typically need at least 8 returns.

Here’s my trick to add a bunch of software returns: I used a TOSLink Optical cable to connect the ADAT A Output jack into the ADAT A Input jack.  This automatically connects all 8 ADAT Digital Outputs on the to all 8 ADAT Digital Inputs – all with one cable.  Full digital, no generation loss.

I use the 896’s ADAT Outputs (which are easy to select in any DAW, in my case REAPER) as the outputs for my playback and digital instruments. The audio goes out through the ADAT A output jack, in through the ADAT A input jack, and appears on the ADAT A Inputs in the 896’s CueMix FX mixer software.  I can now mix these into the analog outputs of the 896 to create monitor mixes for each performer.

Example DAW Output Settings:

  • DAW Drum Mix Buss Track: ADAT Output 1
  • DAW Bass Mix Track: ADAT Output 2
  • DAW Rhythm Guitar Track: ADAT Output 3
  • DAW Lead Guitar Mix Track: ADAT Output 4
  • DAW Vocal Mix Track: ADAT Output 5
  • DAW Synth Track (Live and Playback): ADAT Output 6

Example Monitor Mixes In CueMix:

  • Vocalist Overdub/Jam Headphone Monitor Mix:
    • 60% Analog Input 1 (their mic input)
    • 10% ADAT Input 1 (Drum Mix Track Playback)
    • 10% ADAT Input 2 (Bass Track Playback)
    • 10% ADAT Input 3 (Rhythm Guitar Track Playback)
    • 10% ADAT Input 4 (Lead Guitar Track Playback)
  • Bassist Overdub/Jam Headphone Monitor Mix:
    • 60% Analog Input 2 (Bass Amp mic/DI)
    • 10% ADAT Input 1 (Drum Mix Track Playback)
    • 10% ADAT Input 5 (Vocal Track Playback)
    • 10% ADAT Input 3 (Rhythm Guitar Track Playback)
    • 10% ADAT Input 4 (Lead Guitar Track Playback)

If you are tracking new parts from scratch, you might not need playback, but you might have a click coming from the DAW for the drummer, or scratch drum tracks, or live synth from a virtual instrument.

Either way, this trick lets you route lots of channels of audio from software into the 896 and treat it just like any other input.

I also run a TOSLink cable (with a mini-TOSLink adapter) from the headphone jack of my Macbook Pro (which is secretly an optical port as well as an analog headphone port) into the ADAT B Input of the 896, so I can mix 2-channel audio from programs like Skype and iTunes that won’t let me select specific device output pairs.  Note that to use one of the ADAT inputs as a TOSLink input, you need to set it to “TOSLINK” mode (as opposed to “lightpipe” mode) using the “MOTU Audio Setup” application.

Going from XLR Outputs to Headphone Monitors

The 896’s analog audio outs, which we want to use as headphone monitor mixes, are XLR connectors.  These balanced connectors won’t go directly into headphones and you usually want to combine two of them to make a stereo headphone mix.  To do this, you need another box, and I chose the Behringer AMP800 mini headphone amp.  With some XLR to TRS cables, you can go from the analog outs on the 896 into the mix inputs on the AMP800, and create volume-controllable headphone jacks for your jammers and trackers to listen to.  Add a few long headphone extension cables like the ones from the JamHub, your favorite headphones, and you are in business!

The 896 does have two headphone outputs that you can mix to separately, so if you only ever have two people tracking or jamming, you don’t need this setup.

Other Changes

The ProFire had all TRS Analog I/O Jacks, while the 896 has all XLR Outputs (and dual TRS/XLR Analog Inputs), so I had to buy a couple of new cables, especially to connect to my Yamaha HS-50M / HS-10W studio monitor speakers.

I was also able to finally get rid of my ancient Behringer mixer, which had seen better days. There is a nice knob on the front of the 896 I can use to control the overall level of things, as well as input levels. I have everything running into the 896, so I can truly use it both as an audio interface as well as a digital mixer.

I have my POD X3 Live connected to Analog Inputs 7/8 from the ‘live’ outputs, and I have a S/PIDF cable running from the S/PDIF output of the X3 into the S/PDIF input of the 896. I did have to adjust the sample rate of the output of the X3 to match the 896 to avoid hearing anything but digital noise there.

To be honest, I don’t really like the sound of the S/PDIF output, and I typically run the “live” analog sound, and I use the CueMix software that comes with the 896 to mute/unmute the X3.  I could use the knobs on the front to turn it down when I’m not using it (it tends to have “guitar cable noise” if I don’t), but I like where I have them set for recording levels.  But it’s there, so if I ever need to use Analog 7/8 for something else (e.g. drum mics), I can still get the X3 audio into the mix.

Summary

I really like the 896mk3. It’s super-light, so even though it’s bigger than the ProFire, it uses a standard power cord (rather than ProFire’s giant wall-wart), so it’s similarly portable.

Its noise-free, and software-crash free (even under 64-bit Mac OS X).  More than any others, those are the two I have to have.

I was also able to get rid of the mixer from my setup.  I had to add the MIDI interface back in, but I only use it very rarely, so I’m not terribly concerned.

I was pretty frustrated with the lack of software returns until I figured out that ADAT loopback trick, but since I got that working it’s been just a dream.  The super-smarties at headphone.com helped get me on the right path of choosing a headphone amp, which was invaluable.

I do wish MOTU would add more software returns to this device, or even just let me virtually patch outs to ins in the mixer, rather than having to use a patch cable.  MIDI I/O would also be a great help for this device, as well as allowing the front-panel “main-out” headphone output to be routed separately from the monitor speakers.

I suspect I’ll eventually end up buying a MOTU 8-Pre to get the 8 extra microphone preamps (acoustic drums use a ton of mics), but that uses the same port that I’m using for my ADAT loopback.  However, I can chain it on the Firewire bus instead of running into the 896.  Since the Mac makes it easy to create virtual devices as aggregates of physical devices (using the Audio/MIDI Setup Control Panel), this is probably a viable option.

The front-panel knobs are very small, and can be a bit frustrating to grab in a hurry, although almost all of them can be tweaked virtually via Cuemix FX, so it’s not too big of a deal.  All the I/O except for the headphones is on the back, which it a bit annoying when regularly connecting and disconnecting mics for podcasting.  I typically just leave the mic cables connected to Analog 1 & 2, and have the cables neatly hanging from my desk nearby.

There are a number of features I’ll likely never use, such as AES/EBU I/O, and Word Clock I/O.  For the average home studio, it seems like MIDI I/O would be a better choice.

I’d also like to be able to use the modeled EQ, compression, reverb, and other onboard F/X from my DAW as plugins, rather than having to track with them in the signal path.

I’d buy it again based on the noiselessness and stability alone, and I hope that the tricks I’ve outlined here help you enjoy yours as much as I enjoy mine!

Apr 15

Software Generalists vs. Specialists and the Instant Reference

I’ve been working on a number of software projects, the most notable of which is podiobooks 2.0.

Podiobooks.com is a very popular site for downloading free audiobooks.

Many of the books offered first for free on podiobooks.com have gone on to become NYT bestsellers.

We’re building this project using the Python web development framework “Django“.

But like any modern web project, the “main” development is only part of the story.

There’s also Cascading Style Sheets version 3 (CSS3), Hypertext Markup Language version 5 (HTML5), JavaScript, the jQuery JavaScript framework, SQL, the Apache and NGINX webservers, unix scripts to start and stop things, and the Hudson continuous integration server to help us test and release code with some degree of quality.  Not to mention doing most of that across multiple browsers targeting multiple end-user devices (Desktops, iPads, iPhones, etc.)

Building a modern web application is a lot like building a house – it’s not just a bunch of wood nailed together.  There’s drywall, paint, windows, a foundation, a roof, plumbing, electrical, and a whole lot more.

In construction, it’s often broken out into speciality trades, who work on a given house only long enough to get the electrical in, and then move on to the next project.

Because applications need constant tweaking, and because the standards for building them are evolving at an incredible rate (the 2×4 for home construction hasn’t materially changed for 30 years – I haven’t built a web app will the same components for more than a year in a row).

So it means that if you are an experienced web developer, your brain has to be split across a whole lot of different “trades”, each with their own nuances.  And, just like a “general contractor” isn’t going to be as good an electrician as a guy who is a Master Electrician, your “general web developer” isn’t going to be as good at any one of the parts of web development.

So when someone asks me to write out a piece of code for them, it’s unlikely I’ll be able to do so without the handy reference of Google to look up the fine details.

On the other hand, I have more than enough experience to know what I need to look up.

It’s interesting to me that the more you do work in the real world, the broader your world becomes, and the harder it is to do just one thing.

It’s also interesting that the power of the instant reference makes it possible to learn new things and actually use them, because you don’t have to rely on being able to hold 100 different bits in pieces in your mind, or to thumb through a set of tomes for each new tool.

That’s not to say there’s no room for specialists – quite the opposite.  At some point, there’s a whole different personality needed to do certain tasks.  Database work that has no UI tends to appeal to different people than art-intensive layout and design.

So on big teams, I definitely rely on the guidance and work of specialists, but someone (usually me) has to be able to hold the big picture in their head, and make sense of it all…otherwise you end up with a bunch of excellent pieces that don’t work together at all.

I think we are starting to get to the point where companies hire generalists, and then contract out specialties.  Which is much the same way that the house construction industry works.

The difference in my mind though is not that this has happened through the emergence of lasting standards (although that has helped a bit), but through the power of the instant reference…

Mar 06

Guitar Playing and Learning Tools

I really enjoy playing guitar, and while there was a time when I was in college that I played primary in bands or nascent bands, the majority of my guitar playing is by and for myself.

To make that fun in a rock music context, you need a combination of being able to get better, so you feel like you are getting somewhere, and some way of playing along with other instruments.

So over the last 20 years of enjoying the guitar, I’ve collected a set of tools that really work for me, and I thought I’d share!

The first is Line6’s GuitarPort Online. They came up with the genius idea of combining a killer headphone amp, downloadable lessons, and downloadable guitar-less tracks of popular songs.

GuitarPort Online Logo

Their other killer feature is that the software works with both their simple GuitarPort interface (less than $100), all the way up to their flagship DT-50 modeling amplifiers (>$1400). So you can grow from bedroom noodler to stage performer, and keep your practice and learning tools consistent. The GearBox software also functions as a deep editor for your guitar tones, so you can twist all sorts of virtual amplifier and stompbox knobs onscreen, rather than struggling with tiny little menus on the device.

The main downside is that it requires a monthly subscription (~$10/mo depending on how far in advance that you pay). It’s comprable to what people pay for online games like World of Warcraft, but you get to learn and play along to your favorite songs instead. 🙂 The bummer is that if you cancel you subscription, you can’t even play the songs you already downloaded.

The “play along” aspect is what keeps it fresh – you get a settings file that sets up the sound of your guitar to sound like the guitar from the track (whether lead or rhythm), as well as guitar tablature (sheet music), and backing tracks both with and without the guitar included.

When I first started using GuitarPort Online with my POD, I found that they had Van Halen’s “Panama” as one of the available tracks. I’d had my favorite guitar teacher show me how to play it back in the 90’s, but I could never quite get all the rhythms right, and although I knew the basics of how to play it, I never felt like I was getting better at it.

As my friends and family can attest, I played the holy snot out of the GuitarPort version of that track for years. Every time getting a little better – tighter rhythm, better articulation on the solos and riffs. It was a relaxing to be EVH in my basement for 20 minutes (OK, an hour) at the end of a hard day. 🙂

And then they took it away.  I upgraded to a POD X3 Live, and when I did so, I lost access to that track – apparently GuitarPort had lost the license, and it was encrypted to my old device which I had sold on Craiglist. The track was no longer available for download. I was so angry I dropped the service for about 6 months, and went back to traditional book-and-mp3 methods of learning…but I missed that joy you feel playing along to a great track…so I eventually went crawling back.

In the end, my family is probably very glad I’ve had to branch out and am now playing songs by Living Colour, Pat Benatar, Boston, Heart, Scorpions and the Offspring, rather than that same VH song over and over, but I miss it.  Come on Line6, I’m sure you can work something out with Warner!

Overall I love GuitarPort, and use it regularly, I just wish they’d expand their library more often – it seems like not a lot of new stuff is coming in.

The difference between how quickly I learned the parts of Panama that I hadn’t learned from my teacher (like the solos), and how long it took me to learn the easy parts from my teacher was night and day. I easily learned 10x faster, and didn’t plateau like I did with just hand-written tab and the record. GuitarPort really helped me learn the track, by helping me both learn and practice it.

As the years went by though, I found a hole in my practice/play regime, and that was being able to play improvised solos really well.  Other than a few songs, I preferred to do my own solos rather than imperfectly mocking the great players, but I got stuck in pentatonic ruts that I couldn’t get out of.

That’s where our next tool, the Fretlight, comes in:

Fretlight Black Guitar
Fretlight Guitar

The Fretlight is a guitar that has a little LED (light) under each intersection between string and fret. So everywhere you could put your left hand on the guitar, there is a light. In every other way, it’s just like any other nice electric guitar.

It connects via USB to your computer, and software there enables you to set the lights up to display just about anything you could imagine. Scales, modes, chords, in any key, and any place on the guitar.

If you aren’t near a computer, it’s no big deal, the USB is only needed to run the fretboard lights. You can play it at a gig without a computer, and no one would ever know it was a Fretlight – the lights are invisible unless they are on.

The Fretlight Song and Lesson player will even light up songs in real time (or slowed down time) for you to follow along with, although in practice I found this to be a little tricky to do long-term.  It’s great for getting a feel for where the song is played, but since the lights are under your fingers, it’s hard to follow along perfectly.

But the Fretlight Improviser is genius. It plays semi-cheesy MIDI backing tracks for you endlessly. Unlike practicing with a song, it’s like having a band that never gets tired of playing the same chord progression over and over while you work out your perfect solo.

But more importantly, it shows you a scale or mode to go along with that progression, lit up all over the fretboard. Every wanted to play a solo in the Mixolydian mode just like the shredders from the 80’s? You can dig out your Guitar Grimoire and start memorizing dots, or you can light it up and start playing.

As I get older, I’m spreading my mind across more and more things to memorize. So, rather than remembering the details of esoteric computer languages, I remember general patterns, and then use books and the internet to look up the details when I need them. The Fretlight is like that. You still have to know how to play the guitar, but you can use Fretlight to show you the details of chords, scales and modes.

When I was first looking at the Fretlight in the 80’s, it was self-contained – there was a switch on the front to let you pick what scale to light up. As such, it was limited to how many patterns they could put into the guitar. By being able to connect it to software in a computer, the range of things you can show on the Fretboard is limitless – with the AxMaster software, you can pick individual lights to show in any pattern you want – make up your own stuff!

Between the two tools it’s funny how many pieces of software I end up running at the same time on my computer while I play guitar – GearBox to control my POD, Fretlight Improviser to control the Fretlight, REAPER to record it all.

If this all sounds computer-heavy it is – but when I was in college, I’d get a book or magazine of guitar tab, put it out in front of me, and memorize away. Then I’d either play along with the record (quietly, so I could hear myself over the track), or beg my friends to learn the other instruments. Then the inevitable “I’m not playing that” would begin.

The computer combined with these two tools is helping me enjoy my guitar time, since I don’t have hours to sit in front of tab books memorizing any more, and convincing my friends to even pick up their instruments is harder than ever

Mar 01

Studio Acoustic Treatment

When I first started podcasting, we were recoding up in our kitchen, which is a pretty large, open space.

However, since we use condenser-type microphones (which are very sensitive) we were picking up the neighbors’ dogs barking, lawns being mowed, kids jumping on trampolines, and so on.

Even once I learned to turn the gain way way down, and then normalize the audio later in REAPER, we would still get comments from listeners wondering why their neighbors were mowing their lawns at 2AM while they were listening to our show.

So we moved recording down to the basement, and froze with the furnace turned off so we didn’t have to hear the thunder of it running on all our recordings.

In the summer of 2009, I spent the summer finishing half of our basement into two bedrooms, one of which was to be the new recording studio.

It was quite a project, and I just kept thinking “It will be so nice to record in here once it’s well-lit and quiet and warm!”

So I cried a little when the first time we recorded in the new space it sounded like I was recording inside a submarine, and not in a cool Beatles way.  Worse than the lawnmower!

No matter how low I turned down the gain, it was still super-reverby.

For vocals in a song, that can be a good thing (Weird Al famously recorded “Another One Rides the Bus” in a college bathroom), but for spoken word where clarity is king, it was disaster.

So we recorded out in the unfinished part of the basement while I tried to figure out what to do.

First, I tried building panels using the Auralex foam that you can buy at most music shops.  Zzounds.com actually sells it by the square, so I bought about 15 of them and tried to use them in various ways to reduce the echo.

They didn’t help.  Made it worse in many ways.  I think that foam may be good for soundproofing, but it was utterly ineffective for me in reducing reflections (echo) in a 10’x12′ room.  I’ve seen people cover every surface in a room with the stuff, and they seem to be happy, but that wasn’t an option, as I didn’t want to record in a closet and couldn’t afford $3k worth of squares and nothing else in the room.

I noticed that many products marketed at reducing reflections for vocals were made of something else, which looked more like burlap membrane rather than foam.  Products like the Reflexion filter, which aren’t cheap, but actually (based on reviews) work.

However, that would mean talking into a black wall (assuming both hosts had one), and for podcasts, it works a lot better if there is eye contact for people in the room.

Not to mention that you’d have to buy more of them if you ever wanted to record more than two people, and you get “best results” if you put one both in front of, and behind the speaker.

I was starting to despair that I’d spend a good amount of time and money to build a warm cozy space to record in, only to never be able to use it. Perhaps that’s why musicians tend to do their best work when living in vans down by the river?

Anyway, I researched and researched, and eventually found RealTraps.

Same sort of membrane material as the Reflexion filter, but in steel-framed panels that you can place about a larger room, and then move about as you need.

But they are expensive. Even with the newly-available “BareTraps“, which are $125 each, enough to completely cover my room would be well over $2k.  But they seemed like the best option, so I went for it, and ordered a pair of the bass-frequency absorbing ones for the corners, and the “High Frequency” ones for the rest of the walls.

They work. I won’t lie, there is still echo in that room. I’ve just ordered four more to cover the other two corners and the backs of the doors, but even with the ones I have in there, which do NOT cover every surface, the reflections are so reduced that it actually feels a little weird to be in the room some times because it’s so quiet.

I have standard acoustic tiles in the ceiling right now, and a hardwood floor, neither of which is really helping the situation. So a large rug is next.

RealTraps makes ceiling tiles that I may eventually use to swap out the standard ones that I have, although I also might try just hanging more Baretraps from the ceiling…

Anyway, things are sounding better every day in the Rock Lab (as I’ve christened it), and I encourage you to try real membrane-based traps rather than just MORE FOAM!

Sep 30

A Six Pack of Old Friends

As a follow on to my general Recommended Book List, I wanted to dive in on why the first six books are favorites.

To recap, here’s the first six books on my all-time “recommend to others” list.

  1. Myth Adventures by Robert Asprin
  2. The Stainless Steel Rat, by Harry Harrison
  3. Callahan’s Lady, by Spider Robinson
  4. Retief, by Keith Laumer
  5. Phule’s Company by Robert Asprin

These books are also what my mom would call “old friends”.  They are some of the few media items that I could pick up at any time and just read.  Many of them I could flip to any page in any of them, and just start reading from there.

Why are these books so re-readable?

A Good Laugh

All of these books are funny.  They are all in what some have called the “humorous sci-fi/fantasy” genre.

Given even a year away from the book, the jokes and humor in these stories wraps you up and cuddles you, and it’s humor that doesn’t need to put someone else down, or gross you out, or make you cringe.  It just makes you smirk, grin, and feel good about the world.

The Difference is Readability

Unlike the “poster children” for this genre, like Hitchhiker’s Guide to the Galaxy by Douglas Adams, or Discworld by Terry Pratchett, the books on my list are also highly readable….and not English.  I enjoyed Adams and Pratchett, but I’ve not real desire go back and read them over and over.

Every one of the books on my list is written with (for the time they were published, at least), smooth, flowing prose, with just enough humor to keep a near-perpetual smile on your face, but without so much political commentary, farce or forced jocularity that it distracts from the narrative or the characters.

Characters You Want to Spend Time With

And it’s the characters that really make the stories work, and make these books “friends” rather than just “fun reads”.

Every book is filled with people that you want to spend time with.  Characters with problems that seem funny on the surface, but end up reminding you not to take your own problems so seriously.

Human Tales

These stories may be set in alternate or fantastic or future realities, but they all use that setting to make their tales of human interactions more timeless.  They distill human interactions to their core, and set them against a tale of adventure to give those interactions motion.

Robert Asprin makes the list twice with two different books, both of which spawned series.  Let’s start with him.

Farcical Reality with Robert Asprin

While the humor is never far away with Robert Asprin, neither are a plethora of other emotions. He regularly sets up characters to be one thing (a funny stereotype, typically), and then carefully deconstructs that funny assumption for the rest of the story.

Aahz is the big scary demon, who turns out to be a lot more supportive and nurturing than evil and devouring. Asprin carefully nuances Aahz’s personality throughout the series, and eventually, despite a narriative landscape of the absurd, you feel like he could be any of the tough-on-the outside, squishy on the inside guys you know.

The Myth series’s main protagonist Skeeveo starts out young and naieve, and although he’s not clearly a Mary Sue character at the outset, he becomes one more and more as the series progresses, holding up a harsh light to Asprin’s own struggle with alcoholism.

The parade of supporting characters, Tanada, Chumley, Gleep, Massha, Ajax, Markie – they all follow the pattern of setting up a funny stereotype (Tanada is a Trollop), and then deconstucting that stereotype by making that character a ‘real’ person.

In his Phule’s Company world, the characters are as about as farcical on the surface as can be.  You have the rich Captain Jester, who’s attempts to try and save the world are confounded by the fact that he just tries too hard. Mother, the communications expert who can’t talk in the physical presence of anyone else. Chocolate Harry, the tough rocket-biker who constantly cuts black market deals to get supplies.

Like Myth Adventures, the characters in Phule’s Company are not only carefully fleshed out into real people beneath their stereotypes, but the way that Phule works with each of them to take advantage of their talents, and to make them work as a team to overcome their “disabilities” is both funny and deeply heartwarming.

Especially for those of us who manage people or are put into leader roles, it’s like a romantic comedy of leadership.  A little silly, not real in the way an instruction book would be, but real in that you can feel how the relationship Jester has with his people connects with the relationships of people you work with.

Plus the plot has good old fashioned mystery, capers, and that delight when a dozen loose ends all tie up together in the end in a hilarious way.

Linguistic Capers with Harry Harrison

Next on the list is Harry Harrison, an author who has a pretty diverse set of works – his West of Eden series makes my “Recommended with Reservations” list.  His short story Make Room! Make Room! was the basis for the Charlton Heston classic Solyent Green. However, he is primarily known for the Stainless Steel Rat series, which is considerably lighter and funnier than his other works.

Like the other authors on this list, Harrison manages to expertly balance humor and darkness.  For example, “Slippery Jim” diGriz, the eponymous Rat, falls in love with a psychopath, and only after capturing her is she reformed with sci-fi technology so that they can be together.

While later works in the series feel a lot like a sci-fi combination of LeverageOcean’s 11 and The A-Team, the early stories paint a vivid picture of what it takes to be a criminal in the future, where technology has rendered crime obsolete.  Like anime hero “Lupin III”, Slippery Jim is a lovable thief, who uses his talents, willingly or not, for the betterment of the galaxy.

His family, including wife Angelina, and sons James and Bolivar, are solid characters, and although they never get expanded into really deep characters, they are fond friends to readers especially upon repeated readings.

The relationships, capers, and the humor stand up well to repeated readings, and that’s is quite a feat.

Finally, Harrison inspired me in my college years to learn Esperanto, which is used heavily throughout the SSR books.  Learning Esperanto, like all the linguistic things I did in college, expanded my appreciation of language and communication, and set me up to be able to learn both real and computer languages in a way that learning “traditional” languages would not have.

Spider Robinson’s Utopian Drunks and Whores

If you are sensing a theme here, it’s that these are all sci-fantasy books that concentrate more on what people are like in the future or an alternate reality than what technology or the world is like.  Spider Robinson is no exception.

Following in the footsteps of Heinlein, Robinson wonders what kind of world it would take to really let people get along.  His answer is twofold – a bar, and a brothel.  His main Callahan’s series focuses on the bar, while his side works, Callahan’s Lady and Lady Slings the Booze focus on the brothel.

The conceit of the stories is that Mike Callahan and his wife Lady Sally are aliens, who chose to spend their time on earth running a bar and brothel, respectively.  It sounds a bit cheesy, and it is, but in the end, it just feels sweet.

It’s hard to argue with the idea that those two places might be the settings for a pair of fantastic urban utopia – they are certainly the places that many people go to seek out happiness.  While the bar stories are good, and a little closer perhaps to “hard” sci-fi, it’s the brothel stories that really captured my imagination, and keep me reading them over and over.

They are sweetly sexy, sure, but they also create a world where needs get met, and not just sexual ones.  And the characters are delightful.  The working girls, the boy-maid, and Lady Sally herself are people you know in prostitute form.  You want to hang out in Lady Sally’s parlor, even just to swap puns with the priest.  Ah, that’s a good point – Robinson is a master punster, so if such things offend, best read elsewhere. 🙂

The books are both collections of short tales; but they read more like a season of a TV show rather than a short story collection.  The stories build and influence each other, and allow a greater variety of interactions than a time-boxed narrative would.

I think Lady Slings the Booze is the better book, but you really need to read Callahan’s Lady to get the background (and it’s also very good).

Laumer’s Satirical Knight

Keith Laumer was a U.S. Ambassador before he was a sci-fi novelist, and he doesn’t shy away from telling his “horror” stories of the diplomatic corps thinly disguised as fantastic tales.

While all the Retief novels and stories are good, his “origin story” Diplomat-At-Arms, which was published in Issac Asimov’s Cosmic Knights collection is one of those stories that just makes you giggle and dance and read it over and over.

Jaime Retief is a superhero; a diplomat who has no problem scrapping with the bad guys all over the galaxy. And while his larger-than-lifeness could get silly after a while, the fact that he has to deal with his meddling and incompetent boss constantly balances him nicely.

He feels like the Indiana Jones of diplomacy; equally at home at the negotiation table as well as leading revolutionaries to conduct a coup – especially while his boss is trying to negotiate a peace between the government and revolutionaries.

Laumer is a master, like all the authors on this list, of telling a simple human story, set in a fantastic world with heroes that struggle to do the simplest things; but manage the impossible with ease.  As some of the older works on this list, the Retief novels age a bit roughly from their early 70’s-80’s perspective, but any student of history finds this more spice than anything else.

So there you go!  Six books (actually a lot more than that, since all of these are series as well) that you should get to know!  May they become your friends too!

Sep 17

Great American Beer Festival 2010!

GABF Logo
Kim and I went to the Great American Beer Festival this year, for the first time.
 
I’d tried to go in the past with various friends, but the massive crowds and general drunkenness turned me away, despite the desire to try so many great beers in one place.
 
Since I’ve been homebrewing this year quite a bit, I decided that I’d look into it again, and see if there was a way we could figure out to enjoy it.  Turns out, we’re not the only ones that would like something a bit smaller and quieter, and I found the Farm to Table Pavilion.
 
Essentially, it’s about 10 booths, each serving 1-2 appetizers or desserts, paired with 2 beers.  It didn’t seem like a lot when we started, but 20 food items (even small ones), and 20 beers (even in the 1-oz tasting glass they give you) is still quite a few. Especially when you go back and try your favorites more than once. 🙂
 
All the food is made as local as possible, right off of local farms.  Kim has been big into ‘Eat Local’ for a while now, so this was right up her alley.
 
Knowing we’d be trying a lot of beers, and wanting us both to be able to do so, I secured accomodations at downtown botique hotel “Hotel Monaco” for the evening.  So we met up in our room there around 5PM, freshened up, and then walked over to the convention center.
 
We are American Homebrewers Association members, so we were able to go into the “Members Entrance”…so we didn’t have to wait around outside the convention center, but we still had an amazingly long line to wait in before going into the hall.
GABF Entry Line
GABF Entry Line
To be fair, they have a pretty solid process, and a goodly amount of volunteers to check tickets, IDs, band people, get them tasting glasses, and get them into the hall.  But it’s a crazy amount of people, all of whom want to get right in at 5:30 and start drinking!
 
While one of the longest queues I’ve been in outside of my trip to Russia in 1990, it was also one of the fastest moving, so kudos to the GABF staff and volunteers.
 
We had to go through the main area to get to the Pavilion, which was basically a large chunk of hallway on the back side of the main convention area.  This experience proved to me why we hadn’t gone in previous years – it was insanely loud, and very very crowded.  Especially at the beginning, around 6PM when we finally got into the hall from the giant line outside, before the crowd was…pliable.
 
But we made it to the back, where it was blessedly quiet.  Apparently, going to the pavilion makes you a VIP, so they handed us goody bags with nice GABF leather coasters, and some advertising.  Which we then had to carry about for the rest of our time there.  Next time, we’ll get the goody bags on the way out. 🙂
 
And then we proceeded to eat and drink our way through the pavilion!  They had 4-5 cocktail tables that you could stop and eat at, and several low cube stool/couch things you could sit on.
 
Homebrewing pioneer Charlie Papazian’s daughter and granddaughter were hanging out on one of the couchlets for the whole time we were there.
 
We wished there had been more cocktail tables, even 2-3 more would have made it more comfortable to stand and eat.  But once we got into the rhythm of it, we could find an empty or sharable table quite easily.  We had some lovely conversations with beer  podcasters from Texas, a homebrewer from Highlands Ranch, and a nice older couple from Kiowa.
 
About halfway through, we were getting pretty tired of standing about, so we went out onto the deck that overlooks Speer.  It was a beautiful night, and they had tables and chairs you could sit and chillax at.  We watched traffic and the sunset for a bit, and chatted with a couple from Kansas who’s son was the Brewer’s Association graphic designer.
 
Back in we went to finish out the second half.  By the time we’d finished the last table, we were surprisingly full!  We went back into the main hall, there were a couple of recommendations we’d gotten from folks to try, and we hit those up on the way out.
 
We took a pedicab back to the hotel, and had a blessedly quiet night after the cacophany of the main hall!
 
The beer standouts:
  • Tim: Denver-Based Strange Brewing Company’s Cherry Kriek (Main Hall)

  • Kim: Victory Brewing’s V-12 (Farm to Table)

The Food Standouts:
  • Triple M Bar Ranch Lamb Polpette, Mint Pesto, Goat Cheese, Curry Pinenuts, Micro Basil, Balsamic Reduction (ironically made by Panzano, the restaurant in the hotel we were staying in)

  • Dessert: North Fork Valley Apple & Pine Nut Tartlets with Beer Caramel (Also Panzano)

Overall, we thought the pairings to be…odd.  Great beers, great food, but the portion sizes and ability to eat one bite at a time while standing up made some of the pairings hard to grasp.  Even when we could, the pairings sometimes seemed weird.
 
 Some of the food was so mild, and the beer so Imperial and heavy, that the pairings didn’t quite line up.
 
We had a great time though, and we both would love to go again next year!
 
Here’s the details on the rest:
 
Ninkasi Brewing:
Radiant
Kim +++.5
T ++
Oskar Blues:
Hoppy seconds
K ++++
T +++
bacon good, spent grain cracker good
Ten fidy
T ++
K +
Victory Brewing
V12
T++.5
K +++++
Sausage is very very good, slaw is tasty
Pate is meh
Pickled onions good
Helios beer is funky (almost as funky as golden monkey!)
Rogue Brewing
Chocolate stout
Tim +++.5
Kim+++
qionua salad bland lame
Juniper pale ale
Tim +++
Kim +++
corn cake good, tomatillo sauce great!!
Smoked trout on corn cake meh
Sweetwater Brewing
Happy ending
T ++
k ++
quesadilla
Doughy, goat cheese not quite present enough
Dank tank
K +++.5
T +++
Esther nose is good
Odell Brewing
Woodcut
K++++
Tim +++
polenta + mushrooms buerre blancy, woody
Tongue of fire stew very good.  3rd so far!
Cutthroat Porter
T +++
K drunk now!
Stone Brewing
Tripple
T +
K +++.5
Spice cake- meh
Rosemary Bison Burger – omg!!!! A little dry, but very good
Saison – wow hoppy!
K ++
New Holland Brewing
Dragon’s Milk
K ++ (for name)
T ++ (choked on it!)
Charkoota Rye
T +++ smoky goodness!!!
Ska Brewing:
Nut brown
K +++
T ++
rosemary bison burger good, dry
Out in the Hall:
Strange Brewing:
Cherry kreik sour cherry!
Tim ++++
Pizzaport:
Bacon and eggs coffee stout.
Tim +++