1 of 1 people found this helpful
The mixer scripts setup a high-pass filter on the analog inputs. see eg here:
# route input through high pass filter to remove DC setup_high_pass_filter $line_in_signals set_mixer $rpi_in_signals $filter_signals
You can easily change that,by removing the setup_high_pass_filter line and routing line_in_signals directly to the RPi
set_mixer $rpi_in_signals $line_in_signals
Either create your own script for that or just modifiy the existing rpi-cirrus-functions.sh script.
Ah yes I can see that now. So the soundcard is being controlled by alsamixer (amixer) via the python setup scripts. Are there any hardware high pass filters present on the chip that aren't controlled externally? e.g. any filter that drops frequencies below a threshold, because in the normal realm of human hearing they aren't needed (but in the realm of seismology, they are needed). I still dont know what that fcut value is or even if it's relevant. I cant get the WM5102 datasheet as it appears to be no longer present.
I can view the schematic of the Wolfson card Line In, but I don't understand how the resistors and capacitors might effect the sound (at the hardware level). What I am looking to understand is does the Cirrus card filter out frequencies that I am interested in? (de-wowing?)
3 of 3 people found this helpful
To expand on that, the hardware you show does the following.
The coils on the circuit are ferrites. At the frequencies you are interested in they're no different to a piece of wire. The 100pF capacitors are rf filtering along with the ferrites - if your source can sensibly drive the roughly 10k impedance of the divider, then they won't have any noticeable effect. The 10k and 1k form a 10:1 attenuator to reduce the signal size. The 1uF capacitor and the input resistance at the chip input form a high pass filter which will define the low-frequency response.
Here's the response when it's simulated.
-20db is where the passband response should sit with a 10:1 attenuator. The attenuation is slightly more than that in practice because the chip input resistance is fairly low and is in parallel with the lower 1k resistor and reduces its value a bit. The single capacitor along with the input resistance forms a first order filter, so the response drops off at 20dB (a factor of ten) per decade of frequency. They've chosen the capacitor value to give a (more or less) flat response from 20Hz upwards, which is what you want for audio use.
There is nothing to stop you experimenting with the size of the capacitor. If you increase it to 10uF, in theory the -3dB point will fall to 1.3Hz (assuming you can find a part that size to fit the pads - if you can't, lift the SMD part off carefully and solder a conventional part to the pads) and you should then have a fairly level response from 2Hz upwards (unless, as you suggest, the digital side might be doing some filtering of its own).
If you have a signal generator, you could plot the response curve to satisfy yourself that the curve is what you think it is. That can be done quite roughly - you don't need hundreds of points, just a few to place each section of the response curve.
I am trying to setup a Rpi to record vibrations from local traffic. I am using an inexpensive seismometer plugged into the Cirrus. Is there a filter on the board that filters out frequencies that are lower than 50Hz (for example)? In the spec sheet there is an fcut value, but I have no idea what that relates to. I am using the Mic Line In with the setup scripts.