For example, I had noticed that the Kettledrum part generally mirrored a couple other parts in the score. And the instrument I had created for the Kettledrum, sounded a bit like another instrument I had. So I went through and either cut or merged the entire part, or reassigned it's part to another instrument played at a lower octave.
I also went through and tried to standardize as many of the velocity/volumes as I could. I decided that in general, I'd allow two volumes, the default, and 30. There were some concessions I made for artistic reasons. If I felt an echo or a crescendo was particularly important I'd allow other volumes. But the idea was that a listener might not really notice a difference between a crescendo slowly moving up individual volume values, and one that just used 10, 15, 20, 30, 40, 50 and 60. But this might take a crescendo from 32 different note-velocity/volume combinations to just seven.
I also eliminated extra channels where I could. For example, in Skaven's original introduction, he used three channels for the hi-strings. I cut one out figuring that two notes would build up enough of a chord to sound okay. This killed off a few of Clinkster's "virtual" channels, shaving more bytes.
I also simply eliminated notes. For example, there's this wonderful cycle that Purple Motion starts his section with.
Bass
00 C#3 01 ..
01 ... .. ..
02 C#3 01 ..
03 ... .. ..
04 C#2 01 ..
05 ... .. ..
...
...
...
60 B-2 01 ..
61 OFF .. ..
62 B-1 01 ..
63 OFF .. ..
I know that musically, the B-2 and B-1 at the end of the pattern (positions 60-63) is just a lead-in into the next go around to the notes at positions 00-04. They're less musically important than the C#s. So I simply cut them out.
Another example from the Purple Motion section.
Solobrass
00 C#3 05 ..
01 ... .. ..
02 C#3 05 ..
03 ... .. ..
04 C#4 05 ..
05 ... .. ..
06 C#3 05 ..
07 ... .. ..
08 C#3 06 ..
09 ... .. ..
10 C#4 06 ..
11 ... .. ..
12 C#3 05 ..
13 ... .. ..
14 C#5 05 ..
15 ... .. ..
Was turned into this.
Solobrass
00 C#3 05 ..
01 ... .. ..
02 OFF .. ..
03 ... .. ..
04 C#4 05 ..
05 ... .. ..
06 OFF .. ..
07 ... .. ..
08 C#3 05 ..
09 ... .. ..
10 C#4 05 ..
11 ... .. ..
12 OFF .. ..
13 ... .. ..
14 ... .. ..
15 ... .. ..
00 C#3 05 ..
01 ... .. ..
02 OFF .. ..
03 ... .. ..
04 C#4 05 ..
05 ... .. ..
06 OFF .. ..
07 ... .. ..
08 C#3 05 ..
09 ... .. ..
10 C#4 05 ..
11 ... .. ..
12 OFF .. ..
13 ... .. ..
14 ... .. ..
15 ... .. ..
I did this kind of note shaving everywhere I could. And finally got it down to Cut Iteration 6, the smallest the song would get and 3,653 bytes from where I started at 4,345 bytes. That's right the first 9 minutes of the Second Reality soundtrack in just hair over 4k.
At this point, Seven was still hacking away at Crinkler/Clinkster (we were attacking the problem from both ends) and building new versions of the production. We were getting really close and he was working non-stop.
No comments:
Post a Comment