Friday, December 18, 2015

Soundscapes On The Emacspeak Audio Desktop

Soundscapes On The Emacspeak Audio Desktop

1 Executive Summary

Emacspeak module soundscape adds the ability to automatically switch
Soundscapes based on the current buffer. A Soundscape can be any
continuously playing stream of audio; in practice, using nature sounds
that repeat softly in a pseudo-random manner appears to be
effective. Soundscapes are activated based on the currently active
Emacs Major Mode and as a consequence directly mirror the user's
current activity. The present implementation uses Python package
Boodler to generate soundscapes.

2 Usage

Note that package soundscape.el does not have any Emacspeak
dependencies. See the package documentation for details on installing
and configuring Boodler.

You can experiment with installed Boodler agents using command
soundscape and soundscape-stop. You can enable and disable
automatic soundscapes using command soundscape-toggle. The
currently active default Soundscape theme can be inspected via command
soundscape-display — this produces a buffer that lists the
currently defined /major-mode -> Soundscape mapping.

Package soundscape.el considers the inheritance relationship among
Emacs major-modes when computing the set of soundscapes to
activate.As an example, eww-mode inherits from special-mode — as
a consequence, two soundscapes (LightWind and BackgroundWaves)
become active when reading Web content.

3 Default Major-Mode->Soundscape (Mood) Mapping:

Here is a table showing the mapping of major-mmodes to Soundscape
moods at the time of writing. For readability, I have stripped out the
package-name for these soundscapes.

Soundscape (Mood) List Of Major Modes
BuddhaLoop fundamental
LightStorm special
RainForever Info help Man Custom messages-buffer
LightWind comint elfeed-search
TonkSpace tabulated-list
Cavern prog
Drip message gnus-summary gnus-article gnus-group mspools vm-presentation vm mail twittering jabber-roster jabber-chat erc
Still text
Water dired
Steady calendar diary
BackgroundWaves w3 eww

4 Soundscape Research

I implemented package soundscape.el to create a platform that would
let me experiment with different tools that aid in
concentration. After using Soundscapes for about a week, I have also
found that it reduces some of the fatigue that results from having to
listen to synthetic text-to-speech for extended periods.
The true value (if any) of this package will be a function of how heavily
I find myself using it six months from now — as a metric, complete
might mean that in mid-2016, I still have automatic
soundscapes turned on.
As I type this article in Emacs org-mode, I hear the sound of
water-drops falling softly in the background, and I take note
that I have not switched tasks for the entire time I have spent
writing this article.

Other success metrics — harder to measure — might include how
effective Soundscapes are in helping the user stay focused on a
given activity for extended periods of time. In an ever-connected
world buzzing with a constant stream of distractions ranging from
incoming email and instant-messages to a flood of twitter updates,
this is likely the most relevant metric.

Friday, December 04, 2015

A Ladspa Work-Bench For The Emacspeak Desktop

A Ladspa Work-Bench For The Emacspeak Audio Desktop

1 Executive Summary

Module ladspa.el in the Emacspeak GitHub repository implements a
high-level interface for experimenting with Ladspa Plugins using
MPlayer and SoX.

2 Module ladspa.el

This module implements the following functionality:

  1. Builds up a table of installed Ladspa plugins along with their
    associated metadata.
  2. Command M-x ladspa displays installed Ladspa Plugins in a
    special *Ladspa* buffer.
  3. Plugins can be instantiated by pressing RET.
  4. Instantiating a plugin prompts for its arguments and displays the
    instantiated plugin in a new buffer.
  5. This plugin can then be applied to a running MPlayer media
    stream by pressing a.
  6. The effect can be deleted by pressing d.
  7. Plugin parameters can be edited by pressing e with point on
    the parameter to edit.

3 Interfacing With SoX

Module sox.el implements an Audio Workbench using SoX. Module
ladspa.el integrates with that module by allowing the addition of
ladspa as a supported SoX effect. Adding a ladspa effect results
in a completion interface for picking one of the available Ladspa
plugin; once selected, that plugin then prompts for its parameters as

Date: <2015-12-04 Fri>

Author: raman

Created: 2015-12-04 Fri 20:03