Skip to content

feat: Voice guide rewrite - #556

Open
DA-344 wants to merge 5 commits into
nextfrom
voice-guide-rewrite
Open

feat: Voice guide rewrite#556
DA-344 wants to merge 5 commits into
nextfrom
voice-guide-rewrite

Conversation

@DA-344

@DA-344 DA-344 commented Aug 30, 2026

Copy link
Copy Markdown

Summary

Updates the Voice guides by splitting them in two:

  • Simple Guide: introduces AudioSources and explains each of them as a first-way to send audio to Discord voice channels
  • Advanced Guide: explains how to create custom AudioSources by subclassing, and using Lavalink as an alternative to AudioSources

Information

  • This PR fixes an issue.
  • This PR adds something new (e.g. new method or parameters).
  • This PR is a breaking change (e.g. methods or parameters removed/renamed).
  • This PR is not a code change (e.g. documentation, README, typehinting,
    examples, ...).

Checklist

  • I have searched the open pull requests for duplicates.
  • If code changes were made then they have been tested.
    • I have updated the documentation to reflect the changes.
  • If type: ignore comments were used, a comment is also left explaining why.
  • I have updated the changelog to include these changes.
  • I have read the Contributing Guidelines.
  • AI Usage has been disclosed.
    • If AI has been used, I understand fully what the code does

@DA-344 DA-344 linked an issue Aug 30, 2026 that may be closed by this pull request
@Paillat-dev

Copy link
Copy Markdown
Member

Please link issue

@Paillat-dev
Paillat-dev self-requested a review August 30, 2026 17:19
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 30, 2026

Copy link
Copy Markdown

Deploying pycord-guide with  Cloudflare Pages  Cloudflare Pages

Latest commit: 79036de
Status: ✅  Deploy successful!
Preview URL: https://8113213f.guide-49b.pages.dev
Branch Preview URL: https://voice-guide-rewrite.guide-49b.pages.dev

View logs

@Paillat-dev

Copy link
Copy Markdown
Member

@DA-344 You should probably add the pages & rename their sidebar entries in zensical.toml

@DA-344 DA-344 changed the title Voice guide rewrite feat: Voice guide rewrite Aug 30, 2026
Comment thread docs/voice/index.md
- [`Pycord.Wavelink`](https://github.com/Pycord-Development/Pycord.Wavelink),
- [`SonoLink`](https://github.com/sonolink/sonolink) - used for advanced audio playback
[`Lavalink.py`](https://github.com/Devoxin/Lavalink.py),
[`Wavelink`](https://github.com/PythonistaGuild/Wavelink) or any other Python LavaLink library for music playback.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wavelink does not yet provide an explicit support for pycord, redundant.

track = result.result

# And finally... we play the track we obtained
await vc.play(song)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
await vc.play(song)
await vc.play(track)

Comment on lines +212 to +215
@bot.event
async def on_sonolink_node_ready(payload: sonolink.gateway.ReadyEvent) -> None:
print(f"Node with ID {payload.node.id!r} has connected!")
print(f"Resumed session: {payload.resumed}")

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would insist on following sonolink guides' convention.

Suggested change
@bot.event
async def on_sonolink_node_ready(payload: sonolink.gateway.ReadyEvent) -> None:
print(f"Node with ID {payload.node.id!r} has connected!")
print(f"Resumed session: {payload.resumed}")
@bot.event
async def on_sonolink_node_ready(event: sonolink.gateway.ReadyEvent) -> None:
print(f"Node with ID {event.node.id!r} has connected!")
print(f"Resumed session: {event.resumed}")

Comment on lines +118 to +120
@bot.listen()
async def on_connect() -> None:
await sl_client.start() # starts connection to the created nodes

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
@bot.listen()
async def on_connect() -> None:
await sl_client.start() # starts connection to the created nodes
@bot.listen()
async def on_connect() -> None:
await sl_client.start() # starts connection to the created nodes
print("SonoLink nodes connected successfully!")

Comment on lines +208 to +211
@bot.listen()
async def on_connect() -> None:
await sl_client.start() # Starting the client & connect all nodes

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicate of lines 118-120.

Suggested change
@bot.listen()
async def on_connect() -> None:
await sl_client.start() # Starting the client & connect all nodes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Rewrite the voice guide (Sonolink + DAVE)

3 participants