Hi.
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.
Plans:
* Do something useful with xrun output, maybe some stats (suggestions?).
* Add support for dummy and oss drivers, and add remaining ALSA
params.
* 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 :-)
--
CYa,
Mario