Skip to main content

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 directly from Python, you'll need either pyglet or simpleaudio.

Installing

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

python -m pip install wavesynth

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

python -m wavesynth

Documentation

See the documentation for more details on how to use it and what each function does.

Changelog

  • Version 2.3.0 allows the use of pyglet instead of simpleaudio for playTrack support as well as adding an open-in-browser fallback.
  • Version 2.2.0 adds support for playing audio directly via IPython when running in a Jupyter notebook, without needing to use simpleaudio. This also creates an audio widget in the page via which the sound can be replayed without re-running the code if desired.
  • Version 2.1.0 changes volume handling so that louder can cause volume values to go above 1.0, but internally loudness does not increase beyond 1.0. This means that symmetric calls to louder and then quieter will always cancel each other out, even if the louder calls would take the volume above 1.0.
  • 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.

Release files for wavesynth 2.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wavesynth 2.3.0
File Size Uploaded
wavesynth-2.3.0.tar.gz 23.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wavesynth 2.3.0
File Interpreter ABI Platform
wavesynth-2.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 47.5 kB

Release files / wavesynth-2.3.0.tar.gz

Download URL wavesynth-2.3.0.tar.gz
Size 23.6 kB
Tags Source
SHA-256 checksum
How to use checksums
53cabc36249b3099f3b42203f84006a1d9f578af9fd705b4461663034464fb27
BLAKE2b-256 checksum
How to use checksums
4dc48a9f6f2be0882401e386b15bb83465a53b529c82501bca18cbd47af96f78
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / wavesynth-2.3.0-py3-none-any.whl

Download URL wavesynth-2.3.0-py3-none-any.whl
Size 24.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f6005514d80fac22b6f70ac48861e2869b452bcd0692868b25eaf1677a0e7a70
BLAKE2b-256 checksum
How to use checksums
55c6abcc50e92c04b0d5f811b6118f48c59c30dfcc2c066a1ec6301f11248a8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release history Release notifications | RSS feed

This release

2.3.0 This release

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page