![]() |
![]() |
#61 |
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,355
|
I am not young and i am not a padawan.
And impatient ? It just looked like tails I win, heads we continue playing. Is that fair ? But now i have a delay so it's significantly better. So be a gentle boy and wait for next year, just like the others. |
![]() |
![]() |
#62 | |
Registered User
Join Date: Jun 2010
Location: PL?
Posts: 2,882
|
You are younger than ross or me so you are young and you can't argue with this (unless you are math denial).
Quote:
I see no reason why Copper audio can't be done so we need to wait or for proof it can't be done or ross confirmation that he lost this competition. |
|
![]() |
![]() |
#63 | |||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,355
|
Quote:
It's like a 90 years guy telling a 85 years guy that he is young. But perhaps you want to continue this nonsense and argue on semantics now ? I can however play this game too : my young brain works better than your old one, so take your pills and go to sleep, granddaddy. ![]() Quote:
Quote:
Just show the example and go waiting. |
|||
![]() |
![]() |
#64 | |
Registered User
Join Date: Jun 2010
Location: PL?
Posts: 2,882
|
Quote:
![]() |
|
![]() |
![]() |
#65 |
Registered User
Join Date: May 2018
Location: Ireland
Posts: 692
|
I'm following this great discussion and all the to/fro, but out of curiosity, what's the advantage of copper driven audio? What scenarios is it beneficial?
|
![]() |
![]() |
#66 |
Registered User
Join Date: Feb 2017
Location: Denmark
Posts: 1,217
|
The "advantage" is supposed to be that it would make it possible to play audio with a period smaller than 123 (i.e. >29KHz sample rate, the limit of DMA driven audio) on an unaccelerated A500 with some CPU time left over.
Not sure if there are any usecases outside showing off ![]() |
![]() |
![]() |
#67 | |
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,355
|
Not young and not padawan as i said, but 100% French yes
![]() Quote:
The problem with copper audio is that contrary to cpu driven audio which can rely on audio interrupts to keep in sync, copper has no way to be synced aside of terrifying cycle counting - and the fact it is restarted every frame does not help. |
|
![]() |
![]() |
#68 |
Registered User
Join Date: Sep 2009
Location: Norway
Posts: 1,717
|
This thread has been a very entertaining read so far!
![]() #ibelieveinross |
![]() |
![]() |
#69 |
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,355
|
|
![]() |
![]() |
#70 |
Computer Nerd
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 48
Posts: 3,847
|
I wanna hear this so bad
![]() |
![]() |
![]() |
#71 |
Registered User
Join Date: Jun 2010
Location: PL?
Posts: 2,882
|
Well... rather pragmatical - support someone who trying to push boundaries...
4 times oversampling create possibility to deliver higher than 16 bit quality on 8 bit samples (in fact even 2 times oversampled 8 bit audio can be close to 16 bit quality) - CPU driven audio will be still heavily affected by jitter (Copper should be free from jitter). |
![]() |
![]() |
#72 | |||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,355
|
Quote:
Quote:
By having two 8-bit samples instead of one you can only achieve halfway intermediate value (and quarters with 4 samples). Quote:
If you use the cpu you have irq that tells you when data is needed. Provided you're fast enough, there is zero jitter. The cpu does *NOT* give the timing. If you use the copper you have to count the clocks in very dirty way as it can absolutely not know when data will be needed - which is dramatically easy to miss and very hard to debug. I am not saying copper audio is plain impossible. But it is incredibly hard to do (in a usable way) and clearly not worth. |
|||
![]() |
![]() |
#73 | ||
Registered User
Join Date: Jun 2010
Location: PL?
Posts: 2,882
|
Well... isn't supporting outdated HW and SW without future fulfill your definition "believe blindly"... As a skilled programmer you are wasting your skills supporting EOL ISA (MC68K), abandoned HW and partially abandoned SW - this looks almost like defibrillation of the already rotten body...
Quote:
And as many of us is around 50 or more then 2 times oversampling should sufficient for close to 16 bit quality. Attaching spectrogram as example - somehow this prove than even 2 times oversampled 8 bit PCM audio can be close to 16 bit quality. At 4kHz you have more than 96dB (16b+) dynamics and in almost whole human audio range somewhere around 10..13 bit audio and 10 bit audio is comparable to cassette tape with Dolby B, 11..12 bit is comparable to Dolby C so i would say not bad at all. Forgot to add that based on Amiga audio output circuitry - you have there lowpass filter that efficiently suppress large part of audio bandwidth (so probably using some form of pre-emphasis could be nice way to improve higher tones and reduce perceived noise) Quote:
So my impression is that this effort (Copper audio) may have sense... Of course having higher DMA sample rates is superior - if Paula have possibility to combine DMA channels or at least support sample interleaving then it would be better to use HW than SW. Btw Correct me if i'm wrong on this but isn't Atari ST community open borders and made overscan because it was difficult/impossible on first view? Pushing boundaries... Last edited by pandy71; 14 April 2023 at 16:36. |
||
![]() |
![]() |
#74 | ||||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,355
|
Quote:
Quote:
But even if this is true, where's the point ? We can get close enough by just using the regular 14-bit trick. It has the advantage of being usable under OS. You may also want to apply noise shaping on this too... or not ? Quote:
Data written in AUDxDAT isn't sent directly to D/A. It is similar in concept to a 2-byte double-buffering technique. So when the IRQ comes, you have something like 1 period (maybe 2) to send the data. Don't tell me 68000 isn't fast enough. If, say, you want to play 32khz, you only need to perform 16000 writes per second. A 68000 can surely do this ; i've seen Quartet program on Atari ST use 16 khz interrupts to send audio to ym2149 AND perform real time 4-channel mixing at that rate... while still showing some working GUI ! So you get one IRQ per two samples, only thing you have to do is to feed the data before it's too late. The exact moment you do it does *not* matter. In addition, you're not forced to use interrupts, you can also do irq polling. Quote:
Nor does CPU audio, by the way, but at least it is a lot simpler to code and thus much less error prone. The reason is that neither can work (not reliably for CPU, not at all for Copper) in a multitasking environment. So you have to kill the OS, but if you do so, where do you fetch the samples you send to the audio ? No hard drive access, sorry... an i doubt a floppy will provide enough data for an oversampling technique ! You can of course preload but not on a 512k machine... Did i say anywhere that i had anything against pushing boundaries ? Do not make me say something i did not say ! |
||||
![]() |
![]() |
#75 | |||||
Registered User
Join Date: Jun 2010
Location: PL?
Posts: 2,882
|
Quote:
Quote:
And i bet for most of people on this and similar to this forum this is more about doing things we like than having source of income for living. Quote:
And of course noise shaping, even quite aggressive need to be used to push quantization noise beyond usable (hear-able) spectrum but it works well enough even for 2 times oversampled 8 bit PCM. Quote:
Quote:
Definitely Amiga even with 68060 is too slow to be proper source of HQ audio... Floppy can provide 500kbps, single channel, 8 bit 2 times oversampled audio is approx 440kbps so from gotek-like flash device you can feed data with DMA into RAM to be played by DMA/Copper/CPU. But why not use RPi Pico on clockport as source of audio... Doable (but i would rather prefer to use Pico as sound card than audio coprocessor but...) Many ideas, most of them probably not practical but... we "like doing so" so who cares if this be this year or next one. |
|||||
![]() |
![]() |
#76 | |||||||||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,355
|
Quote:
Quote:
Quote:
The nonlinear nature of the 14bit trick is handled by calibration. Quote:
Thus, while on real Amiga HW this technique might be no problem, with emulation you'll run on a machine that will eventually do this by itself (HW or SW, unimportant) - and so the re-distributed noise is summed and can cause problems. Quote:
This means you can only "guess" if something needs to be output or not. If your cycle counting is off by just 1 cycle, it'll drift away and you'll get repeated or ignored samples. Of course every frame the copper will be restarted, and it will have to write the data at a different place every time ! It is possible that PAL short frames / long frames will come in the way, i don't know. It is also possible the copper can't run for a while at some special places such as horizontal/vertical blank. Perhaps some cycles are unavailable, i don't know either. So many things can go wrong and prevent copper audio from working at all ! OTOH the cpu does not have to count clocks, it just needs to react fast enough. Easy to code, no hidden issues. Quote:
Quote:
![]() Quote:
But the output rate is the smallest of problems : at CD rate a single floppy will only last a few seconds ! Quote:
|
|||||||||
![]() |
![]() |
#77 | |||||||
Registered User
Join Date: Jun 2010
Location: PL?
Posts: 2,882
|
Quote:
Quote:
plain dither (such as TPDF) is flat across whole band but you can use "color" dither similarly to noise shaping. Quote:
Calibration can't address those problems - check thread about real dynamics for 14 bit audio - not even close to 14 bit - there is many problems that can't be solved by static calibration. Quote:
Quote:
But i can imagine bruteforce approach - sequence set by Copper. Set AUDxLEN=1, AUDxDAT=X, Activate Audio DMA, - such sequence, regular pattern should create audio. Quote:
This is quite easy to define - you can objectively (measurements) and subjectively (by listening) define HQ Quote:
I agree - goal is plain 68000@7MHz Last edited by pandy71; 14 April 2023 at 21:51. |
|||||||
![]() |
![]() |
#78 |
Registered User
Join Date: Sep 2009
Location: Norway
Posts: 1,717
|
pandy71: Increasing the bandwidth of an 8-bit linear PCM signal will not increase the SNR (48dB for 8-bit linear PCM). It doesn't matter how good the original source was before quantizing it to 8-bit, or what kind of dithering technique you applied, you still end up with a maximum of 8 effective bits. Even if you were to compress the signal to always use as many effective bits as possible, you'd still easily be able to hear the quantization noise on certain waveforms (especially bass, sines etc) or quieter parts. It just isn't possible to overcome this issue on linear PCM, and dithering doesn't do magic when you have so few output bits.
The reason the 14-bit trick works is because the Paula output really isn't 8-bit if you take the volume modulation into account. |
![]() |
![]() |
#79 | ||
Defendit numerus
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 54
Posts: 4,491
|
Quote:
Many experiments have been done in this regard (and many more would have to be done...) but unfortunately it doesn't work as you say. The bps you reported are 'just right', but only in an ideal world (for those interested: it is the base frequency of the cells that Paula uses as a reference when start the disk data sampling and initialize the counters [=CCK/7]). But 'unfortunately' (or fortunately depending on who actually wants the discs to be read even if they are in bad condition) it is not passive when reading data, but adapts the sampling frequency to the state of the input stream. It is not known what the precise 'algorithm' of this DPLL is, but it is certainly related to the quantity and the distance between the flux changes. So these bps can also become CCK/6 or CCK/8, adaptively, for a short time and every now and then. As you can imagine, this does not actually allow you to exceed the expected (MFM=50%) speed by much, otherwise synchronization is lost for certain data patterns (some 0000.. or 11.. sequences could become different). Quote:
Last edited by ross; 14 April 2023 at 22:21. Reason: changed 3546895 to CCK, for generic PAL/NTSC frequency :) |
||
![]() |
![]() |
#80 | |
Defendit numerus
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 54
Posts: 4,491
|
Quote:
The problem is that with the 'ear' calibration that is usually done for 14-bit it is practically impossible to achieve this '12-bit', it would take suitable equipment and infinite patience. And in any case it would only be valid for that particular Amiga. However, it is not only a linearity problem but also a phase mismatch between the channels... Anyway, dozens of threads have been opened on the subject and debated endlessly, without finding a definitive answer ![]() |
|
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
"EaglePlayer" playback VS "real" playback | chip | support.Other | 31 | 27 September 2020 13:14 |
winuae 3.4.0 - cd playback | honx | support.WinUAE | 10 | 26 February 2017 00:00 |
XBox 1 video playback | Peter | Retrogaming General Discussion | 19 | 18 January 2011 16:33 |
Q: recording 4-channels sound output and "Playback Rate" | jbl007 | support.WinUAE | 0 | 07 June 2005 18:23 |
DivX Playback | Echo | support.Hardware | 10 | 24 January 2003 18:45 |
|
|