Convolution reverb

It’s weird. All these years of writing music with technology and I’d never heard of convolution reverb or impulse responses until last weekend. I’m sure I’ve used it at one time or another without knowing, but never really knew what it was or how it worked. I was looking for a way to record my amp using the line out and not have it sound like complete crap when I came across some forums about cab impulses.

A couple freeware suggestions for trying this out:

Voxengo Boogex: this is intended as an amp sim, so it also has other features like drive and dynamics, but the speaker sim uses impulse responses. It comes with some default impulses, but it also allows you to load your own. If you turn of all the “preamp” stuff you could use it for reverbs too, although it’s mono.


Freeverb Impulser: the UI is not much to look at but it allows you to chain multiple impulses together, each with independent levels, filters, etc. This would be useful if you were trying to simulate a complex reverb scenario like say, a fly in a jar sitting on a windowsill beside a forest…


Speaking of which, I came across some impulse responses for small spaces like jars (“Claustrofobia”) . Check out these Impulse Responses by Fokke van Saane. I’m not sure what one would do with these exactly, but they sound pretty cool.

The more useful impulses I came across were the more typical ones – natural spaces, guitar cabs and the like. These are some of the nicer ones I found but there are tons more out there.

Update: in action

Here’s an A/B comparison of a direct recording with and without a cab impulse.

The signal chain is as follows:

  1. Fender Strat
  2. EH Memory Man (short delay with mod and low cut)
  3. Fender Vibro Champ XD (Blackface voice, mild reverb)
  4. DI box
  5. Mackie 1202 VLZ mixer
  6. Delta Audiophile 2496

Note: my DI has a speaker level switch so I was using the amp’s speaker out and not the line out.

The second sample was run through Voxengo Boogex with the “Fender SuperChamp AT4050” impulse from Beamsonic. Both samples were run through the Ultrafunk Sonitus compressor.

Shopping etiquette

You know what really grinds my gears? People with bad shopping etiquette.

Examples:

1. People who stop their cart in the middle of an aisle and stand right beside it. What are you thinking? You don’t park your car in the middle of the road. How is this any different? This hardly leaves enough room for one cart to get by, let alone two-way cart traffic. Observe:


I would like to propose that stores that provide carts also provide parking spaces along the sides of aisles. Anyone not using a parking space should be kicked the hell out.

2. Don’t stand so close to me. Everyone needs their personal space and if you’re standing one foot away from somebody in line chances are they’re going to be uncomfortable.

Diagram of Edward T. Hall’s personal reaction bubbles (1966)

Note that 1.5 feet or less is intimate space. Unless you’re trying to get intimate with me, give me my space (and if you are trying to get intimate with me, I’m already taken)

Implementing a logout function in Tapestry 5

I’m working on a couple Java projects right now and so I decided to jump in and give Tapestry 5 a try. So far I’m really liking it, although as many have griped with Tapestry in the past, the documentation is minimal.

As you might already be aware, Tapestry 4 had a RestartService that you could use straight from your page via a ServiceLink. I wasn’t able to find anything similar in T5, and a fair bit of Googling yielded no obvious results on how to implement a logout. Finally I found a way to get at the HttpSession, and from there it’s simply a matter of invalidating it.

Here’s the code for your page/component:

<t:actionlink id=”logout”>Logout</t:actionlink>

Here’s the code for your Java class:

import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.RequestGlobals;
import com.yourapp.pages.Index;

public class Border {
  
  @Inject
  private RequestGlobals requestGlobals;
  
  public Object onActionFromLogout() {
    requestGlobals.getHTTPServletRequest().getSession().invalidate();
    return Index.class;
  }
  
}

Hopefully this will save somebody a bit of time.

How to make NES music

I like video games, music and synthesizers. Nothing brings these three things together quite like the soundtrack from a NES game. Sure, there’s the C64’s SID chip, but alas, I never owned a C64 (side note: check out Quadrasid and Sidstation).

So then, you say you want to write some original NES music? There are some good resources on the web (here’s a starting point), but I wanted to summarize the two main approaches and my experiences.

Use synthesizers

There are a couple important things to keep in mind when using modern synthesizers to write NES music:

  • The NES had 5 channels:
    • 1 triangle
    • 2 pulse (with only 4 duty cycles to choose from)
    • 1 noise
    • 1 D-PCM
  • The NES had no effects or filters, although basic chorus and echo effects could be achieved by using two channels

The triangle and pulse channels are easy enough to simulate, but the noise and D-PCM take a bit more work. My earlier attempts at writing NES music were done mostly with my workhorse subtractive synth, NI Pro53. I also played around with Waldorf Attack to simulate the noise channel, and Bitcrusher to simulate the D-PCM channel, with varying degrees of success.

I recently came across the NES VST pack. It consists of 3 plug-ins: pulse, triangle and noise. The pulse plug-in has a switch to toggle between the 4 duty cycles. The noise plug-in has 2 noise modes and allows you to “sweep” the noise. All 3 plug-ins are quite faithful to the original NES sound chip.


Here’s a little demo I whipped together with nothing but the NES VST pack and the default FL Studio limiter. Update Sept. 09: by popular demand here’s the FL project (you’ll need FL Studio 8 to open it)

Use the actual hardware (or emulation)

If you’ve got a bit of money to spend, Wayfar makes something called the MIDINES. It’s basically modified NES cartridge that runs custom software and provides a MIDI interface to the actual NES sound chip! Check out the demos!

Otherwise, take a look at trackers like Famitracker or Nerdtracker ii. These allow you to create NSF (NES sound format) files which can then be played back with an NSF player. If you’re not familiar with trackers then these will be a bit awkward to use at first, but next to the MIDINES they will give you the most convincing results.

I bought an amp

I picked up a Fender Vibro Champ XD this weekend! It’s part of Fender’s “modified” line, so basically they’ve taken the old Vibro Champ and added some new features.

  • 5 Watt tube “Class A” power amp
  • One 6V6 output tube
  • One 12AX7 preamp tube
  • 8 inch Special Design speaker
  • Voicing knob with 16 different amp voices delivering various clean and overdriven tones for any style of music: blues, rock, country, jazz, metal, and more.
  • 16 effects (some are variations/combinations)
  • Controls: GAIN; VOLUME; VOICE; TREBLE; BASS; FX LEVEL; FX SELECT

I had been using software for the longest time (mostly Amplitube, but Simuanalog is also worth a mention), but was getting annoyed with always being tied to the computer whenever I wanted to play guitar (a wine red Mexican Strat, if you were wondering).

The great thing about this amp is that it has the warmth and characteristics of tubes, but with modern niceties like amp simulation (via the “voices” knob) and on-board digital effects.

Here are the 16 voices:

TWEED
1 A vintage tone based on early Fender® Tweed Champ® amps.
2 A fat vintage tone based on early Fender® Tweed Bassman® amps.
3 Heavily overdriven Tweed tone.

BLACKFACE™
4 A bright vintage tone based on early Fender® Blackface™ amplifiers.
5 A bright, slightly overdriven vintage tone based on early Fender® Blackface™ amplifiers.
6 A bright, heavily overdriven vintage tone based on early Fender® Blackface™ amplifiers.

BRITISH
7 A bright jangly tone reminiscent of early British combo amplifiers.
8 An overdriven vintage tone based on early high-gain British stack amplifiers.
9 A high-gain distorted tone based on modern British stack amplifiers.

HOT ROD
10 A high-gain overdriven tone based on the Fender® Hod Rod® series of amplifiers.
11 A high-gain distorted tone based on specialized boutique amplifiers.
12 More gain, more sustain!

METAL
13 A darker super high-gain scooped metal tone.
14 A sustained super high-gain scooped metal tone based on modern heavy metal amplifiers like the Fender® Metalhead™.

JAZZ
15 A clean amplifier tone optimized for jazz styles with the character of the Fender® Jazz King™ amplifier.

ACOUSTIC
16 A super clean amplifier tone with the character of an Acoustasonic™ amplifier
good for acoustic finger-picking.

Here’s a video that shows off some of the voices (the video was made with its bigger brother, the Super Champ XD, but the voices and effects are the same). There are also some clips on the Fender site.

As others have commented, an effects loop would have been nice. The on-board effects are decent enough, but limiting (i.e. 3 delay lengths, 2 chorus speeds, etc.). Either way I’m loving this amp, especially given the price ($250!). For a 5W with an 8″ it’s surprisingly loud. I haven’t been able to turn it up past 2, although I’m looking forward to it.

In case you were curious, the last time I owned an amp I was still in high school. It was an absolute beast – solid state Peavey Renown 2×12. Loud as hell.