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
BeatCraft is available on PyPI. To install it, run:
pip install beatcraftIf 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.txthere 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
To use BeatCraft in your Python code, start by importing it:
from beat_craft_sdk.core import BeatCraft
sdk = BeatCraft()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()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')For inquiries, please reach out to Arif Akbarul Huda at omayib@gmail.com