Thanks for help. I've sorted out my sample rate problem but now I've got another problem.
I've got an additive synth which generates some very high frequency partials and hence aliasing distortion occurs when the fundamental is high enough.
I tried to fix this by using a low pass (lop~) filter before the dac. This didn't fix the problem and I suspect that lop~ only filters up to about 22kHz. Is there a way of implementing a 'brick wall' filter which will stop ALL frequencies past a cutoff? (i.e. not just frequencies in the audible range)
Al
____________________________________________________________ Yahoo! Messenger - Communicate instantly..."Ping" your friends today! Download Messenger Now http://uk.messenger.yahoo.com/download/index.html
Al Riley wrote:
I've got an additive synth which generates some very high frequency partials and hence aliasing distortion occurs when the fundamental is high enough.
Just mute the osc's that are above 22050Hz. That's the normal solution.
I tried to fix this by using a low pass (lop~) filter before the dac. This didn't fix the problem and I suspect that lop~ only filters up to about 22kHz.
There is no signal above 22050Hz (assuming 44.1kHz sampling rate). Nothing to filter out anymore. The aliasing is already inseparatable from the intended signal at that point.
j#|@
Al Riley wrote:
Thanks for help. I've sorted out my sample rate problem
fine, however:
it would be very nice of you, if you could post the solution of your problem; people tend to search the mailing-list archives when they are having problems and it would be nice to offer a solution
mfg.a.sdr IOhannes
Hello
I've got an additive synth which generates some very high frequency partials and hence aliasing distortion occurs when the fundamental is high enough.
I tried to fix this by using a low pass (lop~) filter before the dac. This didn't fix the problem and I suspect that lop~ only filters up to about 22kHz. Is there a way of implementing a 'brick wall' filter which will stop ALL frequencies past a cutoff? (i.e. not just frequencies in the audible range)
You can make a 'brick' filter using an FFT transform, but the sound will be more or less altered (depending on the window size and the overlap you use for the FFT). I programmed a dual similar filter for adding the low partials of a sound to the high partials of another sound (the limit is as vertical as possible). As there was nothing else running in the patch, I could set the window size to 4096 (for accurate frequency resolution) and the overlap to 16 (for accurate "time" resolution). The problem of this method is that it takes lots of CPU.
Another solution is to calculate the highest partial that won't produce aliasing, in function of the fundamental. If we call F the fundamental, the k-th partial will have a frequency of F + k*F (if you chose another harmonicity system, you may adapt this formula). Therefore the maximum number of computable partials of the F fundamental is the integer part of (22050-F)/F. For F = 10 Hz, you can compute 2204 partials For F = 1000 Hz, you can only compute 21 partials The idea, here, is to limit the number of partials to the maximum (you can evaluate this maximum in realtime, in function of the fundamental). You can either mute the partials that outpass the limit (the most simple solution) or not even calculate them.
I hope it will help
j
julien.breval@tremplin-utc.net wrote:
Another solution is to calculate the highest partial that won't produce aliasing, in function of the fundamental. If we call F the fundamental, the k-th partial will have a frequency of F + k*F (if you chose another harmonicity system, you may adapt this formula). Therefore the maximum number of computable partials of the F fundamental is the integer part of (22050-F)/F. For F = 10 Hz, you can compute 2204 partials For F = 1000 Hz, you can only compute 21 partials The idea, here, is to limit the number of partials to the maximum (you can evaluate this maximum in realtime, in function of the fundamental). You can either mute the partials that outpass the limit (the most simple solution) or not even calculate them.
The effect of ultrasonic partials can be very audible. The sound seems to come from intermodulation distortion in the ear sensors themselves, which is causing lower frequency artefacts. Any calculation to simulate this effect (e.g. multiply together the ultrasonic partials while adding the audible ones) would perhaps add realism to the sound of higher frequency complex tones.
Martin
yeah this stuff had me confused for a long while....! it's straightforward in maths to express the sum of two frequencies as the mid freq modulated by a low frequency (half the separation freq) but it's not so straightforward explaining why we can actually HEAR this low frequency even though a fourier transform wouldn't show anything there.....
weird non-linear ears....
Matt
-=-=-=-=-=-=-=-=-=-=-=-=- http://www.loopit.org/ -=-=-=-=-=-=-=-=-=-=-=-=- ----- Original Message ----- From: "Martin Peach" martinrp@vax2.concordia.ca To: julien.breval@tremplin-utc.net Cc: "Al Riley" alrileyuk@yahoo.co.uk; pd-list@iem.at Sent: Wednesday, May 19, 2004 3:24 PM Subject: Re: [PD] Anti-aliasing filter
julien.breval@tremplin-utc.net wrote:
Another solution is to calculate the highest partial that won't produce aliasing, in function of the fundamental. If we call F the fundamental, the k-th partial will have a frequency of
F + k*F
(if you chose another harmonicity system, you may adapt this formula). Therefore the maximum number of computable partials of the F fundamental
is the
integer part of (22050-F)/F. For F = 10 Hz, you can compute 2204 partials For F = 1000 Hz, you can only compute 21 partials The idea, here, is to limit the number of partials to the maximum (you
can
evaluate this maximum in realtime, in function of the fundamental). You
can
either mute the partials that outpass the limit (the most simple
solution) or
not even calculate them.
The effect of ultrasonic partials can be very audible. The sound seems to come from intermodulation distortion in the ear sensors themselves, which is causing lower frequency artefacts. Any calculation to simulate this effect (e.g. multiply together the ultrasonic partials while adding the audible ones) would perhaps add realism to the sound of higher frequency complex tones.
Martin
PD-list mailing list PD-list@iem.at to manage your subscription (including un-subscription) see http://iem.at/cgi-bin/mailman/listinfo/pd-list
Selon Martin Peach martinrp@vax2.concordia.ca:
julien.breval@tremplin-utc.net wrote:
Another solution is to calculate the highest partial that won't produce aliasing, in function of the fundamental. If we call F the fundamental, the k-th partial will have a frequency of F +
k*F
(if you chose another harmonicity system, you may adapt this formula). Therefore the maximum number of computable partials of the F fundamental is
the
integer part of (22050-F)/F. For F = 10 Hz, you can compute 2204 partials For F = 1000 Hz, you can only compute 21 partials The idea, here, is to limit the number of partials to the maximum (you can
evaluate this maximum in realtime, in function of the fundamental). You can
either mute the partials that outpass the limit (the most simple solution)
or
not even calculate them.
The effect of ultrasonic partials can be very audible. The sound seems to come from intermodulation distortion in the ear sensors themselves, which is causing lower frequency artefacts. Any calculation to simulate this effect (e.g. multiply together the ultrasonic partials while adding the audible ones) would perhaps add realism to the sound of higher frequency complex tones.
of course
(but I'm not looking forward to use additive synthesis for emulating other sounds)
On Wednesday 19 May 2004 08:32, julien.breval@tremplin-utc.net wrote:
Hello
I've got an additive synth which generates some very high frequency partials and hence aliasing distortion occurs when the fundamental is high enough.
I tried to fix this by using a low pass (lop~) filter before the dac. This didn't fix the problem and I suspect that lop~ only filters up to about 22kHz. Is there a way of implementing a 'brick wall' filter which will stop ALL frequencies past a cutoff? (i.e. not just frequencies in the audible range)
You can make a 'brick' filter using an FFT transform, but the sound will be more or less altered (depending on the window size and the overlap you use for the FFT). I programmed a dual similar filter for adding the low partials of a sound to the high partials of another sound (the limit is as vertical as possible). As there was nothing else running in the patch, I could set the window size to 4096 (for accurate frequency resolution) and the overlap to 16 (for accurate "time" resolution). The problem of this method is that it takes lots of CPU.
No, actually, the problem of this method is that it doesn't work in this case. Once aliased frequencies are introduced, the game is over, because the frequencies have already been aliased.
Another solution is to calculate the highest partial that won't produce aliasing, in function of the fundamental.
This is the only solution, short of techniques like resampling ahead of time at a much higher rate.
Larry Troxler
Selon Larry Troxler lt@westnet.com:
On Wednesday 19 May 2004 08:32, julien.breval@tremplin-utc.net wrote:
Hello
I've got an additive synth which generates some very high frequency partials and hence aliasing distortion occurs when the fundamental is high enough.
I tried to fix this by using a low pass (lop~) filter before the dac. This didn't fix the problem and I suspect that lop~ only filters up to about 22kHz. Is there a way of implementing a 'brick wall' filter which will stop ALL frequencies past a cutoff? (i.e. not just frequencies in the audible range)
You can make a 'brick' filter using an FFT transform, but the sound will
be
more or less altered (depending on the window size and the overlap you
use
for the FFT). I programmed a dual similar filter for adding the low partials of a sound to the high partials of another sound (the limit is
as
vertical as possible). As there was nothing else running in the patch, I could set the window size to 4096 (for accurate frequency resolution) and the overlap to 16 (for accurate "time" resolution). The problem of this method is that it takes lots of CPU.
No, actually, the problem of this method is that it doesn't work in this case. Once aliased frequencies are introduced, the game is over, because the frequencies have already been aliased.
you are right
It only works if the additive synthesis itself is 100% FFT-based (which is not the regular solution)
On Thu, 20 May 2004 julien.breval@tremplin-utc.net wrote:
I've got an additive synth which generates some very high frequency partials and hence aliasing distortion occurs when the fundamental is high enough.
I actually think this is a bug in osc~. Or is there a reason that osc~ actually produces these aliased frequencies. Mhmm, maybe its a performance issue.
Guenter
State: NSW Genre: Concert Date: Tuesday, 6 July 2004 Ends: Friday, 9 July 2004 Event: LISTENING TO THE MIND LISTENING Venue: Sydney Opera House Website: http://www.sydneyoperahouse.com/thestudio The Gig: CALL FOR SONIFICATIONS: Listening to the Mind Listening
The Listening to the Mind Listening Concert will be held at the Sydney Opera House as part of the International Conference on Auditory Display ICAD2004 in Sydney from 6-9 July 2004 www.icad.org/icad2004. The music in the concert will be sonifications composed from the neural activity of a person listening to a piece of music. Sonification is the mapping of data into sounds for some purpose. A data set containing a recording of neural activity is available for download from the ICAD website as described in the Data section of this call. This is an invitation for you to submit a sonification of this data for the concert. Submissions are open to everyone. Ten of the submitted sonifications will be selected for the concert, an audio CD and accompanying booklet. The concert will be presented by the Sydney Opera House Studio and promoted to the general public
Find out more at http://www.sydneyoperahouse.com/thestudio _____________________________________________ _____________________________________________
bah, wrong subject line and submissions closed months ago...
but the data could be still fun to play with regardless.
pix.
On Thu, May 20, 2004 at 10:32:59PM +0300, John Hopkins wrote:
State: NSW Genre: Concert Date: Tuesday, 6 July 2004 Ends: Friday, 9 July 2004 Event: LISTENING TO THE MIND LISTENING Venue: Sydney Opera House Website: http://www.sydneyoperahouse.com/thestudio The Gig: CALL FOR SONIFICATIONS: Listening to the Mind Listening
The Listening to the Mind Listening Concert will be held at the Sydney Opera House as part of the International Conference on Auditory Display ICAD2004 in Sydney from 6-9 July 2004 www.icad.org/icad2004. The music in the concert will be sonifications composed from the neural activity of a person listening to a piece of music. Sonification is the mapping of data into sounds for some purpose. A data set containing a recording of neural activity is available for download from the ICAD website as described in the Data section of this call. This is an invitation for you to submit a sonification of this data for the concert. Submissions are open to everyone. Ten of the submitted sonifications will be selected for the concert, an audio CD and accompanying booklet. The concert will be presented by the Sydney Opera House Studio and promoted to the general public
Find out more at http://www.sydneyoperahouse.com/thestudio _____________________________________________ _____________________________________________
PD-list mailing list PD-list@iem.at to manage your subscription (including un-subscription) see http://iem.at/cgi-bin/mailman/listinfo/pd-list