![]() |
![]() |
![]() |
#1 |
Registered User
Join Date: Mar 2009
Location: moon
Posts: 373
|
Low-level workings of Paula
Interesting bit about the volume implementation: http://blog.kebby.org/?p=11
|
![]() |
![]() |
#2 |
Registered User
Join Date: Aug 2008
Location: Salisbury
Posts: 644
|
No idea, however make your samples as load of they can go and turn them down with the Paula instead of making them quieter, you wont loose detail then
|
![]() |
![]() |
#3 | |
Registered User
Join Date: Jan 2012
Location: USA
Posts: 351
|
Quote:
I wonder if there's any way to control the phases of the counters or if they simply run continuously. If a pair of volume counters can be made to run 180 degrees out of phase with one another, then samples can be made to interleave and samples with frequencies above 14KHz could be produced. Perhaps turning a channel on and off also starts and stops the channel's respective counter. Maybe Toni knows. |
|
![]() |
![]() |
#4 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 48
Posts: 25,800
|
Interesting..
I'd assume there is only one counter shared by all channels and it is always counting. (Why waste gates for 4 counters when only one is enough and why bother with enable/disable input?) It probably is as simple as: "unmute" all channels when counter wraps around (becomes zero) and "mute" it when channel's volume matches counter value (I'd assume equal comparison is much simpler than equal or larger than) (Perhaps I am totally wrong but assuming and then finding test cases to either prove it wrong or right has worked for me so far..) |
![]() |
![]() |
#5 | |
Registered User
Join Date: Mar 2009
Location: moon
Posts: 373
|
Quote:
![]() |
|
![]() |
![]() |
#6 | ||||||
Registered User
Join Date: Mar 2009
Location: moon
Posts: 373
|
Quote:
![]() Quote:
Quote:
Quote:
Quote:
Quote:
Later I found another hint - modulated carriers only work at max volume: http://amigadev.elowar.com/read/ADCD.../node00F2.html Finally, Toni saw the volcntrld in the audio state diagram: http://amigadev.elowar.com/read/ADCD.../node02DC.html I'm not sure what those impulses during switching are. Possibly the scope probe is picking up noise from the components. I don't think they can be part of the audio signal, because the lowpass filter would eat them. If anything is unclear or I have forgotten to include important details (quotes), feel free to ask. ![]() Last edited by absence; 21 June 2012 at 22:22. |
||||||
![]() |
![]() |
#7 |
Registered User
Join Date: Jan 2012
Location: USA
Posts: 351
|
Toni's comment about the counters being out of phase is interesting.
I bet the 45 degree phase difference is a result of the timing between writes to the DAT registers. By setting the volume to 31 on two voices and by using the copper to start those voices 180 degrees out of phase relative to each other, it should be possible to produce an output with a sample rate twice the expected maximum via DMA methods by using one buffer to hold the even samples and a second buffer to hold the odd samples. It might be worth losing a voice to get a nice crystal clear cymbal or snare drum sound at a 56KHz sample rate. It's too bad this wasn't understood when Octamed was written. |
![]() |
![]() |
#8 | ||
Registered User
Join Date: Mar 2009
Location: moon
Posts: 373
|
Quote:
Quote:
|
||
![]() |
![]() |
#9 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 48
Posts: 25,800
|
Mostly useless information: AUDxVOL register appears to be 7-bit. 64-127 = max volume, 128 = volume 0, 129 = volume 1 and so on..
EDIT: Volume range is also 0-64, 63 = output off one cycle (tiny pulse visible on scope), 64 = full volume, output enabled all the time (straight line on scope) Last edited by Toni Wilen; 10 August 2012 at 14:00. |
![]() |
![]() |
#10 | |
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 54
Posts: 1,541
|
Quote:
|
|
![]() |
![]() |
#11 | |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 48
Posts: 25,800
|
Quote:
EDIT: I meant only 7 lowest bits are in use in AUDxVOL. Not that register itself is 7-bit. |
|
![]() |
![]() |
#12 |
move.l #$c0ff33,throat
![]() Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,801
|
|
![]() |
![]() |
#13 |
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 54
Posts: 1,541
|
Sorry you are wrong, if you use move.b #64,$DFF0A8, you have $4040 in $dff0a8 register for 68000 to 68030, but for 68040/68060 you have $4000 only (if $dff0A8 was null before), and yes only 7 bits are used.
|
![]() |
![]() |
#14 |
move.l #$c0ff33,throat
![]() Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,801
|
Which is because of the byte write to the volume register as I said before!
|
![]() |
![]() |
#15 |
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 54
Posts: 1,541
|
|
![]() |
![]() |
#16 |
ex. demoscener "Bigmama"
![]() Join Date: Jun 2012
Location: Fyn / Denmark
Posts: 1,433
|
If you use a byte write, I guess you have to write to $dff0a9 to set bits 6-0, but you're saying that on a 68000, performing "move.b #$40, $dff0a8" will actually be the same as performing "move.w #$4040, $dff0a8" ???
|
![]() |
![]() |
#17 | |
Computer Nerd
![]() Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 46
Posts: 3,405
|
From the link in the original post:
Quote:
|
|
![]() |
![]() |
#18 | |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 48
Posts: 25,800
|
Quote:
- Pulses (Frequency = CCK/64) even when sample value does not change, except when volume is 64. - Pulse width = AUDxVOL value. I think 4x14-bit DACs would have been too expensive in early 1980s. |
|
![]() |
![]() |
#19 | |
Computer Nerd
![]() Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 46
Posts: 3,405
|
Quote:
![]() ![]() Seems odd considering Paula can handle sample rates of over a megabyte per second (or is that also untrue?). |
|
![]() |
![]() |
#20 |
Registered User
Join Date: Jan 2012
Location: USA
Posts: 351
|
The PWM frequency is 56KHz. This would seem to imply an upper limit of 56K samples per second. The volume counters are reset whenever a new sample is loaded for output, however, so as the output rate increases above 56K, the number of available volume levels effectively goes down but the output rate can continue to increase.
|
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
USB Flash Disk Low-Level Format | prowler | support.Hardware | 53 | 03 August 2012 22:39 |
Low level format utility for the A1200 | Fabie | support.Hardware | 20 | 11 January 2010 20:13 |
I'm stuck on the final level (level 3) of Ghostbusters II. | Ironclaw | support.Games | 34 | 24 October 2007 08:19 |
When to low level format | Galaxy | support.Hardware | 6 | 30 January 2007 13:39 |
Low Level Format??? | Djay | support.Hardware | 4 | 01 March 2003 21:58 |
|
|