Hello there, music enthusiasts and code ninjas! 👋🎵 Welcome to Neucl.io
- modern euclidean sequencer, an open-source project designed to empower the modern musician with the power of Python. This repository contains code for an API that generates Euclidean rhythms, providing a fresh take on music production and programming. 🎼💻
Euclidean rhythms are an intriguing way we leverage mathematical algorithms to create compelling rhythms. Here's the lowdown:
- Not so novel: While the concept might seem fresh, it's a time-honored technique in music production. 🕰️🎶
- Mathematical music: The method applies mathematical algorithms to music creation. 🧮🎵
- Even spreading: It's like spreading butter evenly over a piece of bread - every beat finds its perfect place in the rhythmic cycle. 🍞🥁
Neucl.io
is your personal maestro in music automation, covering tasks from sample research to pattern arrangement. Here's how Neucl.io changes the game:
- Automated Efficiency: Wave goodbye to manual labor. With
Neucl.io
, you're all about automated music idea generations. 🤖🎧 - Quick Iterations: Random selector, zips through your sample library in no time, finding the perfect sounds for your pattern. 🚀🎼
- Auto-Generate & Arrange: Craft and arrange rhythmic sequences automatically. Let the creativity flow! 🧩🎹
- Skyrocketing Output: Boost your creative output by 100x. It's your time to shine. 💥🎵
Neucl.io transforms your music production workflow in just a few straightforward steps:
-
Query and Pull Samples: Neucl.io dives into your sample library, swiftly pulling out 6 random samples based on your specifics - be it Kicks, Snares, Tops, Claps, Hi-hats, or Bass. You name it,
Neucl.io
retrieves it. 🗄️🎵 -
Generate Rhythms and Sequences: From your selected samples, the app generates unique Euclidean rhythm for each track, forming a seamless sequence. Your beat starts to take shape. 🥁🎚️
-
Add Variations and Effects:
Neucl.io
brings life to your beat with instant variations and effects, adding that unique touch to your sound. 🎛️⚡ -
Save and Iterate: Once your creation is complete,
Neucl.io
instantly saves it to the cloud. Safe and secure, you're free to move onto the next beat without a hitch. 🌐🔄
-
Unpredictability is Your Muse 🎭: In music creation, randomness is a dance with the unpredictable. It's about surrendering control and letting the unexpected take the lead.
-
Set Your Sonic Vision 🧭: Your imagination is your compass. Navigate through the soundscape of the unforeseen and discover unexpected melodies and harmonies.
-
Break Free 🚀: Step out of the familiar grooves of your musical reality. Let randomness recalibrate your creative process and lead you on an exhilarating adventure.
-
Power of Happy Accidents 🎉: Every 'mistake' is a potential masterpiece, every unexpected note a chance for a new harmony. Find beauty in discord, rhythm in noise, and music in chaos.
Embrace the chaos, tune into the frequency of the unexpected, and let the Symphony of Serendipity begin! 🎵🌠
Time to unleash your creative beast with Neucl.io
! 🧠🔥🎼
🎵🎶🎵🎶🎵🎶🎵🎶🎵🎶🎵
Are you ready to roll up your sleeves and dive into the technicalities? Excellent! It's time to explore how Neuclio works under the hood. Let's unlock the power of automated music production together. Buckle up, and let's code our way to new rhythms! 🎧👨💻🎹
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
You will need the following software installed:
- Python 3.8+
- Pip
- Virtualenv (optional but recommended)
- Docker
- S3 bucket (AWS, Google Cloud, Azure, Minio, Wasabi etc)
- Postgress data base (local or serverless)
- Firebase account, learn how to set it up here (do not worry, it's free)
- Clone the repository
git clone https://github.com/myownelixir2/euclidean_rhythm_generator_mobile_python_fastapi.git
- Create a virtual environment (optional)
virtualenv venv
source venv/bin/activate # On Windows, use `venv\Scripts\activate
- Install the requirements
pip install -r requirements.txt
- Run the tests
python3 -m unittest -v tests
- Set all the relevant environment variables:
#FIREBASE
export FIREBASE_CREDENTIAL_PATH={my_creds.json}
# SQL DB
export DB_HOST={host}
export DB_NAME={db_name}
export DB_USER={db_user}
export DB_PASSWORD={db_pass}
export DB_PORT={db_port}
# S3 BUCKET
export STORAGE_URL={s3_url}
export STORAGE_KEY={s3_key}
export STORAGE_SECRET={s3_secret}
- Start the API
uvicorn run:app --reload --workers 4
The API will be running at http://localhost:8000.
Head to /example
folder on how to interact with API in stand alone mode. Follow steps in /example/example.ipynb
This project is under active development and may still have issues. We appreciate your understanding and patience. If you encounter any problems, please first check the open issues. If your issue is not listed, kindly create a new issue detailing the error or problem you experienced. Thank you for your support!
Please feel free to contribute to this project by submitting issues or pull requests.
This project is licensed under the MIT License - see the LICENSE.md file for details.