Hi,
So, I've created some complex Pd patches that do what I want very nicely. I decided to write some of my creations to CD. Listening to the selections on my good CD player with excellent headphones, I heard some acoustical artifacts that I hadn't noticed when I was working in front of my computer listening through speakers. This extra "buzzing" sound is quite annoying. It's hard to imagine how my patches are making it. Does anyone have any wisdom about how to track down and fix these kind of problems? Are there any usual things you check first?
At first, I thought it might be the process of transferring the ".wav" files to a CD-R, but when I listen with headphones, I can hear it directly from my dacs (Edirol UA-25). It doesn't matter if I set the sampling rate to 96000. I thought [freeverb~] might be adding the sound, but when I bypass freeverb I still hear it. My basic sound producing algorithm is derived from the exponential waveshaping example in the documentation. Maybe there is some marginality or limitation to that approach that I don't understand?
Well, thanks for reading. Even if you don't have any ideas for me, I think it would be interesting to hear stories about how people have tracked down and fixed their own sound "bugs."
Cheers, David
A common source of spurious signals occurs at the interface between control logic in the message domain and audio rate computations. Careful thought about how envelope curves are obtained will help. As a general rule I find converting all control signals to audio and carefully deploying [lop] units can solve most problems of this kind.
On Sat, 18 Oct 2008 17:25:36 -0400 "David F. Place" d@vidplace.com wrote:
Hi,
So, I've created some complex Pd patches that do what I want very nicely. I decided to write some of my creations to CD. Listening to the selections on my good CD player with excellent headphones, I heard some acoustical artifacts that I hadn't noticed when I was working in front of my computer listening through speakers. This extra "buzzing" sound is quite annoying. It's hard to imagine how my patches are making it. Does anyone have any wisdom about how to track down and fix these kind of problems? Are there any usual things you check first?
At first, I thought it might be the process of transferring the ".wav" files to a CD-R, but when I listen with headphones, I can hear it directly from my dacs (Edirol UA-25). It doesn't matter if I set the sampling rate to 96000. I thought [freeverb~] might be adding the sound, but when I bypass freeverb I still hear it. My basic sound producing algorithm is derived from the exponential waveshaping example in the documentation. Maybe there is some marginality or limitation to that approach that I don't understand?
Well, thanks for reading. Even if you don't have any ideas for me, I think it would be interesting to hear stories about how people have tracked down and fixed their own sound "bugs."
Cheers, David
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hi David,
David F. Place wrote:
I heard some acoustical artifacts that I hadn't noticed when I was working in front of my computer listening through speakers. This extra "buzzing" sound is quite annoying. It's hard to imagine how my patches are making it. Does anyone have any wisdom about how to track down and fix these kind of problems? Are there any usual things you check first?
I know you said you checked what happens when you increase the sampling rate, but I would double check and make sure that what you are hearing isn't aliasing. I've found the difference between using an oversampled or otherwise bandwidth-limited oscillator and the normal [phasor~] or a square wave derived from [phasor~] and [expr~ $v1 > 0.5] to be the difference between day and night (or Stockhausen and Donkey Kong). Check 3.audio.examples/J07.oversampling.pd for one anti-aliasing strategy, or better yet compare a normal, ugly, aliased [phasor~] with the anti-aliased one in that example. List archives will turn up loads when you search for "bandwidth limited" as well.
Remember that once aliasing gets into a digital signal, no amount of filtering can remove it!
If aliasing isn't the problem, then you'd do best to tap a [dac~] into each section of your patch one by one and see where the problem is. I don't think anyone on this list is so psychic they can figure out it long-distance ;-)
Other things I would check, however, from experience:
frequency or gain are done with audio signals, or via [pack 0 0] and [line~] with enough interpolation time set on the [pack] to get rid of any "stepping" or "zipper noise". 2) If you are using samples, that you haven't loaded such a large file into a table that the precision drops. You might have to go fishing in the archives to find out exactly how many samples it takes to do this, I can't remember offhand... 3) That you aren't clipping your final levels. Open the file up in a wave editor and see if the peaks hit 0dB. For some CD players even this is too hot, and you might want to aim for something more like -1dB or -3dB. Scout around on the internets for tips on mixing and mastering for CD to get an idea of where people tend to peak their levels.
best, Derek
Thanks, Derek. You hit the nail on the head. The patch in the example you cite perfectly demonstrates the sound I am hearing. Now, I must work to understand it to apply it to my case. I must get a copy of Miller's book!
On Sun, 2008-10-19 at 00:13 +0200, Derek Holzer wrote:
Check 3.audio.examples/J07.oversampling.pd for one anti-aliasing strategy,
On Sat, 2008-10-18 at 21:45 -0400, David F. Place wrote:
Thanks, Derek. You hit the nail on the head. The patch in the example you cite perfectly demonstrates the sound I am hearing. Now, I must work to understand it to apply it to my case. I must get a copy of Miller's book!
On Sun, 2008-10-19 at 00:13 +0200, Derek Holzer wrote:
Check 3.audio.examples/J07.oversampling.pd for one anti-aliasing strategy,
if you need band-limited oscillators, check out the pdmtl abstractions. they contain:
[synth.osc.saw.bl~] [synth.osc.square.bl~] [synth.osc.triangle.bl~]
they should be vanilla, except that they need [destroysend] from tof, but they still work without it.
roman
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de
Hey Roman,
just out of curiosity, since I don't have these abs in front of me, do they work with oversampling or with bandwidth-limited wavetables? The LADSPA BLOP oscillators do it very efficiently with wavetables, more efficiently than Miller's oversampling strategy, and I used them on Linux with [plugin~] very successfully. Also, does the square wave do Pulse Width Modulation?
best! Derek
Roman Haefeli wrote:
if you need band-limited oscillators, check out the pdmtl abstractions. they contain:
[synth.osc.saw.bl~] [synth.osc.square.bl~] [synth.osc.triangle.bl~]
Hallo, Derek Holzer hat gesagt: // Derek Holzer wrote:
just out of curiosity, since I don't have these abs in front of me, do they work with oversampling or with bandwidth-limited wavetables? The LADSPA BLOP oscillators do it very efficiently with wavetables, more efficiently than Miller's oversampling strategy, and I used them on Linux with [plugin~] very successfully. Also, does the square wave do Pulse Width Modulation?
You could also apply the antialiasing strategy of the last chapter in Miller's book ("transition splicing"). I wrapped this up into the abstractions splicetrans~.pd and trapez~.pd which are available in the list archive. They are cheap, sound really good to my ears - and they can be pw-modulated with audio signals, if you want.
They only replace jumps in a signal as in a square wave with band limited transitions, and pass corners as in a triangle wave unchanged. But that's not too dangerous, as corners are rather harmless in regard to aliasing.
Frank Barknecht Do You RjDj.me? _ ______footils.org__
Hello
Thx
But it seems that it's not a problem with OSX
because, PD 0.39 runs with OSX, and I have no problem with this patch
(I have very many subpatches, I don't knwo, perhaps more than 300,
because it's a video creation with many autonomous elements, for
example letters), I have re-installed 0.39.
The problem is with 0.43, which doesn't accept man subpatchs in a patch.
Perhaps, some one have a solution to debug this restriction ?
thx
pb
On Sun, 2008-10-19 at 12:55 +0200, Derek Holzer wrote:
Hey Roman,
just out of curiosity, since I don't have these abs in front of me, do they work with oversampling or with bandwidth-limited wavetables?
the latter
The LADSPA BLOP oscillators do it very efficiently with wavetables, more efficiently than Miller's oversampling strategy, and I used them on Linux with [plugin~] very successfully. Also, does the square wave do Pulse Width Modulation?
no. pwm is not very feasible to do with wavetables, since you would need much more wavetables - for each frequency range a bunch of wavetables for several pwm settings. but check frank's post: he's proposing a much better way for pwm.
roman
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de