alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Takashi Sakamoto <o-takashi@sakamocchi.jp>
To: alsa-devel@alsa-project.org
Cc: tiwai@suse.de
Subject: Announcement for alsa-gobject v0.1.0 release
Date: Tue, 23 Jun 2020 18:32:39 +0900	[thread overview]
Message-ID: <20200623093239.GA68404@workstation> (raw)

Hi,

This is an announcement for the first official release of alsa-gobject
project, addressed in Audio Mini Conference 2018[1]. The release is
available in below URL.

 * https://github.com/alsa-project/alsa-gobject/releases/tag/v0.1.0

The release includes below libraries to operate corresponding character
devices of Linux Sound subsystem (=Advanced Linux Sound Architecture,
a.k.a ALSA)[2]:

 * libalsactl0
 * libalsatimer0
 * libalsaseq0
 * libalsahwdep0
 * libalsarawmidi0

The libraries are also compatible with gobject-introspection (g-i)[3] to
produce gir files:

 * ALSACtl-0.0
 * ALSATimer-0.0
 * ALSASeq-0.0
 * ALSAHwdep-0.0
 * ALSARawmidi-0.0

Any language binding for g-i can handle the gir files to use the the
libraries. For example, PyGObject[4] is available as dynamic g-i loader in
Python 3 runtime, and some Python 3 sample scripts are available in
`samples` directory.

 * https://github.com/alsa-project/alsa-gobject/tree/master/samples

Rust FFI/Safe API crates are provided in alsa-gobject-rs, automatically
generated by gtk-rs/gir[5]. Its README includes code snippet.

 * https://github.com/alsa-project/alsa-gobject-rs

Documentation is available in below URLs. They're auto-generated by
gtk-doc[6] with function annotations:

 * https://alsa-project.github.io/alsa-gobject-docs/

As a design note, the libraries provide API to execute system calls directly
to ALSA core implementation in kernel land. The libraries produce minimal set
of API, and delegate enhanced features to application side. They perform like
'glue' code between application and in-kernel functionalities. This makes it
easy to write test code for the in-kernel functionalities as well as to write 
ehhanced features by each language.

The libraries have no dependency on alsa-lib[7]. The alsa-lib includes own
software features such as configuration space with plug-in system. Although
the plug-in system is useful to add sample operating feature into PCM
interface, it's not necessarily useful for the other interfaces. Furthermore
it's better design to implement enhanced software features in user library and
user application side, instead of common library side. For the above points,
alsa-gobject produces languag bindings different from the existent ones[8][9].

In the release, PCM interface is not supported yet because the 'glue' is
already provided by the other projects; GStreamer[10], PortAudio[11], SDL[12],
and so on. They mostly satisfy the demand, therefore the support is judged not
to be so urgent. It's planned to support PCM interfaces in future release as
'ALSAPcm-0.0'.

Compress-Offload interface is not supported as well because it's difficult to
buy free test device in market as of 2020.

[1] https://www.alsa-project.org/wiki/Miniconf_2018#GObject_introspection
[2] http://www.alsa-project.org/
[3] https://gi.readthedocs.io/
[4] https://pygobject.readthedocs.io/
[5] https://github.com/gtk-rs/gir
[6] https://developer.gnome.org/gtk-doc-manual/
[7] https://git.alsa-project.org/?p=alsa-lib.git;a=summary
[8] https://git.alsa-project.org/?p=alsa-python.git;a=summary
[9] https://github.com/diwic/alsa-rs/
[10] https://gstreamer.freedesktop.org/bindings/
[11] http://www.portaudio.com/
[12] https://www.libsdl.org/languages.php

Regards


Takashi Sakamoto

                 reply	other threads:[~2020-06-23  9:33 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200623093239.GA68404@workstation \
    --to=o-takashi@sakamocchi.jp \
    --cc=alsa-devel@alsa-project.org \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).