While you are focus on the game logic, BeatCraft help you to make an authentic music for your game
Project description
BEAT CRAFT
While you focus on your game's logic, BeatCraft assists you in creating authentic music for your game! IIf you're curious about how it works, check out the Wiki for more information.
Listen to a sample of the results here
Installation
BeatCraft is available on PyPI. To install it, run:
pip install beatcraft
If you encounter conflicts, refer to the dependencies we utilize here.
It's advisable to run your pip command with constraints to avoid potential dependency conflicts:
pip install beatcraft -c constraints.txt
here is the constrains.txt file:
pandas==2.2.3
numpy>=1.26.0
matplotlib==3.9.2
gradio==4.44.0
torchmetrics==1.4.2
encodec==0.1.1
Usage
To use BeatCraft in your Python code, start by importing it:
from beat_craft_sdk.core import BeatCraft
sdk = BeatCraft()
Define the parameter
You can define parameters using BeatCraftConfig:
bcconfig = BeatCraftConfig(file_name='output_bt')
Initialize BeatCraft with your configuration
sdk = BeatCraft(bcconfig)
melodies = sdk.compose_melody()
print(f"{melodies}")
The result will be a list of paired notes and their durations (note values):
[(1, 65), (1, 67), (0.5, 64), (0.25, 67), (0.25, 62), (2, 62), (0.25, 65), (1, 62), (2, 59), (0.5, 65), (4, 67), (1, 62), (0.25, 0), (0.25, 67), (1, 60), (0.5, 0), (0.25, 67)]
By default, the algorithm uses a Genetic Algorithm. However, you can change the melody generation algorithm:
sdk = BeatCraft()
sdk.set_melody_engine(CraftingBackingTrack())
melodies = sdk.compose_melody()
Play the Generated MIDI Melody
Would you like to listen to the generated MIDI melody? Here’s how:
sdk.play_generated_music('../.outputx/output_bt.mid')
Now that you have a beautiful melody. It's time to generate the full music
# Convert the midi file into wav
conv = AudioConverter('../.outputx/output_bt.mid','../.outputx/output_bt.wav')
conv.midi_to_wav()
# lets make the music
sdk = BeatCraft()
sdk.generate_rythm('../.outputx/output_bt.wav','../.outputx')
Contact
For inquiries, please reach out to Arif Akbarul Huda at omayib@gmail.com
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file beatcraft-1.1.5.tar.gz.
File metadata
- Download URL: beatcraft-1.1.5.tar.gz
- Upload date:
- Size: 15.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8f501b202e73a4306ea8ef7d188218c3cee08a04a25f61ea0e0420ad37e2c4f
|
|
| MD5 |
1bcbf1d22ec906ee5b87c356f79d3e3b
|
|
| BLAKE2b-256 |
2f4ce9004fd87558771fd10e8f556f4c32126e5787e0d47e2d00b3b4fb92e9f0
|
File details
Details for the file beatcraft-1.1.5-py3-none-any.whl.
File metadata
- Download URL: beatcraft-1.1.5-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ae4835ed2fcf79655e17ecc2dd871b67be1bd664ffb34d42c3b1e6a8be07c72
|
|
| MD5 |
538c9b9cfa9402e7b9a8ae928ec37cec
|
|
| BLAKE2b-256 |
a0cd6d32b838a4c2d61dd1a8ebb7a9a4ae7fa2d87191dac59baa6402c14d808d
|