aboutsummaryrefslogtreecommitdiff
path: root/5-polyrhythms/main.ua
diff options
context:
space:
mode:
Diffstat (limited to '5-polyrhythms/main.ua')
-rw-r--r--5-polyrhythms/main.ua29
1 files changed, 29 insertions, 0 deletions
diff --git a/5-polyrhythms/main.ua b/5-polyrhythms/main.ua
new file mode 100644
index 0000000..7e184ce
--- /dev/null
+++ b/5-polyrhythms/main.ua
@@ -0,0 +1,29 @@
+Dn ← 0.6 # duration of a Ch in seconds
+Bar ← 6 # duration of a bar in seconds
+V ← 0.2 # volume
+S ← &asr # sample rate
+
+JoinB ← ∧(⊂°□):[] ⇌
+Silence ← ×0⇡⌊×S
+Fade ← × ⇌ ÷⟜(⇡)⧻.
+Tone ← ×V /+∿ ⊞× : ×τ ÷⟜(⇡⌊×)S
+MkNotes ← JoinB ≡(□ ⊂ (Fade Tone Dn °□⊣:) Silence°□⊢.)
+
+ChRoot ← ∵({(↥0 -Dn ÷:⊙: Bar) [330]}◌) ⇡.
+ChN₁ ← ∵({(↥0 -Dn ÷:⊙: Bar) [415]}◌) ⇡.
+ChN₂ ← ∵({(↥0 -Dn ÷:⊙: Bar) [220]}◌) ⇡.
+ChN₃ ← ∵({(↥0 -Dn ÷:⊙: Bar) [247]}◌) ⇡.
+# [E, G#, B, D]
+Ch₁ ← ∵({(↥0 -Dn ÷:⊙: Bar) [330 415 493 293]}◌) ⇡.
+# [A, C#, E, G]
+Ch₂ ← ∵({(↥0 -Dn ÷:⊙: Bar) [220 277 324 392]}◌) ⇡.
+# [B, D#, F#, A]
+Ch₃ ← ∵({(↥0 -Dn ÷:⊙: Bar) [247 311 370 440]}◌) ⇡.
+
+Bar₁ ← ++ (MkNotes ChRoot 10) (MkNotes ChN₂ 6) (MkNotes Ch₂ 4)
+Bar₂ ← ++ (MkNotes ChRoot 10) (MkNotes ChN₃ 6) (MkNotes Ch₃ 4)
+Bar₃ ← ++ (MkNotes ChRoot 10) (MkNotes ChN₁ 6) (MkNotes Ch₁ 4)
+
+Samples ← ⊟. JoinB [Bar₁ Bar₂ Bar₃ Bar₂]
+&ap Samples
+&fwa "./5-polyrhythms/output.wav" audio "wav" S Samples