Next: , Previous: , Up: Media   [Contents][Index]


53.3 Audio Devices

Considering media stream objects as sources for multimedia playback, the targets are obviously X displays, buffers and/or sound cards or sound servers.

Like media stream objects, audio device objects are containers for the underlying driver libraries.

Function: make-audio-device driver &rest device-options

Create a new device to output audio via driver. driver should be a symbol out of ’oss, ’nas, ’esd, ’pulse, ’jack, ’alsa, or ’ao.

The rest arguments may be used to pass options to the selected output driver. These should be ‘:keyword value’ pairs.

Valid keywords for ALSA are: :device - the name of the hardware interface (default: "default"), you may want to try "plughw:0,0" first :keep-open - whether to exclusively reserve the device. Note this may prevent other applications from using the device.

Valid keywords for (deprecated) OSS are: :device - the name of the hardware interface (default: "/dev/dsp") :keep-open - whether to exclusively reserve the device. Note this may prevent other applications from using the device.

Valid keywords for ESD are: :server - to use a distant ESD daemon (e.g. "my.machine.box:16001") The default for ESD output is to use a locally running daemon and to connect to it via unix domain sockets.

Valid keywords for Pulse are: :server - the host name to connect to (default: "localhost") :sink - the name of the sink to connect to (e.g. "output") :source - the name of the source to record from (e.g. "mic_in") :client - how to call the client on the server (default "SXEmacs") :stream - how to call the stream on the server (e.g. "fancy-sound") :immediate - connect to sink immediately and keep the connection alive as long as the audio device exists (default ‘t’) :threaded - initiate a threaded mainloop (default ‘t’) :force - if non-‘nil’ the device object is created even though the pulse mainloop could not be started; if ‘nil’ any mainloop failure results in an error. This can be useful if you want to have an audio device object although the server is not (yet) up or not (yet) accepting connections from you. (default ‘nil’)

Valid keywords for Jack are: :server - the jack server to connect to (default "default") :client - how to call the client on the server (default "SXEmacs")

Valid keywords for AO are: :driver - the name of the output driver (e.g. "alsa", "esd", etc.) :options - a list of AO suboptions (see AO documentation) The default for AO output is to pass nothing and entirely use the system and user configuration files.

Valid keywords for NAS are: :server - the NAS server to connect to. This can be either: - an X display string like "localhost:0.0", the X display string the current frame is on can be obtained by the function ‘device-connection’ - or a SXEmacs device name like "localhost-11-0" which can be obtained by ‘device-name’ - or a SXEmacs device object, obtainable by ‘frame-device’, like #<x-device on "localhost:11.0" 0xee4> If the :server keyword is omitted SXEmacs tries to determine a sensible default in this order: - use the frame device of the current frame - use the frame device of the initial frame - use the display specified in $AUDIOSERVER - use the display specified in $DISPLAY - try "localhost:0.0"

(make-audio-device 'pulse)
  ⇒ #<audio-device :type pulse :server #default :sink #default
       :source #default :server-state #connected :api #threaded
       :mainloop 0x973f8c0 :device-state #unknown>
(make-audio-device 'jack)
  ⇒ #<audio-device :type jack :server #default :client SXEmacs
       :device-state #unknown>
Function: audio-device-p object

Return non-nil if object is an audio-device, nil otherwise.

Variable: default-audio-device nil

Default audio device to use.


Next: , Previous: , Up: Media   [Contents][Index]