Simple sound pad inspired by real professional sound pads. It allows to ascribe music file to the button and play it by pressing the button or key on keyboard.
As a big fun of tabletop RPGs and the game master I felt the urge to have such a program, but I could not find anything similar to it.
So I created it.
It was also my side project while I was learning python. That is why some more advanced in python people may find totally unnecessary pieces of code in the source code, eg. abstract base class in audio module.
I am aware of that, but I am not going to change this as I believe that it is better to have program with some mistakes in the code then to have a perfect program that does not exist.
Please Notice that the program is still during the development process, therefore some feature may not work properly or at all, eg. pause button.
If you are among the people that also need such a program please feel welcome to use it.
- Python 3.6 or higher.
- pip - python package installer
- git - version control system
- Clone repository
git clone https://github.com/ajwalkiewicz/SoundPad.git- Go to the created directory
cd SoundPad- Follow steps for your operating system
- Install python dependencies
pip install -r requirements.txt- Run program
python soundpad.py- Install necessary libraries
(Ubuntu)
sudo apt install python-dev python3-tkinter libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsdl1.2-dev libsmpeg-dev python-numpy subversion libportmidi-dev ffmpeg libswscale-dev libavformat-dev libavcodec-dev libfreetype6-dev(Fedora)
sudo dnf install python3-devtools python3-tkinter- Install python dependencies
pip3 install -r requirements.txt- Run program
python3 soundpad.py- 9 different sound tracks
- Each track can be controlled separately
- Key bindings for each track
- Saving projects
Settings can be change in: module/data/settings/json
{
"default_directory": "samples",
"key_range": "system_wide", // or "inside_app"
"font_type": "Helvetica",
"font_size": 10,
"show_settings": false, // DEPRECATED
"fadeout_length": 2000, // fadeout in milliseconds
"on_top": false, // Always on top when true
"key_0_behavior": "pause" // or "stop"
}- Only
"key_range": "system_wide"works.
- Not supported.
"key_range": "inside_app"works only with numerical keyboard.
- Pygame - set of Python modules designed for writing video games
- Tkinter - Python module for GUI
- keyboard - Python library for keyboard control
- pynput - Python library for keyboard control
- Open Iconic v1.1.1 - open source sibling of Iconic
- Play-pause feature
- Set the volume of each audio track individually
- Saves include volume and loop status
- Show the progress of the each audio
- Looping files doesn't require playing sound again
- Open project directory in the last place where project was saved
Adam Walkiewicz
All the audio samples used in this project are under Creative Commons 0 License.
Files were downloaded from https://freesound.org/
- 149022__foxen10__train.wav
- 155346__mario1298__street-old-town-of-rhodes.wav
- 267128__contramundum__stepping-down-into-the-dungeon.mp3
- 424792__bolkmar__town-bells.wav
- 580442__bennynz__dungeon-lock-2.wav
- 581491__carthny__thunder-rush-28-july-2021.wav
This project is licensed under the MIT License - see the LICENSE file for details.
