Skip to main content

Finding the Discord Sound Device

How the TranscriptOMatic should operate is, to connect to Discord voice using a dedicated Discord account for this purpose. During sessions, the Discord client (Legcord) will join the discord voice session. No microphone or speaker will be attached to the device. 

This setup makes it possible to work with only a single audio source. If you want to adapt this concept to a device you are actively using, you also need to capture your microphone input — Discord does not play your own voice back to you.

Finding the system's audio sinks

Checking for the system's audio sinks: 

pactl list short sinks

The result should look something like this:

mela@Cox:~ $ pactl list short sinks
35	auto_null	PipeWire	float32le 2ch 48000Hz	SUSPENDED
Finding the Discord sound device

After joining a Discord voice channel, checking for the Discord system sound device:

pactl list short sink-inputs

The result should be something like: 

mela@Cox:~ $ pactl list short sink-inputs
184	35	183	PipeWire	float32le 2ch 48000Hz
Adding a persistent sink (and using its monitor as a stable audio source).

Create a dedicated null sink for Discord audio:

pactl load-module module-null-sink \
  sink_name=discord_sink \
  sink_properties=device.description=DiscordSink

After joining a Discord voice channel, the sink-input may disappear quickly if the channel is silent. To immediately move the active sink-input to the persistent sink:

pactl move-sink-input $(pactl list short sink-inputs | awk '{print $1}') discord_sink

 

This assumes that only a single sink-input is active, which is a reasonable assumption in a minimal setup, but may not hold true on a typical desktop system.

Controlling the result: 

pactl list short sinks

The result should look something like this: IDLE instead of SUSPENDED.

IDLE means the sink exists persistently but currently receives no audio data.

mela@Cox:~ $ pactl list short sinks
199	discord_sink	PipeWire	float32le 2ch 48000Hz	IDLE

Getting the sound monitor source: 

pactl list short sources

 The result should look something like this: 

mela@Cox:~ $ pactl list short sources
199	discord_sink.monitor	PipeWire	float32le 2ch 48000Hz	IDLE