Skip to main content

A package for exploring the fundamentals of how we define music.

Project description

crazy-piano

Assists in the exploration of how we define music. Currently generates a set of frequencies for any number of notes in an octave. 10-keys-per-octave keyboard? Why not!

Installation (with pip)

pip install crazy-piano

Functionality

List of Functions

  • compute_frequencies(m=12, f0=440, base=2, low_thresh=20, high_thresh=8000): Generates a set of frequencies corresponding to different numbers of notes per octave. Based on a modified version of the formula for computing frequencies in an octave.
    • m: The number of steps in an octave. 12 is standard.
    • f0: Baseline frequency. 440 Hz is conventional starting point for A4 pitch.
    • base: The base of growth for frequencies. Determines how fast the frequencies increase.
    • low_thresh: The lowest frequency allowed. 20 Hz is low limit of human hearing.
      • When low_thresh is met, still finishes the octave. i.e. If the 3rd note of an octave is below low_thresh, will still return the 1st and 2nd notes of that octave.
    • high_thresh: The highest frequency allowed. 8000 Hz traditionally the 8th octave.
      • When high_thresh is met, still finishes the octave. i.e. If the m-2 note of an octave is above high_thresh , will still return the m-1 and m notes of that octave.

Ideas for more? Create an issue, or email mikealtonji@gmail.com with feedback.

Usage

Creates a pandas dataframe containing the frequencies for each note, where 440 Hz is the base value. Uses default values for low and high frequency cut-offs.

from crazy_piano import compute_frequencies
keyboard_10_notes = compute_frequencies(m=10)

Output Dataframe Columns

Octave: f0 is the reference point. It is the 0th note of the 0th octave. Octaves lower are negative, and larger are positive. Integer. Note Number: f0 is the reference point. It is the 0th note of any octave. The largest Note Number is therefore m-1. Integer. Frequency (Hz): The frequency corresponding to the Octave and Note Number, in Hertz. Float.

Contributors

  • Michael Altonji Interested in collaborating? Email mikealtonji@gmail.com, or submit issues for features you'd like to see in the future!

License

MIT License

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

crazy-piano-0.0.1.tar.gz (2.8 kB view hashes)

Uploaded Source

Built Distribution

crazy_piano-0.0.1-py3-none-any.whl (4.3 kB view hashes)

Uploaded Python 3

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