Options
All
  • Public
  • Public/Protected
  • All
Menu

@tmigone/pulseaudio

🎶 @tmigone/pulseaudio 🎶

NPM CI Coverage Status

@tmigone/pulseaudio is a TypeScript based client library for PulseAudio, the most popular sound server for Linux. This library allows you to easily build clients or applications that interact with a PulseAudio server over it's native protocol, for example media players/recorders, volume control applications, etc.

Features

  • Zero dependency fully typed TypeScript implementation of the PulseAudio client protocol
  • Extensive testing suite
  • Protocol features:
    • authentication - provide authentication data for the server
    • transport - connect over UNIX domain sockets or TCP sockets
    • introspection - query, modify and operate on PulseAudio objects like modules, sinks, sources, etc.
    • events - subscribe to server-side object events like a sink starting playback, etc.
    • (To be implemented) streams - manage audio playback and recording using Node.js streams

Installation

Install the library using npm:

npm install @tmigone/pulseaudio

Usage

import PulseAudio, { Sink } from '@tmigone/pulseaudio'

(async () => {
// Connect using tcp or unix socket
// const client: PulseAudio = new PulseAudio('unix:/run/pulse/pulseaudio.socket')
const client: PulseAudio = new PulseAudio('tcp:192.168.1.10:4317')
await client.connect()

// Set volume of all sinks to 50%
const sinks: Sink[] = await client.getSinkList()
for (const sink of sinks) {
await client.setSinkVolume(sink.index, 50)
}

// Close connection
client.disconnect()
})()

Documentation

Visit the docs site for in depth documentation on the library API's.

Generated using TypeDoc