[linux-audio-dev] jack.el -- Run and monitor JACK from within Emacs

Mario Lang mlang at delysid.org
Tue Apr 26 12:11:11 UTC 2005


I am sure this sounds a bit crazy to some of you, but be ensured,
I am not (yet) completely out of my mind and there are actually
real reasons for doing what I do :-).

I am now running jackd from within Emacs, using jack.el.

Find it here: http://delysid.org/emacs/jack.el

Basic usage:

* Install the elisp file and put (require 'jack) in your .emacs.
* Customize startup options: M-x customize-group RET jack RET
  * I.e. jack-sample-rate and jack-period-size are two important candidates.
* Start jack: M-x jack-start

You will see the verbose output in a special buffer called *JACK output*.

* If you want/need to get rid of your jack instance, simply do
  M-x jack-kill RET

* If you changed sample rate or any other startup parameter, do
  M-x jack-restart RET
  to make them effective.

* Do something useful with xrun output, maybe some stats (suggestions?).
* Add support for dummy and oss drivers, and add remaining ALSA
* Write a patchbay based on jack_lsp and jack_{dis,}connect.

Why am I doing this?

You might have noticed I am recently seriously working on
Emacs extensions related to Sound and audio.  osc.el is working
nicely and om.el, a client to drobillas om-synth is just waiting
for a polish up.  midi.el is parsing binary data already and
needs a bit more careful planning before it can really grow.
The idea behind jack.el was that I basically got fed up by jack
wasting either a virtual console, or a screen window.  Both dont really
offer confortable scrollback, so the idea to make jack run from
within Emacs, and collect all its output into a Emacs buffer was born.
Some nice sideeffects: Load statistic is collected in a variable,
so if you are into elisp, you can do fancy stuff like:

(with-current-buffer (jack-output-buffer) jack-load)

to retrieve the current load :-)

Combine all this with things like csound-x (Csound support for Emacs)
and the SuperCollider Emacs frontend, and you get a truly
powerful composition and experimentation environment.
One day I'll learn CLM and CM, and add it to the mix as well :-)


More information about the Linux-audio-dev mailing list