N64 Audio Tuning Guide

Speed Upgrades

Please optimize CPU to minimize the RSP task list.

Step 1. Basics

  1. Reduce pitch conversion as much as possible. Although no one method is preferred over another, where necessary, convert in a manner that will change the pitch slowly.
  2. Improve cache effectiveness by increasing the size of the DMA buffer. Reducing the number of revolutions in a large DMA is decidedly more effective than using numerous smaller DMAs.
  3. The effects should not be too elaborate (e.g., echo filter processing, reverb).
Step 2. Using SGI sound and sequence players
  1. Do not use pitch bends very often, and do not use them close together.
  2. Do not use detailed fade-ins and fade-outs.
  3. Do not sound a continuous string of short musical tones. These three (A~C) involve numerous pitch and volume conversions that require many task lists and lengthy RSP processing.
  4. Make the release time as short as possible. This pertains to B. above. A short release time is preferred to avoid wasting physical voices.
  5. Do not create the percussion installment using a key map. Searching for waveform data allocated in the map takes too much time.
Step 3. Using customized players

Creating Synthesizer Drivers

  1. Do not rewrite unchanged parameters. This will reduce calculation time. However, enough additional RAM is necessary.
  2. Synchronize the timing of parameter changes. This shortens the task lists.
  3. Make the callback intervals uniform. (Sacrifice the time base.)
  4. Select a value that does not cause variance in the number of a player's callback revolutions during 1 frame. Perform C and D to avoid detailed processing during a short time.
  5. To the greatest extent possible, execute voice management yourself. Make the CPU, not the driver, execute voice allocation from virtual to physical voices.
Step 4. Acceleration through coordinated operation with graphics
  1. By using a RDRAM FIFO buffered microcode, the RSP wait time is used more effectively. Usually, the RSP processing time is shorter than the RDP processing time.
  2. Create Audio using 2 frames. If there are 30 game frames per second or less, audio processing time is reduced by doubling all of the buffers.

Required RAM upgrades

Step 1. Make reductions to current state
  1. Reduce the waveform cache (DMA buffer) to its minimum. This reduces CPU speed.
  2. Reduce the number of ADPCM prediction factors. Do this when using the tabledesign tool.
  3. Minimize the amount of RAM used by loading the minimum required data at each frame instead of loading the data for several frames at one time.
Step 2. When creating player types yourself
  1. Customize bank file formats. As long as the ALWave Table structure exists in the synthesizer driver, any format will do.
  2. Customize the sequence format. Compressing the SGI compact sequence player format is best.
  3. Convert two players' functions into one. Separate sound and sequence players are not necessary.
Step 3. Selecting optimum sampling rate

The RSP can process a maximum of 160 samples per frame. If the maximum number of samples to be processed per frame is slightly smaller than a multiple of 160, the command list can be shortened and the overhead that is needed by RSP processing may be kept to a minimum.

If, for example, 640 samples are required to be processed, the command list is divided into 4 processes (frames) of 160 samples each (160 x 4 = 640). Therefore, the RSP processes 4 times and there is no waste in the process.

If on the other hand 650 samples are required and the command list is divided into 5 processes of 160, 160, 160, 160, and 10 samples, the RSP must process 5 times. The last process occurs for only 10 samples. This is a waste of processing time.

For example, when RSP processing uses three subframes, the following results are obtained.

160[samples] x 3[subframes] x 60[frames] = 28800[Hz]

If approximately 27 KHz is selected, the RSP performs 3 processes of 160, 160, and 131 samples. The command list buffer can be shortened and the waste of processing time is held to a minimum. However, the user must customize the audio player and adjust the callback interval.


© 1999 Nintendo of America Inc.