From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS6130 216.105.38.0/24 X-Spam-Status: No, score=-3.7 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,SPF_HELO_PASS,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.1 Received: from lists.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id C2AD91F453 for ; Wed, 26 Sep 2018 18:17:14 +0000 (UTC) Received: from [127.0.0.1] (helo=sfs-ml-2.v29.lw.sourceforge.com) by sfs-ml-2.v29.lw.sourceforge.com with esmtp (Exim 4.90_1) (envelope-from ) id 1g5EN4-0002La-Ej; Wed, 26 Sep 2018 18:17:10 +0000 Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-2.v29.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1g5EN3-0002LT-FJ for sox-users@lists.sourceforge.net; Wed, 26 Sep 2018 18:17:09 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=In-Reply-To:Content-Type:MIME-Version:References: Message-ID:Subject:To:From:Date:Sender:Reply-To:Cc:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=/Tt+cvsAn9NYMuwkJRbsS1QhbnZSpAdOz+sSf4Ih+Q0=; b=WhKtNTnSnI0sgOg74vQ5/w9mqU fZ51vMnBrlU2nDZXcR+iQhXRGEbHgnSGBA0ZJ1Qqy54wSrkoxyUjCaGaY0AgikLhsdfrOr9xVsreq YSNYnj/mUg3ZbSY0BIsrXzW2XuelIvKyA01hBDS5NtdEx5ZkLbVrbqdmH/bSlnd2lCds=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=In-Reply-To:Content-Type:MIME-Version:References:Message-ID:Subject:To: From:Date:Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=/Tt+cvsAn9NYMuwkJRbsS1QhbnZSpAdOz+sSf4Ih+Q0=; b=YMwL3n244+cslQlflXeuaiYuOq L+5LCcxlXg+EVQlUDvBLNpiNu1aqWMwbgTJIrp5dA+eTZw+GqfrrU88NbKUDCxUGRCtRClp5R99G4 r4AwB9Qerm8hevYobfWWvmUmiajsMbbMefTkre6KHy9pO7C4Uxrr8o0oU8gi6qV/a+38=; Received: from ns.stare.cz ([79.98.77.229] helo=mx.stare.cz) by sfi-mx-4.v28.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) id 1g5EMz-0072dp-VE for sox-users@lists.sourceforge.net; Wed, 26 Sep 2018 18:17:09 +0000 Received: from www.stare.cz (localhost [127.0.0.1]) by www.stare.cz (OpenSMTPD) with ESMTP id 485e1f03 for ; Wed, 26 Sep 2018 20:16:51 +0200 (CEST) Date: Wed, 26 Sep 2018 20:16:51 +0200 From: Jan Stary To: sox-users@lists.sourceforge.net Message-ID: <20180926181651.GA77937@www.stare.cz> Mail-Followup-To: sox-users@lists.sourceforge.net References: <20180925194254.GA13391@www.stare.cz> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.7.1 (2016-10-04) X-Headers-End: 1g5EMz-0072dp-VE Subject: Re: remove known sample from audio X-BeenThere: sox-users@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sox-users@lists.sourceforge.net Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: sox-users-bounces@lists.sourceforge.net On Sep 26 16:49:31, molkko@gmail.com wrote: > I have two mics > https://www.piksu.com/eps/tmp/mic1.wav > https://www.piksu.com/eps/tmp/mic2.wav > and audible spill in both. Yeah, the bass is not very precise and a bit behind the tempo. > I want to remove the spill from both. That's something different from what you described in the original mail, but I understand your problem now. > I am able to remove the spill in this > specific case (with outstanding results) > for example for mic1.wav with commands > sox mic2.wav mic2id.wav pad 0.0115 0 vol -0.13 > sox -m -v 1 mic1.wav -v 1 mic2id.wav mic1clean.wav stat > i.e. by inverting the other mic and mixing that _at suitable_ point in time > and suitable power to the signal to be cleaned. Indeed, it is very good. (The -v 1 are imho not necessary.) > The problem is that finding those values ("point in time" 0.0115 > and power/"volume" -0.13) is cumbersome. Basically, I am after a command > to find one given signal embedded in another given signal. That is very expensive, computation-wise. To find the offset, I would compute the correlation of the mic1.wav and mic2.wav signals for every suspected delay (say, for 0 to 0.1, with a step of 0.01) and take the one where the correlation is maximal. Then "remove" the properly-delayed mic1id.wav from mic2.wav as above, again with various levels of vol, and pick the one for which the resulting "clean" signal has the maximal correlation with the original mic2.wav. This problem must be as old as DSP. http://www.dspguide.com/ Jan > > On Tue, Sep 25, 2018 at 11:10 PM Jan Stary wrote: > > > On Sep 25 12:26:36, molkko@gmail.com wrote: > > > What is the best way to subtract a known sample from given audio i.e. > > > extract/reconstruct the original.wav from final.wav when final.wav has > > been > > > created with commands: > > > > > > sox knownsample.wav knownsample_delay_gain.wav pad 0 vol > > > sox -m original.wav knownsample_delay_gain.wav final.wav > > > > First of all, by "sample", you mean "signal", > > not some one sample value, right? > > > > > original.wav is not anymore available. knownsample.wav and final.wav are > > > available. > > > > Do you also have knownsample_delay_gain.wav ? > > > > > pad delay and the vol parameter are known _roughly_ (X =~10ms, > > > Y=~0.1) > > > > So you want to reconstruct original.wav from the mix > > AND one of the originals - that's quite different than reconstructing > > from just the mix.wav (which I doubt would be possible). > > > > > PS1, I can reconstruct the original with the process below but this > > method > > > is very cumbersome: > > > repeat { > > > come up with some guessed X and Y > > > sox knownsample.wav knownsample_delay_gain.wav pad 0 vol - // is > > > also inverted > > > sox -m -v 1 original.wav -v 1 knownsample_delay_gain.wav final.wav stat > > > } until RMS amplitude reported by stat has reached local minimum > > > > You said you no longer have original.wav, but you are using it here. > > So what's there to reconstruct? > > > > > PS2, The original problem is a two musical instruments recorded > > > simultaneously in the same space. They have their own mics but the other > > > instrument is audible in each recording. I want to remove the "wrong > > > instrument" from each recording and have clean audio for both > > instruments. > > > > https://en.wikipedia.org/wiki/Spill_(audio) > > This should be your starting paragraph, not PS2. > > > > So show us the files: the mix (final.wav) and > > the non-delayed bleeding instrument (knownsample.wav). > > Also, name them more plainly (guitar, trumpet, mix - or whatever). > > > > It will be much easier to help you then. > > > > > > Jan > > > > > > > > _______________________________________________ > > Sox-users mailing list > > Sox-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/sox-users > > > > > -- > Terveisin, Mikko > +358-40 506 6146 > _______________________________________________ > Sox-users mailing list > Sox-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/sox-users _______________________________________________ Sox-users mailing list Sox-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sox-users