TCBI50k by Algotech | ||||||||
---|---|---|---|---|---|---|---|---|
|
||||||||
|
popularity : 52% |
|||||||
alltime top: #20580 |
|
|||||||
|
||||||||
added on the 2020-12-27 16:49:16 by algorithm |
popularity helper
comments
wow, rulez!
Holy crap. This raises the bar quite a bit from your previous work, and that was already mindblowing enough.
You're a genius. You are just missing an Einstein fuzzy hairstyle ...it'll come in time. ; )
Even with the explanation, result is amazing for the size. Keep pushing it :)
What Buckethead said. :)
very impressive, this is a huge achievement, good job
Nice algorithm does more audio encoding magic on the c64
Never ceases to amaze!
Hah I somehow missed this one. Absolutely stunning! 3 minutes of Rick Astley in 51KB at 8400Hz played back on 1Mhz machine from 1980s. Implicit mic drop
submit changes
if this prod is a fake, some info is false or the download link is broken,
do not post about it in the comments, it will get lost.
instead, click here !
Some production and technical notes as below
This is a single filer that utilises multilayer decompression based on VQ for the background ambience and a speech layer for the singing.
A Less cpu intensive approach would have simply been to play back the ambience via d418 and use the sid's 3 oscillators for the speech. However i did not opt for this approach due to crossmodulation issues when using the classic d418 approach as well as lower bit resolution - also that it would sound rather silent on a new sid chip (unless i was able to spare a channel for the pulse waveform preboosting).
Hence the approach that i used was to digitally mix everything to 8bits (including 3 emulated sine oscillators)
By looking at the code you will notice that there could have been a major optimisation to use in the sine mixing (Infact this was used in previous frodigi's such as frodigi 8). However i did not have enough ram for the additional tables, hence resorted to using a master sinewave across two pages (consisting of 6bitvalues) and then mapping that over to one of 32 64 byte lookups (for the volume of the sine). 8 step integer values are used to allow each sine to have frequency steps of 4.1hz
The first stage of preparation was to seperate the speech from the audio track. Once this was done, The background audio track was resequenced, omitting out any similar sections and then packed via Vector Quantisation. This resulted in approximately 32k of packed ambience data with a 1k codebook.
The second stage of preparation was to pack the speech. Again, identical sections were omitted out and then packed via my speech encoder. This packs to 45bits per frame (10bits frequency + 5bits amplitude) * 3 channels. This data was around 18k or so in size
This speech data was then sequenced to be triggered at precise times while the ambience is playing back, mixing all the sines together with the ambience and pushing this into the stack, with the actual playback routine just playing backwards constantly from the stack. The result is over 3 minutes of audio matching the original all under 50k packed.
Sample playback rate is at 8400hz and there was barely any space or cpu time for anything else (infact the code is scattered all across the ram, as i needed to put the volume tables (32 of them) at the beginning of each page..
For digimax users. set it to $de00. Then when the logo appears.. Hold down the space bar till the demo starts. For non-digimax users, a 8580 sid is recommended and above all, it will not work on digiboost modded sid's
Enjoy