diff --git a/README.md b/README.md index 9df43c0..ba5ac45 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,14 @@ Originally performed live @ The Loft, Brighton, 4th July 2014. `samples.csv` contains sample attributions. All samples are available in `samples/` directory. +## Snippets + +The main `battery.tidal` reflects the original composition, and includes 'initial states' of the various patterns used with notes on what should be changed and when. New patterns are prefaced with a comment like `-- @something` declaring its 'key' for reference. + +In the `snippets/` directory are [yasnippet](http://joaotavora.github.io/yasnippet/)-compatible snippet files reflecting these references, and additionally a `b1setup` snippet (which contains the project setup) and a `battery123` snippet that provides a convenient list of all project snippets. + +For easy loading and use in emacs Tidal, copy or symlink the snippets into a `haskell-mode` major group in one of your snippet folders. + ## License - Source code: [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/) diff --git a/battery123.tidal b/battery123.tidal index 0240e1b..d58efe4 100644 --- a/battery123.tidal +++ b/battery123.tidal @@ -2,7 +2,7 @@ Anny FM: Battery 1,2,3 anny.audio -Current version: 1.0 +Current version: 1.1.0 Compatibility: Tidal Cycles 1.0-dev + SuperDirt 1.0-dev + SuperCollider 3.8 License: CC-BY-SA https://creativecommons.org/licenses/by-sa/4.0/ @@ -129,11 +129,13 @@ Battery 2 bpm 125 -d'perc $ cf $ s "uxay*2" # n "1 0 1 2" - -d'perc $ cf $ s "uxay*4" +-- @b2perca +d'perc $ cf $ s "uxay*2" -- (1) uxay*4 # n "1 0 1 2" - -- # speed "[0.7 1 1.2]/2" -- (1) + -- # speed "[0.7 1 1.2]/2" -- (2) + +-- b2perca @ 1 +-- b2perca @ 2 -- @b2drum d'drum $ -- overlay (s "peri") $ -- (3,4) toggle @@ -145,7 +147,7 @@ d'drum $ -- overlay (s "peri") $ -- (3,4) toggle -- b2drum @ 1 --- @b2perc +-- @b2percb let -- b = brak . iter 4 -- (1) b = cf . brak in d'perc $ b $ s "uxay*4" @@ -167,7 +169,7 @@ d'tr $ cf $ whenmod 5 4 rev $ s "[~ trump ! !] ~" -- # speed (scale 0.5 1.5 $ slow 4 sine1) -- (1) -- b2drum w/ peri --- b2perc @ 1 +-- b2percb @ 1 -- @b2bass d'bass $ slow 8 $ @@ -197,7 +199,7 @@ msil [d'perc, d'bass] -- b2arpy @ 1 --- b2perc @ 1 +-- b2percb @ 1 -- b2drum w/ peri msil [d'drum, d'perc] @@ -224,18 +226,6 @@ d'drum $ cf $ -- # n (slow 3 $ run 4) -- (1) ] --- @b3drum -d'drum $ cf $ - -- every 3 rev $ -- (f4) and (f5) remove - -- every' 8 8 rev $ -- (f3) - stack [ - -- slow 2 $ s "peri [~ ~ ~ peri] [~ peri peri ~] ~", -- (2), (3) ^peri*2 -- (f5) remove - -- whenmod 5 3 (density 2) $ -- (f1) - -- iter 2 $ -- (f2) - sound "[tok*2 [rm tok]] [psr:1 tok*2]" - -- # n (slow 3 $ run 4) -- (1) - ] - -- @b3bass let p = "bass*4" -- "{bass*4, wobble*3}" (4) in d'bass $ cf $ @@ -285,7 +275,7 @@ msil [d'bass, d'arpy] -- b1perc @ 4 -- b3drum @ 3 --- b2perc @ 1 +-- b2percb @ 1 -- b2bass @ 2 -- b1tac -- b1bass1 [on channel d'bass2] diff --git a/snippets/b1bass1 b/snippets/b1bass1 new file mode 100644 index 0000000..5c2c640 --- /dev/null +++ b/snippets/b1bass1 @@ -0,0 +1,11 @@ +# -*- mode: snippet -*- +# name: b1bass1 +# group: battery123 +# key: b1bass1 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @b1bass1 +d'bass $ slow 4 $ s "bass3 [~ bass3] ! ~" + # begin 0.2 + -- # n "0 1 0 0" -- (1) + -- # speed (scale 1 (4/3) $ slow 8 sine1) -- (2) diff --git a/snippets/b1bass2 b/snippets/b1bass2 new file mode 100644 index 0000000..b452286 --- /dev/null +++ b/snippets/b1bass2 @@ -0,0 +1,15 @@ +# -*- mode: snippet -*- +# name: b1bass2 +# group: battery123 +# key: b1bass2 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @b1bass2 +d'bass $ + spread slow [1,3] $ + striate 16 $ + s "bass3 [~ bass3] ! ~" + # begin 0.2 + # n "0 1 0 0" + # speed (scale 1 1.5 $ slow 8 sine1) + # gain 0.9 diff --git a/snippets/b1drum1 b/snippets/b1drum1 new file mode 100644 index 0000000..a71e150 --- /dev/null +++ b/snippets/b1drum1 @@ -0,0 +1,12 @@ +# -*- mode: snippet -*- +# name: b1drum1 +# group: battery123 +# key: b1drum1 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @b1drum1 +d'drum $ cf $ stack [ + -- every 4 (density 1.5) $ -- (2) + -- slow 2 $ s "peri [~ peri] ! ~", -- (1) + sound "~ psr:1" + ] diff --git a/snippets/b1drum2 b/snippets/b1drum2 new file mode 100644 index 0000000..71d77aa --- /dev/null +++ b/snippets/b1drum2 @@ -0,0 +1,14 @@ +# -*- mode: snippet -*- +# name: b1drum2 +# group: battery123 +# key: b1drum2 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @b1drum2 +d'drum $ cf $ + stack [ + s "peri*2", -- (-1) remove + -- every' 8 8 (density 1.5) $ -- (2) + -- every 2 (density 3) $ -- (1) + sound "~ psr:1" + ] diff --git a/snippets/b1hand b/snippets/b1hand new file mode 100644 index 0000000..7b155d6 --- /dev/null +++ b/snippets/b1hand @@ -0,0 +1,11 @@ +# -*- mode: snippet -*- +# name: b1hand +# group: battery123 +# key: b1hand +# expand-env: (yas-indent-line 'fixed) +# -- +-- @b1hand +d'hand $ slow 8 $ rev . striate 256 $ s "hand*8" + # speed 0.7 + -- # shape (scale 0 0.5 $ slow (10/4) sine1) -- (1) + -- # pan (scale 0.25 0.75 $ slow (8/3) sine1) -- (2) diff --git a/snippets/b1perc b/snippets/b1perc new file mode 100644 index 0000000..0473a30 --- /dev/null +++ b/snippets/b1perc @@ -0,0 +1,13 @@ +# -*- mode: snippet -*- +# name: b1perc +# group: battery123 +# key: b1perc +# expand-env: (yas-indent-line 'fixed) +# -- +-- @b1perc +d'perc $ cf $ + -- fastspread slow [2,1] $ -- (3) + -- slow 2 . fastspread slow [2,4,2,3] $ -- (4) replace (3) + -- jux (0.25 <~) $ -- (2) + slow 2 $ s "uxay [~ uxay] [psr uxay] ~" + -- # n (density 3 $ run 2) -- (1) diff --git a/snippets/b1setup b/snippets/b1setup new file mode 100644 index 0000000..84e0184 --- /dev/null +++ b/snippets/b1setup @@ -0,0 +1,19 @@ +# -*- mode: snippet -*- +# name: b1setup +# group: battery123 +# key: b1setup +# expand-env: (yas-indent-line 'fixed) +# -- +let bpm b = cps (b/60) + msil = mapM_ ($ silence) + cf = slow 2 + every' n o f = when ((== (o-1)) . (`mod` n)) f + d'drum = d1 + d'perc = d2 + d'bass = d3 + d'hand = d4 + d'warb = d5 + d'bass2 = d6 + d'arpy = d7 + d'tr = d8 + d'tac = d9 diff --git a/snippets/b1tac b/snippets/b1tac new file mode 100644 index 0000000..8424c6e --- /dev/null +++ b/snippets/b1tac @@ -0,0 +1,12 @@ +# -*- mode: snippet -*- +# name: b1tac +# group: battery123 +# key: b1tac +# expand-env: (yas-indent-line 'fixed) +# -- +-- @b1tac +d'tac $ cf $ + -- whenmod 7 4 (density 1.5) $ -- (1) + s "[~ tacscan] ! ~ ~" + # gain 0.8 + # vowel (slow 3 "e u") diff --git a/snippets/b1warbler b/snippets/b1warbler new file mode 100644 index 0000000..73d1acc --- /dev/null +++ b/snippets/b1warbler @@ -0,0 +1,10 @@ +# -*- mode: snippet -*- +# name: b1warbler +# group: battery123 +# key: b1warbler +# expand-env: (yas-indent-line 'fixed) +# -- +-- @b1warbler +d'warb $ slow 4 $ striate 32 $ s "warbler" + # n (slow 7 $ run 7) + # gain 0.8 diff --git a/snippets/b2arpy b/snippets/b2arpy new file mode 100644 index 0000000..aeb7756 --- /dev/null +++ b/snippets/b2arpy @@ -0,0 +1,13 @@ +# -*- mode: snippet -*- +# name: b2arpy +# group: battery123 +# key: b2arpy +# expand-env: (yas-indent-line 'fixed) +# -- +-- @b2arpy +d'arpy $ cf $ + -- whenmod 7 4 (# vowel "a") $ -- (2) + -- iter 9 $ -- (1) + s "arpy*8" + # n "2 1 3 1" + # gain 0.7 diff --git a/snippets/b2bass b/snippets/b2bass new file mode 100644 index 0000000..1f95121 --- /dev/null +++ b/snippets/b2bass @@ -0,0 +1,14 @@ +# -*- mode: snippet -*- +# name: b2bass +# group: battery123 +# key: b2bass +# expand-env: (yas-indent-line 'fixed) +# -- +-- @b2bass +d'bass $ slow 8 $ + s "[jvbass ~] [jvbass [~ ~ ~ ~ jvbass]] [~ [~ ~ ~ ~ jvbass]] [~ jvbass !]" + # n (slow 2.8 "0 1 2") + # vowel "i" + # speed 0.8 + -- # shape 0.3 -- (1) increase 0->0.3 + -- # shape (scale 0.25 0.75 $ saw1) -- (2) replaces (1) diff --git a/snippets/b2drum b/snippets/b2drum new file mode 100644 index 0000000..038736b --- /dev/null +++ b/snippets/b2drum @@ -0,0 +1,13 @@ +# -*- mode: snippet -*- +# name: b2drum +# group: battery123 +# key: b2drum +# expand-env: (yas-indent-line 'fixed) +# -- +-- @b2drum +d'drum $ -- overlay (s "peri") $ -- (3,4) toggle + cf $ + -- every 3 (0.125 <~) $ -- (2) + s "psr*4 psr*2" + -- s "[[psr*4 psr*2] ! ! psr*8]/4" -- (1) + # gain 0.6 diff --git a/snippets/b2perca b/snippets/b2perca new file mode 100644 index 0000000..990cce2 --- /dev/null +++ b/snippets/b2perca @@ -0,0 +1,10 @@ +# -*- mode: snippet -*- +# name: b2perca +# group: battery123 +# key: b2perca +# expand-env: (yas-indent-line 'fixed) +# -- +-- @b2perca +d'perc $ cf $ s "uxay*2" -- (1) uxay*4 + # n "1 0 1 2" + -- # speed "[0.7 1 1.2]/2" -- (2) diff --git a/snippets/b2percb b/snippets/b2percb new file mode 100644 index 0000000..91ad013 --- /dev/null +++ b/snippets/b2percb @@ -0,0 +1,14 @@ +# -*- mode: snippet -*- +# name: b2percb +# group: battery123 +# key: b2percb +# expand-env: (yas-indent-line 'fixed) +# -- +-- @b2percb +let -- b = brak . iter 4 -- (1) + b = cf . brak + in d'perc $ b $ s "uxay*4" + # n "1 0 1 2" + # gain 0.8 + # shape "0.4 0.3 0.6" + # speed "[0.7 1 1.2]/2" diff --git a/snippets/b2trump b/snippets/b2trump new file mode 100644 index 0000000..8f33796 --- /dev/null +++ b/snippets/b2trump @@ -0,0 +1,13 @@ +# -*- mode: snippet -*- +# name: b2trump +# group: battery123 +# key: b2trump +# expand-env: (yas-indent-line 'fixed) +# -- +-- @b2trump +d'tr $ cf $ whenmod 5 4 rev $ s "[~ trump ! !] ~" + # n (slow 3.2 $ run 4) + # gain 0.8 + # vowel (slow 3.2 "a e o") + # shape 0.6 + -- # speed (scale 0.5 1.5 $ slow 4 sine1) -- (1) diff --git a/snippets/b3bass b/snippets/b3bass new file mode 100644 index 0000000..a4ea146 --- /dev/null +++ b/snippets/b3bass @@ -0,0 +1,17 @@ +# -*- mode: snippet -*- +# name: b3bass +# group: battery123 +# key: b3bass +# expand-env: (yas-indent-line 'fixed) +# -- +-- @b3bass +let p = "bass*4" -- "{bass*4, wobble*3}" (4) + in d'bass $ cf $ + -- spread slow [2,(7/4)] $ -- (2) + -- whenmod 7 6 (density 1.5) $ -- (1) + -- iter 4 $ -- (3) + s p + # n "0 1" + # begin 0.4 + # speed 1.2 + # shape 0.2 diff --git a/snippets/b3drum b/snippets/b3drum new file mode 100644 index 0000000..cfd90cc --- /dev/null +++ b/snippets/b3drum @@ -0,0 +1,17 @@ +# -*- mode: snippet -*- +# name: b3drum +# group: battery123 +# key: b3drum +# expand-env: (yas-indent-line 'fixed) +# -- +-- @b3drum +d'drum $ cf $ + -- every 3 rev $ -- (f4) and (f5) remove + -- every' 8 8 rev $ -- (f3) + stack [ + -- slow 2 $ s "peri*2 [~ ~ ~ peri] [~ peri peri ~] ~", -- (2), (3) ^peri*2 -- (f5) remove + -- whenmod 5 3 (density 2) $ -- (f1) + -- iter 2 $ -- (f2) + sound "[tok*2 [rm tok]] [psr:1 tok*2]" + -- # n (slow 3 $ run 4) -- (1) + ] diff --git a/snippets/battery123 b/snippets/battery123 new file mode 100644 index 0000000..f80aafc --- /dev/null +++ b/snippets/battery123 @@ -0,0 +1,23 @@ +# -*- mode: snippet -*- +# name: battery123 +# group: battery123 +# key: battery123 +# expand-env: (yas-indent-line 'fixed) +# -- +b1setup +b1bass1 +b1hand +b1perc +b1bass2 +b1drum1 +b1tac +b1drum2 +b1warbler +b2perca +b2drum +b2percb +b2trump +b2bass +b2arpy +b3drum +b3bass