Japanese
HARDWARE ManualSCSP User's Manual
BackForward
SCSP User's Manual/4.2 Sound source register

■When using the FM sound source method

The FM sound source method is a method that performs modulation by adding the output of a different waveform generator to the phase input of one waveform generator. FM voice synthesis is realized by a waveform calculation unit called a slot.
Figure 4.12 shows a block diagram of the slot.

Figure 4.12 Slot block diagram

In order to output sound from the slot, write the waveform data for generating the slot onto the waveform RAM. Furthermore, set the waveform read address, loop start address, loop end address, sound pitch, sound level, and EG, and start sound by pressing KEY_ON.
SCSP operates as one large cycle of 22.68[μsec].
The PG (Phase Generator) manages the waveform data readout speed, which is determined by the sound frequency setting. Unless the sound frequency is changed, the PG generates a constant value every 1Fs cycle (22.68[μsec]=1/44.1KHz), performs cumulative addition every Fs cycle, and outputs it. This is added to various addresses using the address pointer as shown in Figure 4.13, the resulting value is output to the address bus as a waveform address, and the waveform data corresponding to the waveform address is read from RAM.

Figure 4.13 Waveform address generation calculation section

Figure 4.14 Waveform address generation/waveform data reading

When the oscillation frequency is constant (when the internal generation of PG is constant in all Fs cycles), the address pointer output becomes a straight line as shown in Figure 4.14, and can be read out without changing the waveform on the waveform RAM. .
Although the address pointer appears to be a straight line, it actually performs calculations every 1 Fs cycle, so it draws a step-like trajectory as shown in Figure 4.15. This step becomes the PG's internally generated value.

Figure 4.15 Enlarged view of address pointer output

When the frequency is increased, the PG generated value increases, so the slope of the PG output and address pointer output value (function) becomes steeper.
Conversely, when the frequency is lowered, the PG generated value decreases, so the PG output value and address pointer output value have a gentle slope as shown in Figure 4.16.

Figure 4.16 Frequency address pointer output value
When performing FM voice synthesis, a short cycle waveform is used in a loop. Therefore, the output value (function) of the address pointer will be as shown in Figure 4.17.

Figure 4.17 Address pointer output value when executing FM voice synthesis (1)

Figure 4.17 Address pointer output value when executing FM voice synthesis (1)

Set the start address to address a, set the loop start address value to "0000H", and set the waveform read address and waveform loop start address to the same address. Furthermore, by setting the loop end address so that address b becomes the waveform loop end address, a waveform like the one shown in Figure 4.17 will be obtained.

Figure 4.18 Address pointer output value when executing FM voice synthesis (2)

Figure 4.18 Address pointer output value when executing FM voice synthesis (2)

If the output value of the address pointer is made linear as shown in Figure 4.18 (waveform A), it will be output according to the waveform of RAM (waveform 1). However, when it becomes a nonlinear function (waveform B), the way the waveform is read changes, and waveform 2 is output. When the waveform is transformed in this way, the tone changes.
FM speech synthesis is an application of distorting the waveform by varying this phase value over time. The FM voice synthesis method actually uses a method of adding the output values of other (or own) slots to make the address pointer output value (phase value) nonlinear. Up until now, we have explained the normal mode as an example, but it is also possible to set reverse loop and alternative loop by changing the "LPCTL" register. The loop data that can be specified by the "LPCTL" register is shown in Figures 4.19, 4.20, and 4.21.

Figure 4.19 Normal loop

Figure 4.20 Reverse loop

Figure 4.21 Alternative loop

Normal loop and reverse loop assume that the data corresponding to "LSA" and "LEA" are the same, so please copy the data of "LSA" to "LEA" to create loop data. The alternative loop setting value must be "LSA"< Please set it to be "LEA" ("LSA" in all loops).> (Operation cannot be guaranteed if "LEA" is selected.) Also, by placing duplicate data at the loop start point and loop end point, you can match the pitch of an alternative loop to the pitch of other loop modes. When the loop mode of all waveforms is limited to alternative loop, the data corresponding to "LSA" and "LEA" do not need to be the same value.

A block diagram of how to actually implement FM speech synthesis is shown in Figure 4.22.

Figure 4.22 FM sound source configuration diagram

Each block of the FM sound source configuration diagram is explained below.

SOUND STACK
Stores the output of each slot. SCSP slots can input the output values (data in the sound stack) of two slots.

Averaging calculation section
Each slot has two modulation inputs, X and Y. To combine these two inputs into one, we need to perform addition. In order to prevent the addition result from overflowing, there is a method of multiplying the two inputs by 1/2 and then adding them together.
By adopting this method, SCSP converts two input data into one output data.
If the input data is XD and YD and the output data is ZD, it can be expressed by the following formula.

 Averaging calculation part formula
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ YD XD ┃ ┃ │ │ ┃ ┃ ┌─┴──────┴──┐ ┃ ┃ XD + YD │Averaging │ ┃ ┃ ZD = ───────── │calculation│ ┃ ┃ 2 │section │ ┃ ┃ └─────┬─────┘ ┃ ┃ │ ┃ ┃ ZD ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

This calculation block is called the averaging calculation block because it is the same as the formula for calculating the average value.

MDL [Modulation level (change amount)]
Used to adjust the degree of FM applied by external slot input.

phase adder
Adds (subtracts) the phase value generated by the PG and the phase value generated by the MDL operation via the averaging operation section. Additionally, the decision to perform addition or subtraction is determined by the loop mode and loop state.

Level multiplier
Multiply the waveform read from waveform memory by the level coefficient generated by ALFO, TL (Total Level), and EG. Furthermore, adjust the actual waveform output level.

Waveform RAM
RAM for sound.

waveform address pointer
This block generates the actual waveform memory address by adding or subtracting the SA (start address) value set in each slot and the waveform phase value output from the phase adder.

Waveform data buffer
This is a memory for temporarily storing waveforms read from waveform memory.

PG (Phase Generator)
Manages the readout speed of the sound frequency waveform. (Actually, the waveform is skipped.)

EG(Envelope Generator)
This block creates temporal changes in value (envelope curve) according to each rate and level setting. The value generated here is sent to the level calculation section and then multiplied by the waveform data, causing the waveform output level to change over time.


BackForward
HARDWARE ManualSCSP User's Manual
Copyright SEGA ENTERPRISES, LTD., 1997