How to play sounds in Pyglet

share link

by vsasikalabe dot icon Updated: Aug 29, 2023

technology logo
technology logo

Solution Kit Solution Kit  

Pyglet is a cross-platform and multimedia library in Python. Developers use it for creating games and other rich applications. Pyglet is a multimedia library for Python.

It makes playing and mixing many sounds in your game or other applications possible. identifies the sound file in the application's directory. Python Pyglet repeats playing the mp3 file non-stop.    

Supported audio formats:   

  • AU   
  • MP2   
  • MP3   
  • OGG/Vorbis   
  • WAV   
  • WMA   

Supported video formats:   

  • AVI   
  • DivX   
  • H.263   
  • H.264   
  • MPEG   
  • MPEG-2   
  • OGG/Theora   
  • Xvid   
  • WMV   
  • Webm   


If you install FFmpeg, Pyglet can play WAV files. The Player class accesses playback by reading raw data from the source. You can pause, seek, and adjust the volume with this. You don't have to start playing again, stop, or eliminate the player and source objects. Stereo sounds will be normal; only their volume and pitch options will affect the sound. You can do many functions on a media player using the Player class. We will not read the media file from the disk. Instead, they proceeded to the decoder.

The Sample code for playing sound using Pyglet is as follows:  

import pyglet   

music ='music.mp3')   


The load function will raise a Media Exception if the format is unknown. To get the video frame image, we can use the get_texture method when a Player is playing back a source with video. Sometimes, OpenAL, XAudio2, DirectSound, or PulseAudio playback audio. It permits hardware-accelerated mixing and surround-sound 3D positioning. We will create the texture only once and update it in each frame. Always Pyglet uses OpenAL for audio playback. It has many features for positioning sound within a 3D space. The source's audio_format attribute uses audio metadata. It is None for silent videos—the dispatch_events dispatch window events.    


Pyglet takes advantage of many Windows and multi-monitor setups. OpenGL textures play the video. You can manipulate applications in real-time and incorporate them into 3D applications. Players have a default handler for this event. It will either repeat the current source or move to the next queued source immediately. Player.next_source() allows you to get audio files, queue and play them, and switch to the next audio file. Future versions of Pyglet will support reading from arbitrary file-like objects. It has a valid filename. It reduces the startup time of loading an audio file. It reduces the memory requirements of the application. The duration property measures the length of the media file in seconds. This is very effective with a surround-sound setup but is also used in stereo systems. Once a player queues a source, they cannot de-queue it, even if they queue many sources.   

Preview of the output that you will get on running this code from your IDE.


In this solution, we used Pyglet library.


Follow the steps carefully to get the output easily.

  1. Download and Install the PyCharm Community Edition on your computer.
  2. Open the terminal and install the required libraries with the following commands.
  3. Install Pyglet - pip install Pyglet.
  4. Create a new Python file on your IDE.
  5. Copy the snippet using the 'copy' button and paste it into your Python file.
  6. Add sound file link in line no 5.
  7. Run the current file to generate the output.

I hope you found this useful. I have added the link to dependent libraries, and version information in the following sections.

I found this code snippet by searching for ' How to play audio(in generator loop) with Pyglet ' in Kandi. You can try any such use case!

Environment Tested

I tested this solution in the following versions. Be mindful of changes when working with other versions.

  1. The solution is created in PyCharm 2022.3.
  2. The solution is tested on Python 3.11.1
  3. Pyglet version- 2.0.9

Using this solution, we are able to play sounds in Pyglet with simple steps. This process also facilities an easy way to use, hassle-free method to create a hands-on working version of code which would help us to play sounds in Pyglet.

Dependent Libraries

pygletby pyglet

Python doticonstar image 1503 doticonVersion:v2.0.7doticon
License: Permissive (BSD-3-Clause)

pyglet is a cross-platform windowing and multimedia library for Python, for developing games and other visually rich applications.


            pygletby pyglet

            Python doticon star image 1503 doticonVersion:v2.0.7doticon License: Permissive (BSD-3-Clause)

            pyglet is a cross-platform windowing and multimedia library for Python, for developing games and other visually rich applications.

                      If you do not have the Pyglet library that is required to run this code, you can install them by clicking on the above link.

                      You can search for any dependent library on Kandi like Pyglet.


                      1. For any support on kandi solution kits, please use the chat
                      2. For further learning resources, visit the Open Weaver Community learning page.


                      1. What is windowing, and how does it relate to pyglet audio?   

                      In Pyglet, a Window corresponds to a top-level window obtained by the operating system. Windows can be with or without a border (floating) or fullscreen. The system will apply defaults for all parameters. No arguments call the Window constructor.   

                      window = pyglet.window.Window()   


                      2. Pyglet supports which types of audio and video formats?   

                      Supported audio formats are AU, MP2, MP3, OGG/Vorbis, WAV, and WMA. Supported video formats are AVI, DivX, H.263, H.264, MPEG, MPEG-2, OGG/Theora, Xvid, WMV, and Webm.    


                      3. Which audio formats does pyglet audio support?   

                      Pyglet can play WAV files and many other audio and video formats if you install FFmpeg. If it is not installed, Pyglet will, at least, be able to play WAV files. The OS may also support limited compressed formats, depending on it. This may be adequate for many applications. It needs only a small number of short sounds, in which case those applications do not need FFmpeg.   


                      4. What are player and source objects, and how do they interact within Pyglet audio?   

                      The Player class controls the playback. It reads raw data from Source objects. The Player class creates a top-notch audio device. It also has methods for pausing, seeking, and adjusting the volume. We can use the Player to control playback.   

                      player = Player ()   

                      We use a Source to process arbitrary audio and video files. A single player obtains it by "queueing" it.   

                      source = load('background_music.mp3') player.queue(source)   


                      5. How can I alter pitch properties when working with pyglet audio?   

                      The pitch shift is to apply the sound.The nominal pitch level is 1.0. A pitch of 2.0 will sound one octave higher and play twice as fast as normal. A pitch of 0.5 will sound one octave lower and play twice as slow. A pitch of 0.0 is not permitted in Pyglet while working with an audio file.  

                      See similar Kits and Libraries