From owner-freebsd-multimedia@FreeBSD.ORG Wed May 14 10:12:56 2014 Return-Path: Delivered-To: freebsd-multimedia@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 700F373F for ; Wed, 14 May 2014 10:12:56 +0000 (UTC) Received: from sola.nimnet.asn.au (paqi.nimnet.asn.au [115.70.110.159]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B64DC205A for ; Wed, 14 May 2014 10:12:55 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by sola.nimnet.asn.au (8.14.2/8.14.2) with ESMTP id s4EACjWA051972; Wed, 14 May 2014 20:12:45 +1000 (EST) (envelope-from smithi@nimnet.asn.au) Date: Wed, 14 May 2014 20:12:45 +1000 (EST) From: Ian Smith To: Hans Petter Selasky Subject: Re: OSS mains HUM filtering 50Hz / 60Hz ? In-Reply-To: <53732425.7070600@selasky.org> Message-ID: <20140514193740.D11699@sola.nimnet.asn.au> References: <537264F6.5060808@selasky.org> <53732425.7070600@selasky.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: freebsd-multimedia@freebsd.org X-BeenThere: freebsd-multimedia@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Multimedia discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 May 2014 10:12:56 -0000 On Wed, 14 May 2014 10:07:01 +0200, Hans Petter Selasky wrote: > On 05/13/14 20:31, Hans Petter Selasky wrote: > > Hi, > > > > Some of my USB audio headsets seems to be picking up mains HUM even if > > powered from battery. At first I thought the mains HUM came from the > > computer, but then I did some work and I verified my findings by > > sampling the AC network using a non-switching power supply. Maybe it Hmm, by non-switching I suppose you mean via a transformer .. the ripple quality won't necessarily be better than a switched supply; it's down to the final filtering usually. Any HV power lines or an electricity sub-station near you? (induction) > > does not belong in the FreeBSD audio stack, but I think it would be very > > clever to have a configurable band-reject filter in the FreeBSD DSP > > framework for 50 and 60Hz? Do we have such a filter mechanism already? > > > > Not sure if this is a so-called "feature" or not ... :-) > > > > http://en.wikipedia.org/wiki/Mains_hum > > > > http://www.selasky.org/hans_petter/hum.png Are those units mV, or what? > I tried the following patch with some success: > > === pcm/feeder_chain.c > ================================================================== > --- pcm/feeder_chain.c (revision 265912) > +++ pcm/feeder_chain.c (local) > @@ -721,7 +721,7 @@ > > /* Soft EQ only applicable for PLAY. */ I'm wondering why Ariff chose to only apply it for playback? > if (cdesc.dummy == 0 && > - c->direction == PCMDIR_PLAY && (d->flags & SD_F_EQ) && > + (d->flags & SD_F_EQ) && > (((d->flags & SD_F_EQ_PC) && > !(c->flags & CHN_F_HAS_VCHAN)) || > (!(d->flags & SD_F_EQ_PC) && !(c->flags & > CHN_F_VIRTUAL)))) cdesc.use_eq = 1; Can you give a quick pointer to the actual EQ code (just curious as to how it's done, having just taken the pcm code on faith so far). > And setting: > > hint.pcm.0.eq=1 > hint.pcm.1.eq=1 > hint.pcm.2.eq=1 > hint.pcm.3.eq=1 If that turns out to be a real solution to this problem, might we then need separate en/disabling of PLAY and REC eq? Here I'm directly generating 24-bit wave files, some of which are around 50Hz (plus harmonics), and some occasionally as low as ~22Hz, so I need specifically to not suppress these on playback, though finding amps or headphones that don't dampen these freqs too much can be fun .. cheers, Ian