Skip to content

NullOutput

No-op audio output provider that discards all audio.

Defined in: src/providers/output/NullOutput.ts:91

No-op audio output provider that discards all audio.

Remarks

NullOutput implements the Null Object pattern for the 'tts' + 'output' pipeline roles. Every method is a no-op, making it safe to use wherever an AudioOutputProvider is required but audio playback is not needed.

Common use cases:

  • Text-only agentsNullInput + LLM + NullOutput = ChatGPT-style text interface
  • Voice-in, text-outMicrophoneInput + STT + LLM + NullOutput = user speaks, agent replies with text only
  • Server-side pipelines where only the transcription/LLM response matters
  • Testing pipelines without audio playback side-effects
  • Headless environments without audio hardware

Example

import { NullOutput, CompositeVoice, BufferInput, DeepgramSTT, AnthropicLLM } from 'composite-voice';

// Minimal server-side pipeline
const voice = new CompositeVoice({
  providers: [
    new BufferInput({ sampleRate: 16000, encoding: 'linear16', channels: 1 }),
    new DeepgramSTT({ apiKey: '...' }),
    new AnthropicLLM({ apiKey: '...', model: 'claude-haiku-4-5' }),
    new NullOutput(),
  ],
});

// Audio from TTS is silently discarded
await voice.initialize();

See

Implements

Constructors

Constructor

new NullOutput(): NullOutput;

Returns

NullOutput

Properties

PropertyModifierTypeDefault valueDescriptionDefined in
rolesreadonlyreadonly ProviderRole[]undefinedPipeline roles covered by this provider. Remarks NullOutput covers both 'tts' and 'output', so no separate TTS provider is needed. LLM text is still emitted via llm.chunk and llm.complete events — it just isn’t synthesized into speech.src/providers/output/NullOutput.ts:108
typereadonlyProviderType'rest'Communication type for this provider. Remarks NullOutput uses 'rest' because it does not maintain any connection.src/providers/output/NullOutput.ts:98

Methods

configure()

configure(_metadata): void;

Defined in: src/providers/output/NullOutput.ts:195

Configure the output format. No-op — audio is discarded.

Parameters

ParameterTypeDescription
_metadataAudioMetadataIgnored.

Returns

void

Implementation of

AudioOutputProvider.configure


connect()

connect(): Promise<void>;

Defined in: src/providers/output/NullOutput.ts:159

No-op — nothing to connect.

Returns

Promise<void>


disconnect()

disconnect(): Promise<void>;

Defined in: src/providers/output/NullOutput.ts:169

No-op — nothing to disconnect.

Returns

Promise<void>


dispose()

dispose(): Promise<void>;

Defined in: src/providers/output/NullOutput.ts:132

Dispose of the provider.

Returns

Promise<void>

Remarks

Clears the initialized flag. No resources need to be released.

Implementation of

AudioOutputProvider.dispose


enqueue()

enqueue(_chunk): void;

Defined in: src/providers/output/NullOutput.ts:204

Enqueue an audio chunk. No-op — audio is discarded.

Parameters

ParameterTypeDescription
_chunkAudioChunkIgnored.

Returns

void

Implementation of

AudioOutputProvider.enqueue


finalize()

finalize(): Promise<void>;

Defined in: src/providers/output/NullOutput.ts:154

No-op — nothing to finalize.

Returns

Promise<void>


flush()

flush(): Promise<void>;

Defined in: src/providers/output/NullOutput.ts:211

Wait for playback completion. Resolves immediately — nothing to play.

Returns

Promise<void>

Implementation of

AudioOutputProvider.flush


initialize()

initialize(): Promise<void>;

Defined in: src/providers/output/NullOutput.ts:122

Initialize the provider.

Returns

Promise<void>

Remarks

Sets the initialized flag. No resources are acquired since all operations are no-ops. If already initialized, this is a no-op.

Implementation of

AudioOutputProvider.initialize


isPlaying()

isPlaying(): boolean;

Defined in: src/providers/output/NullOutput.ts:241

Check whether audio is playing. Always returns false.

Returns

boolean

falseNullOutput never plays audio.

Implementation of

AudioOutputProvider.isPlaying


isReady()

isReady(): boolean;

Defined in: src/providers/output/NullOutput.ts:142

Check whether the provider has been initialized.

Returns

boolean

true when initialize has completed and dispose has not yet been called.

Implementation of

AudioOutputProvider.isReady


onAudio()

onAudio(_callback): void;

Defined in: src/providers/output/NullOutput.ts:174

No-op — no audio will be produced.

Parameters

ParameterType
_callback(chunk) => void

Returns

void


onMetadata()

onMetadata(_callback): void;

Defined in: src/providers/output/NullOutput.ts:179

No-op — no metadata will be produced.

Parameters

ParameterType
_callback(metadata) => void

Returns

void


onPlaybackEnd()

onPlaybackEnd(_callback): void;

Defined in: src/providers/output/NullOutput.ts:259

Register a playback-end callback. No-op — playback never ends.

Parameters

ParameterTypeDescription
_callback() => voidIgnored.

Returns

void

Implementation of

AudioOutputProvider.onPlaybackEnd


onPlaybackError()

onPlaybackError(_callback): void;

Defined in: src/providers/output/NullOutput.ts:268

Register a playback-error callback. No-op — no errors can occur.

Parameters

ParameterTypeDescription
_callback(error) => voidIgnored.

Returns

void

Implementation of

AudioOutputProvider.onPlaybackError


onPlaybackStart()

onPlaybackStart(_callback): void;

Defined in: src/providers/output/NullOutput.ts:250

Register a playback-start callback. No-op — playback never starts.

Parameters

ParameterTypeDescription
_callback() => voidIgnored.

Returns

void

Implementation of

AudioOutputProvider.onPlaybackStart


pause()

pause(): void;

Defined in: src/providers/output/NullOutput.ts:225

Pause playback. No-op — nothing is playing.

Returns

void

Implementation of

AudioOutputProvider.pause


processChunk()

processChunk(_text): void;

Defined in: src/providers/output/NullOutput.ts:149

No-op — text is discarded, no synthesis occurs.

Parameters

ParameterType
_textstring

Returns

void


resume()

resume(): void;

Defined in: src/providers/output/NullOutput.ts:232

Resume playback. No-op — nothing is paused.

Returns

void

Implementation of

AudioOutputProvider.resume


sendText()

sendText(_text): void;

Defined in: src/providers/output/NullOutput.ts:164

No-op — text is discarded.

Parameters

ParameterType
_textstring

Returns

void


stop()

stop(): void;

Defined in: src/providers/output/NullOutput.ts:218

Stop playback. No-op — nothing is playing.

Returns

void

Implementation of

AudioOutputProvider.stop


synthesize()

synthesize(_text): Promise<Blob>;

Defined in: src/providers/output/NullOutput.ts:184

No-op — returns empty blob.

Parameters

ParameterType
_textstring

Returns

Promise<Blob>

© 2026 CompositeVoice. All rights reserved.

Font size
Contrast
Motion
Transparency