# Horogram

Todo: expand
This page is a work in progress. Feel free to edit as needed.

A horogram is a diagram that visualizes the interval pattern for a scale based on a repeated generating interval. This is useful for visualizing the step pattern for moment-of-symmetry scales and other similar scales.

Horograms are primarily the work of Erv Wilson.

## Diagrams

### Circular Horogram

The most familiar form of the horogram is based on Wilson's work. Here, the size of the generating intervals are represented as angles, and successive circles radiating from the center represent increasingly chromatic child scales.

#### Construction

The construction of a circular horogram is based on rotating a pointer hand by the same angle repeatedly.

### Rectangular Horogram

A rectangular version of a horogram conveys the same information as a circular horogram but in a rectangular format.

#### Example

The use of a spreadsheet application, such as Microsoft Excel, makes it easy to construct a rectangular horogram, as well as representing the information as a table. Shown below is the rectangular horogram for 12edo diatonic (5L 2s).

Steps for Generators 7\12 and 5\12 Mos Step Ratio
7 5 1L 1s 7:5
2 5 5 2L 1s 5:2
2 2 3 2 3 2L 3s 3:2
2 2 2 1 2 2 1 5L 2s 2:1
1 1 1 1 1 1 1 1 1 1 1 1 12edo 1

#### Construction

One way to conceptualize the construction of a rectangular horogram is to think of it as a partitioning a rectangle until every partition is of the same size. The algorithm for partitioning is shown below for a rectangle of length e initially partitioned into two such that one of the partitions is of length g.

1. For a rectangle of length e, partition a section of length g from the right of that rectangle. This splits the rectangle into two parts of sizes (e - g)\e and g\e, from left to right.
2. Assign the larger of the two partitions as partition L and the smaller of the two as s.
3. If, from left to right, the larger of the two partitions precedes the smaller one, the larger partition is partitioned such that a partition of size s is broken off from the right. Otherwise, if the smaller partition precedes the larger one, a partition of size s is partitioned from the left.
4. In either case, update the running values of L and s and repeat the previous step. If partitions L and s are of the same size, then no further partitioning is possible.