Package musx

musx

musx (pronounced muse ex) is a package for composing and processing symbolic music information. It was originaly created for teaching my CS+Music classes and it now contains all the compositional tools developed in my Common Music and Grace systems, including support for complex pattern generation, randomness, mapping, enveloping, spectral composition, and microtonality. The 'base' musx package provides a back end to read/write midi files and MusicXML; to compose with audio files or send/receive real time midi or osc, see the 'Additional support and customizations' section of INSTALL.md.

musx requires the lxml, numpy, matplotlib, and jupyter packages.

musx documentation, tutorials, and demos are available on the github website.


Rick Taube

Emeritus Professor, Composition/Theory/CS+Music
School of Music University of Illinois Urbana-Champaign
Email: taube@illinois.edu

President, Illiac Software Inc.
https://harmonia.cloud/
Email: taube@illiacsoftware.com

Expand source code
"""
# musx
musx (pronounced *muse ex*) is a package for composing and processing symbolic
music information. It was originaly created for teaching my CS+Music classes
and it now contains all the compositional tools developed in my Common Music
and Grace systems, including support for complex pattern generation, randomness,
mapping, enveloping, spectral composition, and microtonality. The 'base' musx
package provides a back end to read/write midi files and MusicXML; to compose
with audio files or send/receive real time midi or osc, see the 'Additional
support and customizations' section of
[INSTALL.md](https://github.com/musx-admin/musx/blob/main/INSTALL.md).

musx requires the [lxml](https://pypi.org/project/lxml/),
[numpy](https://pypi.org/project/numpy/),
[matplotlib](https://matplotlib.org/),
and [jupyter](https://pypi.org/project/jupyter/) packages.

musx [documentation](https://musx-admin.github.io/musx/),
[tutorials](https://github.com/musx-admin/musx/tree/main/tutorials), 
and [demos](https://github.com/musx-admin/musx/tree/main/demos)
are available on the github [website](https://github.com/ricktaube/musx).

----

Rick Taube

Emeritus Professor, Composition/Theory/CS+Music  
School of Music 
University of Illinois Urbana-Champaign  
Email: taube@illinois.edu  

President, Illiac Software Inc.  
https://harmonia.cloud/  
Email: taube@illiacsoftware.com   
"""

# Do not alter this version line, it is automatically replaced by the correct
# version number when the software is released.

version="N.N.N"
#from fractions import Fraction
from .rhythm import *
from .midi import gm
from .midi.midimsg import *
from .midi.midievent import *
from .midi.midifile import *
from .seq import *
#from .gens import *
from .patterns import *
from .paint import *
from .pitch import *
from .note import *
from .interval import *
from .tools import *
from .ran import *
from .envs import *
from .score import *
from .spectral import *
from .pc import *
from .csound import *
from .mxml.notation import *
# importing the frac module adds musx methods to python's Fraction class,
# there are no symbols to import from the module itself.
from .frac import *

Sub-modules

musx.audio

A module providing support for reading and writing audio files using Todd Ingall's pysndlib package: …

musx.csound

Author: Michael Gogins …

musx.envs

Implements Env, a class for line (xy) envelopes and routines that operate on them.

musx.frac

Adds methods to python's Fraction class for representing exact time, mensural tuples,
tuning ratios, etc.

musx.interval

A class that implements musical intervals …

musx.midi

A package providing full support for reading and writing data to midi files and ports. The module has several layers: …

musx.mxml

Provides support for reading and writing data from MusicXml files. The complete MusicXml schema is defined in the file musicxml.py, which was …

musx.note

Defines a base Event class for musical events and a generic Note subclass to represent time, duration, pitch, and amplitude. Notes can also represent …

musx.paint

The paint.py module provides two high-level composers that can produce a wide variety of interesting textures and music. The brush() composer …

musx.patterns

An object-orientated implemention of Python iterators that yield patterns in data, from simple looping and randomness to more complex processes such …

musx.pc

Implements operations on pitch classes, pitch class sets, and set matrices. A pitch class (pc) is an integer 0-11 representing one of twelve equal …

musx.pitch

Defines the equal tempered chromatic scale over 11 octaves and provides a mapping between alternate representations of pitch material: Pitch …

musx.ran
musx.rhythm

rhythm.py provides a mapping between alternate representations of rhythmic values: fractions, rhythmic symbols, lists of the same or strings of the …

musx.score

This module implements a scheduling queue for generating musical scores. The Score runs 'part composers' (Python generators) that output musical …

musx.seq

The seq module provide support for reading and writing sequences of events that are sorted by time.

musx.spectral

Functions and classes for working with microtonality, the harmonic series, and spectra. For examples of generating microtonal music using midi see …

musx.tools

An assortmant of tools for working with envlopes, randomness, rescaling, arithmetic, etc.