Original page numbers

I. What is OPLL?

(I-1) Outline

This LL-Type FM Operator incorporates a DA Converter and a Quartz Oscillator in addition to a YAMAHA original FM Sound Generator, allowing for a much easier and more economical sound generating system assembly than conventional LSIs. Tone data are stored in ROM for software simplicity, making it possible to execute data alterations involved in tone changes with just one Instruments selection operation. Furthermore, a built-in Tone Data Register with capacity to store one tone allows for the generation of sound effects and original tones. Tones applicable to the “CAPTAIN” and TELETEXT are included among built-in tone data.

(I-2) Features

FM Sound Generator for real sound creation.

Two selectable modes: 9 simultaneous sounds or 6 melody sounds plus 5 rhythm sounds (different tones can be used together in either case).

(I-3) Sound Synthesis by FM

This is a method that makes use of harmonics generated by modulation to synthesize musical sounds. Circuitry to realize this method is relatively simple and is capable of generating waveforms including high order harmonics and un-harmonious sounds. It is known that relationships between the modulation index and the spectrum of harmonics are so natural that it is possible to synthesize a wide variety of sounds from natural musical instruments to artificial sounds.

This method is expressed with four parameters as follows.

(1)
F = A sin (ωct + I sin (ωmt))

Where A is the amplitude of output, I modulation index, ωc and ωm angular frequencies of carrier and modulator respectively. The equation (1) can be expressed alternately as follows.

Where Jn(I) is the nth-order Bessel function of the first kind. The amplitude of each harmonic component is expressed as a Bessel function of the modulation index. Sound synthesis by FM is found to be useful to obtain specific musical sounds or sound effects. String sounds, however, cannot be obtained as the distribution of harmonics is not uniform. A method called

“Feedback FM” has been incorporated to solve the problem. This method is characterized by the following equation:

(3)
F = A sin (ωct + βF)

Where β is the rate of feedback. The spectrum of harmonics produced by “feedback FM” has a saw-tooth waveform and therefore it can be used to synthesize string sounds.

Three function blocks, as follows, are needed to realize the above method of sound synthesis by FM.

Phase generator (PG) generating ωc

Envelope generator (EG) generating amplitude A and modulation index (I) which vary with time

Sin table (SIN)

The method of sound synthesis by FM can be realized by Figure I-1 with units (operator cells) which combine the three function blocks. By this method, all we have to do is to define a frequency parameter and EG parameters.

Figure I-1 Sound synthesis by FM with units

II. Functions

(II-1) Primary Functions

This OPLL is an FM Sound Generator LSI with a built-in 9-Bit DA Converter. It has two sound generation modes: 9 melody sounds or 6 melody sounds plus 5 rhythm sounds, both allowing for simultaneous generation of different tones, Selection between these two modes can be performed from the software. One of the special features of the LSI is its built-in Instruments ROM. As shown in the table hereunder, this ROM incorporates 15 melody tones and 5 rhythm tones, as well as all tones used for “CAPTAIN” and TELETEXT. Furthermore, a built-in Tone Register with capacity to store one tone allows for the creation of sound effects and original sounds. By controlling the parameters of this register (E, ω1, I and ω2 in the equation below), all kinds of harmonics can be created on the basis of the sample wave ω1.

Unlike conventional FM sound generators, this OPLL has a built-in Instruments ROM, permitting a substantial simplification of sound generation commands from the processor. First, the desired Instruments code is stored in the Instruments Selection Register. Then, after data has been input at the fixed intervals and timing, the unit starts generating sound. Automatic Processor play can be easily performed by writing data appropriate to the desired music into the Sustain and Volume registers. For using an original tone, the Instruments Selection Register must be cleared after writing data into the Tone Register as explained above. Rhythm sounds are generated by turning ON or OFF the corresponding bits in the Rhythm Control Register. In this case, the specified data must be input into the Key ON/OFF and F-Number Registers 8CH and 9CH.

(II-2) Pin Assignment

(II-3) Pin Functions

Symbol

I/O

Function

XIN

I

A quartz oscillator (3.579545 MHz) is connected between these two points.

XOUT

O

D0~D7

I/O

8-Bit Data Bus for OPLL control.

A0

I

For controlling the D0~D7 Data Bus.

CS

WE

A0

0

0

0

Writes register address into OPLL.

0

0

1

Writes register contents into OPLL.

0

1

0

Outputs OPLL test data to D0, D1 pins. Normally not used.

0

1

1

OPLL Data Bus high impedance

1

*

*

OPLL Data Bus high impedance

CS

WE

IC

I

Resets the system when the level is low, clearing OPLL Registers.

MO

O

Melody (MO) and Rhythm (RO) outputs. Both outputs are source followers. Integrated circuitry and an amplifier are necessary for subsequent processing.

(II-4) Bus Control

The signals CS, WE and A0 provide control in the data bus for items such as addressing the register in OPLL and read/write of the data. Namely, they select one of the four operating modes as follows.

Table II-1 Mode selection

CS

WE

A0

1

1

*

*

Inactive mode

2

0

0

0

Address write mode

3

0

0

1

Data write mode

4

0

1

0

Bus inhibited

Inactive mode The bus lines (D0~D7) are at high impedance while CS is ‘1′.

Address Write mode When writing an address, set the control signals to the address write mode and place the address data on the data bus. The address of the specified internal register is now ready to receive data. After writing an address, be sure to wait 12 cycles of the master clock (øM) before writing in sound data.

Data write mode When the control signals as (are) set for the data write mode, the data existing on the data bus enters the register of the given address. Wait for 84 cycles of the master clock (øM) before writing in further data or another address.

Bus inhibited In this mode, the data of (on) the data bus is meaningless and uncontrollable.

Take note of the following regarding the address/data modes.

OPLL needs a certain length of wait time between successive writings of addresses or data into the registers. The wait time varies between address and data write modes. The processor waits for a time in Table II-2 before OPLL performs another function. If the wait time is not observed data will be uncertain.

(II-5) Channels and Slots

OPLL can produce nine channels of FM sounds as it has two operator cells per channel. However, the FM Generator system has only one operator cell, therefore, calculation for nine channels of FM sound is performed by passing through the operator cell 18 times. The order (slot number) of the pass through the operator cell corresponds to the register number. Control of the sound production is effected by controlling the register associated with the slot.

Channel data, like the F-number, controls two slots, No. 1 and 2.

In FM mode, the No. 1 slot handles the modulating waves and the No. 2 slot the carrier. The No. 1 slot can also be set for feedback FM mode. See (III-1-3) for setting this mode.

Table II-3 Channels and slots

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

Slot No.

1

2

3

1

2

3

4

5

6

4

5

6

7

8

9

7

8

9

Channel No.

1

2

1

2

1

2

Slot No. when a channel is seen

20

21

22

20

21

22

23

24

25

23

24

25

26

27

28

26

27

28

Relationship between the data of each channel and the register. (Example $20 to $28)

III. Description of Operation

All functions of the OPLL are controlled by data written in a register array by the processor. The data specifies the sound envelope shape, the degree of modulation, frequency, and output mode, etc. A complete set of data defines the sound as that of a piano or violin, etc. For the use of complex varieties of data sets se “Synthesis of music sounds”.

(III-1) Registers

A register comprises an area of 271 bits, as shown in the address map II-7. The address referred to here is the sub-address assigned to each operator of the OPLL. Musical sound data will be written into a register referred to by the sub-address. To store a data in the OPLL, we send a sub-address and then the sound data. If we access a location having the same sub-address many times, we only have to send the sub-address the first time. In subsequent accesses, we can send sound data alone to renew old data.

Since almost all musical steps become high for natural instruments, the sound can quickly change to high or low. This is accomplished by the key scale of RATE. Values in Table III-2 include the speed offset for the musical steps. Therefore, the actual RATE set for the ADSR will be these values which include the offset.

RATE = 4 × R + Rks

R is the set value for ADSR

Rks is the key scale offset value

Note that when R=0, RATE=0

Table III-2

0

1

2

3

4

5

6

7

Octave

0

1

2

3

4

5

6

7

BLOCK Data

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

F-Num MSB

0

0

0

0

1

1

1

1

2

2

2

2

3

3

3

3

D4 = 0 key scale

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

D4 = 1 key scale

D5 (EG-TYP): Switching between sustained tone and Percussive tone.

When D5 = ‘0′ it will be percussive tone. When D5 = ‘1′ it will be sustained tone. These sound modes are different in that the RELEASE RATE usage differs. The difference is shown in Figure III-1.

(III-1-3) KSL/TL/DC/DM/FB: Address [$02~$03]

Total Level is used to control the modulation index (tone) by adding attenuation to the output of the envelope generator. Level key scale (KSL) ensures, like the key scale of RATE, that the output level of natural instruments falls as the pitch of sound rises.

$03: D0~D2 (FB): For the modulated wave of the first slot’s feedback FM modulation.

Table III-6 Modulation index

0

1

2

3

4

5

6

7

Modulation index

0

π/16

π/8

π/4

π/2

π

2π

4π

(III-1-4) AR/DR: Address [$04~$05]

Attack Rate defines the attack time of the sounds, and Decay Rate the decay time. The Rates are set as given in Table III-7.

D7

D6

D5

D4

D3

D2

D1

D0

AR

DR

$04

23

22

21

20

23

22

21

20

Modulator

$05

23

22

21

20

23

22

21

20

Carrier

(III-1-5) SL/RR: Address [$06~$07]

Sustain Level is the critical point that, when sustaining sound has been attenuated to the prescribed level, the level is maintained thereafter. With percussive tone, it is the critical point of change from decay mode to release mode.

Release Rate is the disappearing rate of sustaining sounds after key OFF. For percussive tone, attenuation above the sustain level is expressed with decay rate and attenuation below the sustain level with release rate.

D7

D6

D5

D4

D3

D2

D1

D0

SL

RR

$06

24 dB

12 dB

6 dB

3 dB

23

22

21

20

Modulator

$07

24 dB

12 dB

6 dB

3 dB

23

22

21

20

Carrier

Attenuation times of the release rate are the same as that of the decay rate.

(III-1-6) BLOCK/F-Number/SUS/KEY: Address [$A0~$B8]

D0~D7 [$1*], D0 [$2*] (F-Number): The F-Number is defined with 8 bits of the $1* register and LSB of $2*, for a total of 9 bits. This F-Number defines a scale (how a value is assigned to the F-number is described later).

D1~D3 (BLOCK): Defines octave information.

D4 (KEY): This bit indicates the ON/OFF state of the key. When this bit is ‘1′, the associated channel is on and sound is produced. ‘0′ is equivalent to Key-OFF.

D5 (SUS): When this bit is ‘1′, the RR with the key off will be 5.

F-Number/Block

The OPLL generates the necessary frequency when an appropriate increment of phase is given. The increment is determined by the F-Number, Block, and Multiple information. The following formula gives the increment for a desired frequency.

Because the increment value specification occupies many bits, we can give the increment within an octave and shift the value to double, 4 times, etc. for a specific octave. Then the instrument is expressed as follows.

(2)
ΔP = 2B × F’ × MUL

B: Octave information

F’: Increment within an octave

MUL: Multiple data

From equation (1) and (2) the increment (F’) is expressed with 1 bit. F-Number and Block are expressed as follows.

(III-1-7) RHYTHM: Address [$0E]

To control ON/OFF of the Rhythm mode selection and percussion instruments.

D5

D4

D3

D2

D1

D0

RHYTHM

BD

SD

TOM

TOP-CY

HH

D0~D5 (RHYTHM): When D5 = 1, OPLL is in Rhythm mode with percussion sounds produced through channels 7~9 (see page 5). In this mode, the melody section is limited to six sounds. D0~D4 controls ON/OFF of percussion instruments. Therefore Key-ON bits $26, $27, $28 must always be cleared to 0. Slots 13~18 are related with percussion sounds as shown in Table III-9, and data of F-Num must input values that match percussion sounds.

(III-2) Phase Generator (PG)

The phase generator produces a phase value by accumulating increments that correspond to the frequency required at a given unit of time. The increment is generated from frequency data (F-Number, Block, and Multiple) sent from the registers. The frequency data is combined with the output of a built-in vibrato oscillator to produce a vibrato effect.

(III-3) Envelope Generator (EG)

The envelope generator (EG) varies tone and sound level with time under the control of Attack Rate, Decay Rate, Release Rate, Sustain Level and Total Level. Its dynamic range is 48 dB (resolution: 0.325 dB). EG uses a logarithmic scale and is represented with an attenuation level. The general waveform is shown in Figure III-2. Distinctively the waveform rises exponentially during attack time and varies linearly everywhere else. Attack stops and decay begins at 0 dB. Decay changes to sustain as soon as the sustain level is reached. Sustain will change to release when the key is released. The envelope waveform varies when parameters representing the effects of the total level, level key scale, and amplitude modulation, etc, are applied to EG.

(III-4) Operator (OP) and DAC

The operator performs FM calculations. Using the phase output from the phase generator, the operator calculates the value of SIN and multiplies it by the output of the envelope generator. Then if there are modulated waves, they are returned to the input of the operator and any sounds are sent to the DAC. This is controlled by the Feedback data.

The DAC performs DA conversion for all the sounds then outputs them as shown in Figure III-3 (a). To sum up the sounds, an integrated circuit is added to MO/RO. (Figure III-3 (b)) Since the level of percussive sounds seems lower, when compared to musical sounds, the same percussive sounds are output twice. (Figure III-3 (c))

IV. Interfacing

OPLL, controlled by a microprocessor or microcomputer, outputs an audio signal, being an analog signal converted with a D/A converter. To obtain sound from OPLL, it is necessary to interface it with other devices. This chapter describes interfacing.

Figure IV-1 System block diagram

(IV-1) Clock Generation

OPLL operates in the range of 2 to 4 MHz. Amplitude modulation, the frequency of the vibrato oscillator, and attack decay speeds are designed to take 3.6 MHz (3.579545 MHz) as the reference frequency. Therefore, when this LSI is used, it will be economical to connect the quartz crystal oscillator (for color burst signals) with Xin Xout.

(IV-2) Audio Output Interface

An external integrated circuit is needed for the OPLL’s music sound output, which is a pulse signal as described earlier. The output (and buffer) of this integrated circuit may be directly connected to an audio amplifier. For better sound quality, you can remove step noises by inserting a low-pass filter (cutoff frequency: 20kHz or so) between the integrated circuit and amplifier. Click noises accompanying power-ON/OFF will be necessary to protect the audion equipment (amplifier and speakers).

(IV-3) Interfacing microprocessor/microcomputer

D0~D7 of OPLL are the bidirectional bus lines which connect to a processor. OPLL exchanges address and data with the processor. The bus control signals CS, WE and A0 control transfer of data. It is possible to build up an FM sound source system with the minimum configuration of OPLL, memory and processor.

V. Synthesis of music sounds

This chapter describes what data to enter the OPLL registers in order to synthesize sound of the piano and brass.

(V-1) Procedure of Synthesizing Sounds

First, you have to analyze the sounds of the musical instrument which you want to synthesize by the FM method. For

example, the sound of a piano is characterized by a fast attack and, if the key is held down, a gradual delay. The will sound (sound will) include many overtones at the attack time however, as time elapses, overtones disappear, resulting in a different overtone composition. When you are aware (of) such characteristics, you are better able to synthesize the sounds by the FM method. The output amplitude can be determined from the characteristics of the envelope form and the modulation index from the overtone composition. Frequency ratio can also be determined roughly from the overtone composition because the frequency of the operator is related to it. In this way, you can determine the FM parameters roughly from characteristics of the sounds and, by listening to the synthesized sound, make minor corrections to obtain a more desirable result.

(V-2) Fundamentals of Sound Synthesis

The FM sound source makes use of carrier wave modulation by the modulator.

Output level of the operatorChange the output of the modulator to adjust the tone. When determining the level of operator 1, adjust the sounds for rich overtones like those of the piano. Then make adjustment for sounds of higher frequencies by level scaling of operator 1. Level scaling is necessary so that the waveforms are nearly sine waves in high frequency ranges.

Setting EGDetermine sound volume, tone, and envelope. Set operator 2 so that the sounds have a sharp attack and long sustain. (This can be set varying degrees.) Let operator 1, the modulator, produce many overtones at the attack time and later keep a certain composition of overtones unchanged. To adjust sound volume, apply key scaling to operator 2. Perform RATE scaling to make sounds of higher pitches sharp.

Readjustment of dataNow sound synthesis is almost completed. Tones will vary somewhat depending on the setting of EG. Make a final adjustment with the output level and feedback level of the operators. If the sound is too metallic, for example, resuce the level of operator 1.

Adding effectFinally, add tremolo effect by LFO to simulate the sounds of the electric piano. This is possible by using the built-in amplitude modulation function or by refreshing the value of TOTAL LEVEL in intervals of 2~6Hz (possibly with triangular waves) by software.

Trumpet

Output of operatorAdjust the total level of operator 1, the modulator, at $10~$28 and the feedback level to the maximum of ‘7′ for bright tones.

Operator frequenciesSet both operators at ‘1′.

EGAdjust two EGs for a slow attack. For brass sounds, ensure the modulator attack is slower than the carrier’s. This is necessary to express the characteristic attack of brass sounds.

Key scalingHigh-pitched sounds are not crisp because the envelope is set for a slow rise. Apply rate scaling for a more natural feeling of fast passages.

LFOWith a brass instrument, the pitch of long notes fluctuates a little even when a good player is playing. To express this, apply vibrato effect.

(V-4) Procedure of Percussion Sound Synthesis

Channels 7, 8 and 9 are used to synthesize percussion sounds. Five kinds of percussion sounds are generated by using these three channels and six slots. For the bass drum (BD), two slots are used to synthesize FM sounds. Therefore, bass drum sounds can be produced basically by the same procedure from (a) to (c). The other four kinds of percussion sounds (high hat, top cymbal, tom-tom, and snare drum) are described as follows.

OPLL includes a noise oscillator obtained by composing a white noise generator with several frequencies. This noise oscillator is specified by the frequency information (BLOCK, F-Number, Multiple) of the 8 and 9 channels. When composed with white noise, phase output suitable for percussion instruments is generated and given to the operator. Thus phases of four instruments are generated from two sets of frequency information. It is known empirically that the optimum ratio of two frequencies is 3:1 (f7CH = 3×f8CH). Now phase data of individual instruments are obtained. Next, we multiply this output with envelope information. Since the envelope is set as 1 slot -> 1 percussion instrument, values that reflect the characteristics of individual percussion instruments, as with melody instruments, are set in ROM. (Refer to III-1-7)