diff --git a/docs/_static/audio/afrobeat_pattern.wav b/docs/_static/audio/afrobeat_pattern.wav
new file mode 100644
index 0000000..7e21e5f
Binary files /dev/null and b/docs/_static/audio/afrobeat_pattern.wav differ
diff --git a/docs/_static/audio/bossa_nova_pattern.wav b/docs/_static/audio/bossa_nova_pattern.wav
new file mode 100644
index 0000000..5ca4fc0
Binary files /dev/null and b/docs/_static/audio/bossa_nova_pattern.wav differ
diff --git a/docs/_static/audio/salsa_pattern.wav b/docs/_static/audio/salsa_pattern.wav
new file mode 100644
index 0000000..76a6576
Binary files /dev/null and b/docs/_static/audio/salsa_pattern.wav differ
diff --git a/docs/generate_audio.py b/docs/generate_audio.py
index 6ee6fb6..69069c0 100644
--- a/docs/generate_audio.py
+++ b/docs/generate_audio.py
@@ -117,6 +117,24 @@ def gen_rock_beat():
render("rock_beat", score)
+def gen_bossa_nova_pattern():
+ score = Score("4/4", bpm=140)
+ score.drums("bossa nova", repeats=4)
+ render("bossa_nova_pattern", score)
+
+
+def gen_salsa_pattern():
+ score = Score("4/4", bpm=180)
+ score.drums("salsa", repeats=4)
+ render("salsa_pattern", score)
+
+
+def gen_afrobeat_pattern():
+ score = Score("4/4", bpm=110)
+ score.drums("afrobeat", repeats=8)
+ render("afrobeat_pattern", score)
+
+
# ── Bossa nova ───────────────────────────────────────────────────────────
def gen_bossa_nova():
@@ -413,6 +431,9 @@ GENERATORS = [
gen_dynamics,
gen_filter_ramp,
gen_rock_beat,
+ gen_bossa_nova_pattern,
+ gen_salsa_pattern,
+ gen_afrobeat_pattern,
gen_bossa_nova,
gen_djembe,
gen_tabla,
diff --git a/docs/guide/drums.rst b/docs/guide/drums.rst
index af5275f..1534f00 100644
--- a/docs/guide/drums.rst
+++ b/docs/guide/drums.rst
@@ -249,9 +249,29 @@ Playing Patterns
play_pattern(Pattern.preset("salsa"), repeats=4, bpm=180)
play_pattern(Pattern.preset("afrobeat"), repeats=8, bpm=110)
+Rock:
+
.. raw:: html
-
+
+
+Bossa nova:
+
+.. raw:: html
+
+
+
+Salsa:
+
+.. raw:: html
+
+
+
+Afrobeat:
+
+.. raw:: html
+
+
Fills
-----