From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id gJaoJ3pNzWTUewEASxT56A (envelope-from ) for ; Fri, 04 Aug 2023 21:11:54 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id yGGaJ3pNzWR2hQEAauVa8A (envelope-from ) for ; Fri, 04 Aug 2023 21:11:54 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 2AD2557103 for ; Fri, 4 Aug 2023 21:11:54 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=nborghese.com header.s=062122 header.b=nPrFcmWh; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1691176314; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=Y3J9WJQWazJqSGJiiLCKJSx5lKIrJKTAPGkJATwzBNg=; b=mNNDr4XkkjBeaNJj8JoP+CYC19Z23rFYDeFqORdLu+tornMnLXYtAFRTJCeVtO/M0QrGSX WwTrtBIYPZT/AckQ70LAjybPcGOtYi7FtVunuHh5dOosk/71BaWmHXzYZvStHM//k63NnU 8CKz9+o48lB0oRRf4AuuKeisM05gZhpfALPrrizhujjFb0UpHjUweFTr/RI2jU/zmva7vk Lm68WcZUSHma97Z/C6LB4HkmuQhDsH21UnODgeaKKqn0PdD5gtRjljiI73ra2+C6wNv02E hZrtqcUix8VYIxub3Y+aZhW75+gA+eeMoX3qa3gsd5BkGMhUXJE1n3wHmcKb4Q== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=nborghese.com header.s=062122 header.b=nPrFcmWh; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org ARC-Seal: i=1; s=key1; d=yhetil.org; t=1691176314; a=rsa-sha256; cv=none; b=GmgCKdHmbxc6Ozgfmnwi2jwIKdfHqa9/TuQb3nLxdu+9Ehku7lfY9OByrlnU/nrK4RrP6D YAcW9wnSbYcAGoYDHxPMxrX39DHZoD5ud71oWye2GTCxM+r3TFyOdVqvEwaYxm+lKGyY/n 2ESOzxAqNTZcGjYuuDKxNdXNMc2uwnNdAaSTl7+uiPvdzMwzXRr86b5l+L8EMIcMCxvAKr eZ4GRbuFzBzkjp321Qr2hrF4v+8lTvKDsyoIEN2tXPYp05O0nJyRpsGdP+EXHT0eOiZJSm rPteZwJ721LdoyhmknCoFrdqrgDB/BcmaElfCkHBK2gCdiNE1Gv4ZbR1wqmSNw== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qS0Cp-0007Kl-O0; Fri, 04 Aug 2023 15:11:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qQFku-0005o4-LE for help-guix@gnu.org; Sun, 30 Jul 2023 19:23:20 -0400 Received: from mail.nborghese.com ([207.148.28.48]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qQFks-0005ZC-Vo for help-guix@gnu.org; Sun, 30 Jul 2023 19:23:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=062122; bh=Gfm+3gVn1BKn7 WaMLPYx/21cXkb+OT1+55YQuFUTJVc=; h=date:in-reply-to:subject:to:from; d=nborghese.com; b=nPrFcmWhjH3hC95x8H60N+Tequw2VeJZiBxlB/WhHCT8vF2zndj AeJAm0WD/qTBZIjbzx8gAQo5xhxcLUb7JcSOmG7asFRvWXE5SjBaHKPzq4w5sqWeDOxCwU Eo2l5Ied9zb1LcrVeQau7I8azIUIluGGMX9DyhQqjjTVD+HPpE= Received: by nborghese.com (OpenSMTPD) with ESMTPSA id 99be0c1d (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Sun, 30 Jul 2023 23:23:05 +0000 (UTC) To: contact@robbyzambito.me, help-guix@gnu.org Subject: Using NoiseTorch with Sway and Polkit In-Reply-To: <874jm02586.fsf@robbyzambito.me> Date: Sun, 30 Jul 2023 19:08:38 -0400 Message-ID: <87r0opkmql.fsf@nborghese.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=207.148.28.48; envelope-from=nathan_mail@nborghese.com; helo=mail.nborghese.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Fri, 04 Aug 2023 15:11:21 -0400 X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: nathan From: nathan via Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: help-guix-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Queue-Id: 2AD2557103 X-Migadu-Scanner: mx1.migadu.com X-Spam-Score: -5.54 X-Migadu-Spam-Score: -5.54 X-TUID: kfCOEaQVtOK8 --=-=-= Content-Type: text/plain You can add the capabilities manually if you copy the binary out of the store. sudo setcap 'CAP_SYS_RESOURCE=+ep' ./whatever/filepath Capabilities will be integrated into guix later: https://lists.gnu.org/archive/html/guix-patches/2023-02/msg00700.html But even then, the package doesn't work with PulseAudio due to incorrect ladspa plugin name. The attached files contain the fix I use. Because you use pipewire, it's possible NoiseTorch will work without my patch. I think it's still required. But noise-supression-for-voice also easily supports pipewire without NoiseTorch, so you can just use that. --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=noisetorch.scm Content-Transfer-Encoding: base64 OzsgdGhpcyBmaWxlIGFuZCB0aGUgY29ycmVzcG9uZGluZyBub2lzZXRvcmNoLW5nLnBhdGNoIGZp bGUgYXJlIHB1YmxpYyBkb21haW4KOzsKOzsgYnVpbGQgd2l0aAo7OyAgIGd1aXggYnVpbGQgLWYg Li9ub2lzZXRvcmNoLnNjbQo7OyB0aGVuIGNvcHkgdGhlIGV4ZWN1dGFibGUgb3V0IG9mIHRoZSBz dG9yZSBtYW51YWxseSBhbmQgYWRkIGNhcGFiaWxpdGllcy4KOzsgICBzdWRvIHNldGNhcCAnQ0FQ X1NZU19SRVNPVVJDRT0rZXAnIC4vd2hhdGV2ZXIvZmlsZXBhdGgKOzsgY2FwYWJpbGl0aWVzIHdp bGwgYmUgaW50ZWdyYXRlZCBsYXRlcjoKOzsgaHR0cHM6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUv aHRtbC9ndWl4LXBhdGNoZXMvMjAyMy0wMi9tc2cwMDcwMC5odG1sCih1c2UtbW9kdWxlcwogKGd1 aXggdXRpbHMpCiAoZ3VpeCBwYWNrYWdlcykKIChndWl4IGdleHApCiAoZ3VpeCBnaXQtZG93bmxv YWQpCiAoZ251IHBhY2thZ2VzIHBrZy1jb25maWcpCiAoZ251IHBhY2thZ2VzIHhvcmcpCiAoZ251 IHBhY2thZ2VzIHB1bHNlYXVkaW8pKQo7OyBhbiB1cGRhdGVkIHZlcnNpb24gb2Ygbm9pc2Utc3Vw cmVzc2lvbi1mb3Itdm9pY2UuCjs7IHRoaXMgZmVhdHVyZXMgIlZBRCBHcmFjZSBQZXJpb2QiIGFu ZCAiUmV0cm9hY3RpdmUgVkFEIEdyYWNlIFBlcmlvZCwiIGFsbG93aW5nIHlvdSB0byBhZGQgZ3Jh Y2UgdGltZSBhcm91bmQgdm9pY2UgYmVmb3JlIGNsaXBwaW5nIGF1ZGlvLgooZGVmaW5lLXB1Ymxp YyBub2lzZS1zdXBwcmVzc2lvbi1mb3Itdm9pY2UtdXBkYXRlZC1sYWRzcGEtb25seQogIChwYWNr YWdlCiAgIChpbmhlcml0IG5vaXNlLXN1cHByZXNzaW9uLWZvci12b2ljZSkKICAgKG5hbWUgIm5v aXNlLXN1cHByZXNzaW9uLWZvci12b2ljZSIpCiAgICh2ZXJzaW9uICIxLjAzIikKICAgKHNvdXJj ZQogICAgKG9yaWdpbgogICAgIChtZXRob2QgZ2l0LWZldGNoKQogICAgICh1cmkgKGdpdC1yZWZl cmVuY2UKICAgICAgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vd2VybWFuL25vaXNlLXN1 cHByZXNzaW9uLWZvci12b2ljZSIpCiAgICAgICAgICAgKGNvbW1pdCAoc3RyaW5nLWFwcGVuZCAi diIgdmVyc2lvbikpKSkKICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lv bikpCiAgICAgKHNoYTI1NgogICAgICAoYmFzZTMyICIxYWFyc2JqeGhhOWlwa2drMjhpbmJjcmJj aDExOHg4MGQ3aTdrYWtrY3BwMmZpZzRuMGk4IikpKSkKICAgKGFyZ3VtZW50cwogICAgKHN1YnN0 aXR1dGUta2V5d29yZC1hcmd1bWVudHMKICAgICAocGFja2FnZS1hcmd1bWVudHMgbm9pc2Utc3Vw cHJlc3Npb24tZm9yLXZvaWNlKQogICAgICgoIzpjb25maWd1cmUtZmxhZ3MgZmxhZ3MgI34nKCkp CiAgICAgIDs7IHRoZXNlIHJlcXVpcmUgYnVpbGRpbmcgc29tZSBiaWcgbGlicmFyeSBjYWxsZWQg SlVDRSwgd2hpY2ggaXMgbm90IHBhcnQgb2YgZ3VpeCB5ZXQuCiAgICAgICN+KGNvbnMqICItREJV SUxEX1ZTVF9QTFVHSU49b2ZmIiAiLURCVUlMRF9WU1QzX1BMVUdJTj1vZmYiICItREJVSUxEX0xW Ml9QTFVHSU49b2ZmIiAiLURCVUlMRF9BVV9QTFVHSU49b2ZmIiAiLURCVUlMRF9BVVYzX1BMVUdJ Tj1vZmYiICMkZmxhZ3MpKSkpKSkKCjs7IHByb3Blcmx5IHJlbmFtZSBOb2lzZVRvcmNoIHRvIE5v aXNlVG9yY2gtbmcuCjs7IGh0dHBzOi8vZ2l0aHViLmNvbS9ub2lzZXRvcmNoL05vaXNlVG9yY2gv aXNzdWVzLzMyOAo7OyB0aGlzIGlzIGRvbmUgaW4gdGhlIG1hc3RlciBicmFuY2gsIGJ1dCBub3Qg dGhlIGxhdGVzdCByZWxlYXNlIG9mIG5vaXNldG9yY2gtbmcuCihkZWZpbmUtcHVibGljIG5vaXNl dG9yY2gtbmcKICAocGFja2FnZS9pbmhlcml0IG5vaXNldG9yY2gKICAgIChuYW1lICJub2lzZXRv cmNoLW5nIikKICAgIChzb3VyY2UKICAgICAob3JpZ2luCiAgICAgICAobWV0aG9kIGdpdC1mZXRj aCkKICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKICAgICAgICAgICAgICh1cmwgImh0dHBzOi8v Z2l0aHViLmNvbS9ub2lzZXRvcmNoL05vaXNlVG9yY2giKQogICAgICAgICAgICAgKGNvbW1pdCAi MjU0ODAyZTFhMDllZmVlZjJlNzViYzg2MmY5ZjM0MjYxM2QwMGZjYyIpKSkKICAgICAgIChzaGEy NTYKICAgICAgICAoYmFzZTMyICIxc3c3am02MGJwcmhsMzdpeTN2bDVpZzR6cDdxMGswdmY4eGo2 Y3EzOTZkOGtobDhtZ3BiIikpKSkKICAgIChhcmd1bWVudHMKICAgICAoc3Vic3RpdHV0ZS1rZXl3 b3JkLWFyZ3VtZW50cwogICAgICAgICAocGFja2FnZS1hcmd1bWVudHMgbm9pc2V0b3JjaCkKICAg ICAgICgoIzpwaGFzZXMgcGhhc2VzICN+JXN0YW5kYXJkLXBoYXNlcykKICAgICAgICAjfihtb2Rp ZnktcGhhc2VzICMkcGhhc2VzCiAgICAgICAgICAgIChhZGQtYWZ0ZXIgJ2luc3RhbGwgJ3JlbmFt ZS1iaW5hcnkKICAgICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgb3V0cHV0cyAjOmFsbG93LW90 aGVyLWtleXMpCiAgICAgICAgICAgICAgICAobGV0KiAoKG91dCAoYXNzb2MtcmVmIG91dHB1dHMg Im91dCIpKSkKICAgICAgICAgICAgICAgICAgKHJlbmFtZS1maWxlIChzdHJpbmctYXBwZW5kIG91 dCAiL2Jpbi9Ob2lzZVRvcmNoIikgKHN0cmluZy1hcHBlbmQgb3V0ICIvYmluL25vaXNldG9yY2gt bmciKSkpKSkpKSkpKSkKCihkZWZpbmUtcHVibGljIG5vaXNldG9yY2gtbmctbmF0aGFuCiAgKHBh Y2thZ2UvaW5oZXJpdCBub2lzZXRvcmNoLW5nCiAgICAodmVyc2lvbiAoc3RyaW5nLWFwcGVuZCAo cGFja2FnZS12ZXJzaW9uIG5vaXNldG9yY2gtbmcpICIuMSIpKQogICAgKHNvdXJjZQogICAgIChv cmlnaW4KICAgICAgIChpbmhlcml0IChwYWNrYWdlLXNvdXJjZSBub2lzZXRvcmNoLW5nKSkKICAg ICAgIDs7IC0gZml4IGxhZHNwYSBwbHVnaW4gbmFtZQogICAgICAgOzsgLSBwcm92aWRlIGV4dHJh IHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIHVwZGF0ZWQgbm9pc2Utc3VwcmVzc3Npb24tZm9yLXZv aWNlIHRvIHdvcmsuCiAgICAgICA7OyAgIFZBRCBHcmFjZSBQZXJpb2Q9MTAwMAogICAgICAgOzsg ICBSZXRyb2FjdGl2ZSBWQUQgR3JhY2UgUGVyaW9kPTUwCiAgICAgICAocGF0Y2hlcyAoY29ucyAi Li9ub2lzZXRvcmNoLW5nLnBhdGNoIgogICAgICAgICAgICAgICAgICAgICAgKG9yaWdpbi1wYXRj aGVzIChwYWNrYWdlLXNvdXJjZSBub2lzZXRvcmNoLW5nKSkpKSkpCiAgICAoaW5wdXRzIChtb2Rp ZnktaW5wdXRzCiAgICAgICAgICAgICAgICAocGFja2FnZS1pbnB1dHMgbm9pc2V0b3JjaC1uZykK ICAgICAgICAgICAgICAocmVwbGFjZSAibm9pc2Utc3VwcHJlc3Npb24tZm9yLXZvaWNlIiBub2lz ZS1zdXBwcmVzc2lvbi1mb3Itdm9pY2UtdXBkYXRlZC1sYWRzcGEtb25seSkpKSkpCgpub2lzZXRv cmNoLW5nLW5hdGhhbgo= --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=noisetorch-ng.patch diff --git a/module.go b/module.go index 6e69a7e..dd38275 100644 --- a/module.go +++ b/module.go @@ -200,7 +200,7 @@ func loadPipeWireInput(ctx *ntcontext, inp *device) error { idx, err := loadModule(ctx, "module-ladspa-source", fmt.Sprintf("source_name='Filtered Microphone for %s' master=%s "+ "rate=48000 channels=1 "+ - "label=nt-filter plugin=%s control=%d", inp.Name, inp.ID, ctx.librnnoise, ctx.config.Threshold)) + "label=noise_suppressor_mono plugin=%s control=%d,1000,50,0,0", inp.Name, inp.ID, ctx.librnnoise, ctx.config.Threshold)) if err != nil { return err @@ -214,7 +214,7 @@ func loadPipeWireOutput(ctx *ntcontext, out *device) error { idx, err := loadModule(ctx, "module-ladspa-sink", fmt.Sprintf("sink_name='Filtered Headphones' master=%s "+ "rate=48000 channels=1 "+ - "label=nt-filter plugin=%s control=%d", out.ID, ctx.librnnoise, ctx.config.Threshold)) + "label=noise_suppressor_mono plugin=%s control=%d,1000,50,0,0", out.ID, ctx.librnnoise, ctx.config.Threshold)) if err != nil { return err @@ -233,7 +233,7 @@ func loadPulseInput(ctx *ntcontext, inp *device) error { idx, err = loadModule(ctx, "module-ladspa-sink", fmt.Sprintf("sink_name=nui_mic_raw_in sink_master=nui_mic_denoised_out "+ - "label=nt-filter plugin=%s control=%d", ctx.librnnoise, ctx.config.Threshold)) + "label=noise_suppressor_mono plugin=%s control=%d,1000,50,0,0", ctx.librnnoise, ctx.config.Threshold)) if err != nil { return err } @@ -276,7 +276,7 @@ func loadPulseOutput(ctx *ntcontext, out *device) error { } _, err = loadModule(ctx, "module-ladspa-sink", fmt.Sprintf(`sink_name=nui_out_ladspa sink_master=nui_out_out_sink `+ - `label=nt-filter channels=1 plugin=%s control=%d rate=%d`, + `label=noise_suppressor_mono channels=1 plugin=%s control=%d,1000,50,0,0 rate=%d`, ctx.librnnoise, ctx.config.Threshold, 48000)) if err != nil { return err --=-=-=--