Utilities for working with 12 tone equal temperament scales in Max MSP.
This package currently includes four gen patches:
pdm.scale.fit.gendsp: fit a note to a scalepdm.scale.xpose.gendsp: transpose a note by a specified number of scale degreespdm.scale.validate.gendsp: validate that a scale is formatted correctly for use in the library
The gen patches are useful for processing events or signals in Max, MSP, gen~, or RNBO. You can use the component with either the signal-processing gen~ or event gen objects in Max.
[gen pdm.scale.fit] // fit a note to a scale (event version)
[gen~ pdm.scale.fit] // fit a note to a scale (signal version)
Scales are provided to the objects as a buffer containing an ascending list of semitone intervals.
For example, a Major scale would be provided as a buffer containing the intervals [0, 2, 4, 5, 7, 9, 11]. You can use the buffer name "intervals", or provide your own buffer and assign it to the "intervals" parameter of the gen/gen~ patcher:
[gen pdm.scale.fit @intervals ---my_intervals_buf]
The root note of the scale is set using the root_note attribute of the gen patch.
Use pdm.scale.maxhelp to see how to use the gen components.
The repository also includes a Javascript class and examples for working with scales in Javascript.
These are useful when you are already using JavaScript in your patch. For example, you may process scales in an offline process or use JavaScript inside of a Max for Live MIDI Tool.
For information on this, check out examples/scales-in-javascript.maxpat and the API reference at misc/JS_API_REFERENCE.md.
- Use
defineor RNBO to make it more user friendly to invoke the objects. - Add helpfiles for each object
- Tidy up the general help file and migrate it to be the package's main patch
- Add refdocs