![]() |
![]() |
#1 |
Registered User
Join Date: Aug 2010
Location: Italy
Posts: 901
|
Hertz Overload - new AGA demo
Just a quick heads-up to let you know that I have just released a new demo for AGA Amigas.
This one focuses on delivering very high quality music also on base machines equipped with just a mass storage device (which is needed to stream the huge amount of audio data). "Very high quality translates" to: 2 true stereo channels, 14 bit resolution and 70937.9 Hz sample rate. Download: https://www.retream.com/Hertz_Overload / https://retream.itch.io/hertz-overload Those who can't (bother to) run the demo on an actual Amiga can see it in this video (beware: due to technical reasons, the audio of the video has a sample of rate of just 44100 Hz): [ Show youtube player ] Last edited by saimo; 26 May 2024 at 18:28. |
![]() |
![]() |
#2 |
Registered User
Join Date: Feb 2017
Location: Denmark
Posts: 1,310
|
Neat! Confirmed working on plain A1200 and B1260, though the extra sound quality is probably lost on my ears/equipment.
|
![]() |
![]() |
#3 |
Registered User
Join Date: Apr 2017
Location: France
Posts: 674
|
![]() Now the scrolling is a bit too much I think as it cannot be smooth I guess. So we see the limit of the machine. I would use something less demanding. Perhaps static pages of text with some transition? |
![]() |
![]() |
#4 | |
Registered User
Join Date: Aug 2010
Location: Italy
Posts: 901
|
Quote:
I guess that the extra quality is lost on the ears of many (me included) ![]() To be honest, it would have helped to have a piece of music that's built on instruments of extra quality, but I don't have any professional recording equipment. However, the music has been mixed at 192 kHz and 32 bit float, so that has helped increasing the final quality. To make tests, I used the 96 kHz piece of music that Sony provides here and I must say that it does sound crystal clear, but in general, besides pushing the Amiga, here we're pushing also human limits. |
|
![]() |
![]() |
#5 | |
Registered User
Join Date: Aug 2010
Location: Italy
Posts: 901
|
Do you mean the one which shows my guitar on an azure background? Well, that's just a mix of a photo with a background I made with The Gimp, color-reduced with Personal Paint: while I'm glad you like the result, I honestly don't think that it really qualifies as "art".
Quote:
Anyway, there's also a design aspect to the scrolling: making it smoother and faster would also make reading harder, but I want people to be able to read the scrolltext without effort, so that their attention can focus on the music. Actually, I've also considered showing no action at all during the playback, but the scroller helps appreciate more what's going on (especially the Hz revelation) and gives a hey-it's-also-showing-moving-graphics effect.The idea of static pages did not cross my mind. That should be possible also on stock machines, but not with transitions. However, I wouldn't find it as interesting as the scroller. Last edited by saimo; 10 June 2024 at 22:43. |
|
![]() |
![]() |
#6 |
Registered User
Join Date: Jun 2010
Location: PL?
Posts: 2,919
|
Three questions:
- This is DMA or CPU driven? - Ever considered to use noise shaping to squeeze with such high oversampling more than 16 bit? - As PWM limit is 56kHz - please share idea behind your 14 bit mode? |
![]() |
![]() |
#7 | ||
Registered User
Join Date: Aug 2010
Location: Italy
Posts: 901
|
CPU driven.
Quote:
Code:
The music track "Prockressions" was written while fiddling with the RETREAM guitar after it got fixed and overhauled. It was not made for Hertz Overload, but rather Hertz Overload was made to find a use for it. Thinking of a way to let others enjoy the music brought the idea of making an Amiga production, which immediately suggested the creation of a CPU-based player to achieve a sufficiently high quality. In the past, I had never tried CPU-based audio playback, but a quick experiment showed that it was doable and quite easy. That led to the development of a set of tools that generate and play sound files in a custom format aimed at minimizing the CPU load. They also proved that the Amiga can reach remarkably high frequencies (much beyond 70937.9 Hz), which pushed me in another direction: making something more artistic than a player, and that simply meant... a demo! ![]() (*)You and other audio specialists (I'm not one by any means) might find interesting and potentially useful the limits I measured on my Amiga 1200 (both in stock configuration and with the Blizzard 1230 IV activated - the board mounts the standard 68030 clocked at 50 MHz and 60 ns RAM). When playing exclusively from RAM (so, machine entirely owned, no interrupts), with chipset running in PAL mode and with the core routine also writing to COLOR00 every time it writes to all the AUDxDAT registers to show some visual feedback (smallest period, highest frequency): * stock Amiga: 12 ticks, 295574.58333... Hz * expanded Amiga: 10 ticks, 354689.5 Hz (By removing the write to COLORxx the performance should improve further.) When streaming from disk, things are trickier, as adding any safety/measurement code to the interrupt handler impacts the performance (heavily); so, tests have to be done this way: a. checking at which period buffering starts to fail; b. checking at which period the machine freezes (due to interrupts firing faster than the CPU can handle). The first test is boring and requires a lot of time, so, at least for the moment being, I avoided it; the second test, which is less meaningful (as buffering starts to fail before the machine freezes) but very easy to do, gave these results: * stock Amiga: 30 ticks, 118229.8333... Hz * expanded Amiga: 11 ticks, 322445 Hz I plan to release shortly the command line tools mentioned in the quote, so that anyone can make tests - and listen to stupidly high frequency music on their Amiga, of course ![]() Quote:
As for the frequency, I didn't invent anything as well: the CPU simply feeds Paula with the samples, so the limit is reached when the CPU can't manage anymore to provide Paula with new samples in time while Paula loops between states 010 and 011. Last edited by saimo; 10 June 2024 at 22:48. Reason: Updated backstory quote. |
||
![]() |
![]() |
#8 |
Registered User
![]() Join Date: Mar 2008
Location: US
Posts: 319
|
Hey saimo!
I don't have golden ears (and what I have left is also tinnitus stricken), though I can absolutely hear the difference - particulalry the sound of fingers sliding across the strings when the second guitar layer comes in (it's significantly clearer/more audible in the second example). No special audio gear for this test, just an A1200 with an intact audio circuit ![]() |
![]() |
![]() |
#9 | |||||
Registered User
Join Date: Jun 2010
Location: PL?
Posts: 2,919
|
Thx Saimo, clear.
Quote:
Quote:
Quote:
Ok, clear, thx for explanation - probably with oversample higher than 100kHz Paula will offer more than 16 bit dynamics. 8 bit simplify other things too and of course reduce CPU load and storage space. Quote:
Quote:
Perhaps this can be next step for someone being inspired by your demo. Thank you very much! *And btw i'm not particular audio specialist - this is just general knowledge if people are quite happy with SACD then why not use Paula to be better than SACD - having sufficiently fast CPU (DSP) even 8 bit PCM Paula can be HQ audio source (please ignore other issues with audio signal path in Amiga - some of them can be fixed). |
|||||
![]() |
![]() |
#10 | |
Registered User
Join Date: Aug 2020
Location: Sydney/Australia
Posts: 1,151
|
Quote:
|
|
![]() |
![]() |
#11 |
Ex nihilo nihil
Join Date: Oct 2017
Location: CH
Posts: 5,150
|
Watched the video. Nice demo
![]() Cool music as well as unusual "non black" colours for such music. Had fun watching it ![]() PS: agree that scrolling speed allows easy reading without losing focus on audio. |
![]() |
![]() |
#12 | ||
Registered User
Join Date: Apr 2017
Location: France
Posts: 674
|
Quote:
I really like the rendering, the harmony of colours and it struck me when I saw it. Quote:
I think there's some transitional effects which are less big eater than other. I was thinking of when pixels text dissolve for example. |
||
![]() |
![]() |
#13 | |||||
Registered User
Join Date: Aug 2010
Location: Italy
Posts: 901
|
Quote:
Quote:
Quote:
![]() Quote:
Quote:
Last edited by saimo; 27 May 2024 at 19:33. Reason: Fixed typos. |
|||||
![]() |
![]() |
#14 |
Registered User
Join Date: Aug 2010
Location: Italy
Posts: 901
|
RTG doesn't matter. The method should work on all chipsets, although as far as I know OCS and ECS output is severely muffled by the filter (I never heard a non-AGA Amiga in person, so I can't say), so that would kind of defy the trick. Another downside is that the slower CHIP bus would limit the maximum frequency when graphics are shown.
|
![]() |
![]() |
#15 | ||
Registered User
Join Date: Aug 2010
Location: Italy
Posts: 901
|
Quote:
The music is more on the prog* than on the heavy side, so it doesn't "require" a dark theme... but it wouldn't have gotten it anyway, as I'm not a "dark" person. *The name also hints at that, although it originates from "rock" + "progressions", as it's built on several chords progressions. Quote:
![]() |
||
![]() |
![]() |
#16 | |||
Registered User
Join Date: Aug 2010
Location: Italy
Posts: 901
|
Quote:
![]() Quote:
Quote:
|
|||
![]() |
![]() |
#17 | ||||
Registered User
Join Date: Jun 2010
Location: PL?
Posts: 2,919
|
Quote:
SoX offers HQ sample rate conversion and also noiseshaping (ffmpeg also reuese sample rate conversion and noise shaping code from SoX with some changes) but noise shaping is limited to narrow set of sampling frequencies (most common like 44.1 and 48kHz). As example ffmpeg implementation ( filter coefficients for various sampling frequencies - https://ffmpeg.org/doxygen/7.0/noise...8c_source.html ) - usually for best results noise shaping push quantization noise from most important areas to less important part of spectrum - with high oversampling most of noise shaped quantization noise is placed in inaudible part of spectrum were it can be relatively easily filtered by lowpass filtering. SoX and some of ffmpeg noise shaping curves are visible on this graph: Source: https://web.archive.org/web/20201112...X/NoiseShaping Alternatively there is java application(s) to design noiseshaping filter and apply re-quantization written by Sebastian Gesemann ( https://hydrogenaud.io/index.php/topic,47980.0.html ) - not sure if this application can be still downloaded so i will upload it to The Zone. https://eab.abime.net/zone/noise.zip This application support limited set of sample rates but this should be not a problem as frequency transposition can be applied easily (not sure if i use correct terminology but principle is simple - if you designing filter for for example 64kHz and your real sample rate is for example 72khz then filter with notch at for example 1kHz in samplerate 64kHz will be notch at 1.125kHz for signal sampled at 72kHz (72/64). That's why dedicated Paula application would be best best also existing applications can be used with remark that spectrum response will be shifted. Quote:
Quote:
Quote:
One of the first noise shapers used widely was Sony SBM https://en.wikipedia.org/wiki/Super_...useskin=vector - for sure if you had CD bought in in first half of 90's then one of similar solutions was there. And SACD is ridiculous concept to store on CD plate 64 times oversampled 1 bit audio. Nowadays oversampling ratios are way higher - known as DSD64 for ordinary SACD but common are DSD512 or even DSD2048 ( "audiophile" formats ) - anyway paper from Vanderkooy and Lipshitz showed problems with SACD - Paula is not 1 bit but 8 bit so noise shaping is way easier to be used - nowadays most of audio DAC's are anyway few bit noiseshaped one (less than 1% of all audio DAC's has more than 5 bits resolution). So we all hear dither and noise shaped audio everyday around us. Paula with 8 bit PCM signal should be way better at moderate oversampling - 4 times will be overkill anyway - probably better than 14 bit (in real life rarely 14 bit is more than 11 bits on Paula). Btw to reduce storage space trick with 16 bit to 8 bit quick compression described here https://hydrogenaud.io/index.php/topic,121181.0.html can be applied - 256 word table - in Amiga it can be scaled to match 14 bit DAC resolution. Last edited by pandy71; 30 May 2024 at 17:12. |
||||
![]() |
![]() |
#18 | |
Registered User
Join Date: Aug 2010
Location: Italy
Posts: 901
|
Quote:
Thank you for the feedback ![]() |
|
![]() |
![]() |
#19 | ||
Registered User
Join Date: Aug 2010
Location: Italy
Posts: 901
|
@pandy71
Regarding noise shaping: thanks for the wealth of information! It looks like there's quite a lot of study and experimenting for me to do, but that's something I can't afford right now (and for the foreseeable future, as I have various projects in the pipeline). Quote:
In the specific case of the demo and of the tool that streams data from disk, given that the OS must remain active (to use dos.library), interrupts caused by some system activity (expansion hardware sending requests, Blitter, etc.) might/will disrupt the playback but, on the other hand, these applications are not meant to be used when the machine is doing also other stuff (they do call Forbid(), but that can't help with interrupts and, anyway, might be broken by Read()). Side note: using DMA, given the channels CHIP bus slots, sounds like a nightmare to me. Quote:
|
||
![]() |
![]() |
#20 | ||
Registered User
Join Date: Jun 2010
Location: PL?
Posts: 2,919
|
Quote:
Quote:
|
||
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
ArtPazz - New game for AGA Amigas [WIP] | saimo | Amiga scene | 38 | 07 June 2023 15:08 |
RNOPDF for ECS/AGA Amigas released | jPV | News | 5 | 10 July 2020 07:57 |
Recommend a good Hertz switcher? | lordofchaos | request.Apps | 5 | 28 June 2013 04:55 |
How does a 50 Hertz image get displayed? | Richardcavell | Coders. Asm / Hardware | 14 | 15 March 2013 13:59 |
AGA Amigas | Kitty | Retrogaming General Discussion | 25 | 13 October 2009 12:56 |
|
|