ChucK Tonal

A ChucK script library for writing tonal music - Github



Overview

Description:
ChucKTonal is a set of ChucK scripts with custom classes aimed at making it easier to write music in ChucK with things like pitches, rhythms, chords, and scales. The custom classes in this library are: EZscore, EZchord, EZscale, and ScorePlayer. Click the links below for documentation on each class.

EZscore

EZscore allows for rapid score entry, based loosely on the SCORE4 score rendering system. Each EZscore object represents a polyphonic sequence of arbitrary length containing pitch and rhythm information. Pitches and rhythms are assigned separately, as strings. They are parsed as an int array for MIDI notes (pitch) and a float array for durations (not ChucK dur, but beat values). These can then be further manipulated or used for sound synthesis.

EZchord

EZchord allows for parsing of chord symbols. Chords can be written with standard symbol notation and parsed as MIDI note numbers, which can be used directly for playback or used within EZscore. EZchord objects can be queried for information about the parsed chord's root, triad, and extensions.

EZscale

EZscale allows for quick lookup of many common and uncommon scale types by name. These scales can be used to quickly return MIDI note numbers of specific scales in a given key. They can be used to write melodies or as the basis for harmonization in EZscore.

ScorePlayer

ScorePlayer allows for playback of EZscore objects and is mostly for demonstration/prototyping purposes. It uses SinOscs to play back the sequences in an EZscore object and is meant to be an easy way to handle polyphony and tempo automatically.