From owner-soc-status@freebsd.org Mon Jun 14 16:20:48 2021 Return-Path: Delivered-To: soc-status@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0616A64E937 for ; Mon, 14 Jun 2021 16:20:48 +0000 (UTC) (envelope-from christos@margiolis.net) Received: from christos (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 4G3cBQ6Glmz3knT for ; Mon, 14 Jun 2021 16:20:46 +0000 (UTC) (envelope-from christos@margiolis.net) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=default; bh=nrvVXihnau+x FduT1qx+nMShNcIzW490hon24PElByc=; h=subject:to:from:date; d=margiolis.net; b=eeKn90fW2+Phb5dzhA3v3MuOFqqbzB1hI6vdyDzSvoo90afvSDj Rxncq0inq50sJ95U8bdprfcqyZmesje1shYFJ9R35qAunOPAR399QX0y1z01QI7aokjdX9 YeF398R3fiir1rZyR6Kgn9XDIrh0tDxBQNuW2pDP6xdTGnWB0A= Received: from pleb (athedsl-202981.home.otenet.gr [85.74.112.131]) by christos (OpenSMTPD) with ESMTPSA id 1a07082d (TLSv1.3:AEAD-AES256-GCM-SHA384:256:NO) for ; Mon, 14 Jun 2021 16:20:43 +0000 (UTC) Date: Mon, 14 Jun 2021 19:20:42 +0300 From: Christos Margiolis To: soc-status@freebsd.org Subject: [GSoC'21 Weekly Update #1] Sound mixer improvements Message-ID: <20210614162042.elwf3moyxtjsgsu6@pleb> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspamd-Queue-Id: 4G3cBQ6Glmz3knT X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; dkim=pass header.d=margiolis.net header.s=default header.b=eeKn90fW; dmarc=pass (policy=none) header.from=margiolis.net; spf=pass (mx1.freebsd.org: domain of christos@margiolis.net designates 95.179.159.8 as permitted sender) smtp.mailfrom=christos@margiolis.net X-Spamd-Result: default: False [-0.50 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_SPF_ALLOW(-0.20)[+mx]; TO_DN_NONE(0.00)[]; DKIM_TRACE(0.00)[margiolis.net:+]; DMARC_POLICY_ALLOW(-0.50)[margiolis.net,none]; NEURAL_HAM_SHORT(-1.00)[-1.000]; HFILTER_HELO_5(3.00)[christos]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RBL_DBL_DONT_QUERY_IPS(0.00)[95.179.159.8:from]; ASN(0.00)[asn:20473, ipnet:95.179.144.0/20, country:US]; RECEIVED_SPAMHAUS_PBL(0.00)[85.74.112.131:received]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; R_DKIM_ALLOW(-0.20)[margiolis.net:s=default]; FREEFALL_USER(0.00)[christos]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[soc-status@freebsd.org]; RCPT_COUNT_ONE(0.00)[1]; SPAMHAUS_ZRD(0.00)[95.179.159.8:from:127.0.2.255]; MID_RHS_NOT_FQDN(0.50)[]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; MAILMAN_DEST(0.00)[soc-status] X-BeenThere: soc-status@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Summer of Code Status Reports and Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2021 16:20:48 -0000 Hello, This project aims to improve mixer handling for OSS on FreeBSD and make life for both programmers and users easier. mixer(8) is very barebones and limited, so the user has to tweak sysctl values, use third party programs, or write their own scripts. Also, since there's no mixer library, each mixer program has its own DIY implementation. The delievarables will be: - mixer(3): a library that will serve as the API for handling the OSS mixer. Existing mixer programs can make use of the library and extend their functionality, as well as simplify their code bases. - mixer(8): a complete rewrite and improvement of the existing mixer(8) utility. It'll use mixer(3) and its new features, and will provide a unified and easy way for the user to manipulate the mixer, so sysctl(8) tweaking will not be needed. So far I've done the following: - Started working on mixer(3) and implemented all the functionality of mixer(8). - Added the option to change the default audio card without having to use sysctl(8). - Rewrote mixer(8) to work with mixer(3). It currently has the same behavior as the existing mixer(8), but uses mixer(3). The code is available on: - GitHub: https://github.com/christosmarg/mixer - Sourcehut: https://git.sr.ht/~crm/mixer - My Git server: https://git.margiolis.net/mixer/files.html The project's Wiki article can be found at: - https://wiki.freebsd.org/SummerOfCode2021Projects/SoundMixerImprovements