Practice Mode Audio

Practice mode in GH2 involves three speeds (slow, slower, slowest), each with their own VGS files. These correspond to 85% speed, 65% speed, and 50% speed, respectively (generally, I'll get back to that). Rather than being slowed down, they're pitch-shifted, and when the game slows them down, they get stretched back to their normal pitch.

If you have split audio (stems), I'd highly recommend building these for that extra bit of polish in a custom. (If you don't, you can't use any of this anyway, so disregard.)

Building practice mode audio

To build practice mode audio, take the guitar and bass stem into your audio editor and fold them down to mono if they're not already. Channel mappings should match the songs.dta definition (either the one you're pasting the song over or your new one). I think Harmonix normally has bass on channel 0 and guitar on channel 1, but I build it backwards and remap just because it feels better. Either way, should be a stereo track, bass in one ear, guitar in the other ear.

One final bit of housekeeping: I find that practice stems need a weirdly high amount of headroom or else they crackle. Normalize them both to...I'd say -1.5db for best results. From there, it's just a pitch shift.

Now, since I wrote this page initially, I've done some experimentation into what pitch shift algorithm sounds the best, as Audacity sure wasn't cutting it for me. I mean, it'll work, but there's a crunchiness to it that I'm not especially fond of. These days, I use REAPER's Elastique 3.2.3 Pro algorithm, which is the default for new projects, I believe, unless they changed it and I'm just using a really old version of it. (You can change the algorithm in File > Project Settings, or Alt+Enter.)

In REAPER

Duplicate your stereo guitar/bass file onto three tracks, select a region, and press F2 to bring up the Media Item Properties. Check for two settings, the "Pitch adjust (semitones)" text box and the "Volume/pan" sliders. You can find how much to shift by in the table below. I also duck the volume a whole lot (-10db is a bit extreme, but it can't hurt), since REAPER has a weird tendency to blow out pitch-shifted audio. (I then take it back into Audacity and normalize it to -1.5db there.) Then click Apply. Do for all three tracks, pitch-shifting as needed.

REAPER's Media Item Properties dialog

REAPER's Media Item Properties dialog, with _p85 values set and the volume ducked

This took me an annoyingly long time to figure out, but use the File > Consolidate/Export tracks function to get your tracks separately back out as WAV files. You'll need to rename them yourself to _p85, _p65, and so on, since REAPER has no way of setting a naming template for some ungodly reason. (I use it because it's useful, not because I like it.)

In Audacity

Same general process as in REAPER: take your stereo guitar/bass file and duplicate it to three tracks. Effect > Change Pitch is what you want. Audacity lets you punch in a percentage or an amount in semitones, so again, consult the chart below. The "Use high-quality stretching" option will take a lot longer, but it uses a separate algorithm guaranteed to make files that are the same length and sounds a good bit better too, so use it if you like.

Audacity's Change Pitch dialog

Audacity's Change Pitch dialog (that pitch is inaccurate now but too lazy to take a new screenshot)

Normalize, rename the tracks to _p85, _p65, and so on, and then use the File > Export Multiple dialogue to get them back out as WAV files. Then just build them in RockAudio as normal.

Numbers

Here's the chart with the amounts to pitch-shift by. These have been calculated by a few people in the community, and they sound dead on in-game. If you're looking to come up with your own values for some crazy reason, use the formula (1/x)-1, where x is the decimal form of the speed (like .85 for _p85). (Thanks Addy.)

Speed name Percentage to shift Semitones to shift Sample rate
Slow (_p85) 17.647% 2.81 14250 Hz
Slower (_p65) 53.846% 7.57 18375 Hz
Slowest (_p50) 100% 12 24000 Hz
Alternate values
Slow (_p90) 11.111% 1.82 13500 Hz
Slower (_p75) 33.333% 4.98 16125 Hz
Slowest (_p60) 66.666% 8.84 19875 Hz

the _p90 anomaly

For some reason, some of the songs in GH2 have different actual speeds for practice mode. Instead, they correspond to 90% speed, 75% speed, and 60% speed. Here's a full list of those songs:

  • "Can't You Hear Me Knockin'?"
  • "Cherry Pie"
  • "Elephant Bones"
  • "Free Bird"
  • "Heart-Shaped Box"
  • "Last Child"
  • "Radium Eyes"
  • "Red Lottery"
  • "Shout at the Devil"
  • "Sweet Child o' Mine"
  • "War Pigs"
  • "Yes We Can"

Of course, these are also listed in the chart above.

Are the funky sample rates strictly necessary?

Nope! They'll only really amount to a low-pass sound in-game and a slight reduction in file size, thanks to the lower sample rate as compared to your normal VGS. I guess if you want to get really close, use them, but I'm lazy, so I just build these at 32KHz like my normal in-game audio. The quicker speeds also get a nice, audible boost in the high end, so they actually sound a bit more pleasing to me like that.

What if I don't want to build practice mode audio?

Congratulations, you don't have to! GH2 will do an incredibly harsh, low-quality pitch-shift on your normal guitar and bass stems if separate practice audio isn't defined. This is also good if you wanna strip out a bunch of files and save space on an ISO for faster burns. To take advantage of this, take the three song_practice definitions in songs.dta:

(song_practice_1
   (name songs/monkeywrench/monkeywrench_p85)
   (tracks ((bass 0)
         (guitar 1)))
   (pans (0.00 0.00))
   (vols (0.00 0.00))
   (cores (-1 -1))
   (midi_file songs/monkeywrench/monkeywrench.mid)
    (hopo_threshold 250))
(song_practice_2
   (name songs/monkeywrench/monkeywrench_p65)
   (tracks ((bass 0)
          (guitar 1)))
   (pans (0.00 0.00))
   (vols (0.00 0.00))
   (cores (-1 -1))
   (midi_file songs/monkeywrench/monkeywrench.mid)
   (hopo_threshold 250))
 (song_practice_3
   (name songs/monkeywrench/monkeywrench_p50)
   (tracks ((bass 0)
         (guitar 1)))
   (pans (0.00 0.00))
   (vols (0.00 0.00))
   (cores (-1 -1))
   (midi_file songs/monkeywrench/monkeywrench.mid)
   (hopo_threshold 250))

and just delete them. (Mind your parentheses, of course.) You can get rid of the (practice_speeds (100 85 65 50) array altogether too, as GH2 has fallbacks (which are 85%, 65%, and 50%, funnily enough).

If you want to peek at a disc without it, check the songs.dta from the GH2 retail demo. Outside of the first ten songs, none have separate practice mode audio, and the songs work fine, again, albeit with harsh, tinny auto-pitching.