PyTuning
========
|build|
PyTuning is a Python library intended for the exploration of musical scales
and microtonalities. It can be used by developers who need ways of calculating,
analyzing, and manipulating musical scales, but it can also be used interactively.
It makes heavy use of the `SymPy <http://www.sympy.org/>`__ package, a pure-Python
computer algebra system, which allows scales and scale degrees to be
manipulated symbolically, with no loss of precision. There is also an optional
dependency on `Matplotlib <http://matplotlib.org/>`__ (and
`Seaborn <http://seaborn.pydata.org/>`__) for some visualizations that have been
included in the package.
Some of the package's features include:
* Creation of scales in a variety of ways (EDO, Euler-Fokker, Diatonic, Harmonic,
from generator intervals, etc.)
* Ability to represent created scales in ways that are understood by external
software (Scala, Timidity, Fluidsynth, Yoshimi, Zynaddsubfx).
* Some analysis functions (for example, PyTuning provides a framework for searching
for scale modes based upon defined metric functions and combinatorial analysis). Also
included are some number-theoretic functions, such as prime limits and odd limits.
* Some scale visualizations.
* Interactive use.
As a simple example, to create a 31-TET scale and then create a tuning table for
the timidity soft-synth:
.. code:: python
scale = create_edo_scale(31)
tuning_table = create_timidity_tuning(scale, reference_note=69)
The design of PyTuning is purposefully simple so that non-computer professionals can
use it without much difficultly (musicians, musicologist, interested people of all
stripes).
In scope this project is similar to the `Scala <http://www.huygens-fokker.org/scala/>`__
software package, with a few differences:
* Scala is a mature, full-featured package that includes many, many scales
and functions for manipulating and analyzing those scales. This project
is much newer and less mature; its scope is currently much less (but
hopefully it will be easy to extend).
* PyTuning is written in Python and relies on modern, well maintained dependencies.
Scala is written in Ada, and while this is an interesting choice, it probably
limits the population of users who *could* change or extend it should a need
arise.
* Scala is mainly an application. PyTuning is a development library, but with
ways for non-programmers to use it interactively.
* This package does *not* interact with sound cards or audio drivers, so one
can't play a scale directly. There are, however,
functions for exporting scales into other software packages so that music
and sound can be produced.
Installation
------------
PyTuning runs under Python 2.7.X and 3.X.
The easiest way to install PyTuning is via the Python Package Index, with
which Pytuning is `registered <https://pypi.python.org/pypi/PyTuning/>`__:
.. code:: bash
pip install pytuning
There are two hard dependencies for PyTuning: `SymPy <http://www.sympy.org/en/index.html>`__ and
`NumPy <http://www.numpy.org/>`__. SymPy is a pure Python library and ``pip`` will handle
its installation nicely. NumPy is a more complicated package and if installed via ``pip`` may
involve much compilation; it would probably behoove you to install the package manually via
whatever mechanism your platform provides before ``pip`` installing the package .
If you are running the package interactively it is recommended that the Jupyter interactive
shell be installed. This is discussed in the documentation under the notes on Interactive use.
The source-code is available on `GitHub <https://github.com/MarkCWirt/PyTuning>`__, where
it can be cloned and installed.
Documentation
-------------
Documentation for the package can be found on `Read the Docs <http://pytuning.readthedocs.io/>`__.
Documentation for the latest development version is `here <http://pytuning.readthedocs.io/en/latest/>`__.
Roadmap
-------
More scales, more visualizations, more analysis functions. Pull requests are welcome!
.. |build| image:: https://travis-ci.org/MarkCWirt/PyTuning.svg?branch=master
:target: https://travis-ci.org/MarkCWirt/PyTuning
Raw data
{
"_id": null,
"home_page": "https://github.com/MarkCWirt/PyTuning",
"name": "PyTuning",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "Music Scales Tuning Microtonalities",
"author": "Mark Conway Wirt",
"author_email": "markcwirt@gmail.com",
"download_url": "",
"platform": "Platform Independent",
"description": "PyTuning\n========\n\n|build|\n\nPyTuning is a Python library intended for the exploration of musical scales\nand microtonalities. It can be used by developers who need ways of calculating,\nanalyzing, and manipulating musical scales, but it can also be used interactively.\n\nIt makes heavy use of the `SymPy <http://www.sympy.org/>`__ package, a pure-Python\ncomputer algebra system, which allows scales and scale degrees to be\nmanipulated symbolically, with no loss of precision. There is also an optional\ndependency on `Matplotlib <http://matplotlib.org/>`__ (and\n`Seaborn <http://seaborn.pydata.org/>`__) for some visualizations that have been\nincluded in the package.\n\nSome of the package's features include:\n\n* Creation of scales in a variety of ways (EDO, Euler-Fokker, Diatonic, Harmonic,\n from generator intervals, etc.)\n* Ability to represent created scales in ways that are understood by external\n software (Scala, Timidity, Fluidsynth, Yoshimi, Zynaddsubfx).\n* Some analysis functions (for example, PyTuning provides a framework for searching\n for scale modes based upon defined metric functions and combinatorial analysis). Also\n included are some number-theoretic functions, such as prime limits and odd limits.\n* Some scale visualizations.\n* Interactive use.\n\n\nAs a simple example, to create a 31-TET scale and then create a tuning table for\nthe timidity soft-synth:\n\n.. code:: python\n\n scale = create_edo_scale(31)\n tuning_table = create_timidity_tuning(scale, reference_note=69)\n\nThe design of PyTuning is purposefully simple so that non-computer professionals can\nuse it without much difficultly (musicians, musicologist, interested people of all\nstripes).\n\nIn scope this project is similar to the `Scala <http://www.huygens-fokker.org/scala/>`__\nsoftware package, with a few differences:\n\n* Scala is a mature, full-featured package that includes many, many scales\n and functions for manipulating and analyzing those scales. This project\n is much newer and less mature; its scope is currently much less (but\n hopefully it will be easy to extend).\n* PyTuning is written in Python and relies on modern, well maintained dependencies.\n Scala is written in Ada, and while this is an interesting choice, it probably\n limits the population of users who *could* change or extend it should a need\n arise.\n* Scala is mainly an application. PyTuning is a development library, but with\n ways for non-programmers to use it interactively.\n* This package does *not* interact with sound cards or audio drivers, so one\n can't play a scale directly. There are, however,\n functions for exporting scales into other software packages so that music\n and sound can be produced.\n\nInstallation\n------------\n\nPyTuning runs under Python 2.7.X and 3.X.\n\nThe easiest way to install PyTuning is via the Python Package Index, with\nwhich Pytuning is `registered <https://pypi.python.org/pypi/PyTuning/>`__:\n\n.. code:: bash\n\n pip install pytuning\n\nThere are two hard dependencies for PyTuning: `SymPy <http://www.sympy.org/en/index.html>`__ and\n`NumPy <http://www.numpy.org/>`__. SymPy is a pure Python library and ``pip`` will handle\nits installation nicely. NumPy is a more complicated package and if installed via ``pip`` may\ninvolve much compilation; it would probably behoove you to install the package manually via\nwhatever mechanism your platform provides before ``pip`` installing the package .\n\nIf you are running the package interactively it is recommended that the Jupyter interactive\nshell be installed. This is discussed in the documentation under the notes on Interactive use.\n\nThe source-code is available on `GitHub <https://github.com/MarkCWirt/PyTuning>`__, where\nit can be cloned and installed.\n\nDocumentation\n-------------\n\nDocumentation for the package can be found on `Read the Docs <http://pytuning.readthedocs.io/>`__.\nDocumentation for the latest development version is `here <http://pytuning.readthedocs.io/en/latest/>`__.\n\n\nRoadmap\n-------\n\nMore scales, more visualizations, more analysis functions. Pull requests are welcome!\n\n\n.. |build| image:: https://travis-ci.org/MarkCWirt/PyTuning.svg?branch=master\n :target: https://travis-ci.org/MarkCWirt/PyTuning\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Python package for the exploration of musical tunings.",
"version": "0.7.3",
"project_urls": {
"Homepage": "https://github.com/MarkCWirt/PyTuning"
},
"split_keywords": [
"music",
"scales",
"tuning",
"microtonalities"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2659e2c2fc91688f788587fb387ef6120c9a1ad3a8b88771fba9fc6a9c9a969d",
"md5": "d13215d573cbb1325dac923fc5f30548",
"sha256": "db0b1231c012c1cf6a3c73aa7d791b4cff79a72f2ec6535f159c873fe302214b"
},
"downloads": -1,
"filename": "PyTuning-0.7.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d13215d573cbb1325dac923fc5f30548",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 108174,
"upload_time": "2023-09-02T21:11:00",
"upload_time_iso_8601": "2023-09-02T21:11:00.657217Z",
"url": "https://files.pythonhosted.org/packages/26/59/e2c2fc91688f788587fb387ef6120c9a1ad3a8b88771fba9fc6a9c9a969d/PyTuning-0.7.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-02 21:11:00",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MarkCWirt",
"github_project": "PyTuning",
"travis_ci": true,
"coveralls": false,
"github_actions": false,
"lcname": "pytuning"
}