Skip to main content
Loopback capture of a [Machine]‘s audio output (what its speakers are playing). Obtain via [Machine.loopback]. Call start() before capturing with record() or drain(); samples are interleaved f32 in the requested AudioFormat.

Constructor

Returns

Loopback

Properties

number
required
Number of interleaved channels (1 = mono, 2 = stereo).
number
required
Samples per second per channel (e.g. 44100, 48000).

Methods

drain()

Drains all buffered samples and returns them as a SamplesBuffer. Typical usage: call start(), do work while audio accumulates in the background, call stop(), then call drain() to collect everything that was captured.

Returns

SamplesBuffer

record()

Blocks for exactly duration_ms and returns the captured audio as a SamplesBuffer. Useful for streaming fixed-size chunks while the source is still running.

Parameters

number
required

Returns

SamplesBuffer

start()

Begin capturing. Must be called before record() or drain().

stop()

Stop capturing. May be started again with start(). After stopping, call drain() to collect remaining buffered samples.