The gpcsets package

An implementation of musical pitch class sets for Haskell.
This library is capable of handling standard 12-tone pitch
class sets and tone rows. However, it is also capable of
handling GENERAL pitch class sets, which may come from
alternative equal temperament systems.

Downloads

Maintainer's Corner

Readme for gpcsets

Readme for gpcsets-0.9.1.0

gpcsets: Pitch Class Sets for Haskell
Bruce H. McCosar
*News* Version 0.9.1.0 introduces Data.PcSets.Svg. Not well tested--in
fact, no test suite--but with demos in doc/examples.
This is the second release for my General Pitch Class Sets library. It's
still being built. Right now I have 2 out of 5 modules completed. However,
the one module that's most complete is the main module, and it has been
subjected to an enormous amount of test code.
Places to find out more information
===================================
* http://code.google.com/p/pcsets/
Pitch Class Sets for Python. The original. Only handles 12-TET. I've
got links to online Pitch Class Set references there, in case you're
new to all this.
* http://bmccosar.wordpress.com/
My Wordpress Music blog. Until I get the gpcsets library in final form,
this is the spot to find out information about upcoming releases and
current work on this project.
Features of this Package
========================
* Data.PcSets is complete. It's fully documented through Literate Haskell
AND through Haddock.
* There's an enormous test suite for the main module in
test/Test/PcSets.lhs
* Data.PcSets.Svg is complete, and can produce a limited range of svg
illustrations for pitch class sets.
* Future modules are planned: Notes, for standard representations of
pitch class sets (eg "C E G B" instead of [0,4,7,11]); Compact for the
"compact format" representation of pitch class sets (eg 047B instead of
"C E G B"); and Catalog for calculating prime set catalogs in different
modulus systems.
* The skeletons of the other modules and test suites are there. Most of
the code is written, and just needs ported from my earlier versions
(which didn't use the Haskell class system) to the modern version.
Release Schedule
================
This is still a work in progress. I released the first version as 0.9.0.x.
Each module I add thereafter will increase the third number by one, eg
0.9.1.x. Therefore, if I finish four new modules and four new test suites,
I should end up at 0.9.8.x. When all of the smoke clears and the entire
library has been tested, tested, and retested, I'll call it "stable" and
put it out there as 1.0.0.
---
This file is part of gpcsets: Pitch Class Sets for Haskell
Copyright 2009 by Bruce H. McCosar.
Distributed under a BSD3 license; see the file 'LICENSE' for details.