Skip to main content

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

beatcraft-1.1.5.tar.gz (15.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

beatcraft-1.1.5-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

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

Hashes for beatcraft-1.1.5.tar.gz
Algorithm Hash digest
SHA256 f8f501b202e73a4306ea8ef7d188218c3cee08a04a25f61ea0e0420ad37e2c4f
MD5 1bcbf1d22ec906ee5b87c356f79d3e3b
BLAKE2b-256 2f4ce9004fd87558771fd10e8f556f4c32126e5787e0d47e2d00b3b4fb92e9f0

See more details on using hashes here.

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

Hashes for beatcraft-1.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4ae4835ed2fcf79655e17ecc2dd871b67be1bd664ffb34d42c3b1e6a8be07c72
MD5 538c9b9cfa9402e7b9a8ae928ec37cec
BLAKE2b-256 a0cd6d32b838a4c2d61dd1a8ebb7a9a4ae7fa2d87191dac59baa6402c14d808d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page