Your download got filtered out by windows virus scanner and I didn't want to take the effort to try it get around it. Probably because of the script. Whatever. So I didn't get to listen =(
Noise has a completely different score format since it doesn't really play "tones" like the other channels do. The only things that are the same are F8/FD/FE (loop and subsection commands). Other stuff is changed or removed completely. Ctrl+F the readme for "NOISE SCORE FORMAT:"
It basically operates on the idea that you'll have a bunch of "effects" that you'll want the noise to play. Like a snare drum, or whatever would be one effect. The details for this effect would be put in the noise effect buffer at offset 0x3D810. I have a really ugly effect in there which is there just so I could do basic testing.
The effect data goes in what I call "slots", but that's kind of a misnomer. Really I just wanted to avoid a pointer table, so all effects have to start on a $10 byte boundary, and the "pointer" is the effect ID. That is, effect $10 (the first effect) starts at 3D810, $11 (2nd) starts at 3D820, $12 starts at 3D830, etc. Apart from the starting point, and being restricted to the 3D810-3DC0F range, there isn't really a boundary on individual effects. So a single effect can take $100 bytes if you want.
Ctrl+F the doc for "NOISE EFFECT FORMAT" to see how the effect data is stored. This requires a bit of understanding of how the noise APU registers work -- but it's pretty simple.
full reference:
http://wiki.nesdev.com/w/index.php/APU_NoiseFor a simplified version, you can ignore the length counter by disabling it, and just control the channel 100% through the volume. If that reference page is too dense, here's a breakdown:
$400E sets the pitch and the mode. Noise can only play $10 pitches... controlled by the low 4 bits. Higher pitch values = LOWER pitch. So a pitch of $0 is a really really high pitched "ting" sound... whereas pitch $F is a deep rumbling.
$400E.7 (high bit) selects the mode. When clear, you get the traditional "shhhh" style noise. When set, you get a "bzzzzz" style noise. A popular example of the "bzzzz" noise is quickman's theme in MM2:
https://youtu.be/uGuHOyiYOTA$400F kind of doesn't matter unless you use the length counter... which you probably won't. It's entirely optional. Length counter is like an automatic shutoff for the channel after a certain period of time. But it might be easier to control that through a volume change. Unless you want to deal with the length counter, you can just set this to $10 to give the longest length possible.
$400C is volume control, and is kind of tricky. There's basically 3 volume effects:
- Normal/Fixed volume control = $3x where x is the volume
- Volume that starts and F and decays to 0 and stops at 0 = $0x where x is the decay speed (lower=faster)
- Volume that decays F->0, but with wrapping: FEDC...3210FEDC... etc = $2x where x is decay speed
$1x will be fixed volume but with length enabled -- so you don't need it unless you want to use the length counter.
The noise effect data is just the values to write to each of these regs.
I have no idea if this will actually produce a cymbal-like sound (you'll probably have to experiment), but say you want to make a cymbal with the following writes:
$400C = 3F fixed full volume
$400E = 05 medium/high pitch
$400F = 10 don't care about length
<<wait 4 frames>>
$400C = 02 reasonably fast decay
$400E = 06 slightly lower pitch
$400F = 10 still don't care about length
<<wait 1 frame (minimum)>>
<<end of effect>>
This effect would need $0C bytes in the effect buffer:
04 3F 05 10 01 02 06 10 00 FF 00 00
The first 4 bytes being the first set of reg writes
The next 4 being the next set
And the last 4 being the "end of effect" marker.
Say you put this as the first effect... so those 12 bytes are at offset 3D810. You would trigger this effect in the music score data with the "perform effect" command 10, followed by a 0x 'wait' command... where 'x' is the tempo-controlled note length used by other channels.
So if note length 0 was a single beat, and you want your noise to play this cymbal every 4 beats, your score could look like this:
10 00 00 00 00 FD 00 xx yy