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
success
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
needed.

Date: <2015-12-04 Fri>

Author: raman

Created: 2015-12-04 Fri 20:03

Validate


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
effects.


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


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



See script apply-pan.sh 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) --http://emacspeak.sf.net/– 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
https://github.com/tvraman/emacspeak you can visit
Emacspeak on the WWW at http://emacspeak.sf.net/. You can subscribe
to the emacspeak mailing list emacspeak@cs.vassar.edu by sending
mail to the list request address
emacspeak-request@cs.vassar.edu. 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
    bloatware.
  • 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
    access.
  • Emacspeak 31.0 AKA TweetDog — adds tweeting to the Emacspeak
    desktop.
  • 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
    information.
  • 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
    development.
  • 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
    interaction.
  • 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
    ownership.
  • Emacspeak-17.0 –code named HappyDog– enhances user
    productivity by exploiting today's evolving WWW
    standards.
  • Emacspeak-16.0 –code named CleverDog– the follow-up to
    SmartDog– continued the tradition of working better, faster,
    smarter.
  • 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)
http://www.cs.cornell.edu/home/raman –home to Auditory User
Interfaces (AUI) on the WWW– Emacspeak is now maintained on
GitHub --https://github.com/tvraman/emacspeak —and
Sourceforge —http://emacspeak.sf.net/. 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
History.


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
http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm 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.


m

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
reading.


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
    Stream
    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 —

Friday, October 16, 2015

Smart Actions In Directory Buffers For The Emacspeak Audio Desktop

Smart Actions In Directory Buffers For The Emacspeak Audio Desktop

1 Overview

Emacspeak now provides a smart actions feature in Emacs' Directory
Editor (DirEd) buffers.
Pressing key Ctrl-RET in DirEd buffers now invokes
an appropriate Emacspeak action on the current file.


2 Background

Over time, Emacspeak has come to include a number of smart handlers
for different file types:


  • An MPlayer interface for media files.
  • An EPub reader for electronic books.
  • A light-weight PDF viewer.
  • A table browser for csv files.

Command emacspeak-dired-open-this-file bound to Ctrl-RET in
DirEd buffers unifies this functionality by invoking the appropriate
Emacspeak action on the file on the current line.

3 Extending To *Locate* Buffers

This facility is also available in locate-mode
buffers. Emacspeak provides two content-specific
Locate commands:


  • Command emacspeak-m-player-locate (I have this bound to key
    ~Super-l
    ) for locating media files that match a pattern.
  • Command emacspeak-epub-locate-epub bound to l in EPub
    Interaction
    for locating epub files.

Pressing key Ctrl-RET in the resulting *Locate* buffers invokes
the afore-mentioned smart action.

Monday, September 21, 2015

Announcing Emacspeak-Muggles: Keyboard Conveniences For Emacspeak

Announcing Emacspeak-Muggles: Keyboard Conveniences For Emacspeak

1 Announcing Emacspeak-Muggles: Keyboard Conveniences For Emacspeak

1.1 Executive Summary:

new module emacspeak-muggles uses package hydra to provide keyboard conveniences.


1.2 Overview:

Package hydra allows convenient grouping of keyboard commands, see that package's description for details. It can be installed by executing


M-x package-install hydra

Module emacspeak-muggles implements a set of convenience hydras that make invoking groups of related commands easy. Here are the Muggles currently implemented:


Brightness
Control laptop display brightness using xbacklight.
view-mode
Access view-mode functionality without invoking view-mode explicitly.
org-table-ui
Access Emacspeak Table UI functionality for org-mode tables.
And a lot more to come.


1.3 Blogger Note:

Going forward, these articles will be published via GitHub – rather than Blogspot — the new Blogspot API requires browser-based authentication that is beyond Emacs.

Date: <2015-07-13 Mon>

Author: raman

Created: 2015-07-13 Mon 09:17

Emacs 25.0.50.1 (Org mode 8.2.10)

Validate

Emacspeak: An Overview Of Voice-Lock Over The Years

Emacspeak: An Overview Of Voice-Lock Over The Years

1 Executive Summary

Audio formatted output is provided via voice-lock in Emacspeak.
The feature was originally implemented in 1994 and significantly
overhauled in 2002 (with no change in functionality). Now, in 2015,
the implementation has been reworked to be once again simpler — but
with the same functionality.


2 1994: Original Implementation

Font-lock was a new feature in Emacs 19 — it was introduced right
around the time the Emacspeak project was started.
At the time, there were multiple font-lock packages in
Emacs. Emacspeak implemented voice-lock via a stand-alone module
that attached property personality to buffer contents. The
dtk-speak Text-To-Speech module treated strings annotated with
property personality as an aural display list when producing
spoken output.


In the winter of 1995, I implemented Aural CSS in emacspeak, and
this resulted in module acss.el — that module provides a clean
abstraction for defining values that can be assigned to property
personality. Next, the rest of emacspeak was overhauled to
express all voice-lock features via the ACSS abstraction.


3 2002 Overhaul

With feature font-lock now mature, Emacs itself converged on a
single font-lock module with jit-lock.el providing just-in-time font
locking. This meant that Emacspeak's voice-lock feature could now be
more easily implemented by attaching appropriate advice to lisp
functions put-text-property and friends — this led to the deletion
of module voice-lock.el and the creation of module
emacspeak-personality.el.


That module provided multiple options for how faces were mapped to
personalities:


  • Cumulative where property personality was either appended or
    prepended to the list of personalities at any given position.
  • Simple: where the new personality directly replaced any previously
    applied personality property.
  • None: Where faces were not mapped to personalities.

4 2015 Overhaul

And now, in 2015, the code in module dtk-speak.el that implements
audio-formatting has been overhauled to directly map faces to
personalities. This implementation can be enabled by setting the
option emacspeak-personality-voiceify-faces provided in module
emacspeak-personality.el to All. This means that the new
implementation can co-exist (at least for a while) with the earlier
advice-based implementation from module emacspeak-personality.el.


once deemed to be stable, the new implementation will become the
default — by changing the default value of
emacspeak-personality-voiceify-faces to none.

5 Summary

From an end-user's perspective, nothing has changed in 21 years. From
the perspective of implementing voice-lock for Emacs modules, nothing
has changed — all that an Emacspeak extension for a specific package
needs to do to enable voice-lock is to set up a face->personality
mapping as before via function voice-setup-add-map. Note that
property personality will continue to have higher precedence than
property face with respect to the audio formatting that gets applied
i.e. Emacspeak first consults value of property personality, and if
that is not set, but there is a face property set, then that
face->personality mapping (if defined) is used as the aural style.

Date: <2015-08-18 Tue>

Author: T.V Raman

Created: 2015-08-21 Fri 10:18

Validate

Emacspeak:Setting up StumpWM as a speech-enabled Window Manager.


Emacspeak support for StumpWM

1 Summary:

Describes my Linux X-Windowing setup using lightdm to initialize the desktop and StumpWM configured as a talking Window Manager.
These files can be found under emacspeak/stumpwm in your Emacspeak installation, or in the source code cloned from https://github.com/tvraman/emacspeak.


2 Overview

File stumpwmrc is my StumpWM init file that I use to set up
StumpWM as a talking window manager. With this setup, I run Emacs in
one window and Chrome+ChromeVox in another window.


File xsession is my .xsession file — it launches StumpWM once lightdm has finished authentication.
You can find my lightdm setup files in directory emacspeak/tvr/lightdm.



3 Contents

tts.lisp
Interface to Emacspeak TTS servers.
stumpwmrc
Code to insert into personal =.stumpwmr
xsession-
My= .xsession= file.
xlock
A light-weight screen-lock script.



4 Resulting Functionality

To set this up, You should only need to edit the value of
*emacspeak-dir* in the stumpwmrc file for setup.


  1. All Keybindings match my usual screen setup, including the window-manager prefix-key.
  2. C-\ is the window-manager key.
  3. Switching windows speaks the title of the new window.
  4. Stumpwm command for displaying window list C-\w also speaks the output.
  5. The init file provides a simple lock-screen command bound to C-\d.
  6. The above lock command invokes shell script xlock — that script takes care of playing an auditory icon when the desktop is locked or unlocked.
  7. Window manager messages speak automatically; this can be toggled with C-\t.
  8. If there is a lot of activity in a window that is not focused,
    you can turn off automatic speaking of messages using C-\t to
    avoid distraction.
  9. StumpWM is set up to deny raise-focus requests — this is so that activity in a window doesn't automatically grab focus.
    I typically run with only one window displayed at a time.

Date: <2015-09-07 Mon>

Author: raman

Created: 2015-09-07 Mon 14:44

Validate

Setting Up An X Environment For Using With Emacspeak, ChromeVox and StumpWM


Setting Up An X Environment For Using With Emacspeak, ChromeVox and StumpWM

1 Executive Summary

This is a follow-up to the article on my Window Manager set-up
and details the setup of my X environment. This setup is specifically geared around the following use-cases:


  1. Emacspeak running in a window to provide a local audio desktop.
  2. ChromeVox running in a second window to provide access to JS-powered WebApps. Note that for the content-oriented Web, I use Emacs' built-in EWW browser.
  3. SSH running in an XTerm to my remote Linux desktop in a third window. The remote desktop runs Emacspeak and produces auditory feedback through a local speech server.

The setup described below is implemented via my personal .XResources
file — that file along with my .xsession file that loads it are
both checked into the GitHub repo under emacspeak/stumpwm along with any needed helper files.


The remaining sections give a brief descriptive overview of the
.XResources and .xsession files as they exist at the time of
writing.



2 Resulting Functionality: What This Gives Us

  1. You can cut-and-paste between the local Chrome and local Emacspeak using standard clipboard copy/paste commands. Make sure Emacs is set up to use the clipboard, and not the primary X selection.
  2. Output displayed in the Xterm, e.g., by the remote Emacspeak session, can be brought into the local Emacspeak session by hitting PrintEverything bound to Ctrl-Return in the XTerm window.
  3. Contents of the local clipboard, i.e. Chrome, Emacspeak etc., can be pasted into the remote Emacspeak running in the XTerm using key Ctrl-Shift-Space.


3 Initializing X Session Via File .xsession

#!/bin/sh
#Caps Lock is Control
setxkbmap -option ctrl:nocaps       
#load in XResources to customize X environment 
xrdb -merge $HOME/.Xresources &
#Display locks after  30 minutes of inactivity
xautolock -detectsleep -time 30  -locker  "$HOME/bin/xlock" & 
# Launch Emacs 
emacs  -title Emacs &
# XTerm for SSH to remote desktop
xterm  -title Retriever &
# StumpWM Setup: Use SBCL 
export LISP=sbcl
# Export our  X auth environment 
${HOME}/bin/export_x_info &
# Launch StumpWM
exec  /usr/local/bin/stumpwm

4 Customizing X Environment Via File .XResources

! Setup Emacs Visual Look And Feel
Emacs*font:     -adobe-Utopia-normal-normal-normal-*-*-*-*-*-*-0-iso10646-1
Emacs.FontBackend:      xft,x
Emacs.menuBar:  off
Emacs.toolBar:  off
Emacs.verticalScrollBars:       off

:! Setup XTerm Look And Feel:


XTerm*Background:       black
XTerm*Foreground:       white
! Setup XTerm key-bindings to match Emacspeak
XTerm*VT100.translations:       #override \n\
Ctrl <Key>semicolon: string(0x18) string("@h") \n\
Ctrl <Key>comma: string(0x18) string("@a") \n\
Ctrl <Key>period: string(0x18) string("@s") \n\
Ctrl <Key>apostrophe: string(0x18) string("@s") \n\
Shift <Key>Return: string(0x18) string("@s") string(0x0d)\n\
Ctrl <Key>Return: print-everything()\n\
Ctrl Shift <Key>space:    insert-selection(CLIPBOARD) 

:! Configure rest of XTerm

XTerm*eightBitInput:    false
XTerm*faceName: xft:Inconsolata:pixelsize=14
XTerm*metaSendsEscape:  true

! emacs-pipe.pl is under emacspeak/etc in the Emacspeak Git Repository
! This helps us view XTerm output in a buffer in the locally running Emacspeak

XTerm.*.printerCommand:     /usr/local/bin/emacs-pipe.pl
XTerm.*.printAttributes: 0

!X Font environment
Xft*antialias:  true
Xft*dpi:        96
Xft*hinting:    true
Xft*hintstyle:  hintfull
Xft*rgba:       rgb

Date: <2015-09-21 Mon>

Author: raman

Created: 2015-09-21 Mon 09:14

Validate

Thursday, April 30, 2015

Announcing Emacspeak 42.0 (AnswerDog)

Emacspeak 42.0—AnswerDog—Unleashed!

1 Emacspeak-42.0 (AnswerDog) Unleashed!

** For Immediate Release:

San Jose, Calif., (May 1, 2015) Emacspeak: Redefining Accessibility In The Era Of Internet Computing –Zero cost of upgrades/downgrades makes priceless software affordable!

Emacspeak Inc (NASDOG: ESPK) --http://emacspeak.sf.net– announces the immediate world-wide availability of Emacspeak 42.0 (AnswerDog) –a powerful audio desktop for leveraging today's evolving data, social and service-oriented Internet cloud.

1.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 May 2015 is trading at levels close to that achieved by once better known stocks in the tech sector.

1.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.

1.3 Major Enhancements:

  • Emacs EWW: Consume Web content efficiently. 🕷
  • Updated Info manual 🕮
  • SoX integration for generating auditory feedback ℗
  • Speech-enabled Elfeed, an Emacs Feed Reader 🗞
  • CSound generated 3d Auditory Icons ⟀
  • Audacious — An Audio Workbench using SoX 🝧
  • Audio presets for MPlayer using Ladspa filters ♮
  • emacspeak-url-templates: Smart Web access. ♅
  • Integrated TuneIn Radio search, browse and play 📻
  • emacspeak-websearch.el Find things fast. ♁
  • Calibre integration for searching and viewing epub 📚 📔
  • Complete anything via company integration ∁
  • Emacs 24.4: Supports all new features in Emacs 24.4. 🌚
  • And a lot more than wil fit this margin. …

1.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.

1.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!".

1.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.

1.6 Obtaining Emacspeak:

Emacspeak can be downloaded from GitHub –see https://github.com/tvraman/emacspeak you can visit Emacspeak on the WWW at http://emacspeak.sf.net. You can subscribe to the emacspeak mailing list emacspeak@cs.vassar.edu by sending mail to the list request address emacspeak-request@cs.vassar.edu. 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 .

1.7 History:

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 upon 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 bloatware. 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 honor 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 access. Emacspeak 31.0 AKA TweetDog — adds tweeting to the Emacspeak desktop. 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 information. 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 development. 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 interaction. 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 ownership. Emacspeak-17.0 –code named HappyDog– enhances user productivity by exploiting today's evolving WWW standards. Emacspeak-16.0 –code named CleverDog– the follow-up to SmartDog– continued the tradition of working better, faster, smarter. Emacspeak-15.0 –code named SmartDog–followed up on TopDog as the next in a continuing a 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.

1.8 About Emacspeak:

Originally based at Cornell (NY) http://www.cs.cornell.edu/home/raman –home to Auditory User Interfaces (AUI) on the WWW– Emacspeak is now maintained on GitHub --https://github.com/tvraman/emacspeak —and Sourceforge —http://emacspeak.sf.net. 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 History.

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.

1.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 http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm 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.

Author: T.V Raman

Created: 2015-04-30 Thu 15:35

Emacs 25.0.50.1 (Org mode 8.2.10)

Validate

Saturday, April 25, 2015

Emacspeak 3.0: Released 20 Years Ago Today!

twenty-years-after

1 Emacspeak Was Released Twenty Years Ago Today

The more things change, the more they remain the same.

Emacspeak was released 20 years ago on April 25, 1995 with this announcement. The Emacspeak mailing list itself did not exist in its present form — note that the original announcement talks about a mailing list at DEC CRL. When Greg started the mailing list at Vassar, we seeded the list from some/all of the messages from the archive for the mailing list at DEC.e

Wednesday, April 15, 2015

HowTo: Log Speech Server Output To Aid In Developing TTS Servers

HowTo: Log TTS Server Output To Aid In TTS Server Development

1 HowTo: Log TTS Server Output To Aid In TTS Server Development

This is mostly of interest to developers of Emacspeak speech servers. This article outlines how one can log TTS server output to a file. The loggeds record all commands send by Emacspeak to the TTS server. It is best to generate the logs in an Emacs session that is separate from the Emacs session where you are developping your code. This keeps the logs short, and makes isolating problems much easier.

1.1 How It Works

The emacspeak/servers directory now contains log_<tts-name> servers for the various supported speech servers. When selected, these log-speech servers produce no speech output; instead, they output the speech server commands received from Emacspeak to a file in /tmp named tts-log-$$. Once you're done logging, you can examine this file from the primary Emacs session.

1.2 Typical Workflow

Assume you want to see the speech-server commands sent by Emacs when you perform a specific action, in this instance, pressing C-e m to execute command emacspeak-speak-mode-line.

  1. In a separate Linux console or X-Window, launch Emacs with Emacspeak loaded — this is separate from your primary Emacs session.
  2. In this Emacs session, use C-e d d (command dtk-select-server) and select log-<tts-name> as the speech server, where tts-name corresponds to the speech engine you're testing.
  3. Emacspeak will now start the logging server, and fall silent; all commands sent by Emacspeak to the speech-server will be logged to a file in /tmp.
  4. Press C-e m – to produce the log output you want to see.
  5. Use command _emacspeak-emergency-tts-restart to get speech back.
  6. Open a dired buffer on /tmp, press s to sort files by date, and find your generated log output at the top of the list.
  7. Note: It is useful to configure your default speech engine via Custom – see user option emacspeak-emergency-tts-server. It provides a quick-fire means to get speech back if you ever switch to a speech-server that fails for some reason.

Share And Enjoy

Date: <2015-04-15 Wed>

Author: raman

Created: 2015-04-15 Wed 17:33

Emacs 25.0.50.1 (Org mode 8.2.10)

Validate

Monday, March 09, 2015

Emacspeak Development Is Moving To GitHub

Emacspeak Development Is Moving To GitHub

1 Summary:

Emacspeak development is moving from Google Code Hosting to GitHub. If you have been running from the SVN repository, I recommend you switch to the GitHub version by executing:

 
git clone https://github.com/tvraman/emacspeak.git 
make config 
make -j 
  • If using Outloud TTS:
 
cd servers/linux-outloud  &&  make 
  • If using Espeak TTS:
 
cd servers/linux-espeak && make 
  • After this, all you should need to stay up to date is a periodic
 
git pull; make config; make  

2 A Brief History

  • The first five years of Emacspeak development used a local RCS repository on my home machine (1994 –1999).
  • The first few releases of Emacspeak were distributed through the Web site and FTP server at Digital Research; they were also mirrored at Cornell.
  • After moving to Adobe Systems in the fall of 1995, Emacspeak was distributed exclusively through my Web page on the Cornell CS Department Web server, which also hosted my personal Web site.
  • In 2000, I created Emacspeak On SourceForge

and used that site for both hosting the Emacspeak source code as well as the Web site — coincidentally, I lost the ability to update my Web site at Cornell CS around the same time.

  • Over time it became harder and harder to publish new Emacspeak releases through the SourceForge interface. Luckily, Google Code Hosting came along a few months after I joined Google, and moving the source code repository to Google Code SVN was a no-brainer.
  • My friend and colleague Fitz helped me migrate the 5+ years of CVS history to SVN; this meant that the source code repository on Google Code also recorded all of the development history that had been built up on Sourceforge.
  • Now, it's time to move to GitHub. I've been using Git for most of my work the last few years, but was simply too lazy to move Emacspeak development from SVN to Git on GoogleCode.
  • But over time, the advantages present in Git as a source control system and GitHub as a hosting service have increased — primary among these — a rich set of Emacs tools that have been written to leverage the GitHub API.
  • For Git integration in Emacs, my personal preference is package Magit available through Elpa —
 
M-x package-install magit in Emacs. 
  • The GitHub Web site itself is fairly heavy-weight in terms of its use of scripting, i.e. performing all operations through the github.com Web site from within Emacs is fairly unpleasant. But the afore-mentioned GitHub API makes this a non-issue at this point with respect to the type of workflow I prefer.
  • So this week, I did the work to migrate Emacspeak development to Emacspeak On GitHub.

3 Status Of Migration

  • With help from some of the kind folk at Google Code Hosting, I've successfully migrated the source code repository including all release tags to GitHub.
  • I am now checking in changes into GitHub; the SVN repository on Google Code Hosting is now frozen, and I do not plan to make any commits there.
  • I presently have no immediate plans to start using features of GitHub like the Issue Tracker; for now we will continue to use the Emacspeak mailing list which has served us well for 20 years.
  • I have also taken this opportunity to prune out legacy portions of the Emacspeak codebase by moving modules to obsolete at each level of the directory tree.
  • Since starting the Emacspeak Blog in late 2005, I have published a sequence of articles describing Emacspeak features and usage patterns; I felt that having these articles for local reference made a useful supplement to the emacspeak online documentation. Toward this end, I have downloaded all articles published so far and checked in both XML and HTML versions into sub-directory blogs.
  • Note that newer articles are also available as .org files under sub-directory announcements.

4 Next Steps

  • I still need to learn how to do software releases on GitHub.

Share And Enjoy!

Date: <2015-03-06 Fri>

Author: raman

Created: 2015-03-07 Sat 08:12

Emacs 25.0.50.1 (Org mode 8.2.10)

Validate

Tuesday, February 17, 2015

Enhanced Audio On The Emacspeak Desktop

Enhanced Audio On The Emacspeak Desktop

1 Enhanced Audio On The Emacspeak Desktop

I recently added a set of modules to Emacspeak to leverage some of the high-end audio functionality available on Linux machines on modern hardware. As an example, applying effects such as 3D spatialization, high-end reverb effects etc. once consumed CPU cycles to the extent where it was not possible to play with these in realtime. All these now take less than 1–5% of the CPU, and that when my laptop is running in power-save mode!

1.1 An Audio Workbench Using SoX

Sound Exchange (SoX), described as the Swiss army knife of sound processing, has been around since the time I was a graduate student. Today it provides a versatile set of tools for editing and manipulating both wave and mp3 files. Module sox.el implements a simple Audio Workbench for the Emacspeak desktop.

1.1.1 Pre-Requisites

SoX with all available auxillary packages for adding support for various filetypes such as mp3. The various Ladspa related packages for installing additional audio effect filters.

1.1.2 Usage Instructions For SoX.el

  • Launch the Audio Workbench via by executing M-x sox.
  • Use f to open a wave or mp3 file you wish to manipulate.
  • Add any of the supported effects using e.
  • Use upper-case E to add more than one effect.
  • Hit p to play the result, s to save the result to a new file.

At present sox.el supports a few effects such as trim for clipping files, reverb for adding a reverb etc., with more to come as I use it.

1.2 Adding High-End Reverb When Playing Media Streams

I use mplayer to play both local and network media streams. MPlayer can apply a wide range of filters to the audio stream; more interestingly it can also apply effects implemented as Ladspa plugins. Package tap-plugins implements a large number of high-quality Ladspa filters, including a versatile Reverb filter.

Once you have package tap-plugins and its dependencies installed, and a relatively new version of MPlayer (with support for Ladspa plugins), you can now apply various Reverb Presets to your media streams via Emacspeak MPlayer command emacspeak-m-player-apply-reverb-preset bound to P in Emacspeak MPlayer. Package tap-plugins defines a total of 42 Reverb Presets, experiment with these when wearing headsets. Once you have applied a Reverb Preset, you can edit its current settings via command emacspeak-m-player-edit-reverb bound to R in Emacspeak MPlayer. Alternatively, you can pick a default effect to use via Emacs' custom interface; see option emacspeak-m-player-reverb-filter.

1.3 Defining Convenient MPLayer Shortcuts

Finally, You can now bind shortcut keys for launching Emacspeak MPlayer from specific locations where you store media, e.g., you can have separate shortcuts for Music vs Audio Books – see command emacspeak-m-player-accelerator. This is best used by customizing Emacspeak option emacspeak-media-location-bindings — just use the Customize interface to specify pairs of shortcut keys and media locations.

Date: <2015-02-17 Tue>

Author: raman

Created: 2015-02-17 Tue 17:37

Emacs 25.0.50.1 (Org mode 8.2.10)

Validate

Internet Radio: Tune-In For Emacspeak

Internet Radio: Tune-In For Emacspeak

1 Internet Radio: Tune-In For Emacspeak

I just checked in the ability to browse, search and play radio-stations from TuneIn on the Emacspeak Audio Desktop.

1.1 Pre-Requisites

  1. xsltproc for xsl stylesheet processing.
  2. Linux mplayer for playing streams, preferably the latest version

2 Simple Usage Summary

  • M-x emacspeak-wizards-tune-in-radio-browse brings up the browse interface.
  • M-x emacspeak-wizards-tune-in-radio-search prompts for a query and brings up search results.
  • Both browse and search get the results back as an OPML feed, which gets displayed as a simple Web page within the Emacs Web Browser (EWW if using 24.4).
  • Items identified as (link) are themselves OPML feeds and can be opened via command emacspeak-feeds-opml-display.
  • The initial browse buffer is set up to use opml-display when you click on link items.
  • You can play (audio) links by invoking command emacspeak-webutils-play-media-at-point — this command is bound to _; in EWW.
  • You need to provide an interactive prefix argument to the above command to indicate that it is a playlist — so you actually press C-u ; on audio links.
  • Many of the audio links do not return a playlist – they instead return a link that is a pointer to a playlist. Newer versions of mplayer will throw a security error — you can tell mplayer to follow them by invoking the earlier command with two prefix args so C-u C-u ;.
  • All this works about 90% of the time. In some cases – depending on whether the server failed to generate the right

mimetype for the play URL etc, you may need to run

curl --silent <url> 

where <url> is the URL of the audio link, then pass that resulting URL to command emacspeak-m-player-url.

Share And Enjoy!

Date: <2015-02-17 Tue>

Author: T.V Raman

Created: 2015-02-17 Tue 16:41

Emacs 25.0.50.1 (Org mode 8.2.10)

Validate

Tuesday, January 06, 2015

3D: A Spatial Auditory Icon Theme Generated Using CSound

Using CSound To Generate Auditory Icons

1 Auditory Icon Theme: 3d

CSound is a sophisticated music sound synthesis system with a strong community of developers. I've played off and on with CSound ever since the early 90's and have always been intrigued by the possibility of algorithmically creating new auditory icon themes for Emacspeak using CSound.

Over the holidays last December, I finally got around to creating my first complete CSound-generated auditory icon theme – it is now checked into Emacspeak SVN as theme 3d. This theme is best experienced with headphones — many of the generated icons use spatial audio to good effect.