From eef1ab72d55ab502f84200e810c2c2e81297d8bd Mon Sep 17 00:00:00 2001 From: Carlos Diosdado Date: Wed, 10 Jun 2026 23:38:00 -0600 Subject: [PATCH] fix(discord): inherit AudioSource in VoiceMixer for vc.play() compatibility VoiceMixer duck-typed the discord.AudioSource interface (is_opus, read, cleanup) but never inherited from it. discord.py's vc.play() does an isinstance check and rejects non-AudioSource objects, causing the voice fx mixer to silently fail with: "Voice mixer failed to start: source must be an AudioSource not VoiceMixer" Added missing `import discord` and changed the class definition from `class VoiceMixer:` to `class VoiceMixer(discord.AudioSource):`. --- plugins/platforms/discord/voice_mixer.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/platforms/discord/voice_mixer.py b/plugins/platforms/discord/voice_mixer.py index a01fd827243..e2a4ba99259 100644 --- a/plugins/platforms/discord/voice_mixer.py +++ b/plugins/platforms/discord/voice_mixer.py @@ -46,6 +46,8 @@ import logging import threading from typing import TYPE_CHECKING, List, Optional +import discord + if TYPE_CHECKING: # numpy is an optional ("voice" extra) dep — never import at runtime top-level import numpy as np @@ -145,7 +147,7 @@ class MixerChild: return samples -class VoiceMixer: +class VoiceMixer(discord.AudioSource): """A continuous ``discord.AudioSource`` that mixes N child streams. Use :meth:`set_ambient` to install/replace the looping idle bed and