OPQ Programmer’s Guide V 1.1
8
Attack, decay and release are given as rates. Rate defines how fast the curve changes.
Larger rate = faster rise = shorter time. Also sustain rate is given as rate, but – as you
might expect – it does not affect sustain time, it affects the final level at the key-off
moment.
Sustain level defines the level, where the decay phase ends and sustain phase starts. So
it affects to decay time also.
It looks like Yamaha DX-11 envelope system is exactly the same, just terminology differs.
What I call here ”sustain” they call ”decay2”.
3.6 Waveforms
Each operator can have two different waveforms: sine and half-sine. Half-sine looks like
this:
3.7 Timer and interrupts
OPQ chip contains one timer, which can generate repeating interrupts. In PSR-70 this is
used as real-time interrupt with 10 ms interval. I did not find out, how this is actually
controlled. I can get out 10 ms interrupts by mimicking the actions of the PSR-70 firmware,
but that’s all. I don’t know how to alter the interval, for example.
Timer is the only thing inside OPQ which can cause interrupts. Sound generation does not
use interrupts for anything.
The following chapters 4 and 5 are the actual register reference.
•
Chapter 4 tries to answer questions like ”If I want to change attack rate of channel
4, operator 2, which register
address
should I write to?”
•
Chapter 5 tries to answer questions like ”Now that I know the address, what is the
contents
of the data I should write to that register to change the attack rate?”
While describing registers, we will need hex numbers. For that purpose I will use the Intel/
Zilog originating style to use postfix ’H’, like 0FH. If there is no ’H’, the number is decimal.