[sdiy] Audio Anti Aliasing Filter
Scott Gravenhorst
music.maker at gte.net
Fri Dec 21 15:55:25 CET 2012
Richie Burnett <rburnett at richieburnett.co.uk> wrote:
>I'd recommend looking at an all-in- one CODEC chip like the
>CS4270 from cirrus logic. This interfaces directly to the dspic's
>DCI port and includes 24-bit stereo ADC and DAC. This will run at
>a whole range of different sample rates and has all of the
>necessary anti-aliasing and anti-imaging filters built in.
>
>It will guarantee pristine audio quality, save you a lot of
>design effort, and leave you with more time to concentrate on
>developing cool effects programs. You also still have the dspic
>ADC available to read realtime control pots or external CVS,
>which it is much better suited to.
Thanks, this looks like an option, probably the one of the highest quality options.
That Cirrus part looks interesting, but it comes only as surface mount. And free samples
are available. I can probably solder that or my son perhaps with his 19 year old eyes, but
I need to be able to experiment without etching a board. Does anyone know of sources for
some kind of pre-etched adapter boards that might take the 24 pin TSSOP arrangement?
>-Richie,
>
>Sent from my Sony Ericsson Xperia ray
>
>Scott Gravenhorst <music.maker at gte.net> wrote:
>
>>
>>Richie Burnett <rburnett at richieburnett.co.uk> wrote:
>>>Elliptic filters are a good choice to use for anti-aliasing and
>>>anti-imaging filters. They can be designed with an arbitrarily
>>>flat passband and have a *very* steep transition from the
>>>passband to the stopband. This is particularly important if you
>>>want to pass audio cleanly up to 20khz with a 44.1kHz sample
>>>rate. With these figures an anti-aliasing filter doesn't have
>>>much room in which to work its magic!
>>>
>>>These days most audio ADCs have digital anti-aliasing filters
>>>built in. Likewise audio DACs often have internal digital
>>>anti-imaging filtering. The latter is sometimes referred to as a
>>>"reconstruction filter." Some more info might help clarify if you
>>>could use one of these chips.
>>>
>>>If you dont want the complexity of designing an elliptic filter,
>>>something like a 6th or 8th order Butterworth made from cascaded
>>>2nd order Sallen-Key filters isn't a bad alternative. You can see
>>>this circuit preceding and following the BBD chips in old Roland
>>>Juno service notes. Just simulate tge circuit as-is, then scale
>>>capacitor values to shift the cutoff frequency exactly where you
>>>want it to be.
>>
>>Ah, Ok, this is more complex than I had considered. Here's what I want to do:
>>
>>This is an experiment which may fail. I have a dsPIC which has a
>built in 12 bit ADC which >I intend to attempt to use for audio
>sampling of synthesizer output signals. It can easily >sample at
>44.1 kHz up to much more, but I see little reason to run it much
>faster. Yes, I >realize that 12 bits is far from hifi. However,
>I'd like to try it anyway for the ultimate >test - the human ear.
>I'm interested in making alias artifacts inaudible enough (good
>>enough). If it fails to sound good enough, I may have to move to
>an external ADC, >preferably 16 or more bits - I want to keep the
>cost low, and I'd like to avoid that. The >internal ADC is far
>from complex, from what I see in the dsPIC ADC docs, there is no
>anti >alias filter built in. > >This is from the ADC PDF section
>describing external connections to the ADC pins: > >"An external
>RC filter is sometimes added for anti-aliasing of the input
>signal. The R >component should be selected to ensure that the
>sampling time requirements are satisfied." > >There is no mention
>of the type of signal that the ADC will acquire, but the ADC is
>capable >of sampling rates up to 500 kHz. Lower sample rates give
>me more clocks to play with for >the effects computations. I've
>used high sample rates to reduce audible alias artifacts in
>>FPGAs, but this is impractical with a dsPIC, so I'd like to keep
>the rate reasonable. > >Since the ADC input requires being driven
>by a low impedance output (200 ohms or less), I'll >have to
>buffer it anyway, so making the buffer a filter makes sense to me
>- assuming I even >need the filter. > >I'm assuming that a
>Sallen-Key would be an improvement over a simple RC filter. But
>given >that the DAC from which I will collect the signal already
>has a single pole filter with Fc >around 20 kHz, perhaps I don't
>even need to have an anti alias filter on the ADC input? I'm
>>thinking that I don't even need the buffer, since the DAC
>outputs are already buffered. > >This initial experiment is part
>of adding digital effects to a dsPIC-based Karplus-Strong >synth.
>I'd like the effects dsPIC to be portable to other designs. I
>know that the >Karplus-Strong model could have alias artifacts
>generated especially during the first few >milliseconds of a note
>start, but these will quickly be attenuated by the reflection
>filter. > I had considered transferring the audio stream to the
>effect dsPIC using SPI, but the two >voice engine dsPICs operate
>from different xtals and cannot be guaranteed synched. That's
>>why I'm cosidering a digital-audio-digital-audio technique. I'm
>looking for musically good >enough, not lab quality, so I think
>I've go a lot of options. I suppose I could consider >using a
>single clock oscillator to drive both voice engines and do this
>all digitally, but >that isn't a solution for other kinds of
>synths I might want to use this with, so I prefer >an audio
>input. > >I'd like the effect dsPIC to be generic enough (in
>terms of it's design) so that it can be >"slapped" onto other
>synthesizer designs without having to add more stuff. > > >>Sent
>from my Sony Ericsson Xperia ray >> >>Scott Gravenhorst
><music.maker at gte.net> wrote: >> >>> >>>What are people here using
>for audio anti-aliasing filters? >>> >>>I'm looking for something
>simple. In my own mind, I'm thinking state >>>variable lowpass
>with unity Q and cutoff of some 20 kHz for sample rates of
>>>>44.1 kHz and above. >>> >>>Are there better or simpler? >>>
>>>>-- ScottG
>>>>________________________________________________________________________
>>>>-- Scott Gravenhorst >>>-- FPGA MIDI Synth Info:
>jovianpyx.dyndns.org:8080/public/FPGA_synth/ >>>-- FatMan Mods
>Etc.: jovianpyx.dyndns.org:8080/public/fatman/ >>>-- Some Random
>Electronics Bits: jovianpyx.dyndns.org:8080/public/electronics/
>>>>-- When the going gets tough, the tough use the command line.
>>>> >>>_______________________________________________
>>>>Synth-diy mailing list >>>Synth-diy at dropmix.xs4all.nl
>>>>http://dropmix.xs4all.nl/mailman/listinfo/synth-diy >> > >--
>ScottG
>>________________________________________________________________________
>>-- Scott Gravenhorst >-- FPGA MIDI Synth Info:
>jovianpyx.dyndns.org:8080/public/FPGA_synth/ >-- FatMan Mods
>Etc.: jovianpyx.dyndns.org:8080/public/fatman/ >-- Some Random
>Electronics Bits: jovianpyx.dyndns.org:8080/public/electronics/
>>-- When the going gets tough, the tough use the command line. >
>>_______________________________________________ >Synth-diy
>mailing list >Synth-diy at dropmix.xs4all.nl
>>http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>
-- ScottG
________________________________________________________________________
-- Scott Gravenhorst
-- FPGA MIDI Synth Info: jovianpyx.dyndns.org:8080/public/FPGA_synth/
-- FatMan Mods Etc.: jovianpyx.dyndns.org:8080/public/fatman/
-- Some Random Electronics Bits: jovianpyx.dyndns.org:8080/public/electronics/
-- When the going gets tough, the tough use the command line.
More information about the Synth-diy
mailing list