Each node in the graph represents a section A||B
The endpoints A and B and the gap(G) are mapped to
color space using mappings that can be chosen from
a pull down menu.
All mappings, at present, use the
the munsell system
as their starting point. The munsell system
is based on a division of color space into
equal perceptual intervals and mapping nodes direcly to what we perceive
avoids linking color to a particular theory since it is based
on observation.

Mapping A||B to rgb coordinates that can be displayed on the screen
is accomplished as follows ...

A,B,G ⇒
Munsell renotation data ⇒ xyY (CIE coordinates) ⇒
XYZ ⇒ chromatic adapter ⇒ RGB

The step where A,B,andG are mapped to the Munsell renotation data
is speculative and where
different approaches might be tried.
It may be that there is ultimately no "best" mapping and that
one mapping may be chosen over another for purely aesthetic reasons.
To date, two general approaches have been taken. One where the values for
A,B,and G directly determine the values of the variables needed to
describe color and the other where one or more of those variables are
determined not by the values of A B or G but by how they were generated from the
previous section. Both the direct and relative approaches lead to
several possible implementions some of which could be
hybrids of the two. The colors in the compositions presented here
have all been rendered using one of the approaches discussed below.

###### Direct-1

In this implementation value and chroma, like hue, are also mapped to a circle. Chroma and value are thought of as repeating every π and hue as repeating every 2π. Black and white, for example, can be thought of as being on the opposite sides of a circle the two halves of which are the same. A,B,G are converted to degrees and then mapped to the hue, value and chroma of munsell color space.Converting value and chroma to angles makes it possible to fit a tree with no bounds into the bounds used by the munsell system or any other system that describes perception. For hue the values for A,B and/or G can simply be projected onto a circle so that they fall on the circle of hues. Value and chroma, however, are traditionaly linearly based and not thought of as repeating. If thought of linearly, fitting all values from the tree into the ranges for value and chroma would require normalizing the data in some manner so that the tree, or perhaps an acceptable portion of the tree, fit within the scale given for their perception. On the otherhand, if their ranges are converted to angles then both value and chroma can be treated in the same manner as hue.

Since there is no particular reason to assign A,B or G (B−A) to any one of hue, value or chroma, the cases

*Direct-1a*thru

*Direct-1e*are considered where HVC is mapped in one of the following ways.

HVC &lArr ABG; HVC &lArr AGB; HVC &lArr BAG; HVC &lArr BGA; HVC &lArr GAB; HVC &lArr GBA;

Using this approach, the three spheres used to represent each node in the 3D graph are assigned colors derived from three of the above relations, one where hue=A, one where hue=B and one where hue=G. This results in a different color being associated with each of the the three voices inherent to each node. Coloring schemes using this method vary depending on which of the three relations are used. A serious drawback to this approach is that a note with a high frequency does not neceassrily have a higher value (lighter color) then one with a lower frequency. Though, it has not been tried at this time, it may be worth considering treating value in a manner similar to that described below for the

*relative*approach.

###### Relative

The values of A, B and/or G are ignored and how the section they are a part of was generated is considered instead. The generation of a child node is thought of as a rotation by ±φ2π and this information is recorded when the primary tree is grown. The angles for A and B arrived at in this manner are identical and used to represent hue and chroma. Value, however, was not mapped to a circle and is instead directly related to the value associated with each of the three notes represented in the 3D graph by one of three spheres. For example, for section A||B the three notes represented by A, B and B-A will all be mapped to the same hue and chroma but have the following values: V_{A}&lArr A, V

_{B}&lArr B, and V

_{G}&lArr B- A. The note with the highest frequency will, therefore, always have the highest value, whereas the note with the lowest frequency (B-A) wiill always have the lowest value.

For example, if the angle for parent node A||B = 180, then the angles for the pair of children described by A || A ± (B−A)×Φ are 180 ± Φ×360. Note that negative angles are converted to positive angles by simply adding 360. Though chroma and hue always represent the same number of degrees, their starting points need not to be the same are are determined by an offset set before the colors are rendered. The advantage of the "relative" approach over the direct one is that it results in fewer colors which may give it greater expressive powers then the "direct" approach.

#### Mapping to Munsell hue, value, and chroma.

###### degrees to Munsell hue, value, and chroma.

Assuming that A,B and G have been mapped to a circle in some manner, the next step is to map their degrees to the munsell renotation data. First the munsell hue is determined. Then a subset of the renotation data containing all entries that reference that hue is used to determine munsell value or chroma. If the number of elements in the subset is used to equally divide a circle, then the index of an element in that set can be determined using V_{deg}or C

_{deg}.

For example, since there are 40 munsell hues; H

_{i}= round(H

_{deg}× 40/360°);, where H

_{i}is the index of the hue represented by H

_{deg}in an array of all possible munsell hues.

Since the indices determined, in a similar manner, for V

_{deg}and C

_{deg}very likey do not reference the same line in the renotation data, an approximation can be made by further narrowing the subset to only those elements that match either the value or the chroma referenced by those indices. The variable not used to narrow the subset (value or chroma) can then be determined by searching the revised subset for the element that most closely matches its value from the initial subset.