From Wikiversity
Jump to navigation Jump to search

PWGL is a freeware software application that facilitates computer-assisted composition of music.

The homepage for PWGL is

The archive of the PWGL mailing list is here:

This wiki will be built upon in coming months by students and faculty of the City University of New York as part of a doctoral course on computer-assisted composition. Materials regarding essentials of operating the software as well as tutorials on realizing specific composition techniques will be posted here and in supporting pages.

About PWGL

PWGL is a program that gives the user a graphical interface to doing computer programming to create music. The interface has been designed for musicians, with many objects that allow one to see, hear, and manipulate musical materials. PWGL's interface is similar to other applications, including OpenMusic, Max/MSP, and Pd. It is most similar to OpenMusic, because both share lineage as successors to the 1980s-90s application Patchwork (the PW in PWGL refers to Patchwork.)

For those familiar with Max/MSP or Pd, the biggest difference to know about PWGL is that generally all user patches are organized in the form of a tree, with many computations that happen in the "leaves" and "branches" that feed into one another and end at the bottom of the patch with one object that is the "root." The user activates the patch by evaluating this root object, which then calls all the other objects successively up the tree to the leaves, in a recursive fashion. The outermost leaves then evaluate and feed their results back down. This happens through all levels of the patch back to the root object. When the root object evaluates, it sends the final answer to the user.

Users may evaluate the patch at locations other than the "root" object. The object called for evaluation will call up its own branches and leaves and output its result to the user. Other branches of the patch will not evaluate, nor will levels of the patch below this node. To evaluate an object, select it and hit 'v' (for "eValuate"!). Instructions for how to select objects are below.

Running PWGL

PWGL opens with two windows that appear initially blank. A larger window usually named "PWGL1" and a smaller one at the bottom called "PWGL output." The top one is the main window where you will do nearly all work, at least until you become an advanced user. The lower window outputs results when you evaluate your patch, and also outputs error messages.

Basic Interface Navigation:

A short video introduction to the PWGL interface is here:

1. To add an object to your patch, simply right-click (on a Mac, control-click) and choose from the menu that appears.

2. The cursor’s various shapes:

• Arrow: When moving around empty space in your patch.

• Open hand: When near edge of object box. This signifies that you may move the location of the box.

• Hand with pointing finger: This indicates that user may double-click to view an interface hidden within the selected box (such as with chord editor object.)

• Left & right arrows: This allows user to move dividing line between left and right windows in an object (for objects with these).

• Right arrow: allows user to adjust horizontal size of box.

• Downward arrow: allows user to adjust vertical size of box.

• Thin square crosshairs (plus sign): allows user to adjust vertical AND horizontal size of box.

3. To enter data into the arithmetic objects, hover cursor over the input you want to adjust, click the left mouse button and slide up or down. A second method is to right-click on the input and select “edit-input box” from the pop-up menu.

4. To enter a value into object that features direct input of lists (such as the value object, etc.), double-click on it to enter the desired data object, type in value(s) desired, and hit ENTER or RETURN to exit the entry mode.

5. To select an object box, draw a circle around it so that its outline turns red.

6. Actions possible when an object has been selected: • Select a box and hit ‘v’ key to evaluate the patch up to that point.

• Select a box and hit ‘d’ to get documentation on that object.

• Select a box and hit ‘t’ to see whether there is a tutorial patch for it.

• For boxes with interface (such as chord editor), double-click to open it. Selecting box and hitting ‘m’ will let you see into it without double-clicking.

• Hit spacebar to play musical contents of a box.

• Enlarge boxes by hovering over lower right corner until cursor changes to a double arrow.

• On boxes with an arrow pointing down in their lower left corner, typing + will add another input to the box and typing - will take one away.

ENP Score Notation One of the noteworthy aspects of PWGL is its integration of music notation with algorithmic methods. PWGL's notation system is named "Expressive Notation Package," (ENP) and was created by composer/developer Mika Kuuskankare. ENP allows musicians to see musical ideas in the form of traditional or graphic music notation, to alter the notation manually, and also to algorithmically generate it and to analyze it for algorithmic alterations. The ENP score format is particular to PWGL but may be exported to other software in a variety of formats, including MIDI, Music XML, PNG, and Postscript.

Three short video introductions to ENP notation is available here:,, and .