| |
Released At :
Datastorm 2010
Achievements :
C64 Demo Competition at Datastorm 2010 : #4
Credits :
Download :
Look for downloads on external sites:
Pokefinder.org
Summary Submitted by Cresh on 7 February 2010
6th of February 2010: It is true, the Commodore 64 CAN SING! The Commodore 64 mp3-decoder is called c64mp3, and I, Mahoney, made it for the Datastorm event in Gothenburg. The download link contains the full demo and the source code for the encoder and decoder.
The song chosen is "Tom's Diner" by Suzanne Vega.
The Commodore 64 c64mp3 replay routine uses all the tricks in the book,
in order to acheive the best sound quality possible:
* The sound buffer is calculated in the stack, and it wraps
* Jitter free sample playback, by using NMI IRQ vector pointing to $dd04
* 8-bit sample output by using SID test bit for resetting oscillators
* saving clock cycles by JMP $dd0c when exiting an NMI
* Pitch tables? Good for module playback, but worthless for human voices
* Dithering noise, to make quantization smoother
* Phase-aligned wavetables with extracted formants
* Full 8-bit interpolation between formants with 16 different volume ratios
* 16 volume levels for resulting audio output
* self-modifying code, of course
* critical code run in Zero Page
* ...while only ~15 assembly instructions per sample available
* ...and still cpu-time left for a demo!
The c64mp3 encoder uses some seriously advanced signal processing as well:
* sub-sample pitch detection
* auto-tuning into constant-pitch audio
* formant extraction, sub-sample phase-alignment and normalization
* formant cross correlation and selection
* consonant detection and extraction
* run-length encoding of data with _minimal_ unpacking overhead
* requires 4GB of RAM and 500MB of hard drive space
It is true, the Commodore 64 CAN SING! ...but it took some 28 years for it to learn! ;) |
|
|
|
![](/gfx/c64l-vl.gif) | Search CSDb |
![](/gfx/c64l-vl.gif) | Navigate | ![](/gfx/c64l-vl.gif) |
|
![](/gfx/c64l-vl.gif) | Detailed Info | ![](/gfx/c64l-vl.gif) |
|
![](/gfx/c64l-vl.gif) | Fun Stuff | ![](/gfx/c64l-vl.gif) |
· Goofs · Hidden Parts · Trivia
|
|
![](/gfx/c64l-vl.gif) | Forum | ![](/gfx/c64l-vl.gif) |
|
![](/gfx/c64l-vl.gif) | Info on other sites | ![](/gfx/c64l-vl.gif) |
|
![](/gfx/c64l-vl.gif) | Support CSDb | ![](/gfx/c64l-vl.gif) |
|
![](/gfx/c64l-bl.gif) | ![](/gfx/c64l-hb.gif) |
|