aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--5-polyrhythms/main.ua29
-rw-r--r--5-polyrhythms/output.mp4bin0 -> 380215 bytes
-rw-r--r--5-polyrhythms/output.wavbin0 -> 8467268 bytes
-rw-r--r--README.md7
4 files changed, 35 insertions, 1 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
diff --git a/5-polyrhythms/output.mp4 b/5-polyrhythms/output.mp4
new file mode 100644
index 0000000..cfcf6d3
--- /dev/null
+++ b/5-polyrhythms/output.mp4
Binary files differ
diff --git a/5-polyrhythms/output.wav b/5-polyrhythms/output.wav
new file mode 100644
index 0000000..64274e6
--- /dev/null
+++ b/5-polyrhythms/output.wav
Binary files differ
diff --git a/README.md b/README.md
index b0e01a2..19be12e 100644
--- a/README.md
+++ b/README.md
@@ -32,7 +32,12 @@
<img src="4-im-a-sinner/output-400.gif?raw=true" />
</a>
</td>
- <td width="50%" valign="top"></td>
+ <td width="50%" valign="top">
+ <h3>
+ <a href="5-polyrhythms/main.ua">Polyrhythms music generation</a>
+ </h3>
+ https://github.com/phenax/uiua-playground/raw/refs/heads/main/5-polyrhythms/output.mp4
+ </td>
</tr>
</table>