Skip to content

🎶 Generate four-part harmony following idiomatic voice-leading procedures with DP!

License

Notifications You must be signed in to change notification settings

ekzhang/harmony

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Harmony

Generate four-part harmony following idiomatic voice-leading procedures with DP!

>>> voiceProgression('B-', 'I I6 IV V43/ii ii V V7 I')

Four-part harmony

See the web interface at autoharmony.herokuapp.com. This was built with Music21.

Usage

First, install and activate dependencies managed by Pipenv.

$ pipenv install
$ pipenv shell

To generate a chorale:

$ python voicing.py

Then, create a fresh Postgres database. Tables will be created on first application run. To launch the development web server:

$ FLASK_APP=app.py FLASK_DEBUG=1 DATABASE_URL=<POSTGRES_URL> flask run

To launch the production web server:

$ DATABASE_URL=<POSTGRES_URL> WEB_CONCURRENCY=2 gunicorn app:app

License

Licensed under the BSD 3-Clause License.