API Docs

Module for discovering and controlling audio devices.

Finding devices

const all = hs.audiodevice.all();
const out = hs.audiodevice.defaultOutputDevice();
const mic = hs.audiodevice.defaultInputDevice();

Selecting a device

const usb = hs.audiodevice.findDeviceByName("USB Audio CODEC");
if (usb) usb.setDefaultOutputDevice();

Watching for system-level changes

var fn = function(event) {
    if (event === "dOut") console.log("Default output changed");
    if (event === "dev+") console.log("A device was added");
};
hs.audiodevice.addWatcher(fn);
// later…
hs.audiodevice.removeWatcher(fn);

Types

This module provides the following types:

Properties

This module has no properties.

Methods

hs.audiodevice.all() -> HSAudioDevice[]

All audio devices attached to the system.
hs.audiodevice.all() -> HSAudioDevice[]
HSAudioDevice[]
An array of HSAudioDevice objects
const devs = hs.audiodevice.all()
devs.forEach(d => console.log(d.name))

hs.audiodevice.allOutputDevices() -> HSAudioDevice[]

All audio devices that have at least one output stream.
hs.audiodevice.allOutputDevices() -> HSAudioDevice[]
HSAudioDevice[]
An array of HSAudioDevice objects
const outputs = hs.audiodevice.allOutputDevices()

hs.audiodevice.allInputDevices() -> HSAudioDevice[]

All audio devices that have at least one input stream.
hs.audiodevice.allInputDevices() -> HSAudioDevice[]
HSAudioDevice[]
An array of HSAudioDevice objects
const inputs = hs.audiodevice.allInputDevices()

hs.audiodevice.defaultOutputDevice() -> HSAudioDevice

The current system default output device.
hs.audiodevice.defaultOutputDevice() -> HSAudioDevice
HSAudioDevice
An HSAudioDevice, or null if none is set
const out = hs.audiodevice.defaultOutputDevice()
console.log(out && out.name)

hs.audiodevice.defaultInputDevice() -> HSAudioDevice

The current system default input device.
hs.audiodevice.defaultInputDevice() -> HSAudioDevice
HSAudioDevice
An HSAudioDevice, or null if none is set
const mic = hs.audiodevice.defaultInputDevice()

hs.audiodevice.defaultEffectDevice() -> HSAudioDevice

The current system alert sound device.
hs.audiodevice.defaultEffectDevice() -> HSAudioDevice
HSAudioDevice
An HSAudioDevice, or null if none is set
const effect = hs.audiodevice.defaultEffectDevice()

hs.audiodevice.findDeviceByName(name) -> HSAudioDevice

Find the first audio device whose name matches the given string.
hs.audiodevice.findDeviceByName(name) -> HSAudioDevice
Name Type Description
name string The device name to search for
HSAudioDevice
An HSAudioDevice if found, null otherwise
const usb = hs.audiodevice.findDeviceByName("USB Audio CODEC")

hs.audiodevice.findDeviceByUID(uid) -> HSAudioDevice

Find the audio device with the given unique identifier.
hs.audiodevice.findDeviceByUID(uid) -> HSAudioDevice
Name Type Description
uid string The device UID to search for
HSAudioDevice
An HSAudioDevice if found, null otherwise
const dev = hs.audiodevice.findDeviceByUID("BuiltInSpeakerDevice")

hs.audiodevice.addWatcher(listener) -> None

Register a listener for all system-level audio configuration events.
hs.audiodevice.addWatcher(listener) -> None
Name Type Description
listener JSValue A JavaScript function that receives the event name string
None
hs.audiodevice.addWatcher((event) => {
    if (event === "dOut") console.log("Default output changed")
})

hs.audiodevice.removeWatcher(listener) -> None

Remove a previously registered system-level listener.
hs.audiodevice.removeWatcher(listener) -> None
Name Type Description
listener JSValue The JavaScript function that was passed to ``addWatcher(_:)``
None
hs.audiodevice.removeWatcher(myHandler)

hs.audiodevice._makeDeviceEmitter() -> None

SKIP_DOCS
hs.audiodevice._makeDeviceEmitter() -> None
None