[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

Tones are joined by writing the  location  and  length registers ,
starting the audio output, and rewriting the registers in preparation for
the next audio waveform that you wish to connect to the first one. This is
made easy by the timing of the  audio interrupts  and the existence of
back-up registers. The  location  and  length registers  are read by the
DMA channel before audio output begins. The DMA channel then stores the
values in back-up registers.

Once the original registers have been read by the DMA channel, you can
change their values without disturbing the operation you started with the
original register contents. Thus, you can write the contents of these
registers, start an audio output, and then rewrite the registers in
preparation for the next waveform you want to connect to this one.

 Interrupts  occur immediately after the audio DMA channel has read the
 location  and  length registers  and stored their values in the back-up
registers. Once the  interrupt  has occurred, you can rewrite the
registers with the location and length for the next waveform segment. This
combination of back-up registers and  interrupt  timing lets you keep one
step ahead of the audio DMA channel, allowing your sound output to be
continuous and smooth.

If you do not rewrite the registers, the current waveform will be
repeated. Each time the  length counter  reaches zero, both the  location 
and  length registers  are reloaded with the same values to continue the
audio output.

 Audio DMA Example 


[Back to Amiga Developer Docs]