Creating a music player is a fun way to learn how to create a GUI (Graphic User Interface) and how to work with external files with Python. The first project is a quick text based music player to get started with accessing music stored on your computer and using pygame music. The development of this music player has been split into 4 parts to help you learn the skills so you can apply them to other projects.
This video talks you through making a text based music player. Although you might be keen to create a nice GUI music player, starting with a text based player is a create way to learn the principles of the code without having to think about the GUI coding. Later you can use the same code in a GUI but a text based player is a great place to start.
SECTION 1 | SOURCE, SORT AND STORE YOUR MUSIC
SOURCING YOUR MUSIC Option 1: Download from Legal Sources
Visit legal music download websites (like bensounds.com) or platforms where you can purchase or download free music.
Ensure you have the rights to use the music for your intended purpose to avoid copyright issues.
Option 2: Use Your Own Music Collection
If you have a collection of music files on your computer, you can use them for this project.
CHECKING THE FORMAT
After sourcing the music, ensure that the files are in the .mp3 format.
To check the format, right-click on the file, select 'Properties' (on Windows) or 'Get Info' (on macOS), and look for the file type or extension.
If your music file is not in .mp3 format, you can use online converters or software like Audacity to convert it to .mp3.
RENAMING THE MUSIC FILES
Ensure that each music file has a simple one-word name with no special characters. This will make it easier to reference and play the files in your Python code.
For example, rename "My Favorite Song.mp3" to "Favorite.mp3".
To rename a file, right-click on it and select 'Rename'. Type the new name and press Enter.
ORGANISING THE MUSIC FILES
Create a new folder on your computer where you will save both your music files and the Python code file.
For example, you can name the folder "TextBasedMusicPlayer".
Move all the .mp3 music files you've sourced and renamed into this folder.
SECTION 2 | DOWNLOAD PYGAME
Installing pygame for Music Playback pygame is a Python library that will allow you to play music in your text-based music player. To install pygame, open your terminal or command prompt and enter the following command:
pip3 install pygame
Once installed, you can use pygame in your Python code to handle music playback.
SECTION 3 | WRITE THE CODE FOR A TEXT BASED PLAYER
Building a text-based music player before transitioning to a GUI-based player offers several advantages, especially for beginners. Starting with a text-based version allows you to focus primarily on the core functionality and logic of the music player without the added complexity of graphical elements and user interface design. It provides a clear and straightforward environment to understand the basics of music file handling, playback controls, and error handling. Additionally, any issues or bugs that arise can be more easily diagnosed in a text-based environment. Beginning with a text-based music player ensures a solid foundation upon which a more intricate and user-friendly GUI-based player can be built.
Please feel free to copy and paste the code from below. REMEMBER: You will need to change the name of the files to match your music, and remember to ensure the music is saved in the same location as your python file.
SECTION 4 | MUSIC PLAYER - BUILD THE GUI
Now let's build a Desktop Music Player.
The code below builds a basic music player using Python and its two modules - tkinter for the graphical user interface and pygame for handling music playback.
SECTION 5 | FEATURES YOU COULD ADD
Play with the code, change the style of the Music Player and consider add some features. Here are some example features you might like to add.
Volume Control: Implement a slider that lets users adjust the volume.
Time Elapsed & Duration: Display the current time elapsed and total duration of the song.
Shuffle & Repeat: Add buttons that allow users to shuffle their playlist or repeat the current song.
Custom Themes: Allow users to switch between light and dark themes or customize the color scheme.
Song Metadata: Extract and display metadata (artist, album, etc.) using modules like eyed3.
Album Art: Extract and display the album art for the currently playing song.
Save & Load Playlists: Allow users to save their current playlist and load it later.