Skip to content
This repository has been archived by the owner on Oct 19, 2022. It is now read-only.

Releases: mansuf/discord-ext-music

v0.3.0

16 Nov 17:26
Compare
Choose a tag to compare

Note

There may be tons of bug in the module, if you found it please report to issue tracker

Improvements

  • Optimized PyAV music sources stream.
  • Optimized pydub equalizer.

Fix bugs

  • Fixed All of miniaudio music sources malfunctioning when decoding, for more information about what sources are affected see below:
    • MP3toPCMAudio.from_file()
    • MP3toPCMAudio.from_data()
    • FLACtoPCMAudio.from_file()
    • FLACtoPCMAudio.from_data()
    • VorbistoPCMAudio.from_file()
    • VorbistoPCMAudio.from_data()
    • WAVtoPCMAudio.from_file()
    • WAVtoPCMAudio.from_data()
  • Fixed LibAVOpusAudio.seek() error caused by unconverted floating numbers.
  • Fixed a deadlock when stopping audio caused by MusicClient.stop() is waiting audio player thread to exit.
  • Fixed after function is called in audio player when MusicClient.stop() is called.
  • Fixed WAVAudio malfunctioning if given stream is valid wav.
  • Fixed after function called when voice is disconnected

New features

  • Added new opus encoder using PyAV library.
  • Added equalizer support for PyAV-based music source for LibAVPCMAudio
  • Added Playlist.get_pos_from_track() to retrieve track position from given track
  • Added MusicSource.volume property to return current volume.
  • Added MusicSource.equalizer property to return current equalizer.
  • Added MusicClient.playlist property to retrieve current playlist in MusicClient
  • Added MusicClient.set_playlist() to set new playlist.
  • Added MusicClient.volume property to return current volume from music client.
  • Added MusicClient.set_volume() to set volume music source in music client.
  • Added MusicClient.equalizer property to return current equalizer from music client.
  • Added MusicClient.set_equalizer() to set equalizer in music client.
  • Added hook on_disconnect on MusicClient.
  • Added hook on_player_error on MusicClient.

Breaking changes

  • Replaced Equalizer and SubwooferEqualizer with pydubEqualizer and pydubSubwooferEqualizer.
  • Removed module discord.ext.music.voice_source.av.encoder as it unused because new opus encoder.
  • Removed LibAVAudio as it unused.
  • Replaced LibAVError with StreamHTTPError
  • Removed MusicClient.register_after_callback(), replaced with:
    • MusicClient.before_play_next()
    • MusicClient.after_play_next()
  • Removed Track.stream_url attribute and stream_url parameter
  • Player error handling now are called from MusicClient.on_player_error()

v0.2.0

21 Aug 15:12
Compare
Choose a tag to compare

Note

There may be tons of bug in the module, if you found it please report to issue tracker

New features

  • Added API Documentation
  • Added WAVtoPCMAudio miniaudio-based music sources.
  • Added Keyword-arguments only in Track.__init__(), all Keyword-arguments will be setted in Track class attributes.

Fixed bugs

  • Fix unhandled error "cannot allocate memory in static TLS block" when importing discord.ext.music.voice_source.av on ARM-based CPU.
    NOTE: The error is not fixed automatically inside python, because you need to fix it manually outside python. The solution is given inside the error.

Removals

  • Removed WorkerError exception class as it unused.
  • Removed ConverterError exception class as it unused.

Improvements

  • Improved how next song playback system work in MusicClient

Breaking changes

  • Changed module name from discord.ext.music.voice_source.pyav to discord.ext.music.voice_source.av
  • module discord.ext.music.equalizer no longer raising error when you try to import it.
  • module discord.ext.music.voice_source.miniaudio no longer raising error when you try to import it.
  • module discord.ext.music.voice_source.av no longer raising error when you try to import it.
  • Now PCMEqualizer and SubwooferPCMEqualizer will raise error when you dont have the required modules and try to create it.
  • Changed name WavAudio to WAVAudio
  • Calling LibAVOpusAudio.recreate() now will close the stream before re-creating it.
  • Now LibAVAudioStream.seek() method will directly seek to the stream instead of re-creating it.

First Release (v0.1.0)

14 Aug 13:29
Compare
Choose a tag to compare

This is first release of discord-ext-music. There may be tons of bug in module, if you found it please report to issue tracker

EDIT: in PyPI discord-ext-music webpage, the github repository url was mistaken, this is fixed in main branch, and will be changed in next release. I'm very very sorry for this.

discord-ext-music

An easy-to-use music extension for discord.py

Features

  • It's easy to use
  • Have all playback and playlist controls (skip, previous, seek, rewind, and etc..)
  • Thread-safe playback controls
  • Built-in equalizer and volume adjuster for PCM codec audio (pydub and scipy required)
  • Built-in thread-safe playlist
  • Can play most supported sources from FFmpeg libraries and it embedded into python! (PyAV required)