Skip to content

cbradiodrums/EveryRockBeatEver

Repository files navigation

Every Rock Beat Ever ( Drums )

Pytest


Contributor(s):

  • Chris Burrows ( Lead Programmer / Design)

Setup:

Local Machine Instance -- Docker

  1. Git Clone this Repository
  2. Create .env in top level using dotenv_template.txt OR pass in environment variables (CONTEXT=LOCAL)
  3. Install Docker https://docs.docker.com/get-docker/
  4. In your terminal, cd (change directory) to the parent 'EveryRockBeatEver'
  5. Run the Dockerfile command docker build -t erbe .
  6. Run the Dockerfile command docker run -p 5000:5000 erbe
  7. Open a browser and navigate to the URL: localhost:5000

Local Machine Instance -- IDE

  1. Git Clone this Repository
  2. Create .env in top level using dotenv_template.txt
  3. In IDE Terminal:
    $ python -m venv venv # Virtual environment
    $ source venv/Scripts/activate # (bash terminal)
    $ pip install -r requirements.txt
    $ flask --app EveryRockBeatEver --debug run # (debug tag optional)

Cloud / Deployment Instance

  • Follow all the above steps, specifying CONTEXT=CLOUD in .env
  • Make sure your server is configured with the necessary CORS parameters.

Test Both Environments Simultaneously

  • Follow all the above steps, specifying CONTEXT=FULL in .env

How To:

  1. From Home, click on the Quick Generate Button.
  2. Now, a MIDI File displays with Playback options or a Download Option.
    It should be a rock drum beat within a tempo of 80 - 160 BPM.
  3. Feel free to repeat, using the Quick Generate to get a new beat!

Additional Features:

There are additional plans to integrate more user control over the algorithm using timbres, dynamics, breakability, and subdivisions. Machine Learning is also a prospect.


Resources

This project would not have been possible without the use of some fantastic musical packages:
MIDIUtil: https://midiutil.readthedocs.io/en/1.2.1/
html-midi-player: https://cifkao.github.io/html-midi-player/


About

The Inspiration

The "Every Rock Beat Ever" App was originated from the idea of creating an algorithm as the rhythmic foundation for a progressive metal album. The initial "code base" was a simple calculator in a Google Sheets field, but after its Author attended an online Data Science Bootcamp it was quickly adopted into a Python App.

The Author

Chris Burrows is an all around drummer with specialization in Progressive Metal and a Programmer with budding interests in Software Development and Data Science. You can also check out his contributions in musical projects on various platforms:

- Coma Cluster Void (Former Drummer)
- Thoren (Current Drummer)
- Vihaan (Former Session / Live Drummer)
- R.O.P. (Former Session / Live Drummer)
- Wonderbox (Former Producer / Engineer)

About

Generate Unique and Interesting Rock Drum Beat MIDI Files

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published