From nobody Tue Jul 21 23:25:08 2026 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4h4YQH4xX4z6kPmK for ; Tue, 21 Jul 2026 23:25:11 +0000 (UTC) (envelope-from christos@freebsd.org) Received: from margiolis.net (mail.margiolis.net [95.179.159.8]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA512) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4h4YQG5Gt4z43wW for ; Tue, 21 Jul 2026 23:25:10 +0000 (UTC) (envelope-from christos@freebsd.org) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=default; bh=oOrf6cPF70O6 dWlQR8Fg60yZFjjGasg599exsf/MPL0=; h=in-reply-to:references:to:from: subject:cc:date; d=margiolis.net; b=nfvg4VblHzUx3nnXM5C87BX0P74rmYaAsy FvfW2PKy7rWWa44ZEUSQn5D9YilZ36WiExFp/Ie3BjncftcfaaQHLGsa6vr4bVHuNdtrQZ kRkDHe+VEvQzxF1EUwZsv0ieidbCW73TE7/g19rP/kMdkIMn5PruKNpvIzlefxSeBAA= Received: from localhost (31-217-161-51.cgn.athe.cosmote.net [31.217.161.51]) by margiolis.net (OpenSMTPD) with ESMTPSA id a3c0dace (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Tue, 21 Jul 2026 17:25:09 -0600 (MDT) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Wed, 22 Jul 2026 02:25:08 +0300 Message-Id: Cc: "Matthew Grooms" , Subject: Re: Tragic State of FreeBSD Audio/Sound From: "Christos Margiolis" To: "Shawn Webb" X-Mailer: aerc 0.21.0 References: <20260720202746.45869b21@rimwks.local> In-Reply-To: X-Rspamd-Queue-Id: 4h4YQG5Gt4z43wW X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:20473, ipnet:95.179.144.0/20, country:US] X-Spamd-Bar: ---- On Wed Jul 22, 2026 at 1:55 AM EEST, Shawn Webb wrote: > On Wed, Jul 22, 2026 at 01:18:54AM +0300, Christos Margiolis wrote: >> On Mon Jul 20, 2026 at 8:59 PM EEST, Matthew Grooms wrote: >> > On 7/20/26 12:38, vermaden wrote: >> >>>> I will not even start about PITA syntax of mixer(1) which went into >> >>>> this: >> >>>> >> >>>> % mixer -f ${DEV} vol.volume=3D+0.05 >> >>> Just use gtk-mixer, avail in ports. >> >>> >> >>> In recent years, I haven't noticed any bugs >> >>> in the operation of the OSS. >> >> I do it by scripts anyway ... but I needed to rewrite all my scripts = because of these changes ... and this change in syntax was bad from at leas= t three perspectives: >> >> >> >> 1. It happened in 'point' release (like from .2 to .3) - not in new m= ajor release - breaking stuff for EVERYONE. >> >> >> >> 2. It happened without any reason - the tool could do the same with o= ld syntax underneath - the new syntax does not introduce anything new - it = just has different syntax. >> >> >> >> 3. As FreeBSD (at least up to some time ago) cherished the POLA princ= iple WHY the old syntax could not been also kept and accepted? >> >> >> >> ... and yes - I also think that 'gtk-mixer' works well - so is 'dsbmi= xer' tool. >> > >> > >> > It offered something new to me: Confusion. In the past, I'd need to=20 >> > fiddle with the mixer once a year and it was more or less obvious how = it=20 >> > worked. The last time, I just gave up. >> > >> > -Matthew >>=20 >> I am genuinely curious. What is so confusing, and even worse, more >> obvious with old syntax than the new, to the point that you would give >> up? > > Another anecdotal data point: > > I, too, was impacted by the mixer(8) syntax change. I wrote my own > volume control scripts for my i3wm environment. I found the syntax > change to be somewhat confusing, whereas the old syntax seemed the > more straightforward of the two. > > I was able to adjust my script, but it definitely was an impactful > change that actually caught me somewhat off-guard at the time. Minor > annoyance, but doable for me. > > Thanks, I do not object to the fact that the change was invasive and broke scripts, but I do disagree completely that the new syntax is more confusing or worse. It can naturally support more functionality and is structured in a well-known format: foo.bar=3Dvalue. Old syntax: $ mixer vol 80 New syntax, which offers a couple of ways to do volume setting, because for volume setting there is also a shorthand (see last 2 examples): $ mixer vol.volume=3D0.80 $ mixer vol.volume=3D80% $ mixer vol=3D0.80 $ mixer vol=3D80% Especially given the last example, what exactly is so different or confusing? The other functionality (of the two) of the old syntax, recording source setting, was used like this: {^|+|-|=3D}rec . For example, old syntax: $ mixer ^rec monitor New syntax: $ mixer monitor.recsrc=3Dtoggle The new syntax also supports mixing different functionalities in one command: $ mixer vol.volume=3D100% rec.mute=3Don monitor.recsrc=3Dtoggle Apart from the fact that old syntax did not, and could not, support muting (unless a new interface was introduced), this would need 3 separate commands. The new syntax is more verbose, but I find it impossible to believe that the old one is more "obvious" or better. Christos