LSDJ Panning Tricks

[#music] [#chiptune] [#lsdj]

October 20, 2023 - 8 minute read

The Game Boy can only pan audio 100% left, 100% right, or 50%/50% (center). This makes adding stereo resolution to LSDJ songs tricky. Here's a technique I like to use to fake it.

The Basic Idea

The trick is based on a pretty simple idea. Much like how you can fake a three note chord by quickly switching between notes, you can fake partial stereo panning by quickly switching from hard panning to center. The difference from a chord is that with panning, you don't oscillate. You start hard panned left or right and then quickly pan center and stay there. That's pretty much it!

You are still hard panning though, and that can limit where the trick is useful. I almost never use it on anything melodic. Even with the quick switch, it's still very jarring on a lead or bass instrument, especially on a real Game Boy where you get a pretty loud click whenever you pan.

But applied in just the right places, it can be great. I love using it on my noise percussion, bloopy pulse arpeggios, and wave channel samples. These places tend to be more rhythmic than melodic, so the pan (and pan click) isn't as noticeable. Once you add the rest of the instruments back into the mix, you can barely notice the panning or clicking. The whole mix just sounds more open!

Some Examples

Here are some examples from my song Melt Me.

I use quick panning tricks extensively for the noise channel percussion in this song, and I'll show that first. I'll show another cool usage in the wave channel later. And finally, it will all come together in a bridge section where I combine panning tricks with hard panned pulse instruments for a really nice, wide sound!

This post is all about subtle stereo enhancements, so I recommend listening to the examples with headphones or a nice speaker setup.

Let's get started!

The Noise Channel

Here's the noise channel from the beginning of the song.

The noise channel with panning

There are a few instruments here:

  • 20 is a metallic pinging noise. It's mono.
  • 21 is a closed hi hat. It's panned "slightly" right.
  • 23 is the snare. It's panned "slightly" left.

Here are the tables for instrument 21 and 23:

The table for instrument 21. Row 0 contains a right pan command, row 1 contains
    nothing, and row 2 contains a middle pan command.
The table for instrument 21 (closed hi hat)
The table for instrument 23. Row 0 contains a left pan command, row 1 contains
    nothing, and row 2 contains a middle pan command.
The table for instrument 23 (snare)

Simple! There's really not much to it, but it packs a big punch. Compare the previous noise channel clip containing panning tricks to one where I make everything mono:

The noise channel with all panning removed
The noise channel with panning again, for comparison

The difference in stereo width is quite noticeable!

...but wait. Does the mono version sound better?

Just listen to the difference in the snare drum. In the mono version, it really pops. But in the panned version, it's kind of weird and "sloppy" sounding.

It's true, in isolation, I think the mono version does sound better. But this trick is for making the whole mix wider. With everything added back in, the slight sacrifice in the noise channel sound makes sense.

Compare the whole mix with a mono but better sounding noise channel to the whole mix with a panned but worse sounding noise channel:

The whole mix with a "better" sounding mono noise channel
The whole mix with a "worse" sounding panned noise channel

Here, the individual difference in noise channel timbre is much less noticeable, and the added stereo with adds a lot to the mix!

The Wave Channel

The wave channel also has a trick up its sleeve. This time, instead of picking left or right for a certain instrument, I use left and right on a single clap sample. Here it is:

The single clap sample, quickly retriggered and panned left, right, and center

In this one, there are no tables involved (more on that later). Instruments 00, 04, and 05 are all the same sample packs. 00 is mono, 05 is hard left, 04 is hard right. I use a fairly long D command to delay the hard left sample until the last microsecond. Right after the hard left sample starts, the hard right sample starts and cuts it off. Then right after that, the full mono sample plays. Listen for the sequence in the slow motion part of the video above.

Like I said above, no tables here. I wrote it this way because I wanted the mono sample to play exactly on the step, so I had to do the panning tricks in the steps before with some clever delay commands and instrument switching. The same thing could probably be done in a table instead, though.

...probably. Honestly, I'm not really sure of the technical details of how this one works. I kind of discovered it by accident. This song has a groove of 7/5, so the usual 6 ticks (on average) per step applies. But the panning trick even works with D0C, which should delay the first playback by a full 12 ticks, completely erasing the right-panned half, right? Even with D0C, you can clearly hear the stereo effect, although to my ear, the overall timing starts to feel off...

The panning trick with suspiciously large delay values

...yeah, not sure. But it sounds awesome. In the full mix, it almost passes for a stereo sample. Here's another mono/stereo comparison:

The clap sample played completely mono in the full mix, then again with the stereo trick

Panning Tricks Combined With Hard Panning

In the bridge leading up to the final section of the song, I add some truly hard panned pulse chords to the mix. This results in a stereo field that, for a Game Boy, is pretty dang nice, dare I say.

There's nothing technically interesting in the pulse channels, they are simply hard panned. So I'll just play the whole thing:

Panning tricks combined with hard panned pulse chords

Loose Ends

Some final notes that didn't really fit anywhere else:

The examples shown here were recorded with an emulator, where the dreaded hardware panning click is much less noticable. On real hardware, the click is a little worse, so the trick is a little worse, but I stand by my claim that it blends in with the overall mix if done right.

To back that up, I can point you to the recording of Melt Me that's on my bandcamp. It was recorded on hardware. However, it was mastered a bit, so it's still not a complete proof of my claim.

With those notes in mind, I hope you can make use of this trick in your own songs! If you want to take a closer look at Melt Me, you can check out the .sav. It should work fine in any recent LSDJ version.