Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > 44.1kHz 8-bit samples - HowTo
2014-02-26 12:47
Pex Mahoney Tufvesson

Registered: Sep 2003
Posts: 52
44.1kHz 8-bit samples - HowTo

I've written a summary on how to play 8-bit samples at 44.1kHz on the Commodore 64, as I did in the Musik Run/Stop demo. For some of you, it's a good read:

http://www.livet.se/mahoney/index_timeline.php

I'll be putting some source files for you there as well sooner or later.
---
Have a noise night!
http://mahoney.c64.org
2014-02-26 13:46
Oswald

Registered: Apr 2002
Posts: 5094
too simple to be true :)

but how about the playback routine ? it still just dumbly plays X kb of samples, while in the demo there's some tought to it ? isnt there space to add 2 samples of 256 bytes ? then by using code as patterns, select different HI bytes for different sample mixing ? ;) Something for the next demo.
2014-02-26 15:09
Mr. SID

Registered: Jan 2003
Posts: 424
That's awesome stuff. Would you be able to post the lookup table somewhere in the meantime?
2014-02-26 16:29
Perplex

Registered: Feb 2009
Posts: 255
Great paper! Even I understood most of it (or at least you managed to make me think I did.)

Can the results of this research help improve the general accuracy of SID emulation as well as emulation of this particular trick, without a great deal of additional effort?
2014-02-26 17:19
chatGPZ

Registered: Dec 2001
Posts: 11386
Quote:
That's awesome stuff. Would you be able to post the lookup table somewhere in the meantime?

very cool, works almost exactly like i assumed :)

i would like to see those test programs so we can throw them at VICE :)
2014-02-26 20:15
encore

Registered: Aug 2010
Posts: 67
Read the article earlier today, definitely an interesting read. :) One funny thing was (since I've also experimented with SounDemons 1 sid voice-technique the last few days) to read that you had drawn the same conclusions regarding samplerate vs amplitude as I did. :)

Anyway, great discovery. :)

The only part I don't understand is if two following $d418-writes has to be paired values in order to gain a certain sample-amplitude level? In other words, does the samples need to be preprocessed in order for this to work? (and would they sound strange if played backwards?)

If not, and if it's then possible to playback any calculated sample-values, I could definitely see THCM freeing up some cycles in his modplayer to perhaps add some more features. :)
2014-02-26 20:43
soci

Registered: Sep 2003
Posts: 480
Quote: I've written a summary on how to play 8-bit samples at 44.1kHz on the Commodore 64, as I did in the Musik Run/Stop demo. For some of you, it's a good read:

http://www.livet.se/mahoney/index_timeline.php

I'll be putting some source files for you there as well sooner or later.
---
Have a noise night!
http://mahoney.c64.org


Cool someone measured this out finally ;)

One minor correction: It's only ~6.53 bits more or less based on the number of combinations. Only the digimax version has a full 8 bit resolution.
2014-02-26 21:00
lft

Registered: Jul 2007
Posts: 369
Quoting encore
The only part I don't understand is if two following $d418-writes has to be paired values in order to gain a certain sample-amplitude level?


No, the way I understood it is that each written value produces a given amplitude on average. Depending on the previously written value, an error is added. The graphs show that these errors are small compared to the average value, i.e. the standard deviation is small.

It's really cool that Mahoney has managed to output 44.1 kHz sound. But the real beauty of this method is that it can be used to play back loud 6.5 bit samples (if soci's calculations are correct) at any convenient frequency, spending a minimum of cycles and not having to worry about exact timing.

Mixing two or more channels would be easy, as long as the sum is passed through a LUT. That table could of course also do compression and other post-processing.
2014-02-26 21:05
MagerValp

Registered: Dec 2001
Posts: 1078
Quoting lft
But the real beauty of this method is that it can be used to play back loud 6.5 bit samples (if soci's calculations are correct) at any convenient frequency, spending a minimum of cycles and not having to worry about exact timing.


Yeah, this has me really excited. Add a little delta compression and we're talking a lot of high quality sound.
2014-02-26 22:10
Pex Mahoney Tufvesson

Registered: Sep 2003
Posts: 52
I've added the SID6581 and 8580 reference measurements, volume tables, C64 source code and binary for measurement program and a Matlab script for generating your own volume tables. It's a 100MB download. Have fun!

http://www.livet.se/mahoney/index_timeline.php

Those tables are ideal for real-time 8-bit mixing routines - like the a cappella part in the demo, which uses THCM's mod replayer - with 12kHz rendering.


Now, quantization is a bad thing. So I didn't first quantize the 44.1kHz samples into 8 bits, and then into the available amplitude levels found with this technique. For instance, the 6581 version of the samples uses 107 different values written into $d418 in the demo.

A fun thing is that audio quality can be further improved by "normal CD techniques" like sigma-delta and dithering, since the quantization noise can be pushed above 17kHz. But, in the demo I only minimized the least-mean-square error for each sample individually.

---
Have a noise night!
http://mahoney.c64.org
2014-02-26 22:29
The Human Code Machine

Registered: Sep 2005
Posts: 112
@encore What features do you mean for my Protracker replayer? It's feature complete and supports all Protracker commands. Even with SounDemoN's 8 Bit waveform output I'm able to play a full featured Protracker modules @ 7812hz and 4 voices. I'm only limiting the different volumes to 32 and limit the amount of different periods to get more memory for samples and music data. With the new replay method it's even possible to add more voices or higher mixing rates.

The a Cappella part for example uses 3 voices @ 11.718hz with reduced feature set to get better sample quality and some action on the screen.

@lft When using more than one voice we're doing it like you explained.
 
... 9 posts hidden. Click here to view all posts....
 
Previous - 1 | 2 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Guests online: 86
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.6)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Webmasters
1 Slaygon  (9.6)
2 Perff  (9.6)
3 Sabbi  (9.5)
4 Morpheus  (9.4)
5 CreaMD  (9.1)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.052 sec.