My head is spinning from reading many papers (mostly academic) that I could barely understood 25% or something. It is getting very complex when you dive deep into it (with all the details), even if you have studied math in the uni long time ago!
Aliasing in synths. How to prevent it?
-
- KVRAF
- Topic Starter
- 9144 posts since 7 Oct, 2005
I'm between 48kHz and 88kHz. I didn't find a big difference (or any difference) but I will keep testing between these two sample rates.
My head is spinning from reading many papers (mostly academic) that I could barely understood 25% or something. It is getting very complex when you dive deep into it (with all the details), even if you have studied math in the uni long time ago!
My head is spinning from reading many papers (mostly academic) that I could barely understood 25% or something. It is getting very complex when you dive deep into it (with all the details), even if you have studied math in the uni long time ago!
Using: Cubase Pro 15, Reason 13, Tascam US-4x4HR, MODX6, DM12D, LaunchKey 49, Yamaha guitar(Pacifica 612v) and bass (BB234) and some virtual instruments and synths.
- KVRian
- 725 posts since 19 Jul, 2005 from Paris
Hi,
It's important to work with an audio card with a good SRC (like my SB XFI) for recording the DAW master output stream generally in 32 bit / float to any application which use "What I hear" input.
For example I recorded this complex track of my Cubase session in 88.2k directly with Camstudio in 44.1k (Camstudio doesn't support other FS) to do my usual Youtube track. Youtube converts all to 44.1k and I prefer to manage myself the conversion...
I worked the mix and the presets in 88.2k but my audio card output setting was set to 44.1k, the DSP of the SB converted directly to 44.1k for the monitoring.
@EnGee
Sure, you can work your mix in 44.1k because the majority of plug-ins use band limited processes. In some case when you work on complex VA synthesizer patches that will be better to try upper FS than 44.1k.
Xavier
It's important to work with an audio card with a good SRC (like my SB XFI) for recording the DAW master output stream generally in 32 bit / float to any application which use "What I hear" input.
For example I recorded this complex track of my Cubase session in 88.2k directly with Camstudio in 44.1k (Camstudio doesn't support other FS) to do my usual Youtube track. Youtube converts all to 44.1k and I prefer to manage myself the conversion...
I worked the mix and the presets in 88.2k but my audio card output setting was set to 44.1k, the DSP of the SB converted directly to 44.1k for the monitoring.
@EnGee
Sure, you can work your mix in 44.1k because the majority of plug-ins use band limited processes. In some case when you work on complex VA synthesizer patches that will be better to try upper FS than 44.1k.
Xavier
-
- KVRAF
- Topic Starter
- 9144 posts since 7 Oct, 2005
Thank you Xavier. I think I will stick to 44.1k because most of my sound resources sound clean and fine to me at this sample rate. I'm avoiding some presets and/or synths that causing a lot of aliasing.kx77free wrote:
@EnGee
Sure, you can work your mix in 44.1k because the majority of plug-ins use band limited processes. In some case when you work on complex VA synthesizer patches that will be better to try upper FS than 44.1k.
Xavier
I did 'feel' there was an improvement in the sound when I switched to 96k, but I don't know if it is just a placebo or it is really better!
Anyway, I think the 44.1 is fine for me if I take care with what sounds I choose.
btw, the track you posted is really well done
Using: Cubase Pro 15, Reason 13, Tascam US-4x4HR, MODX6, DM12D, LaunchKey 49, Yamaha guitar(Pacifica 612v) and bass (BB234) and some virtual instruments and synths.
-
fluffy_little_something fluffy_little_something https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=281847
- Banned
- 12880 posts since 5 Jun, 2012
Strange, why do they recommend using 48 or 96 kHz and not 44.1 to begin with?kx77free wrote:Hi,
It's important to work with an audio card with a good SRC (like my SB XFI) for recording the DAW master output stream generally in 32 bit / float to any application which use "What I hear" input.
For example I recorded this complex track of my Cubase session in 88.2k directly with Camstudio in 44.1k (Camstudio doesn't support other FS) to do my usual Youtube track. Youtube converts all to 44.1k and I prefer to manage myself the conversion...
- KVRian
- 725 posts since 19 Jul, 2005 from Paris
Hi,
I found this link recently, very good tool to compare any software SRC of 96k to 44.1k conversion:
http://src.infinitewave.ca/
I found this link recently, very good tool to compare any software SRC of 96k to 44.1k conversion:
http://src.infinitewave.ca/
-
- KVRAF
- Topic Starter
- 9144 posts since 7 Oct, 2005
Thankskx77free wrote:Hi,
I found this link recently, very good tool to compare any software SRC of 96k to 44.1k conversion:
http://src.infinitewave.ca/
I found this exactly website while browsing. I was surprised little bit that Ableton Live was from the cleanest DAWs in conversion!
I think it is better to stick to one resolution rather than keep converting from sample rate to another (at least this is what I concluded from many discussions I read).
Using: Cubase Pro 15, Reason 13, Tascam US-4x4HR, MODX6, DM12D, LaunchKey 49, Yamaha guitar(Pacifica 612v) and bass (BB234) and some virtual instruments and synths.
-
- KVRAF
- 3499 posts since 9 Oct, 2004 from Poland
Or at least only use rates that are whole number multiples of the final sample rate.EnGee wrote:I think it is better to stick to one resolution rather than keep converting from sample rate to another (at least this is what I concluded from many discussions I read).
[====[\\\\\\\\]>------,
Ay caramba !
Ay caramba !
-
- KVRAF
- Topic Starter
- 9144 posts since 7 Oct, 2005
Yes, I also read (long time ago) that it is better to convert from 88.2 to 44.1 rather than 96 to 44.1, but I don't know why exactly is this! Maybe the division is better with integers? I guess so.
Using: Cubase Pro 15, Reason 13, Tascam US-4x4HR, MODX6, DM12D, LaunchKey 49, Yamaha guitar(Pacifica 612v) and bass (BB234) and some virtual instruments and synths.
-
- KVRAF
- 3499 posts since 9 Oct, 2004 from Poland
Maybe because then there is no division at all, just taking odd sample values, writing them without any change and omitting the even values ?EnGee wrote:Yes, I also read (long time ago) that it is better to convert from 88.2 to 44.1 rather than 96 to 44.1, but I don't know why exactly is this! Maybe the division is better with integers? I guess so.
[====[\\\\\\\\]>------,
Ay caramba !
Ay caramba !
-
- KVRAF
- 1922 posts since 15 Oct, 2008 from Germany
I doubt that this approach would give very good results.Mutant wrote:Maybe because then there is no division at all, just taking odd sample values, writing them without any change and omitting the even values ?EnGee wrote:Yes, I also read (long time ago) that it is better to convert from 88.2 to 44.1 rather than 96 to 44.1, but I don't know why exactly is this! Maybe the division is better with integers? I guess so.
Here's an example of an image of 250x250 px downsampled to 125x125, one time using no interpolation (nearest neighbour aka "dropping every other pixel" in this case), the other time using Lanczos 3 interpolation.

(Make sure that the image isn't downscaled by the browser).
There's a clear benefit of using interpolation, even when downsampling with whole divisors. Now I'm no expert on DSP, but I suppose that if this applies to 2D (images), it'll apply to 1D (audio) as well. I dare to say that "always downsample from 88.2K to 44.1K or from 96K to 48K" is a myth, but I have no source at hand. If you use a high quality SRC (like e.g. SoX), the relation of source to target rate shouldn't matter at all.
Regards,
Andre
- KVRAF
- 9589 posts since 17 Sep, 2002 from Gothenburg Sweden
That's not true anymore (if it ever was).EnGee wrote:Yes, I also read (long time ago) that it is better to convert from 88.2 to 44.1 rather than 96 to 44.1, but I don't know why exactly is this! Maybe the division is better with integers? I guess so.
-
- KVRAF
- Topic Starter
- 9144 posts since 7 Oct, 2005
Yes, it is wrong it seems from what I read few mins ago. It was related to some old converters that didn't downsampled well from 96 to 44.1.jupiter8 wrote:That's not true anymore (if it ever was).EnGee wrote:Yes, I also read (long time ago) that it is better to convert from 88.2 to 44.1 rather than 96 to 44.1, but I don't know why exactly is this! Maybe the division is better with integers? I guess so.
Anyway, there are many topics to read about it in the net (I had some links while googling it, but it needs some time to read and think about it).
Using: Cubase Pro 15, Reason 13, Tascam US-4x4HR, MODX6, DM12D, LaunchKey 49, Yamaha guitar(Pacifica 612v) and bass (BB234) and some virtual instruments and synths.
-
- KVRAF
- 3499 posts since 9 Oct, 2004 from Poland
(My brain doesn't work at full capacity yet, because i just woke up.)paterpeter wrote:I doubt that this approach would give very good results.Mutant wrote:Maybe because then there is no division at all, just taking odd sample values, writing them without any change and omitting the even values ?EnGee wrote:Yes, I also read (long time ago) that it is better to convert from 88.2 to 44.1 rather than 96 to 44.1, but I don't know why exactly is this! Maybe the division is better with integers? I guess so.
Here's an example of an image of 250x250 px downsampled to 125x125, one time using no interpolation (nearest neighbour aka "dropping every other pixel" in this case), the other time using Lanczos 3 interpolation.
(Make sure that the image isn't downscaled by the browser).
There's a clear benefit of using interpolation, even when downsampling with whole divisors. Now I'm no expert on DSP, but I suppose that if this applies to 2D (images), it'll apply to 1D (audio) as well. I dare to say that "always downsample from 88.2K to 44.1K or from 96K to 48K" is a myth, but I have no source at hand. If you use a high quality SRC (like e.g. SoX), the relation of source to target rate shouldn't matter at all.
Regards,
Andre
First thing that needs to be done when downsampling is filter out all frequencies that can't be replicated in the 2X lower sample rate (that would make it nicely silent when the frequency sweep from the comparison on that page someone linked earler goes above that limit).
In your 2D example, there is a lot of "high frequency" information, if you filter that out, you will have a picture that looks just like the smaller non interpolated one but 2X bigger.
There is a way to check it.
Make a sound at 88200, filter it so there is nothing above 22050hz, downsample it to 44100 (i guess that the downsample algo will apply its filter anyway at this stage), upsample again to 88200, invert the wave, mix it with the filtered wave from step 2.
You should get a digital silence or very close to it, if there was no interpolation.
[====[\\\\\\\\]>------,
Ay caramba !
Ay caramba !
- KVRAF
- 12615 posts since 7 Dec, 2004
The interpolation is the filter in this case. Most polynomial interpolations as well as cubic and similar are very poor filters, but they are also extremely efficient.
In some cases a linear or related interpolation can produce a better filter than any other method and when used in combination with other filters can yield ideal results... of course this depends entirely upon what the goal of using the filter is.
So yes you can sample a band-limited signal, of course. Yet the question remains, how do you get that signal to be band-limited in the first place?
This is what an interpolating filter is for.
In some cases a linear or related interpolation can produce a better filter than any other method and when used in combination with other filters can yield ideal results... of course this depends entirely upon what the goal of using the filter is.
So yes you can sample a band-limited signal, of course. Yet the question remains, how do you get that signal to be band-limited in the first place?
This is what an interpolating filter is for.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.
- KVRian
- 725 posts since 19 Jul, 2005 from Paris
Hi,
I prefer use 88.2k because this is a multiple of 44.1k. I suppose that the method to convert the signal to 44.1k from 88.2k is more simple than the method to down sample a 96k audio signal to 44.1k. When you work with a factor of 2, you can use a simple linear interpolation.
For example:
I use a simple way to oversample my processes, this way is for synthesizer modules not for general audio signals which need a filter FC to the Nyquist frequency if you want a full range of bandwidth.
The oversampling filters are IIR Chebychev (6 or 10 orders) with FC to 20k based on 96k, 192k and 384k, I know that is not good in theory but I win a lot of dB around the Nyquist with a very low CPU use.
I prefer to limit the high frequencies upper than 20K because only few electro musicians can really ear these ones and that decreases the aliasing if you use the signal like a source of modulation.
To up scale I use a simple linear interpolation before to input the sample in the up filter. In fact I create an intermediate sample based on the last input sample, I do not use the zero stuffing because this method is when you use FIR filters.
I win 6 dB with this method!
The DSP process is inside a loop (2,4,8 following the oversampling factor).
To down scale I keep the first value of the loop array after the down filter. It's logic when you use a 2x,4x,... factor because the original signal is not more defined!
up*2:
input samples =10, 15, 3, etc... > linear interpolation 10,10+(15-10)*0.5,15,15+(3-15)*0.5,3,etc...
linear_input=10,12.5,15,9,3,etc...
For loop x2 (0,1):
linear_input[0] sample to up filter*, process the sample (+1 for example), sample to down filter**, sample to array[0].
linear_input[1] sample to up filter*, process the sample (+1 for example), sample to down filter**, sample to array[1].
example for 10,12.5,15,9,3 sample value inputs:
loop
array[0]=11,array[1]=13.5
loop
array[0]=16,array[1]=10
loop
array[0]=4...
down*2
result = array[0] because linear interpolation ( ( array[0]+array[1] )*0.5 ) gives similar results ...
output = 11,16,4,etc...
So I compared my x2 oversample process with others, like: VST Oversampler, Synthedit and the quality level of Diva for the filters. The results are very good, It's close of an x3 oversampling with a very low CPU use.
And the code is very simple for the maintenance without any complex extra libraries.
*The up sampling filter is used to eliminate the artefacts created by the interpolation.
**The down sampling filter is used to filter the frequencies upper than 22k for 88200k or 24k for 96k.
I hope that my explanations are clear for all.
Xavier
I prefer use 88.2k because this is a multiple of 44.1k. I suppose that the method to convert the signal to 44.1k from 88.2k is more simple than the method to down sample a 96k audio signal to 44.1k. When you work with a factor of 2, you can use a simple linear interpolation.
For example:
I use a simple way to oversample my processes, this way is for synthesizer modules not for general audio signals which need a filter FC to the Nyquist frequency if you want a full range of bandwidth.
The oversampling filters are IIR Chebychev (6 or 10 orders) with FC to 20k based on 96k, 192k and 384k, I know that is not good in theory but I win a lot of dB around the Nyquist with a very low CPU use.
I prefer to limit the high frequencies upper than 20K because only few electro musicians can really ear these ones and that decreases the aliasing if you use the signal like a source of modulation.
To up scale I use a simple linear interpolation before to input the sample in the up filter. In fact I create an intermediate sample based on the last input sample, I do not use the zero stuffing because this method is when you use FIR filters.
I win 6 dB with this method!
The DSP process is inside a loop (2,4,8 following the oversampling factor).
To down scale I keep the first value of the loop array after the down filter. It's logic when you use a 2x,4x,... factor because the original signal is not more defined!
up*2:
input samples =10, 15, 3, etc... > linear interpolation 10,10+(15-10)*0.5,15,15+(3-15)*0.5,3,etc...
linear_input=10,12.5,15,9,3,etc...
For loop x2 (0,1):
linear_input[0] sample to up filter*, process the sample (+1 for example), sample to down filter**, sample to array[0].
linear_input[1] sample to up filter*, process the sample (+1 for example), sample to down filter**, sample to array[1].
example for 10,12.5,15,9,3 sample value inputs:
loop
array[0]=11,array[1]=13.5
loop
array[0]=16,array[1]=10
loop
array[0]=4...
down*2
result = array[0] because linear interpolation ( ( array[0]+array[1] )*0.5 ) gives similar results ...
output = 11,16,4,etc...
So I compared my x2 oversample process with others, like: VST Oversampler, Synthedit and the quality level of Diva for the filters. The results are very good, It's close of an x3 oversampling with a very low CPU use.
And the code is very simple for the maintenance without any complex extra libraries.
*The up sampling filter is used to eliminate the artefacts created by the interpolation.
**The down sampling filter is used to filter the frequencies upper than 22k for 88200k or 24k for 96k.
I hope that my explanations are clear for all.
Xavier
Last edited by kx77free on Sat Oct 10, 2015 9:16 pm, edited 2 times in total.
