Skip to content

Commit

Permalink
Merge pull request #116 from edelveart/tonnetz-docs
Browse files Browse the repository at this point in the history
docs(tonnetz): add definition and examples of Cube Dance and Power Towers
  • Loading branch information
amiika authored Dec 25, 2023
2 parents 4913dde + b30fd06 commit 0d04fb0
Showing 1 changed file with 26 additions and 6 deletions.
32 changes: 26 additions & 6 deletions src/documentation/patterns/ziffers/ziffers_tonnetz.ts
Original file line number Diff line number Diff line change
Expand Up @@ -210,14 +210,20 @@ In addition to the transformations, Ziffers implements cyclic methods that can b
* <ic>hexaCycle(tonnetz: number[], repeats: number = 3)</ic>: Cycles through chords in the hexa cycle
* <ic>octaCycle(tonnetz: number[], repeats: number = 4)</ic>: Cycles through chords in the octa cycle
* <ic>enneaCycle(tonnetz: number[], repeats: number = 3)</ic>: Cycles through chords in the ennea cycle
* <ic>powerTowers(tonnetz: number[], repeats: number = 3)</ic>: Cycles trough chords using the power towers
* <ic>cubeDance(tonnetz: number[], repeats: number = 3)</ic>: Cycles trough chords in a cube dance
* <ic>powerTowers(tonnetz: number[], repeats: number = 3)</ic>: Cycles through chords using the Power Towers
* <ic>cubeDance(tonnetz: number[], repeats: number = 3)</ic>: Cycles through chords in a Cube Dance
HexaCycles are sequences of major and minor triads generated by the <ic>p</ic> and <ic>l</ic> transformations . Let's take the following example starting with a <ic>C</ic> chord: <ic>C -> Cm -> Ab -> Abm -> E -> Em</ic>. You can start on the chord of your choice.
**HexaCycles** are sequences of major and minor triads generated by the <ic>p</ic> and <ic>l</ic> transformations . Let's take the following example starting with a <ic>C</ic> chord: <ic>C -> Cm -> Ab -> Abm -> E -> Em</ic>. You can start on the chord of your choice.
OctaCycles are sequences of major and minor triads generated using <ic>p</ic> and <ic>r</ic> transformations. Starting at <ic>C</ic>, we have the following sequence: <ic>C -> Cm -> Eb -> Ebm -> F# -> F#m -> A -> Am</ic>.
**OctaCycles** are sequences of major and minor triads generated using <ic>p</ic> and <ic>r</ic> transformations. Starting at <ic>C</ic>, we have the following sequence: <ic>C -> Cm -> Eb -> Ebm -> F# -> F#m -> A -> Am</ic>.
Unlike HexaCycles and OctaCycles, EnneaCycles are four-note chord sequences. Considering the functions implemented for tetrachords in Ziffers, we can interpret these sequences as generated by <ic>p12, p23, and l13</ic> transformations repeatedly: <ic>C7 -> Cm7 -> Cm7b5 -> Ab7 -> Abm7 -> Abm7b5 -> E7 -> Em7 -> Em7b5</ic>.
Unlike HexaCycles and OctaCycles, **EnneaCycles** are four-note chord sequences. Considering the functions implemented for tetrachords in Ziffers, we can interpret these sequences as generated by <ic>p12, p23, and l13</ic> transformations repeatedly: <ic>C7 -> Cm7 -> Cm7b5 -> Ab7 -> Abm7 -> Abm7b5 -> E7 -> Em7 -> Em7b5</ic>.
**Power Towers** use four-note chords (<ic>halfdim7, m7 and 7 </ic>). The assembly chords are of type <ic>dim7</ic>. One of the many paths for succession has been chosen.
**Cube Dance** is another graph that is built primarily with HexaCycles, except that it adds <ic>augmented</ic> triads as assemblers. As with Power Towers, one possible path has been selected.
Both Cube Dance and Power Towers have many chords, so sometimes it will be convenient to slice up fragments of the cycles. Ziffers has some **Generative functions** (e.g., <ic>between(start, end)</ic>) that may be useful to you.
### Examples:
Expand Down Expand Up @@ -247,6 +253,20 @@ z1("s 0 3 2 1")
true,
)}
${makeExample(
"Cube Dance swing",
`
z1("0").cubeDance([3,4,5]).sound("sine").out()`,
true,
)}
${makeExample(
"Power Towers with pulse",
`
z1("2").powerTowers([2,3,7]).between(5,11).sound("sine").out()`,
true,
)}
## Cycles with vitamins and repetitions
Finally, cyclic methods in Ziffers can also be vitaminized with doses of different Tonnetz. However, this opens the way to different behavior with cycles.
Expand Down Expand Up @@ -276,7 +296,7 @@ true
By default hexaCycles and enneaCycles have <ic>3</ic> repetitions, while octaCycles has <ic>4</ic> repetitions. We have specified a **chromatic scale** although this is the **default scale**. Try changing the **repeats and scales** when playing with different Tonnetz.
* Remark E: These cycles in Tonnetz <ic>[3, 4, 5]</ic> are implemented based on the work of [Douthett & Steinbach (1998, pp. 245-247)](https://www.jstor.org/stable/843877)
* Remark E: These cycles in Tonnetz <ic>[3, 4, 5]</ic> are implemented based on the work of [Douthett & Steinbach (1998, pp. 245-247, 253-256)](https://www.jstor.org/stable/843877)
## :construction: Regions and OctaTowers
Expand Down

0 comments on commit 0d04fb0

Please sign in to comment.