This project adapts Nicolas Slonimsky's musical theories for digital application, drawing from his influence on musicians such as John Coltrane and Frank Zappa.
The application generates musical patterns based on Slonimsky's "Thesaurus of Scales and Melodic Patterns," using algorithmic interpretations. It utilizes the Mingus library for musical operations.
- Generate Slonimsky-inspired musical patterns
- Visualize patterns on a piano roll
- Export patterns as MIDI files
- GUI for pattern customization
Ensure you have the following prerequisites:
-
Python 3.8+: Download from python.org.
-
FluidSynth: Required for audio playback.
macOS (Homebrew):
brew install fluid-synth
Ubuntu/Debian:
sudo apt-get install fluidsynth
Windows: Download from FluidSynth releases.
-
Soundfont: Download from FluidSynth SoundFont. Place in a
soundfonts
directory in the project root. -
Tkinter: Included with Python, but may require separate installation on some Linux distributions:
sudo apt-get install python3-tk
-
MIDI support: For Linux, install additional MIDI support:
sudo apt-get install libasound2-dev libjack-dev
Follow these steps to set up a virtual environment:
-
Clone the Repository
git clone https://github.com/your-username/slonimsky-thesaurus.git cd slonimsky-thesaurus
-
Create a Virtual Environment
macOS/Linux:
python3 -m venv venv
Windows:
python -m venv venv
-
Activate the Virtual Environment
macOS/Linux:
source venv/bin/activate
Windows:
.\venv\Scripts\activate
-
Install Dependencies
pip install -r requirements.txt
-
Install python-rtmidi
pip install --only-binary=:all: python-rtmidi
-
Run the Application
python gui.py
Or with command-line arguments:
python slonimsky.py --root_note C --bpm 120 --progression_pattern I IV V
Remember to deactivate your virtual environment when finished:
deactivate
This project is licensed under the MIT License. See the LICENSE
file for details.