View Single Post
Old 01 April 2024, 23:33   #1
remz
Registered User
 
Join Date: May 2022
Location: Canada
Posts: 140
Paula Audio DMA general questions

Hi Amiga coders,

Would someone be able to kindly point me to some explanation or documentation on the exact workings of Amiga audio registers and paula state machine? (Aside from the hardware reference manual)?

For example, a few questions I have in mind:

When using DMA audio, normal unattached independent channels:

Exactly when is AUDxLC being read? I seem to understand it is re-read every time the currently playing sound has reached its AUDxLEN.
If so, I must assume one should always turn off DMA for an audio channel prior to resetting the AUDxLC 32-bit pointer, otherwise one risks having a partially set address (since split into two 16-bit writes, perhaps except on 32-bit chip (?), but even then, one cannot write both pointer and length atomically so there is always a risk of race condition here.

However AUDxPER and AUDxVOL can be freely written at all time and Paula will fetch them at every scanline? (or perhaps at every DMA read, thus depending on the current Period rate?)

Is it enough to write to DMACON to provoke the re-reading of the audio pointer? Or must that channel have been set to off beforehand?

I assume that leaving a fast, low period, silent 2-byte looping audio is wasting bus bandwidth, and would be more efficient to turn off the dma channel instead? (Alternatively, setting an extremely high period would make this channel waste less bus bandwidth? Is 65535 the maximum period in fact?)

I also assume that running a looping sample, whatever its length, if the volume is set to zero, is exactly equivalent of looping on a [0,0] empty sample?

These are all that come to mind now but any additional useful guide or information would be greatly appreciated!

What a wonderful machine, the Amiga..
remz is offline  
 
Page generated in 0.06171 seconds with 11 queries