SPU Voice Onset and Pitch
Measures the first output samples of an SPU voice after key on when its first ADPCM block is a ramp or one constant value at pitches 0400h to 2000h.
| Machine | SCPH-5501 |
|---|---|
| Program | followup13 |
This is an old revision of this page, as edited by RemmyLee at 05:40, 23 October 2026. Edit this revision | Latest revision
Overview
The program uploads a sound of four ADPCM blocks by DMA and lets the write drain for 3,000 cycles before it stops the transfer. The first block holds a ramp of 28 samples, from -8 up to 7 and back down to -4, or 28 samples of the value 7, both with shift 0 and filter 0. The next two blocks are silent and the fourth carries the end flag. Voice 1 is keyed on with ADSR attack rate 0 and decay and sustain Fh, at pitch 1000h, 0800h, 0400h and 2000h. The program then reads the voice 1 capture buffer and prints 28 samples, starting 4 before the first sample that is not zero.1
See also:
Results
With the block of one value, the first two samples from the onset were 30CEh and 619Dh at every pitch (619Eh at pitch 0400h), and the third was 6F8Eh. The output then held near 6F8Eh and fell to 6F87h within the printed samples at pitches 1000h, 0800h and 0400h. At pitch 2000h the output held 6F8Eh for 10 samples, then read 5EE9h for one, and the output was zero from the next sample on.1
With the ramp, the output rose and fell in nearly equal steps, and the size of the step followed the pitch. At pitch 1000h the step was about 0FEFh. Each halving of the pitch halved the step, and pitch 2000h doubled it.1
| Pitch | Samples | Step |
|---|---|---|
| 0400h | A067h, A463h, A860h | about 03FCh |
| 0800h | 0006h, 07FFh, 0FF5h | about 07F8h |
| 1000h | 0FF5h, 1FE4h, 2FD3h | about 0FEFh |
| 2000h | 0FF6h, 2FD6h, 4FB6h | about 1FE0h |
At pitch 1000h the ramp reached 6D2Eh and 6D26h at its top, where the block of one value 7 reached 6F8Eh. At pitch 2000h the ramp ended with E017h and CC1Bh, and the output was zero from the next sample on.1
Runs
3 October 2026
===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
1 tests
A chain program, linked at 80100000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 00000000 TAR 80022A28 DCIC 00000000 BadVaddr 00000480 BDAM 00000000
BPCM 00000000 SR 00000000 Cause 00000020 EPC 80023594 PRId 00000002
===== 01 SKR F13 KEY ON RAMP | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 00000480
Key on, voice 1, ADSR attack 0, decay Fh, sustain Fh, the blocks uploaded and drained:
block M a ramp, then of one value. Capture samples from 4 before the onset.
ramp, pitch 1000: onset at 311:
0000 0000 0000 0000 DD26 C83E D037 E027 F018 0006 0FF5 1FE4 2FD3 3FC2
4FB1 5FA0 6D2E 6D26 5F90 4FA1 3FB2 2FC3 1FD4 0FE5 FFF7 F008 E019 D02A
ramp, pitch 0800: onset at 95:
0000 0000 0000 0000 D62D B354 B057 B850 C047 C840 D037 D830 E027 E820
F017 F810 0006 07FF 0FF5 17ED 1FE4 27DC 2FD3 37CB 3FC2 47B9 4FB1 57A8
ramp, pitch 0400: onset at 385:
0000 0000 0000 0000 D2B1 A8DC A067 A463 A860 AC5B B057 B453 B850 BC4B
C04B C447 C843 CC3E D03A D436 D832 DC2D E029 E424 E821 EC1C F018 F413
ramp, pitch 2000: onset at 173:
0000 0000 0000 0000 EB18 F214 0FF6 2FD6 4FB6 6D35 5F96 3FB6 1FD6 FFF7
E017 CC1B 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
one value (7), pitch 1000: onset at 477:
0000 0000 0000 0000 30CE 619D 6F8E 6F8E 6F8E 6F8E 6F8E 6F8E 6F8E 6F8E
6F8E 6F8E 6F8E 6F8E 6F87 6F87 6F87 6F87 6F87 6F87 6F87 6F87 6F87 6F88
one value (7), pitch 0800: onset at 265:
0000 0000 0000 0000 30CE 619D 6F8E 6F8E 6F8E 6F8E 6F8E 6F8E 6F8E 6F8E
6F8E 6F8E 6F8E 6F8E 6F8E 6F8E 6F8E 6F8E 6F87 6F87 6F87 6F87 6F87 6F87
one value (7), pitch 0400: onset at 49:
0000 0000 0000 0000 30CE 619E 6F8E 6F8E 6F8E 6F8F 6F8E 6F8E 6F8E 6F8F
6F87 6F87 6F87 6F88 6F87 6F87 6F87 6F88 6F87 6F87 6F87 6F88 6F87 6F87
one value (7), pitch 2000: onset at 345:
0000 0000 0000 0000 30CE 619D 6F8E 6F8E 6F8E 6F8E 6F8E 6F8E 6F8E 6F8E
6F8E 5EE9 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
Done.
References
-
^ a b c d SCPH-5501 output: followup13/01SKR.txt and the file beside it.