Monday, November 30, 2015

Generating Spatialized Auditory Icons Using MPlayer And Ladspa

Generating Spatialized Auditory Icons Using MPlayer And Ladspa

1 Executive Summary

The Emacspeak GitHub repository now includes a new auditory icon theme
pan-chimes — these are the result of spatializing theme chimes.

2 Fun With Ladspa, MPlayer and Library tap-plugins

Here is the result of some fun with MPlayer and Ladspa over the
Thanksgiving weekend. Package tap-plugins provides a number of
interesting Ladspa plugins; one of these, tap_reverb is used in
module emacspeak-m-player to provide a variety of predefined

Library tap-plugins also includes Ladspa filter tap_autopan that
pans the input audio signal — see that plugin's documentation for

The Linux media player mplayer allows the injection of ladspa
in its processing chain.
Combining these, I have created theme pan-chimes that provides a
spatialized version of sound-theme chimes.

See script in the Github repository to see how this new
theme was generated.

Monday, November 23, 2015

Listening To Multiple Media Streams On The Emacspeak Audio Desktop

Listening To Multiple Media Streams On The Emacspeak Audio Desktop

1 Executive Summary

The GitHub version of Emacspeak now supports launching and controlling
multiple media streams. This enables one to listen to the news while
playing a music stream, or relaxing nature sounds.

2 Sample Usage

Here are some examples of using this feature:

  1. Launch your favorite news station — BBC World Service in my
    case — C-e ; RET.
  2. Place the News on the left channel — C-e ; (.
  3. Persist the currently playing News stream by invoking command
    emacspeak-m-player-persist-stream bound to C-e ; \. This lets
    you launch a second stream via Emacspeak media key C-e ; rather
    than controlling the currently playing stream.
  4. Launch a classical music media-stream — C-e ; lu RET for a lullaby
    media stream.
  5. Now Emacspeak M-Player commands will control the most recently
    launched stream; you can once again invoke command
    emacspeak-m-player-persist-stream if you wish.
  6. The previously launched (and still playing) News stream is now in a
    buffer named *Persistent-...*. Command
    emacspeak-wizards-view-buffers-filtered-by-m-player-mode can be
    used to list buffers that hold a live m-player instance. It is
    bound to b in emacspeak-m-player-mode. I also bind this command
    to C-; ; in my global keymap.
  7. You can make an M-Player instance current by switching to its
    buffer and invoking command emacspeak-m-player-restore-process
    bound to / in emacspeak-m-player-mode.

Share And Enjoy–

Friday, November 20, 2015

Emacspeak 43.0 (SoundDog) Unleashed!

Emacspeak 43.0—SoundDog—Unleashed!

For Immediate Release:

San Jose, Calif., (Nov 20, 2015)
Emacspeak: Redefining Accessibility In The Era Of Internet Computing
–Zero cost of Ownership makes priceless software Universally affordable!

Emacspeak Inc (NASDOG: ESPK) --– announces the
immediate world-wide availability of Emacspeak 43.0 (SoundDog) –a
powerful audio desktop for leveraging today's evolving data, social
and service-oriented Internet cloud.

1 Investors Note:

With several prominent tweeters expanding coverage of
#emacspeak, NASDOG: ESPK has now been consistently trading over
the social net at levels close to that once attained by DogCom
high-fliers—and as of Nov 2015 is trading at levels close to
that achieved by once better known stocks in the tech sector.

2 What Is It?

Emacspeak is a fully functional audio desktop that provides
complete eyes-free access to all major 32 and 64 bit operating
environments. By seamlessly blending live access to all aspects
of the Internet such as Web-surfing, blogging, social computing
and electronic messaging into the audio desktop, Emacspeak
enables speech access to local and remote information with a
consistent and well-integrated user interface. A rich suite of
task-oriented tools provides efficient speech-enabled access to
the evolving service-oriented social Internet cloud.

3 Major Enhancements:

  • Multiple spatially located TTS streams for efficient communication. 🕪
  • Refactored, improved sound themes.℗
  • Updated org-mode support. 🎶
  • Speech-enables package helm.𝍎
  • Speech-enable package yasnippet for smart templates. ䷾
  • Context-sensitive keyboard shortcuts via package emacspeak-muggles. ⌨
  • Speech-enables lua-mode for LUA programming. Ÿ
  • Speech-enable package projectile for software project

management. 📽

  • Speech-enable package slime for Lisp programming. Λ
  • Updated Librivox support to the new API. 📖
  • Package XBacklight for controlling LCD brightness. ⎚
  • Updated NPR client for one-click access to present and past NPR content.📻
  • BBC radio programs via IPlayer and friends. 📢
  • Emacs EWW: Consume Web content efficiently. 🕷
  • Updated Info manual 🕮
  • Speech-enabled Elfeed, an Emacs Feed Reader 🗞
  • emacspeak-url-templates: Smart Web access. ♅
  • emacspeak-websearch.el Find things fast. ♁
  • And a lot more than wil fit this margin. …

4 Establishing Liberty, Equality And Freedom:

Never a toy system, Emacspeak is voluntarily bundled with all
major Linux distributions. Though designed to be modular,
distributors have freely chosen to bundle the fully integrated
system without any undue pressure—a documented success for
the integrated innovation embodied by Emacspeak. As the system
evolves, both upgrades and downgrades continue to be available at
the same zero-cost to all users. The integrity of the Emacspeak
codebase is ensured by the reliable and secure Linux platform
used to develop and distribute the software.

Extensive studies have shown that thanks to these features, users
consider Emacspeak to be absolutely priceless. Thanks to this
wide-spread user demand, the present version remains priceless
as ever—it is being made available at the same zero-cost as
previous releases.

At the same time, Emacspeak continues to innovate in the area of
eyes-free social interaction and carries forward the
well-established Open Source tradition of introducing user
interface features that eventually show up in luser environments.

On this theme, when once challenged by a proponent of a crash-prone
but well-marketed mousetrap with the assertion "Emacs is a system from
the 70's", the creator of Emacspeak evinced surprise at the unusual
candor manifest in the assertion that it would take popular
idiot-proven interfaces until the year 2070 to catch up to where the
Emacspeak audio desktop is today. Industry experts welcomed this
refreshing breath of Courage Certainty and Clarity (CCC) at a time
when users are reeling from the Fear Uncertainty and Doubt (FUD)
unleashed by complex software systems backed by even more convoluted
press releases.

5 Independent Test Results:

Independent test results have proven that unlike some modern (and
not so modern) software, Emacspeak can be safely uninstalled without
adversely affecting the continued performance of the computer. These
same tests also revealed that once uninstalled, the user stopped
functioning altogether. Speaking with Aster Labrador, the creator of
Emacspeak once pointed out that these results re-emphasize the
user-centric design of Emacspeak; "It is the user –and not the
computer– that stops functioning when Emacspeak is uninstalled!".

5.1 Note from Aster,Bubbles and Tilden:

UnDoctored Videos Inc. is looking for volunteers to star in a
video demonstrating such complete user failure.

6 Obtaining Emacspeak:

Emacspeak can be downloaded from GitHub –see you can visit
Emacspeak on the WWW at You can subscribe
to the emacspeak mailing list by sending
mail to the list request address The
Emacspeak Blog is a good source
for news about recent enhancements and how to use them.

The latest development snapshot of Emacspeak is always available via
Git from GitHub at
Emacspeak GitHub .

7 History:

  • Emacspeak 43.0 brings even more end-user efficiency by leveraging the
    ability to spatially place multiple audio streams to provide timely
    auditory feedback.
  • Emacspeak 42.0 while moving to GitHub from Google Code continues to
    innovate in the areas of auditory user interfaces and efficient,
    light-weight Internet access.
  • Emacspeak 41.0 continues to improve
    on the desire to provide not just equal, but superior access —
    technology when correctly implemented can significantly enhance the
    human ability.
  • Emacspeak 40.0 goes back to Web basics by enabling
    efficient access to large amounts of readable Web content.
  • Emacspeak 39.0 continues the Emacspeak tradition of increasing the breadth of
    user tasks that are covered without introducing unnecessary
  • Emacspeak 38.0 is the latest in a series of award-winning
    releases from Emacspeak Inc.
  • Emacspeak 37.0 continues the tradition of
    delivering robust software as reflected by its code-name.
  • Emacspeak 36.0 enhances the audio desktop with many new tools including full
    EPub support — hence the name EPubDog.
  • Emacspeak 35.0 is all about
    teaching a new dog old tricks — and is aptly code-named HeadDog in
    on of our new Press/Analyst contact. emacspeak-34.0 (AKA Bubbles)
    established a new beach-head with respect to rapid task completion in
    an eyes-free environment.
  • Emacspeak-33.0 AKA StarDog brings
    unparalleled cloud access to the audio desktop.
  • Emacspeak 32.0 AKA
    LuckyDog continues to innovate via open technologies for better
  • Emacspeak 31.0 AKA TweetDog — adds tweeting to the Emacspeak
  • Emacspeak 30.0 AKA SocialDog brings the Social Web to the
    audio desktop—you cant but be social if you speak!
  • Emacspeak 29.0—AKAAbleDog—is a testament to the resilliance and innovation
    embodied by Open Source software—it would not exist without the
    thriving Emacs community that continues to ensure that Emacs remains
    one of the premier user environments despite perhaps also being one of
    the oldest.
  • Emacspeak 28.0—AKA PuppyDog—exemplifies the rapid pace of
    development evinced by Open Source software.
  • Emacspeak 27.0—AKA
    FastDog—is the latest in a sequence of upgrades that make previous
    releases obsolete and downgrades unnecessary.
  • Emacspeak 26—AKA
    LeadDog—continues the tradition of introducing innovative access
    solutions that are unfettered by the constraints inherent in
    traditional adaptive technologies.
  • Emacspeak 25 —AKA ActiveDog
    —re-activates open, unfettered access to online
  • Emacspeak-Alive —AKA LiveDog —enlivens open, unfettered
    information access with a series of live updates that once again
    demonstrate the power and agility of open source software
  • Emacspeak 23.0 – AKA Retriever—went the extra mile in
    fetching full access.
  • Emacspeak 22.0 —AKA GuideDog —helps users
    navigate the Web more effectively than ever before.
  • Emacspeak 21.0
    —AKA PlayDog —continued the
    Emacspeak tradition of relying on enhanced
    productivity to liberate users.
  • Emacspeak-20.0 —AKA LeapDog —continues
    the long established GNU/Emacs tradition of integrated innovation to
    create a pleasurable computing environment for eyes-free
  • emacspeak-19.0 –AKA WorkDog– is designed to enhance
    user productivity at work and leisure.
  • Emacspeak-18.0 –code named
    GoodDog– continued the Emacspeak tradition of enhancing user
    productivity and thereby reducing total cost of
  • Emacspeak-17.0 –code named HappyDog– enhances user
    productivity by exploiting today's evolving WWW
  • Emacspeak-16.0 –code named CleverDog– the follow-up to
    SmartDog– continued the tradition of working better, faster,
  • Emacspeak-15.0 –code named SmartDog–followed up on TopDog
    as the next in a continuing series of award-winning audio desktop
    releases from Emacspeak Inc.
  • Emacspeak-14.0 –code named TopDog–was

the first release of this millennium.

  • Emacspeak-13.0 –codenamed
    YellowLab– was the closing release of the
    20th. century.
  • Emacspeak-12.0 –code named GoldenDog– began
    leveraging the evolving semantic WWW to provide task-oriented speech
    access to Webformation.
  • Emacspeak-11.0 –code named Aster– went the
    final step in making Linux a zero-cost Internet access solution for
    blind and visually impaired users.
  • Emacspeak-10.0 –(AKA
    Emacspeak-2000) code named WonderDog– continued the tradition of
    award-winning software releases designed to make eyes-free computing a
    productive and pleasurable experience.
  • Emacspeak-9.0 –(AKA
    Emacspeak 99) code named BlackLab– continued to innovate in the areas
    of speech interaction and interactive accessibility.
  • Emacspeak-8.0 –(AKA Emacspeak-98++) code named BlackDog– was a major upgrade to
    the speech output extension to Emacs.
  • Emacspeak-95 (code named Illinois) was released as OpenSource on
    the Internet in May 1995 as the first complete speech interface
    to UNIX workstations. The subsequent release, Emacspeak-96 (code
    named Egypt) made available in May 1996 provided significant
    enhancements to the interface. Emacspeak-97 (Tennessee) went
    further in providing a true audio desktop. Emacspeak-98
    integrated Internetworking into all aspects of the audio desktop
    to provide the first fully interactive speech-enabled WebTop.

8 About Emacspeak:

Originally based at Cornell (NY) –home to Auditory User
Interfaces (AUI) on the WWW– Emacspeak is now maintained on
GitHub -- —and
Sourceforge — The system is mirrored
world-wide by an international network of software archives and
bundled voluntarily with all major Linux distributions. On
Monday, April 12, 1999, Emacspeak became part of the
Smithsonian's Permanent Research Collection on Information
Technology at the Smithsonian's National Museum of American

The Emacspeak mailing list is archived at Vassar –the home of the
Emacspeak mailing list– thanks to Greg Priest-Dorman, and provides a
valuable knowledge base for new users.

9 Press/Analyst Contact: Tilden Labrador

Going forward, Tilden acknowledges his exclusive monopoly on
setting the direction of the Emacspeak Audio Desktop, and
promises to exercise this freedom to innovate and her resulting
power responsibly (as before) in the interest of all dogs.

*About This Release:

Windows-Free (WF) is a favorite battle-cry of The League Against
Forced Fenestration (LAFF). –see for details on
the ill-effects of Forced Fenestration.

CopyWrite )C( Aster and Hubbell Labrador. All Writes Reserved.
HeadDog (DM), LiveDog (DM), GoldenDog (DM), BlackDog (DM) etc., are Registered
Dogmarks of Aster, Hubbell and Tilden Labrador. All other dogs belong to
their respective owners.


Tuesday, November 10, 2015

Using Multiple TTS Streams On The emacspeak Audio Desktop

Using Multiple TTS Streams On The Emacspeak Audio Desktop

1 Executive Summary

Emacspeak now uses multiple text-to-speech streams — as an example,
this enables spoken notifications that do not interrupt ongoing spoken
output. To make such notifications more perceivable, Emacspeak places
notifications to the right of the user by leveraging Linux-ALSA
features that allow one to scale the amplitude of the left and right
audio channels.

2 Background

Until now, Emacspeak has used a single instance of a Text-To-Speech
(TTS) engine to produce all spoken feedback. An unfortunate
consequence is that any spoken announcement necessarily interrupts
ongoing speech; as an example, an incoming instant-message (e.g.,
Jabber notification) can interrupt what you're currently

Emacs itself produces a large number of asynchronous messages
depending on the number of processes running within Emacs; at present,
all Emacs generated messages are equal though there are ongoing
plans to improve this situation going forward, e.g., using package
alert. With Emacspeak now able to use multiple TTS streams, arrival
of package alert within Emacs should facilitate smarter handling of
different categories of messages over time.

Playing multiple TTS streams simultaneously can make it hard to
understand the resulting output; Emacspeak leverages underlying ALSA
functionality to send notifications to a virtual ALSA device that
places the auditory output mostly on the right channel. See the
following paragraphs on setup/configuration. I'm presently using this
on Linux with the linux-outloud voice — you need to have a copy of
this TTS engine installed and working — see Voxin for details on
obtaining that engine. Note: the Emacspeak espeak server does not
use raw ALSA for its output — consequently, notifications produced
by espeak play on both left and right channels, making it
impossible to understand. The mac server may be able to support
this functionality using something Mac-specific — patches welcome.

3 Emacspeak Setup

  • Emacspeak now adds user-option
    emacspeak-tts-use-notify-stream. If this is set to t in the
    user's initialization file before Emacspeak is loaded, Emacspeak
    checks to see if the user's selected TTS engine supports multiple
    instances, and if so launches a second instance of the TTS engine
    for use as a Notification TTS Stream. See my
    tvr/emacs-startup.el in the Emacspeak Git Repository for an
    example setup.
  • The Notification TTS Stream can be restarted via command
    dtk-notify-initialize bound to C-e d C-n. You should
    ordinarily not need to invoke this command.
  • The Notification TTS Stream can be shut-down using command
    dtk-notify-shutdown bound to C-e d C-s. When the /Notification
    TTS Stream is not available, Emacspeak defaults to using a single
    TTS stream for all spoken output — i.e., no change.
  • At present, emacspeak tries to use a separate Notification TTS
    when the selected TTS engine is a software TTS
    running locally.
  • File servers/linux-outloud/notify-asoundrc contains the
    .asoundrc that I am using on my thinkpad. To have Emacspeak
    place the Notification TTS Stream mostly on the right, the
    contents of that file (suitably modified for your sound card)
    need to be placed in file $HOME/.asoundrc. Warning: Handle with
    care — a broken .asoundrc can kill all audio output.
  • The .asoundrc scales left and right amplitude to place the
    output mostly on the right — to change this behavior, you can
    edit the Transformation Table for virtual device tts_mono in
    the .asoundrc file.
  • This set-up has not been tested with pulseaudio.

4 Summary

Share and enjoy —