Last time, we looked at effects that impact a single note or channel. Using the exact same interface, we can also employ effects that impact the entire song! You’ll also see how to use them in our demo song.
These effects all impact the entire song’s sound or the structure of the song itself. Don’t forget you can always double click the effect cell to bring up a handy UI for editing the settings. There’s no need to memorize a bunch of bit masks and hex codes!
Tempo
Format: Fxx
The speed of your song can be adjusted by placing the Fxx on any channel’s effect cell. The default is F07. F01 is as fast as a song will go. Most songs won’t go above F0F, but you can make glacially slow songs if you want.
Oftentimes, you’ll just set this at the start of the song and forget it. But you can also use them in succession to make a swing groove. A swing groove is when some notes have just a fraction more or less “time” assigned to them than the other notes. You can see an example here and hear how it sounds.
You can also use it to make a slowing down ending like in the Super Mario Bros game over, or speed up like the Sonic drowning warning jingle.
Pattern Break
Format: Dxx
Sometimes you want to continue onto the next pattern before all 64 notes have played. It could be that you have a short one-time intro, like a drum roll, that goes into the main portion of the song. You use break to say “after playing this row’s notes, immediately go to the next order.” The xx parameter tells you what row to start on in the pattern it jumps to. Usually D01 makes the most sense to start at the beginning of the next pattern.
Jump
Format: Bxx
Jump works similar to break but instead of going to the next order set, you proceed to the order set you specify with the parameter. It will always start on the first row of that order set. It also fires AFTER playing the row you have it on. This can be used to create loops of your song after a certain point. A common use is to have a one-time intro play and then proceed into a loop (the intro will never play again). It also works the other way. You can have a one time jingle play and then loop a silent empty loop so no more music plays until you fire off another song (good for ending levels or game overs).
This file has a one-time fanfare which then proceeds into a silent loop, essentially meaning the fanfare will only ever play once no matter how long the player lingers on the scene it plays over.
Panning
Format: 8xx
Besides the Wave channel, the other thing that sets the DMG sound chip apart from the NES is the option to use stereo. The stereo is not perfect, the options are only hard left, right or both. Modifying the settings also causes a small click. The parameter uses bit masking to make a list of on or off values for each channel’s left or right. Don’t worry too much about the math, just double click to use the UI. Many composers and gamers don’t care for the stereo feature. If you aren’t wearing headphones you will just hear mono anyway. Personally I think it can give the music a lot of depth.
Updating The Sample Song
Now that we have these new tools in our possession, we can make the final update needed for the demo song! The speed was never right, so now, we just put F04 at the start of the song in the noise channel and the song is complete!
For an extra credit assignment, try putting the CH1 drum tolls into the opposite stereo side every other time they play.
Beatscribe has composed and produced soundtracks for games on Nintendo DS, Nintendo Switch, PS4, Xbox1, Sega Genesis and numerous iOs and Android games for over a decade, but his true passion is creating epic moods on ancient hardware like the Game Boy and NES.