Frank Barknecht wrote:
Hallo, Lex Ein hat gesagt: // Lex Ein wrote:
In Pd, to block DC offsets, we frequently use the [hip~ 5] object, which passes all interesting audio, and blocks DC.
Okay, these are questions I wanted to ask for a long time: In the example patches, Miller often puts a [hip~ 5] before the dac~ which as I understand should do exactly that: remove a DC offset.
Two questions: Why do they remove the DC? And is this always necessary?
A) It's not directly audible, and is therefore useless for audio.
B) DC offset can cause assymetrical clipping in following audio chain.
C) DC steps and transients (and low frequencies) can cause sonic distortions: low frequencies can add an unpleasant FM or doppler effect to superimposed violin or piano sounds in full-range speakers.
D) DC offset can damage DC-coupled inductive loads like speakers, headphones, transformer coupled electrostatic speakers, etc. A DC-coupled amplifier driving those loads will dissipate more power: RMS signal power + the DC offset power (V*I.)
E) Control changes to signal objects such as filters can "bleed through" with low-level DC "thumps" which are audible especially if they happen frequently. Step gain changes using [*~] will cause DC bumps as well. Setting [hip~ FREQ] to just above the lowest used audio frequency in a patch will do a better job of masking these step changes. Of course [line] in the control path goes a long way towards eliminating the source of zipper noise.
F) We never know who's going to plug their laptop into the input of 50,000 watt bass amp stack in the Astrodome and test Pd demo patches, so ...
G) It's good engineering design practice to build equipment and software with input protection against unintended signals, and output protection for following equipment against those same spurious signals. Since some soundcards will pass DC to their outputs, [hip~ 5] will tend to provide some protection to DC-coupled amplifiers and their associated speaker systems.
Then why not build something like that directly into [dac~]?
A) Because Pd isn't necessarily just for audio. Somebody's going to want DC-coupled output for something, and building [hip~] into [dac~] forbids that.
B) The principle of simplicity says: don't cram too much into one thing. Time exists to keep everything from happening all at once, and space exists to allow you to decide exactly how much jam, and not buicks, you want on your toast. By extension, [hip~] must never merge with [dac~] (see attachment)
C) Since [dac~ ] is usually buried in an output subpatch, it's just as easy to bury the [hip~ 5] there as well.