Skip to main content

This application generates midi bifurcation diagrams generated from generated logistic map data.

Project description

bifurc2midi

This application generates midi bifurcation diagrams generated from generated logistic map data.

See instructions for installation on macOS for more detailed guide on getting started.

Installation

  • Prerequisites:
    • Python 3
    • pip

Make sure pip is up to date:

python3 -m pip install --upgrade pip
  • Install package from source code:
pip install .
  • Now you can run the application from the command line e.g.
bifurc2midi --version

Usage

  • For help:
bifurc2midi --help
  • Run with default settings:
bifurc2midi

This will generate a midi file in the current working directory.

  • Sending midi output to a specific device:
bifurc2midi --midi-out-device device_name

Where device_name is the name of the midi device you want to send the output to. Use a device name of 'default' to use the first available device e.g.

bifurc2midi --midi-out-device 'device_name'
  • Enabling midi loopback driver on macOS (e.g. for use with DAWS):
    1. Open 'Audio MIDI Setup.app'
    2. Click 'Window' -> 'Show MIDI Studio'
    3. Double click 'IAC Driver' device
    4. Check 'Device is online' checkbox
    5. Click 'Apply'
    6. Make sure 'IAC Driver' enabled as a midi input device in your DAW

Development

  • Pre-requisites:

    • Python 3
    • pip
    • virtualenv
  • Use the Makefile for local development:

  1. Activate a virtual environment:
make virtualenv
  1. Activate the virtual environment (not strictly necessary, if using the Makefile only):
source venv/bin/activate
  1. Install dependencies:
make install

Then you can:

  • Run the application:
make run

Extra arguments can be passed by providing EXTRA_ARGS variable e.g.

make run EXTRA_ARGS="--help"
  • Run tests:
make test
  • Run linter:
make lint

make fmt can be used to automatically fix some linting errors.

  • Other useful make targets are provided too, see the Makefile for details. Or run make/make help

TODO

  • Investigate improving blending of note transitions/overlaps
  • Add tests, replace the placeholder test
  • Run tests in github actions
  • Release as a package
  • Review what is settings/parameters are configurable
  • Installation shell script
  • Add support to specify the starting note
  • GUI
  • Realtime parameter tweaking as it sends midi to output

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

bifurc2midi-0.0.1.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

bifurc2midi-0.0.1-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file bifurc2midi-0.0.1.tar.gz.

File metadata

  • Download URL: bifurc2midi-0.0.1.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for bifurc2midi-0.0.1.tar.gz
Algorithm Hash digest
SHA256 baab410a55ce312e830443c4fc231c9dbef71a7567474647e229186f94d07663
MD5 e906ee06967be005c02136ea8c5d8526
BLAKE2b-256 86ae2e68409e5ef49d559df6099129fa89720a2cc80bc37b627b40ab5f95468f

See more details on using hashes here.

File details

Details for the file bifurc2midi-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: bifurc2midi-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for bifurc2midi-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2ccf8cbbb87e53d8d85c46cc12af347ae8fa9796a4eca5c776c707463d161754
MD5 c3139da87bde8ad31c476aefc78a1b3a
BLAKE2b-256 97a44e48027cba085d99346c8fb9f5b311d433277dcaac2cdac81410e78fe754

See more details on using hashes here.

Supported by

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