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 Composing > Converting samples to 3 bit
2011-04-08 04:23
TWW

Registered: Jul 2009
Posts: 545
Converting samples to 3 bit

What I want to do:

Play a 3 voice SID tune - while using the 3 LSB's of $d418 to play samples simultaniously (3rd bit of $d418 always set so one always hear the tune).


Problem:

#1: Making samples <- Suggestion for FW/PD tool to make samples with (win7x64).
#2: Converting the sample to 3 bits from however bit-width it was greated from tool in #1 <- The correct mathematical way or a converter to do it.
#3: Any good tip on how to make the samples as "clean" as possible in addition to higher sample frequency? (i.e. any pitfalls I should try to avoid like sampling with too high bit-width or such(which might lead to a bad conversion etc.))? <- Yeah I totally don't know what I'm talking about here in #3 so bear with me 8-D

/TWW
2011-04-08 07:19
ready.

Registered: Feb 2003
Posts: 441
about point 3: the Nyquist–Shannon sampling theorem says that if you want to reproduce a sampled signal, the sampling frequency fs must be at least twice the bandwidth B of the signal. So, considering that an audio signal frequncy spectrum goes from 0 Hz to B Hz:

fs > 2 * B

so, once you selected the sampling freq fs at which each sample is reproduced, you must apply a low pass filter to your audio signal that cuts all frequencies higher that fs/2.

If you don't do so, you will hear the effect of aliasing, which sounds much like unwanted noise.

sorry no idea about point 1 & 2

my 2 cents.
2011-04-08 07:51
TWW

Registered: Jul 2009
Posts: 545
Quote: about point 3: the Nyquist–Shannon sampling theorem says that if you want to reproduce a sampled signal, the sampling frequency fs must be at least twice the bandwidth B of the signal. So, considering that an audio signal frequncy spectrum goes from 0 Hz to B Hz:

fs > 2 * B

so, once you selected the sampling freq fs at which each sample is reproduced, you must apply a low pass filter to your audio signal that cuts all frequencies higher that fs/2.

If you don't do so, you will hear the effect of aliasing, which sounds much like unwanted noise.

sorry no idea about point 1 & 2

my 2 cents.


Alright, let me see if I got that right:

After deciding what frequency i will do the playback;

-> Remove all frequencies from the sample which are at 2x the playback frequency (i.e. if playback is at 20kHz, the sample should not conatin any audio signal higher then 40 kHz).

Instead of applying a LP-Filter for post processing is it possible to sample only certain frequency span (0-40Khz f.ex) thus eliminating the need for a LP filter later?

I guess this falls back to question #1...

EDIT: I found a software program called "Wavosaur" (suitable name don't u think^^) where I can play around with filters, samplerates and bit-width.

I have a sample 22050 Hz / 8 Bit Mono. However lower bit rates isn't supported so I still need to convert the 8 bit into a 3 bit.

The output file is .wav so I believe it uses signed numbers for presenting the data. For converting the sample I would have to ABSolute the data first, then multiply a factor of 3/8 to the result and voilla, 3 bits scaled representation... IMHO, this is probably a really bad way to do it and there is for sure some 'better result' yielding way?
2011-04-08 09:33
The Human Code Machine

Registered: Sep 2005
Posts: 112
For resampling I use the free r8brain, but I also didn't find a good tool to change the bit depth to any bit depth. Most tools only support 16 bit and 8 bit depth. You can lower the bit depth yourself by dividing the sample value by 2 for each bit. So a simple LSR should do the trick. My Mod-Converter adds a random dither while lowering 8 bit to 7 or 6 bit, but I don't know, if this helps at 3 bits. Forgot this link: Soundslogical Resampler but the demo download link is broken. Optimal would be a tool supporting noise shaping and or dithering.
2011-04-08 10:38
ready.

Registered: Feb 2003
Posts: 441
@TWW: no, it's the other way around: if playback is at 20kHz, the sample should not conatin any audio signal higher then 20/2=10 kHz

"sampling only certain frequency span" is exaclty what a filter does, so you end up needing the LP-filter.


2011-04-08 11:10
TWW

Registered: Jul 2009
Posts: 545
@ The Human Code Machine: A LSR would yieald 4 bits so still I'm 1 bit short. But I get your drift. Find the shrinkage factor and do it.

But I came to the same conclusion as you, more then just raw shrinkage (^^) needs to be applied to get a good result.

Has anyone had the chance to try out "Soundslogical Resampler"? It states it can handle various bit-width but ofcourse the demo is screwed. I don't mind dishing out some 20-30 $ (good echange rate anywasy) for it but would like to know if it works first...


@ Ready:

Alright, I got it now 8-D. Sample in "X"kHz but no sounds higher then "X/2"Khz for cleanest sound playback (hence the LP filter). It seems this can be post processed though in the proggie i mentioned above. If not I'll ask again^^ Thanx!
2011-04-08 11:16
SIDWAVE
Account closed

Registered: Apr 2002
Posts: 2238
why all this complicated stuff ?

soundforge, wavelab, audition - save as 4 bit unsigned raw.
(or save as 8 bit unsigned raw 8000 hz (THE old way)

convert to 3 bit in realtime on c64 with some code.



those programs resample as it shall be done, and so you dont have to do anything of that.
2011-04-08 12:09
ready.

Registered: Feb 2003
Posts: 441
@rambones: I am 99% sure most of those programs have automatic functions for "clean" re-sampling (i.e.: built in LP-filter and everything), but I just wanted to point out the theory, just in case TWW or others wanted to do the re-sampling in their own way.

I am working on a sound sampler for user-port and noticed the importance of the LP-filter for getting rid of aliasing noise.
2011-04-08 12:26
The Human Code Machine

Registered: Sep 2005
Posts: 112
@TWW For each bit less you'll need one LSR. If you want convert 8 bit samples to 3 bit samples you'll have to LSR 5 times.
2011-04-08 12:45
chatGPZ

Registered: Dec 2001
Posts: 11386
and remember to save them as unsigned before, or that shifting stuff will give you something like nu metal =)
2011-04-08 14:03
TWW

Registered: Jul 2009
Posts: 545
THCM:

5 LSRs?

8 bit sample gives an unsigned number between 0 to 255
3 bit sample gives an unsigned number between 0 to 7

so if the value = 161 in 8 bit the value in 3 bit should be equevivalent to:

161/255*7 = 4

If you take 161 and do 5 LSRs you get: 5

So I don't think it's entirely accurate to do it this way. I could how ever be terribly wrong here :) (it has happened before^^)

@ rambones: Can you also save in 3 bit? (25% less space right of the bat^^)
 
... 14 posts hidden. Click here to view all posts....
 
Previous - 1 | 2 | 3 - 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
Mike
MP Software/Hokuto F..
lotus_skylight
Malmix/Fatzone
Røly/Mayday!
maverick/mode 2
REBEL 1/HF
WVL/Xenon
Guests online: 84
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 The Demo Coder  (9.6)
6 Edge of Disgrace  (9.6)
7 What Is The Matrix 2  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 Cubic Dream  (9.6)
3 Party Elk 2  (9.6)
4 X-Mas Demo 2024  (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 Booze Design  (9.3)
2 Oxyron  (9.3)
3 Performers  (9.3)
4 Censor Design  (9.3)
5 Triad  (9.3)
Top Diskmag Editors
1 Magic  (9.8)
2 Jazzcat  (9.5)
3 hedning  (9.4)
4 Elwix  (9.1)
5 Remix  (9.1)

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