Welcome to Drum3x, the ultimate drum pad experience! Drum3x transforms your keyboard into a dynamic drum machine. Whether you're a budding musician or just looking to have some fun, Drum3x offers an engaging platform to unleash your rhythm skills.
- 🎹 9 Dynamic Drum Pads: A 3x3 grid of responsive pads, each linked to unique drum sounds.
- 💻 Keyboard Integration: Play beats effortlessly using intuitive keyboard shortcuts.
- 🎶 Record & Playback: Capture your creative sequences and replay them with precise timing.
- 📈 System Performance Monitor: Keep an eye on your system's performance.
Drum3x is more than just a drum pad—it's a glimpse into a larger project aimed at redefining interactive music experiences. Stay tuned for exciting updates!
- Python 3.11
- C Compiler (GCC)
- Pip (23.3.1)
Install the required Python packages using pip:
pip install psutil pygame matplotlib
Create a beats Folder: Place it in the same directory as your scripts.
Add Drum Sound Files: Ensure you have 9 WAV files in the beats folder with the following filenames:
--beats\
----Bass_Drum_Comb.wav
----Bass_Drum_Driven12.wav
----OH_Open_Hat_04.wav
----Bass_Drum_Driven.wav
----CH_Closed_Hat23.wav
----SD_Snare_Drum_014.wav
----Bass_Drum_Driven1.wav
----LT_Low_Tom_06.wav
----SD_Snare_Drum_092.wav
Note: The sound files should be in uncompressed 16-bit PCM WAV format. You can convert your audio files using ffmpeg:
ffmpeg -i input.wav -acodec pcm_s16le -ar 44100 output.wav
Compile drum3x.c into a shared library.
On macOS/Linux:
gcc -shared -o libdrum3x.so -fPIC drum3x.c
On Windows:
gcc -shared -o drum3x.dll -Wl,--out-implib,libdrum3x.a -Wl,--export-all-symbols -Wl,--enable-auto-import drum3x.c
Usage
Run the application:
python drum3x.py
Controls
1.Drum Pads: Click on the buttons or use the keyboard keys to play beats.
2.Record: Click the Record button to start recording your beat sequence.
3.Stop: Click the Stop button to stop recording.
4.Play: Click the Play button to play back your recorded sequence.
5.System Performance Monitor: A separate window displays the CPU usage over time.
Key Bindings:
Copy code
q w e
a s d
z x c
-No Sound: Ensure your sound files are correctly named and placed in the beats folder. Check that they are in the correct format.
-Application Crashes: Make sure all dependencies are installed and that you're using compatible versions.
-Key Bindings Not Working: Ensure the application window is focused when pressing keys.
Drum3x is part of a larger vision to create interactive and immersive music applications. If you're interested in contributing or have ideas to enhance Drum3x, feel free to open an issue or submit a pull request.
This project is licensed under the MIT License.
Pygame: For providing a powerful library to handle audio playback.
Matplotlib: For making it easy to embed dynamic graphs in the application.
Psutil: For accessing system performance metrics.
Community: Thanks to everyone who has inspired and supported this project.
Unleash your inner rhythm and take the first step into an exciting musical journey with Drum3x!