System event sounds / audio feedback



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all,


With the recent release of PulseAudio 0.9.7, and discussions surrounding
audio in GNOME, I thought I'd try and see if I could get some movement
in the system event sounds area as well.

The event sounds in GNOME, that have been in the gnome-audio package for
ages now, are simply awesome. During my first days exploring Linux, I
always had them enabled. As Linux became more and more my primary
desktop environment, the clicking, crackling, latency and locking
problems that ESounD produced led me to disable them for a long time.

But now we have PulseAudio! Hooray! :D


And things are good... well, a lot better... but:

1) Only libgnome-based applications seem to work? Besides non-GTK+
applications, another example close to GNOME is gcalctool. Libgnome also
seems to be on the fast track towards deprecation. (?)

2) The number of configurable events is very limited. What about opening
a folder, closing a window, switching tabs, browsing to a page,
libnotify notifications, ...?

3) The event sounds are not bulk configurable, like a GTK+ theme for
example.

4) I cannot control the volume of system events.

*) (Anything else?)


So instead of just wanting to come of as a ranting user here, I started
looking around.

Searching the archives, I found a thread about the bulk configurable
part from 2005 [1]. But it doesn't look like anything came from it.
There's also a quasy-relevant bug about auto-starting PulseAudio instead
of ESounD in gnome-session. [2]


This still leaves a lot of problems. I took a moment to think about
possible solutions:

1) A replacement for the libgnome could be a GTK+ module, that simply
hooks signals and plays sounds. Sounds are preloaded by settings-daemon;
no difference from the current situation there.

The GTK+ module can use PulseAudio's GLib mainloop integration. Playing
sounds from the sample cache is asynchronous.

2) More events becomes a problem when thinking beyond just the fixed set
for a GUI toolkit; about feedback from application specific functions.
Opening a folder and browsing to a page are good examples of this.

A possible solution would be to dedicate a GConf directory for sound
events. Control-center iterates directory entries to find configurable
sounds and their descriptions. (Short description in the listview, long
in the tooltip for example.) Applications namespace their event names to
avoid conflicts.

3) Theming is a matter of defining a format and implementing the
configuration for it. This could be a dead simple archive containing
wave or Ogg Vorbis files named after the GConf event names they play for.

4) This is slightly tricky. A volume can be specified when playing the
sample. Along the lines of the previous solutions, this means the GTK+
module needs to access the configuration somehow to get the volume. I'm
not sure if a GConf dependency in a generic GTK+ module is a good idea.

PulseAudio also stores a default volume for samples in the cache, but
there's nothing in the documentation on how to set this. Perhaps this is
some extra work that needs to be done on the PulseAudio side.


With that out of the way, I'd be very happy to hear about any other
problems you are seeing (hearing), and comments on the solutions above.
(GTK+ modules are a specific area I'm not familiar with. If there's
anything special I need to know about how they are loaded, or
limitations regarding functionality and library dependencies, do tell!)

Regards,
- -- Stéphan


[1] http://mail.gnome.org/archives/desktop-devel-list/2005-May/msg00111.html
[2] http://bugzilla.gnome.org/show_bug.cgi?id=398430

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFHRItXcFUq0gzqDwQRAlR6AJ4qft9pDVfPSp0iA5OIdzHNAAZTkACdFAh8
ycuSkj43c/UXdd+vguuxBio=
=PqLY
-----END PGP SIGNATURE-----


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]