Skip to main content

Generates MIDI files

Project description

Freeze Pop

Generate MIDI files with tracker-inspired methods.

Objects

State Machines

A state machine is a function which is called without any input. These are analogous to function generators and sequencers in modular synthesis. They can be chained together to form more complicated structure, such as a sequential switch. The syntax is a little tricky; consult the examples on GitHub.

Most things in Freeze Pop can actually be state machines, so long as the given state machine outputs the correct kind of object when it is called, usually an integer from 0-127 inclusive. Many of the built-in state machines are based on mathematical systems, and output floating point numbers. The quantize state machine is very useful for working with these.

Songs

A song is a list of tracks, which correspond to the tracks of a MIDI file.

Tracks

A track is a list of sections.

Sections

A section is a list of phrases. They are analogous to chains in most tracker programs.

Phrases

A phrase is a list of notes.

Notes

A note is a triple of the form (pitch, vel, freezer). Writing a single integer instead of a triple will generate the default vel and freezer options. Writing None generates a rest instead.

Pitches

A pitch an integer from 0-127 inclusive. These correspond to the standard MIDI note values. Import convenient aliases for these values from frzpop.notes.

Velocities

A velocity is an integer from 0-127 inclusive. These correspond to the standard MIDI note values. A velocity of zero will not generate any note events.

Freezers

A freezer is description of how to process an abstract note into one or more note events in a MIDI file. Freezers are used similarly to commands in tracker programs.

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

frzpop-0.4.2.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

frzpop-0.4.2-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file frzpop-0.4.2.tar.gz.

File metadata

  • Download URL: frzpop-0.4.2.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.7

File hashes

Hashes for frzpop-0.4.2.tar.gz
Algorithm Hash digest
SHA256 8c4028a2c86b78577b8638cfb9b3d3103de8d66fad956c6939dd4e7d16c56307
MD5 7e778a2a7dabad3caf56e4c29a93d453
BLAKE2b-256 ec26323a397894f53c0fe8e06adfe5bdba19e009398fbb9e0ac5f3bdbb24914f

See more details on using hashes here.

File details

Details for the file frzpop-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: frzpop-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.7

File hashes

Hashes for frzpop-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 40e21095bac6a1d87f216781068b60999e9e90a75220d06fc2dcde98df81a5f3
MD5 784bf83d101539c6d6ba1acc7bea36d8
BLAKE2b-256 597cd17cc278fb7c7eed5693098a4f4228b1ec5e6b2dd9c92fc50b5a9ea13295

See more details on using hashes here.

Supported by

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