Metadata-Version: 2.1
Name: wavesynth
Version: 2.0.1
Summary: Simple sound-synthesis library for very basic music creation, intended for beginner programmers.
Home-page: https://cs.wellesley.edu/~pmwh/wavesynth/docs/wavesynth
License: BSD 3-Clause License
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: License :: OSI Approved :: BSD License
Classifier: Development Status :: 4 - Beta
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Multimedia :: Sound/Audio :: Sound Synthesis
Classifier: Topic :: Education
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Natural Language :: English
Description-Content-Type: text/markdown
Provides-Extra: play

# `wavesynth`

A simple sound-synthesis library that provides a simplified stateful API
for generating music. The API is intentionally analogous to the `turtle`
API to assist in the creation of music-based assignments that duplicate
lessons from graphics-based assignments for more accessible course
design.

The library has fairly unsophisticated synthesis resulting in pretty
basic sounds, and is also not super performant, although both of these
things could be improved.

A log of notes is printed to assist with debugging and/or for matching
desired output.

Designed by Peter Mawhorter.
Contributions from Lyn & Ohana Turbak.


## Dependencies

Writing audio to `.wav` files can be accomplished using just the built-in
Python modules, but if you want to play audio, the `simpleaudio` package
will be needed.


## Installing

To install from PyPI, run the following command on the command-line:

```sh
python -m pip install wavesynth
```

Once it's installed, you can run a built-in example using:

```sh
python -m wavesynth
```


## Documentation

See [the
documentation](https://cs.wellesley.edu/~pmwh/wavesynth/docs/wavesynth)
for more details on how to use it and what each function does.


## Changelog

- Version 2.0.0 replaces `stepUp` and `stepDown` with `climbUp` and
  `climbDown` and removes `leapUp` and `leapDown`. New functions like
  `setFundamental` and `setScaleType` manage an internal notion of key
  signature which controls how `climbUp` and `climbDown` change pitches.
  To emulate the old `leap` functionality, set the scale type to a
  pentatonic scale and use the `climb` functions.


