deploy: 0d04fb0ebd
This commit is contained in:
@ -3575,14 +3575,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:
|
||||
|
||||
@ -3604,6 +3610,12 @@ z1("s 0 3 2 1")
|
||||
.adsr(0.1,0.1,0.13,0.15)
|
||||
.out()`,!0)}
|
||||
|
||||
${e("Cube Dance swing",`
|
||||
z1("0").cubeDance([3,4,5]).sound("sine").out()`,!0)}
|
||||
|
||||
${e("Power Towers with pulse",`
|
||||
z1("2").powerTowers([2,3,7]).between(5,11).sound("sine").out()`,!0)}
|
||||
|
||||
## 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.
|
||||
@ -3629,7 +3641,7 @@ z1("0")
|
||||
|
||||
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
|
||||
|
||||
BIN
assets/index-47b9a628.js.gz
Normal file
BIN
assets/index-47b9a628.js.gz
Normal file
Binary file not shown.
Binary file not shown.
@ -15,7 +15,7 @@
|
||||
|
||||
|
||||
<script src="https://unpkg.com/hydra-synth"></script>
|
||||
<script type="module" crossorigin src="/assets/index-f09b1c46.js"></script>
|
||||
<script type="module" crossorigin src="/assets/index-47b9a628.js"></script>
|
||||
<link rel="stylesheet" href="/assets/index-e5dc6b43.css">
|
||||
<script id="vite-plugin-pwa:register-sw" src="/registerSW.js" defer></script></head>
|
||||
<style>
|
||||
|
||||
BIN
index.html.gz
BIN
index.html.gz
Binary file not shown.
2
sw.js
2
sw.js
@ -1 +1 @@
|
||||
if(!self.define){let s,e={};const n=(n,o)=>(n=new URL(n+".js",o).href,e[n]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=n,s.onload=e,document.head.appendChild(s)}else s=n,importScripts(n),e()})).then((()=>{let s=e[n];if(!s)throw new Error(`Module ${n} didn’t register its module`);return s})));self.define=(o,i)=>{const l=s||("document"in self?document.currentScript.src:"")||location.href;if(e[l])return;let r={};const a=s=>n(s,l),f={module:{uri:l},exports:r,require:a};e[l]=Promise.all(o.map((s=>f[s]||a(s)))).then((s=>(i(...s),r)))}}define(["./workbox-c37eba35"],(function(s){"use strict";self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"assets/android-chrome-192x192-b602fe7a.png",revision:null},{url:"assets/android-chrome-512x512-0e707758.png",revision:null},{url:"assets/apple-touch-icon-77f1cce1.png",revision:null},{url:"assets/ComicMono-742af5ad.woff",revision:null},{url:"assets/ComicMono-bed2c2b5.woff2",revision:null},{url:"assets/ComicMono-Bold-2350c6c1.woff",revision:null},{url:"assets/favicon-695249ea.svg",revision:null},{url:"assets/favicon-8d604eb4.ico",revision:null},{url:"assets/IBMPlexMono-Bold-3152ee89.woff2",revision:null},{url:"assets/IBMPlexMono-Bold-6bb3fd98.woff",revision:null},{url:"assets/IBMPlexMono-BoldItalic-5cd662b9.woff",revision:null},{url:"assets/IBMPlexMono-BoldItalic-6f4d360c.woff2",revision:null},{url:"assets/IBMPlexMono-Italic-30cb963d.woff2",revision:null},{url:"assets/IBMPlexMono-Italic-fc3301da.woff",revision:null},{url:"assets/IBMPlexMono-Regular-06ba2f2e.woff",revision:null},{url:"assets/IBMPlexMono-Regular-82ad22f5.woff2",revision:null},{url:"assets/index-e5dc6b43.css",revision:null},{url:"assets/index-f09b1c46.js",revision:null},{url:"assets/index-f09b1c46.js.gz",revision:null},{url:"assets/JetBrainsMono-Bold-c503cc5e.woff2",revision:null},{url:"assets/JetBrainsMono-Regular-a9cb1cd8.woff2",revision:null},{url:"assets/jgs_vecto-e7fb4a88.woff2",revision:null},{url:"assets/jgs5-0e03e537.woff2",revision:null},{url:"assets/jgs5-9f26a38a.woff",revision:null},{url:"assets/jgs7-a69a9a5d.woff2",revision:null},{url:"assets/jgs7-d3f51478.woff",revision:null},{url:"assets/jgs9-0c41ef37.woff",revision:null},{url:"assets/jgs9-dc75d6ab.woff2",revision:null},{url:"assets/many_universes-d74e86dc.svg",revision:null},{url:"assets/mstile-150x150-fcf527e3.png",revision:null},{url:"assets/pulses-30df7a48.svg",revision:null},{url:"assets/safari-pinned-tab-61a1253d.svg",revision:null},{url:"assets/Steps-Mono-aff9e933.woff2",revision:null},{url:"assets/Steps-Mono-Thin-b82a0d7e.woff2",revision:null},{url:"assets/times-1426387b.svg",revision:null},{url:"assets/topos_arch-db355d32.svg",revision:null},{url:"assets/topos_code-6c32eb83.png",revision:null},{url:"assets/topos_frog-abe2d135.png",revision:null},{url:"assets/topos_frog-e8ab87d1.svg",revision:null},{url:"assets/topos_gif-15a95761.gif",revision:null},{url:"assets/TransportProcessor-d5d50b30.js",revision:null},{url:"assets/TransportProcessor-d5d50b30.js.gz",revision:null},{url:"favicon/android-chrome-192x192.png",revision:"2429dad582348ae2739bc93bfe05d7ac"},{url:"favicon/android-chrome-512x512.png",revision:"12f44bfb54998f5a07768c8a4f2bdba7"},{url:"favicon/apple-touch-icon.png",revision:"dc10d973f9af63470369c2d4264c009d"},{url:"favicon/favicon-16x16.png",revision:"b69d914139eaa7d352d99a50750f60db"},{url:"favicon/favicon-32x32.png",revision:"486abfdda056b5c51bb03cd7d59e82b7"},{url:"favicon/favicon.ico",revision:"765804f7055a1418f7197838fc24220d"},{url:"favicon/favicon.svg",revision:"b63dbb14d38b3700ef25ff165e3dfd9c"},{url:"favicon/mstile-150x150.png",revision:"51c3e55d1105efa5e7da8e2ce1ce7617"},{url:"favicon/safari-pinned-tab.svg",revision:"c538bc47f907da4e4bab9f23afc30887"},{url:"favicon/screenshot_miniature.png",revision:"418a8c434aacf92bf8c164f1075e4f05"},{url:"favicon/topos_code.png",revision:"418a8c434aacf92bf8c164f1075e4f05"},{url:"index.html",revision:"b848cff61b3e2eb0fa6335f65b650358"},{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"}],{}),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html"))),s.registerRoute((({url:s})=>[/^https:\/\/raw\.githubusercontent\.com\/.*/i,/^https:\/\/shabda\.ndre\.gr\/.*/i].some((e=>e.test(s)))),new s.CacheFirst({cacheName:"external-samples",plugins:[new s.ExpirationPlugin({maxEntries:5e3,maxAgeSeconds:2592e3}),new s.CacheableResponsePlugin({statuses:[0,200]})]}),"GET")}));
|
||||
if(!self.define){let s,e={};const n=(n,o)=>(n=new URL(n+".js",o).href,e[n]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=n,s.onload=e,document.head.appendChild(s)}else s=n,importScripts(n),e()})).then((()=>{let s=e[n];if(!s)throw new Error(`Module ${n} didn’t register its module`);return s})));self.define=(o,i)=>{const l=s||("document"in self?document.currentScript.src:"")||location.href;if(e[l])return;let r={};const a=s=>n(s,l),f={module:{uri:l},exports:r,require:a};e[l]=Promise.all(o.map((s=>f[s]||a(s)))).then((s=>(i(...s),r)))}}define(["./workbox-c37eba35"],(function(s){"use strict";self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"assets/android-chrome-192x192-b602fe7a.png",revision:null},{url:"assets/android-chrome-512x512-0e707758.png",revision:null},{url:"assets/apple-touch-icon-77f1cce1.png",revision:null},{url:"assets/ComicMono-742af5ad.woff",revision:null},{url:"assets/ComicMono-bed2c2b5.woff2",revision:null},{url:"assets/ComicMono-Bold-2350c6c1.woff",revision:null},{url:"assets/favicon-695249ea.svg",revision:null},{url:"assets/favicon-8d604eb4.ico",revision:null},{url:"assets/IBMPlexMono-Bold-3152ee89.woff2",revision:null},{url:"assets/IBMPlexMono-Bold-6bb3fd98.woff",revision:null},{url:"assets/IBMPlexMono-BoldItalic-5cd662b9.woff",revision:null},{url:"assets/IBMPlexMono-BoldItalic-6f4d360c.woff2",revision:null},{url:"assets/IBMPlexMono-Italic-30cb963d.woff2",revision:null},{url:"assets/IBMPlexMono-Italic-fc3301da.woff",revision:null},{url:"assets/IBMPlexMono-Regular-06ba2f2e.woff",revision:null},{url:"assets/IBMPlexMono-Regular-82ad22f5.woff2",revision:null},{url:"assets/index-47b9a628.js",revision:null},{url:"assets/index-47b9a628.js.gz",revision:null},{url:"assets/index-e5dc6b43.css",revision:null},{url:"assets/JetBrainsMono-Bold-c503cc5e.woff2",revision:null},{url:"assets/JetBrainsMono-Regular-a9cb1cd8.woff2",revision:null},{url:"assets/jgs_vecto-e7fb4a88.woff2",revision:null},{url:"assets/jgs5-0e03e537.woff2",revision:null},{url:"assets/jgs5-9f26a38a.woff",revision:null},{url:"assets/jgs7-a69a9a5d.woff2",revision:null},{url:"assets/jgs7-d3f51478.woff",revision:null},{url:"assets/jgs9-0c41ef37.woff",revision:null},{url:"assets/jgs9-dc75d6ab.woff2",revision:null},{url:"assets/many_universes-d74e86dc.svg",revision:null},{url:"assets/mstile-150x150-fcf527e3.png",revision:null},{url:"assets/pulses-30df7a48.svg",revision:null},{url:"assets/safari-pinned-tab-61a1253d.svg",revision:null},{url:"assets/Steps-Mono-aff9e933.woff2",revision:null},{url:"assets/Steps-Mono-Thin-b82a0d7e.woff2",revision:null},{url:"assets/times-1426387b.svg",revision:null},{url:"assets/topos_arch-db355d32.svg",revision:null},{url:"assets/topos_code-6c32eb83.png",revision:null},{url:"assets/topos_frog-abe2d135.png",revision:null},{url:"assets/topos_frog-e8ab87d1.svg",revision:null},{url:"assets/topos_gif-15a95761.gif",revision:null},{url:"assets/TransportProcessor-d5d50b30.js",revision:null},{url:"assets/TransportProcessor-d5d50b30.js.gz",revision:null},{url:"favicon/android-chrome-192x192.png",revision:"2429dad582348ae2739bc93bfe05d7ac"},{url:"favicon/android-chrome-512x512.png",revision:"12f44bfb54998f5a07768c8a4f2bdba7"},{url:"favicon/apple-touch-icon.png",revision:"dc10d973f9af63470369c2d4264c009d"},{url:"favicon/favicon-16x16.png",revision:"b69d914139eaa7d352d99a50750f60db"},{url:"favicon/favicon-32x32.png",revision:"486abfdda056b5c51bb03cd7d59e82b7"},{url:"favicon/favicon.ico",revision:"765804f7055a1418f7197838fc24220d"},{url:"favicon/favicon.svg",revision:"b63dbb14d38b3700ef25ff165e3dfd9c"},{url:"favicon/mstile-150x150.png",revision:"51c3e55d1105efa5e7da8e2ce1ce7617"},{url:"favicon/safari-pinned-tab.svg",revision:"c538bc47f907da4e4bab9f23afc30887"},{url:"favicon/screenshot_miniature.png",revision:"418a8c434aacf92bf8c164f1075e4f05"},{url:"favicon/topos_code.png",revision:"418a8c434aacf92bf8c164f1075e4f05"},{url:"index.html",revision:"c6a87e88604c2e9a3b919e85d69ea588"},{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"}],{}),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html"))),s.registerRoute((({url:s})=>[/^https:\/\/raw\.githubusercontent\.com\/.*/i,/^https:\/\/shabda\.ndre\.gr\/.*/i].some((e=>e.test(s)))),new s.CacheFirst({cacheName:"external-samples",plugins:[new s.ExpirationPlugin({maxEntries:5e3,maxAgeSeconds:2592e3}),new s.CacheableResponsePlugin({statuses:[0,200]})]}),"GET")}));
|
||||
|
||||
Reference in New Issue
Block a user