:sound: Play and Record Sound with Python :snake:

Overview
Comments
  • adds error codes to PortAudioErrors and a new HostAPIError type

    adds error codes to PortAudioErrors and a new HostAPIError type

    Attach portaudio error codes to portaudio errors to allow for better error handling. This would allow users to handle specific portaudio and host api error codes. The _check function was also updated to use these new exceptions. The from_errno and from_errinfo are a convenience that I thought might make it easier for users to raise an exception with a default message. Hopefully this doesn't add too much complexity to the code.

    opened by tgarc 39
  • Core Audio for interfaces with large #'s of channels

    Core Audio for interfaces with large #'s of channels

    These 3 commits access PA's Core Audio API from pa_mac_core.h, and provide a "get_channel_name" function for querying names of individual device channels along with MacCoreSettings (for use with extra_settings) to expose additional Core Audio capabilities. (See doc string in MacCoreSettings.)

    My specific need for these extensions is that I have an RME Fireface UFX+ with a large number of input & output channels, and I didn't want to have to open many channels when only a couple are required. The get_channel_name function lets me display obtain a set of user-friendly channel names from the underlying device driver (via PortAudio), which I may display to the operator / user.

    I'm open for input to help get these changes incorporated into python-sounddevice.

    Thank you, David

    opened by dholl 24
  • ModuleNotFoundError: No module named '_sounddevice_data'

    ModuleNotFoundError: No module named '_sounddevice_data'

    Hi, I'm very new to Python and Spyder. I'm getting this on the Spyder console, seems related to #110 but I'm not sure what to make of it.

    import sounddevice as sd Traceback (most recent call last):

    File "", line 1, in import sounddevice as sd

    File "C:\Users\James\Anaconda3\lib\site-packages\sounddevice.py", line 73, in import _sounddevice_data

    ModuleNotFoundError: No module named '_sounddevice_data'

    opened by sprocket1 23
  • Sounddevice records too much noise

    Sounddevice records too much noise

    Hello, I'm trying to record audio with sounddevice library (latest version) on RaspberryPi 3 model B v1.2 with raspbian installed and updated. I'm using usb sound card for microphone input. Here is the simple script for recording: sound.zip

    My problem is that sounddevice records so much noise, that it hurts my ears when I listen to the recorded file. Sometimes after fresh RPi boot, the first recording works ok, but when I try to record second time, then it records the noise. Other times (most of the time), it records the noise even after fresh boot.

    I don't think its because of the usb sound card, because the script I'm using works ok with that card on my desktop pc (arch linux) and with the same version of the sounddevice.

    I've tired recording with arecord program, which uses alsa and it works ok every time and I've also tried recording with audacity, which uses portaudio library and it also works ok. Do you have any idea why is this happening?

    Thanks

    opened by ghost 21
  • Sounddevice doesn't play if a program that uses sound is opened.

    Sounddevice doesn't play if a program that uses sound is opened.

    Hello

    I am on Arch Linux and I started using SD today. My initial tests worked just fine. But when I opened another application like Spotify that play music (It is just opened but it doesn't play anything) and then tried to play a sound, it doesn't work anymore. Even if I closed Spotify it won't work till I restart my PC.

    Devices are listed normally and it doesn't return any errors. Is this a normal behaviour or is it a bug?

    And just a small question, Can I play during the playing of another sound? For instance, if a sound's duration is 1s, can I play the sound then after 0.5s play it again without the second sound killing the first sound (I want them to play at the same time).

    Thanks.

    opened by OmarEmaraDev 19
  • ogg files arent played on Ubuntu 16.04 but on RaspberryPi with Jessie

    ogg files arent played on Ubuntu 16.04 but on RaspberryPi with Jessie

    Hi, i have a strange problem, but i cant see how to come closer to the cause.

    I use two (software) systems: yours and pydub see: https://github.com/jiaaro/pydub And i have two hardware systems: one is Ubuntu 16.04 and the other a Jessie for RaspPi(3).

    If i let sounddevice play a ogg fiel on Rasp, it works. But it fails on ubuntu (i hear noise). If i do the same with pydub no problem with Ubuntu and on RaspPi , its in worse quality (not useful, but i can guess the voice file - whereas on first, its just noise).

    Jürgen

    opened by LocutusOfPenguin 19
  • python 2.7: query_devices() fails with non ASCII characters

    python 2.7: query_devices() fails with non ASCII characters

    On a german Windows 7 machine with sounddevice 0.3.3, I get a traceback (see below) when I call:

    python -m sounddevice

    The reason seems to be that a german Windows version has non ASCII characters in the device name. (e.g.: 'Primärer Soundaufnahmetreiber').

    Possible Solution:

    Line 1806: Change name=info['name'], To: name=repr(info['name']),

    Traceback (most recent call last):
      File "C:\Python27\lib\runpy.py", line 162, in _run_module_as_main
        "__main__", fname, loader, pkg_name)
      File "C:\Python27\lib\runpy.py", line 72, in _run_code
        exec code in run_globals
      File "C:\Python27\lib\site-packages\sounddevice.py", line 2536, in <module>
        print(query_devices())
      File "C:\Python27\lib\site-packages\sounddevice.py", line 1810, in __repr__
        for idx, info in enumerate(self))
      File "C:\Python27\lib\site-packages\sounddevice.py", line 1810, in <genexpr>
        for idx, info in enumerate(self))
    UnicodeEncodeError: 'ascii' codec can't encode character u'\ufffd' in position 18: ordinal not in range(128)
    
    bug 
    opened by raecke 19
  • Clarify exception for samplerate mismatch with WASAPI shared mode

    Clarify exception for samplerate mismatch with WASAPI shared mode

    When using WASAPI shared mode in Windows, it is necessary to match the samplerate in sounddevice and Control Panel > Sound > device > Properties > Advanced tab > Default Format. In sounddevice v0.3.5, a samplerate mismatch throws an exception "sounddevice.PortAudioError: Error opening RawOutputStream: Invalid device". I propose to instead detect the mismatch to the device default samplerate and clarify the exception message. This will better help users understand and fix this type of problem. Often, they will want to change the Windows setting.

    opened by hiccup7 18
  • Thoughts on an asyncio interface to sounddevice

    Thoughts on an asyncio interface to sounddevice

    python-sounddevice already has a nice callback interface. Do you think it would be possible to add a module within sounddevice that exposes an asyncio interface for it? This would let you do things like:

    import sounddevice._async as sd
    
    async def some_coroutine():
        async for chunk in sd.Stream(channels=2):
            # Process chunk, but let Python do things while waiting for the next chunk
    

    I'd be happy to implement this if there's any interest. If not I'll write a separate async wrapper module that imports python-sounddevice. Let me know!

    opened by multimeric 17
  • query_devices() name decoding problem (MME, DirectSound)

    query_devices() name decoding problem (MME, DirectSound)

    query_devices() crashes:

        File "C:\Program Files\Anaconda3\lib\site-packages\sounddevice.py", line 712, in query_devices
        _lib.Pa_HostApiTypeIdToHostApiIndex(_lib.paMME)) else 'utf-8'),
       UnicodeDecodeError: 'mbcs' codec can't decode bytes in position 0--1: No mapping for the Unicode   character exists in the target code page.
    

    Changing the "mbcs" at line 710 to "utf-8" fixed the problem in my environment.

    OS: Windows 7 SP1 and Windows 10 (Japanese) Python 3.5 sounddevice ver 0.3.6 (wheel from http://www.lfd.uci.edu/~gohlke/pythonlibs/)

    opened by Takashi-T 17
  • Simplify deriving from _StreamBase

    Simplify deriving from _StreamBase

    People who want to create their own callback-based stream classes can directly inherit from _StreamBase, avoiding the unnecessary (and non-functional) read() and write() methods.

    Also, if desired, they can quite easily implement a single stream class that (based on constructor arguments) supports only inputs, only outputs, or both inputs and outputs.

    opened by mgeier 16
  • Running rec_unlimited.py within other Python code

    Running rec_unlimited.py within other Python code

    I am trying to write/use your code to make a recording that terminates when either 1) there is a keyboard press, or 2) there is a (configurable) number of seconds that have passed without any speech.

    Normally when I want to run one python file within another, I will use the subprocess function. But when I try to use subprocess to run rec_unlimited.py, I can't use KeyboardInterrupt to stop the recording b/c it will simply stop the subprocess rather than the recording.

    Does this make sense? Sorry I am a psychologist - not a computer scientist. Do you have any suggestions or resources you can point me towards to get what I described in the first paragraph?

    Thanks :)

    opened by bwinsto2 1
  • python3 -m sounddevice not listing pcms

    python3 -m sounddevice not listing pcms

    Is there a method to list asound.conf pcms?

    pcm.donglein {
        type=plug
        slave = {
        pcm "plughw:3,0"
        channels 1
        rate 4800}
    }
    

    It will list everything else but the pcm I want to use (rate change)

    (venv) stuart@ubuntu:~/g-kws$ python3 -m sounddevice --help
       0 Loopback: PCM (hw:0,0), ALSA (32 in, 32 out)
       1 Loopback: PCM (hw:0,1), ALSA (32 in, 32 out)
       2 HDA Intel PCH: ALC221 Analog (hw:1,0), ALSA (2 in, 2 out)
       3 HDA Intel PCH: ALC221 Alt Analog (hw:1,2), ALSA (2 in, 0 out)
       4 HDA NVidia: HDMI 0 (hw:2,3), ALSA (0 in, 8 out)
       5 HDA NVidia: HDMI 1 (hw:2,7), ALSA (0 in, 2 out)
       6 HDA NVidia: HDMI 2 (hw:2,8), ALSA (0 in, 8 out)
       7 HDA NVidia: HDMI 3 (hw:2,9), ALSA (0 in, 8 out)
       8 HDA NVidia: HDMI 4 (hw:2,10), ALSA (0 in, 8 out)
       9 HDA NVidia: HDMI 5 (hw:2,11), ALSA (0 in, 8 out)
      10 HDA NVidia: HDMI 6 (hw:2,12), ALSA (0 in, 8 out)
      11 VIA USB Dongle: Audio (hw:3,0), ALSA (2 in, 2 out)
      12 USB Audio Device: - (hw:4,0), ALSA (1 in, 2 out)
      13 sysdefault, ALSA (128 in, 128 out)
      14 front, ALSA (0 in, 32 out)
      15 surround21, ALSA (32 in, 32 out)
      16 surround40, ALSA (0 in, 32 out)
      17 surround41, ALSA (0 in, 32 out)
      18 surround50, ALSA (0 in, 32 out)
      19 surround51, ALSA (0 in, 32 out)
      20 surround71, ALSA (0 in, 32 out)
      21 lavrate, ALSA (128 in, 128 out)
      22 samplerate, ALSA (128 in, 128 out)
      23 speexrate, ALSA (128 in, 128 out)
      24 pulse, ALSA (32 in, 32 out)
      25 speex, ALSA (1 in, 1 out)
      26 upmix, ALSA (8 in, 8 out)
      27 vdownmix, ALSA (6 in, 6 out)
      28 pipewire, ALSA (64 in, 64 out)
      29 dmix, ALSA (0 in, 2 out)
    * 30 default, ALSA (32 in, 32 out)
    

    Maybe it has something to do with Pulseaudio or there is a limit on devices returned?

    Just tried a lite version on a pi3 that doesn't have pulseaudio running

    * 0 VIA USB Dongle: Audio (hw:1,0), ALSA (2 in, 2 out)
      1 ladspa, ALSA (128 in, 128 out)
      2 deepfilter, ALSA (128 in, 128 out)
      3 donglein, ALSA (128 in, 128 out)
    

    All those are alsa pcms that just don't show on my x86 machine with pulseaudio / desktop install, but list fine on the pi

    opened by StuartIanNaylor 2
  • C++ Compiled Application Data Queue Empty?

    C++ Compiled Application Data Queue Empty?

    Hi,

    I can run the python code directly no problem from python. C++ compiled code run from Terminal (macos) Unix file also works. I am having some trouble when double clicking the package created by cmake for sounddevice to receive data.

            q = queue.Queue()
            def callback(indata, frames, time, status):
                q.put(bytes(indata))
            if args.samplerate is None:
                device_info = sd.query_devices(args.device, 'input')
                args.samplerate = int(device_info['default_samplerate'])
            with sd.RawInputStream(samplerate=args.samplerate, blocksize = 8000, device=args.device, dtype='int16',
                                        channels=1, callback=callback):
             ....
    

    In c++ code:

        Py_Initialize();
        fp = _Py_wfopen("test.py", L"r");
        PyRun_SimpleFile(fp, "test.py");
        Py_Finalize();
    

    Where test.py is the working python code. Compiled everything runs fine when running the file from terminal but when compiled into a "dragndrop" from cmake it can get the device information (and sample rate) but it gets no data in the "q" variable.

    Any ideas what I might be missing?

    Thanks!

    opened by msj121 1
  • Redirect stderr with os.dup2() instead of CFFI calls

    Redirect stderr with os.dup2() instead of CFFI calls

    I'm not quite sure yet if we should do this, this has to be tested thoroughly.

    With a bit of luck, this might fix #90.

    However, it might also have bad side effects ...

    opened by mgeier 1
  • fail to load asio driver with a thread

    fail to load asio driver with a thread

    I want to use a pyqt5 GUI to playback a sound with a soundcard. The index of my asio Fireface USB is 66.

    import sounddevice as sd
    data, fs = sf.read(....)
    asio_out = sd.AsioSettings(channel_selectors=[1, 2, 3, 4, 5,6,7,8])
    sd.default.extra_settings = None,asio_out
    sd.default.device[1] = 66
    # mapping from 1 to 8
    sd.play(data, samplerate=fs,mapping=[1])
    sd.wait()
    

    its work.so i try to use this function within a pyqt5 GUI and create a thread to control.

    
    class New_thread(Qthread):
         def __init__(self,wave_dir,flag):
               super(New_thread,self).__init__()
               self.flag = flag
               self.wave_dir = wave_dir
         def run(self):
               if self.flag:
                     # run 
                     data,fs = soundfile.read(self.weave_dir)
                     asio_out = sd.AsioSetting(channel_selections = [1,2,3,4,5,6,7,8])
                     sd.default.extra_setting = None,asio_out
                     sd.default.device[1] = 66
                     sd.play(data, samplerate=fs,mapping=[1])
                     sd.wait()
               else:
                     # create new thread to stop playing back
                     data = np.empty((1000))
                     sd.default.device[1] = 66
                     sd.play(data, samplerate=48000,mapping=[1])
                     sd.stop()
    

    but its fail.

    Traceback (most recent call last):
      File ".\GUI_FOR_LISTENING_TEST.py", line 64, in run
        sd.play(data, samplerate=fs,mapping=[1])
      File "D:\Users\Administrator\miniconda3\envs\listening3.8\lib\site-packages\sounddevice.py", line 175, in play
        ctx.start_stream(OutputStream, samplerate, ctx.output_channels,
      File "D:\Users\Administrator\miniconda3\envs\listening3.8\lib\site-packages\sounddevice.py", line 2582, in start_stream
        self.stream = StreamClass(samplerate=samplerate,
      File "D:\Users\Administrator\miniconda3\envs\listening3.8\lib\site-packages\sounddevice.py", line 1494, in __init__
        _StreamBase.__init__(self, kind='output', wrap_callback='array',
      File "D:\Users\Administrator\miniconda3\envs\listening3.8\lib\site-packages\sounddevice.py", line 898, in __init__
        _check(_lib.Pa_OpenStream(self._ptr, iparameters, oparameters,
      File "D:\Users\Administrator\miniconda3\envs\listening3.8\lib\site-packages\sounddevice.py", line 2745, in _check
        raise PortAudioError(errormsg, err, hosterror_info)
    sounddevice.PortAudioError: Error opening OutputStream: Unanticipated host error [PaErrorCode -9999]: 'Failed to load ASIO driver' [ASIO error 0]
    

    how can we fix it,thanks a lot.

    soundcare info:Fireface UFX, connected with 8 loudspeakers 0fb2f1d303bbc74500cd3a8b0a0e419 3 2

    opened by SoulProficiency 1
  • how to playback audios with 4 loudspeakers by useing “sounddevic.play()”?

    how to playback audios with 4 loudspeakers by useing “sounddevic.play()”?

    good day,my bro! i just want to playback some audios and meet some probles,to be specific,could you tell us the usage of sounddevic.play(,,mapping=), especially the "mapping=". thanks a lot!

    opened by SoulProficiency 1
Releases(0.4.5)
  • 0.4.5(Aug 21, 2022)

    https://pypi.org/project/sounddevice/0.4.5/

    • Add index field to device dict
    • Require Python >= 3.7
    • Add PaWasapi_IsLoopback() to cdef (high-level interface not yet available)
    Source code(tar.gz)
    Source code(zip)
  • 0.4.4(Dec 31, 2021)

  • 0.4.3(Oct 20, 2021)

    https://pypi.org/project/sounddevice/0.4.3/

    • Fix dimension check in Stream.write()
    • Provide "universal" (x86_64 and arm64) .dylib for macOS
    Source code(tar.gz)
    Source code(zip)
  • 0.4.2(Jul 18, 2021)

  • 0.4.1(Sep 26, 2020)

  • 0.4.0(Jul 18, 2020)

    https://pypi.org/project/sounddevice/0.4.0/

    • Drop support for Python 2.x
    • Fix memory issues in play(), rec() and playrec()
    • Example application play_stream.py
    Source code(tar.gz)
    Source code(zip)
  • 0.3.15(Mar 18, 2020)

  • 0.3.14(Sep 25, 2019)

  • 0.3.13(Feb 27, 2019)

  • 0.3.12(Sep 2, 2018)

  • 0.3.11(May 7, 2018)

  • 0.3.10(Dec 22, 2017)

  • 0.3.9(Oct 25, 2017)

  • 0.3.8(Jul 11, 2017)

    https://pypi.python.org/pypi/sounddevice/0.3.8

    • Add more ignore_errors arguments
    • Add sounddevice.PortAudioError.args
    • Add sounddevice.CoreAudioSettings
    Source code(tar.gz)
    Source code(zip)
  • 0.3.7(Feb 16, 2017)

  • 0.3.6(Dec 19, 2016)

  • 0.3.5(Sep 12, 2016)

    https://pypi.python.org/pypi/sounddevice/0.3.5

    • Add extra_settings option for host-API-specific stream settings
    • Add sounddevice.AsioSettings and sounddevice.WasapiSettings
    Source code(tar.gz)
    Source code(zip)
  • 0.3.4(Aug 5, 2016)

  • 0.3.3(Apr 11, 2016)

  • 0.3.2(Mar 16, 2016)

    https://pypi.python.org/pypi/sounddevice/0.3.2

    • mapping=[1] works now on all host APIs
    • Example application plot_input.py showing the live microphone signal(s)
    • Device substrings are now allowed in sounddevice.query_devices()
    Source code(tar.gz)
    Source code(zip)
  • 0.3.1(Jan 4, 2016)

    https://pypi.python.org/pypi/sounddevice/0.3.1

    • Add sounddevice.check_input_settings() and sounddevice.check_output_settings()
    • Send PortAudio output to /dev/null (on Linux and OSX)
    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Oct 28, 2015)

    https://pypi.python.org/pypi/sounddevice/0.3.0

    • Remove sounddevice.print_devices(), sounddevice.query_devices() can be used instead, since it now returns a sounddevice.DeviceList object.
    Source code(tar.gz)
    Source code(zip)
  • 0.2.2(Oct 21, 2015)

  • 0.2.1(Oct 12, 2015)

    https://pypi.python.org/pypi/sounddevice/0.2.1

    • Example applications wire.py (based on PortAudio's patest_wire.c) and spectrogram.py (based on code by Mauris Van Hauwe)
    Source code(tar.gz)
    Source code(zip)
  • 0.2.0(Jul 3, 2015)

    https://pypi.python.org/pypi/sounddevice/0.2.0

    • support for wheels including a dylib for Mac OS X and DLLs for Windows. The code for creating the wheels is largely taken from PySoundFile.
    • remove logging (this seemed too intrusive)
    • return callback status from sounddevice.wait() and add the new function sounddevice.get_status()
    • sounddevice.playrec(): Rename the arguments input_channels and input_dtype to channels and dtype, respectively
    Source code(tar.gz)
    Source code(zip)
  • 0.1.0(Jun 20, 2015)

    https://pypi.python.org/pypi/sounddevice/0.1.0

    Initial release.

    Some ideas are taken from PySoundCard. Thanks to Bastian Bechtold for many fruitful discussions during the development of several features which python-sounddevice inherited from there.

    Source code(tar.gz)
    Source code(zip)
Sound-Equalizer- This is a Sound Equalizer GUI App Using Python's PyQt5

Sound-Equalizer- This is a Sound Equalizer GUI App Using Python's PyQt5. It gives you the ability to play, pause, and Equalize any one-channel wav audio file and play 3 different instruments.

Mustafa Megahed  1 Jan 10, 2022
A simple python script to play bell sound in your system infinitely, just for fun and experimental purposes

A simple python script to play bell sound in your system infinitely, just for fun and experimental purposes

نافع الهلالي 1 Oct 29, 2021
A python script that can play .mp3 URLs upon the ringing or motion detection of a Ring doorbell. The sound plays through Sonos speakers.

Ring x Sonos A python script that plays .mp3 files whenever a doorbell is rung or a doorbell detects motion. Features Music! Authors @braden Running T

braden 0 Nov 12, 2021
PyAbsorp is a python module that has the main focus to help estimate the Sound Absorption Coefficient.

This is a package developed to be use to find the Sound Absorption Coefficient through some implemented models, like Biot-Allard, Johnson-Champoux and

Michael Markus Ackermann 8 Oct 19, 2022
Analyze, visualize and process sound field data recorded by spherical microphone arrays.

Sound Field Analysis toolbox for Python The sound_field_analysis toolbox (short: sfa) is a Python port of the Sound Field Analysis Toolbox (SOFiA) too

Division of Applied Acoustics at Chalmers University of Technology 69 Nov 23, 2022
GNOME powered sound conversion

SoundConverter A simple sound converter application for the GNOME environment. It reads anything the GStreamer library can read, and writes Ogg Vorbis

Gautier Portet 188 Dec 17, 2022
Graphical interface to control granular sound synthesis.

Granular sound synthesis interface SoundGrain is a graphical interface where users can draw and edit trajectories to control granular sound synthesis

Olivier Bélanger 122 Dec 10, 2022
Reading list for research topics in sound event detection

Sound event detection aims at processing the continuous acoustic signal and converting it into symbolic descriptions of the corresponding sound events present at the auditory scene.

Soham 64 Jan 5, 2023
extract unpack asset file (form unreal engine 4 pak) with extenstion *.uexp which contain awb/acb (cri/cpk like) sound or music resource

Uexp2Awb extract unpack asset file (form unreal engine 4 pak) with extenstion .uexp which contain awb/acb (cri/cpk like) sound or music resource. i ju

max 6 Jun 22, 2022
Library for working with sound files of the format: .ogg, .mp3, .wav

Library for working with sound files of the format: .ogg, .mp3, .wav. By work is meant - playing sound files in a straight line and in the background, obtaining information about the sound file (author, performer, duration, bitrate, and so on). Playing goes through the pygame, and getting information through the mutagen.

Romanin 2 Dec 15, 2022
nicfit 425 Jan 1, 2023
We built this fully functioning Music player in Python. The music player allows you to play/pause and switch to different songs easily.

We built this fully functioning Music player in Python. The music player allows you to play/pause and switch to different songs easily.

null 1 Nov 19, 2021
Anki vector Music ❤ is the best and only Telegram VC player with playlists, Multi Playback, Channel play and more

Anki Vector Music ?? A bot that can play music on Telegram Group and Channel Voice Chats Available on telegram as @Anki Vector Music Features ?? Thumb

Damantha Jasinghe 12 Nov 12, 2022
A bot that can play music on Telegram Group and Channel Voice Chats

DaisyXmusic ❤ is the best and only Telegram VC player with playlists, Multi Playback, Channel play and more

TeamOfDaisyX 20 Jun 11, 2021
DaisyXmusic ❤ A bot that can play music on Telegram Group and Channel Voice Chats

DaisyXmusic ❤ is the best and only Telegram VC player with playlists, Multi Playback, Channel play and more

TeamOfDaisyX 34 Oct 22, 2022
Telegram Bot to play music in VoiceChat with Channel Support and autostarts Radio.

VCPlayerBot Telegram bot to stream videos in telegram voicechat for both groups and channels. Supports live streams, YouTube videos and telegram media

Abdisamad Omar Mohamed 1 Oct 15, 2021
Royal Music You can play music and video at a time in vc

Royals-Music Royal Music You can play music and video at a time in vc Commands SOON String STRING_SESSION Deployment ?? Credits • ??ᴏᴍʏᴀ⃝??ᴇᴇᴛ • ??ғғɪ

null 2 Nov 23, 2021
This is an OverPowered Vc Music Player! Will work for you and play music in Voice Chatz

VcPlayer This is an OverPowered Vc Music Player! Will work for you and play music in Voice Chatz Telegram Voice-Chat Bot [PyTGCalls] ⇝ Requirements ⇜

null 1 Dec 20, 2021
Xbot-Music - Bot Play Music and Video in Voice Chat Group Telegram

XBOT-MUSIC A Telegram Music+video Bot written in Python using Pyrogram and Py-Tg

Fariz 2 Jan 20, 2022