Sound Processing Unit (SPU): Difference between revisions
| Revision as of 01:40, 23 October 2026 RemmyLee (CONTEXT.md: route images and backups) | Revision as of 02:22, 23 October 2026 RemmyLee (Hardware and system software pages from the Sony manuals) | ||
| Line 1: | Line 1: | ||
| + | --- | ||
| + | title: Sound Processing Unit (SPU) | ||
| + | type: component | ||
| + | summary: 24-voice ADPCM sound source and mixer of the PlayStation. | ||
| + | category: Hardware | ||
| + | --- | ||
| + | |||
| + | ## Overview | ||
| + | |||
| + | The PlayStation sound system is made up of the SPU and the CD-ROM decoder.[^hw43] | ||
| + | |||
| + | The SPU plays ADPCM sample data from its local memory at a sampling frequency of 44.1 kHz.[^hw44] | ||
| + | |||
| + | The CPU operates the SPU.[^hw14] | ||
| + | |||
| + | The SPU has a digital reverb. It also mixes the audio output of the CD-ROM decoder with its own output.[^hw44] | ||
| + | |||
| + | The SPU has the following specifications: | ||
| + | |||
| + | Table: SPU specifications | ||
| + | |||
| + | | Item | Specification | | ||
| + | | --- | --- | | ||
| + | | Sound data format | ADPCM | | ||
| + | | Number of simultaneous sounds (number of voices) | 24 | | ||
| + | | Sampling frequency | 44.1 kHz | | ||
| + | |||
| + | ## Sound Buffer | ||
| + | |||
| + | The sound buffer is a 512KB local memory that supplies waveform data to the sound source. It is not mapped in the CPU address space.[^hw44] | ||
| + | |||
| + | The sound buffer holds the ADPCM sound data. It is also the reverb work area.[^hw44] | ||
| + | |||
| + | The sound buffer also serves as a temporary buffer for sound data on its way to main memory.[^hw44] | ||
| + | |||
| + | DMA can transfer data from main memory to the sound buffer. Sound generation does not need to stop during the transfer.[^hw44] | ||
| + | |||
| + | ## Voice Functions | ||
| + | |||
| + | Each of the 24 voices has its own settings for the functions below.[^hw45] | ||
| + | |||
| + | ADPCM or noise, the left and right volume and reverb on or off are set voice by voice.[^hw44] | ||
| + | |||
| + | ### Pitch Transformation | ||
| + | |||
| + | The pitch of ADPCM sound data can be varied from -12 octaves to +2 octaves. Steps of a half-tone or less can be set.[^hw45] | ||
| + | |||
| + | ### Pitch Variation by Time | ||
| + | |||
| + | The volume of one voice can vary the pitch of the next voice. The final pitch is NewPitch(n) = (1 + V(n-1)) Pitch(n).[^hw45] | ||
| + | |||
| + | V(n-1) is the volume of voice n-1, which varies with time. Pitch(n) is the pitch originally set for voice n.[^hw45] | ||
| + | |||
| + | ### Noise Source | ||
| + | |||
| + | The SPU has a noise generator that uses pseudo random numbers. Any voice can use the noise source in place of ADPCM data from the sound buffer.[^hw45] | ||
| + | |||
| + | The noise generation clock sets the noise tone.[^hw45] | ||
| + | |||
| + | ### Envelope | ||
| + | |||
| + | The envelope has separate rates for attack, decay, sustain and release. The sustain level can also be set.[^hw45] | ||
| + | |||
| + | Each envelope rate follows a linear curve or an exponential curve. Decay uses the exponential curve only.[^hw45] | ||
| + | |||
| + | ### Volume | ||
| + | |||
| + | Volume variation is set apart from the envelope.[^hw46] | ||
| + | |||
| + | The volume can stay constant or change by one of the following: | ||
| + | |||
| + | Table: Volume variation | ||
| + | |||
| + | | Variation | | ||
| + | | --- | | ||
| + | | Linear increment | | ||
| + | | Linear decrement | | ||
| + | | Reverse indexed increment | | ||
| + | | Indexed decrement | | ||
| + | |||
| + | ## Reverb | ||
| + | |||
| + | The digital reverb uses the sound buffer as its work area.[^hw46] | ||
| + | |||
| + | Reverb is set on or off for each voice and for the CD input.[^hw46] | ||
| + | |||
| + | ## CD-ROM Decoder Input | ||
| + | |||
| + | The CD-ROM decoder plays audio from CD-DA or CD-ROM XA data. Its output enters the SPU and is mixed with the SPU output.[^hw43] | ||
| + | |||
| + | The mixed signal passes through the reverb unit to become the final audio output.[^hw43] | ||
| + | |||
| + | The decoder has a built-in mixer of 4 attenuators. The attenuation of each one sets the mix of the stereo output.[^hw43] | ||
| + | |||
| + | ## Sound Data Transmission to Main Memory | ||
| + | |||
| + | The SPU writes two kinds of data to a fixed area of the sound buffer at every sample (44.1 kHz).[^hw46] | ||
| + | |||
| + | The first is the CD input after its volume is applied. The second is the output of 2 specific voices after their envelopes are applied.[^hw46] | ||
| + | |||
| + | DMA can transfer this data to main memory for processing.[^hw46] | ||
| + | |||
| + | ## References | ||
| + | |||
| + | [^hw14]: Sony Computer Entertainment Inc. PlayStation Hardware. August 1998. Page 1-4. | ||
| + | [^hw43]: Sony Computer Entertainment Inc. PlayStation Hardware. August 1998. Page 4-3, Figure 4-1, Figure 4-2. | ||
| + | [^hw44]: Sony Computer Entertainment Inc. PlayStation Hardware. August 1998. Page 4-4, Table 4-1, Figure 4-3. | ||
| + | [^hw45]: Sony Computer Entertainment Inc. PlayStation Hardware. August 1998. Page 4-5, Figure 4-4. | ||
| + | [^hw46]: Sony Computer Entertainment Inc. PlayStation Hardware. August 1998. Page 4-6, Figure 4-5. | ||