diff --git a/README.md b/README.md index 0da66a8..3e1b5dd 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,14 @@ Original song "Haddeo" from the album "[The Slug and the Snarl](http://heskinrad `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 `hsetup` snippet (which contains the project setup) and a `haddeo` 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/haddeo.tidal b/haddeo.tidal index f95cb41..5dd8971 100644 --- a/haddeo.tidal +++ b/haddeo.tidal @@ -2,7 +2,7 @@ Anny: Haddeo (Algorave Remix) anny.audio -Current version: 1.0.2 +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/ @@ -73,7 +73,7 @@ d'drum $ stack [ -- hdrum1 @ 1 -- hic1 --- drum1 @ 2 +-- hdrum1 @ 2 -- @hsnoo d'fx3 $ @@ -169,6 +169,7 @@ let s = striate 16 -- pt 3: funk +-- @hdrum23 d'drum $ n "0*4" # s "kit" # gain 0.9 -- (1) s "drum" -- @hdrum3 diff --git a/snippets/haddeo b/snippets/haddeo new file mode 100644 index 0000000..28b6a61 --- /dev/null +++ b/snippets/haddeo @@ -0,0 +1,27 @@ +# -*- mode: snippet -*- +# name: haddeo +# group: haddeo +# key: haddeo +# expand-env: (yas-indent-line 'fixed) +# -- +hsetup +hdrum0 +hic1 +hic2 +hnim1 +hdrum1 +hsnoo +hdorr1 +hdrum2 +hnim2 +hduck +hbass +hdrum23 +hdrum3 +hnim3 +hbass2 +hdorr2 +hdrum4 +hhi +hnim4 +hduon diff --git a/snippets/hbass b/snippets/hbass new file mode 100644 index 0000000..94c7429 --- /dev/null +++ b/snippets/hbass @@ -0,0 +1,14 @@ +# -*- mode: snippet -*- +# name: hbass +# group: haddeo +# key: hbass +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hbass +let s = striate 16 + in d'bass $ + slow 8 $ stack [ + s $ sound "bass", + s $ sound "sine" + ] + # gain 0.9 diff --git a/snippets/hbass2 b/snippets/hbass2 new file mode 100644 index 0000000..5d14390 --- /dev/null +++ b/snippets/hbass2 @@ -0,0 +1,11 @@ +# -*- mode: snippet -*- +# name: hbass2 +# group: haddeo +# key: hbass2 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hbass2 +d'bass2 $ swing 0.14 $ + n "[~ [~ 1] [~!! 0] [~ 0 1 ~]]/4" # s "bass2" + # speed (0.5 ~> "[2 1]") + # gain 0.82 diff --git a/snippets/hdorr1 b/snippets/hdorr1 new file mode 100644 index 0000000..0f07539 --- /dev/null +++ b/snippets/hdorr1 @@ -0,0 +1,13 @@ +# -*- mode: snippet -*- +# name: hdorr1 +# group: haddeo +# key: hdorr1 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hdorr1 +d'fx1 $ -- mt $ -- (1) + (2 ~>) $ chop 16 $ + s "dorr/4" + # hresonance 0.05 + # hcutoff 200 + # gain 0.8 diff --git a/snippets/hdorr2 b/snippets/hdorr2 new file mode 100644 index 0000000..111fab0 --- /dev/null +++ b/snippets/hdorr2 @@ -0,0 +1,13 @@ +# -*- mode: snippet -*- +# name: hdorr2 +# group: haddeo +# key: hdorr2 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hdorr2 +d'fx1 $ + -- superimpose (slow 2) $ -- (1) + (2 ~>) $ chop 16 $ s "dorr/4" + # hresonance 0.05 + # hcutoff 200 + # gain 0.8 diff --git a/snippets/hdrum0 b/snippets/hdrum0 new file mode 100644 index 0000000..4eb2234 --- /dev/null +++ b/snippets/hdrum0 @@ -0,0 +1,12 @@ +# -*- mode: snippet -*- +# name: hdrum0 +# group: haddeo +# key: hdrum0 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hdrum0 +d'drum $ stack [ + n "1/4" # s "drum" -- (2) remove + -- n "[1*2, 0*8]/8" # s "drum", -- (2) + -- n "[~ 0]" # s "kit" -- (1) + ] diff --git a/snippets/hdrum1 b/snippets/hdrum1 new file mode 100644 index 0000000..0f87518 --- /dev/null +++ b/snippets/hdrum1 @@ -0,0 +1,14 @@ +# -*- mode: snippet -*- +# name: hdrum1 +# group: haddeo +# key: hdrum1 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hdrum1 +d'drum $ stack [ + n "[1*2, 0*8, [~!! [~!! 0] ! ~!!]]/8" # s "drum", + -- whenmod 3 2 (density 2) $ -- (3) + -- withmod 11 5 0.5 1 (density 2) $ -- (2) + n "~ 0" # s "kit" + -- n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit" -- (1) + ] diff --git a/snippets/hdrum2 b/snippets/hdrum2 new file mode 100644 index 0000000..1bfac89 --- /dev/null +++ b/snippets/hdrum2 @@ -0,0 +1,13 @@ +# -*- mode: snippet -*- +# name: hdrum2 +# group: haddeo +# key: hdrum2 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hdrum2 +d'drum $ mt $ stack [ + n "[1*2, 0*8, [~!! [~!! 0] ! ~!!]]/8" # s "drum", + whenmod 3 2 (density 2) $ + withmod 11 5 0.5 1 (density 2) $ + n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit" + ] diff --git a/snippets/hdrum23 b/snippets/hdrum23 new file mode 100644 index 0000000..e863a94 --- /dev/null +++ b/snippets/hdrum23 @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: hdrum23 +# group: haddeo +# key: hdrum23 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hdrum23 +d'drum $ n "0*4" # s "kit" # gain 0.9 -- (1) s "drum" diff --git a/snippets/hdrum3 b/snippets/hdrum3 new file mode 100644 index 0000000..c9ebafe --- /dev/null +++ b/snippets/hdrum3 @@ -0,0 +1,15 @@ +# -*- mode: snippet -*- +# name: hdrum3 +# group: haddeo +# key: hdrum3 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hdrum3 +d'drum $ swing 0.14 $ stack [ + n "[1*2, 0*8, [~!! [~!! 0] ! ~!!]]/8" # s "drum", + whenmod 3 2 (density 2) $ + withmod 11 5 0.5 1 (density 2) $ + n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit" + -- n "[~ 1]/2" # s "sn" # gain 0.85 -- (1) + -- n "[~ [1 0/8 1/2 0/2]]/2" # s "sn" # gain 0.85 -- (2) + ] diff --git a/snippets/hdrum4 b/snippets/hdrum4 new file mode 100644 index 0000000..c1a3365 --- /dev/null +++ b/snippets/hdrum4 @@ -0,0 +1,16 @@ +# -*- mode: snippet -*- +# name: hdrum4 +# group: haddeo +# key: hdrum4 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hdrum4 +d'drum $ swing 0.14 $ -- mt $ -- (3) + stack [ + n "[1*2, 0*8, [[~ 0] ~! [~!! 0] [~! 0!] ~!!]]/8" # s "drum", + -- every' 16 16 (const $ sound "kit:3") $ -- (2) + -- n "[~ 0]" # s "kit", -- (1) + n "[[~ 0] [[2!! ~]/4 0]]/2" # s "kit", -- (1) remove + n "[~ [1 0/8 1/2 0/2]]/2" # s "sn" + # gain 0.85 + ] diff --git a/snippets/hduck b/snippets/hduck new file mode 100644 index 0000000..b889eff --- /dev/null +++ b/snippets/hduck @@ -0,0 +1,14 @@ +# -*- mode: snippet -*- +# name: hduck +# group: haddeo +# key: hduck +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hduck +d'fx2 $ mt $ + stack [ + 1.75 ~> s "tubal/4", + (3.75 ~>) $ chop 16 $ s "duck/4" + # gain 0.6 + # speed 0.9 + ] diff --git a/snippets/hduon b/snippets/hduon new file mode 100644 index 0000000..87830f4 --- /dev/null +++ b/snippets/hduon @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# name: hduon +# group: haddeo +# key: hduon +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hduon +d'fx3 $ 3 ~> n "[0 1]/8" # s "duon" + # gain 0.9 diff --git a/snippets/hhi b/snippets/hhi new file mode 100644 index 0000000..189612f --- /dev/null +++ b/snippets/hhi @@ -0,0 +1,16 @@ +# -*- mode: snippet -*- +# name: hhi +# group: haddeo +# key: hhi +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hhi +d'hi $ + swing 0.14 $ + every 3 rev $ + whenmod 12 8 (0.5 <~) $ + (0.5 ~>) $ + slow 8 $ + gap 64 $ + n "[0 1]/2" # s "nimble" + # speed ((-4+).(*(-1)) <$> density 1.1 sine1) diff --git a/snippets/hic1 b/snippets/hic1 new file mode 100644 index 0000000..6e28c42 --- /dev/null +++ b/snippets/hic1 @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: hic1 +# group: haddeo +# key: hic1 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hic1 +d'wax $ slow 16 . striate 256 $ s "icarus" diff --git a/snippets/hic2 b/snippets/hic2 new file mode 100644 index 0000000..9bc451e --- /dev/null +++ b/snippets/hic2 @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: hic2 +# group: haddeo +# key: hic2 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hic2 +d'wax $ retrig $ slow 20 $ sound "icarus:1" diff --git a/snippets/hnim1 b/snippets/hnim1 new file mode 100644 index 0000000..7728c87 --- /dev/null +++ b/snippets/hnim1 @@ -0,0 +1,13 @@ +# -*- mode: snippet -*- +# name: hnim1 +# group: haddeo +# key: hnim1 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hnim1 +d'nim $ + {- -- (1) + superimpose (iter 4 -- (3) iter 6 + -- .(# speed (scale 0.8 (0.8+(2/3)) $ slow 2.5 sine1)) -- (2) + ) $ -- -} + slow 16 . striate 256 $ n "[0 1]/2" # s "nimble" diff --git a/snippets/hnim2 b/snippets/hnim2 new file mode 100644 index 0000000..c3da29c --- /dev/null +++ b/snippets/hnim2 @@ -0,0 +1,17 @@ +# -*- mode: snippet -*- +# name: hnim2 +# group: haddeo +# key: hnim2 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hnim2 +d'nim $ + {- -- (4) + superimpose (iter 4 . + (# speed (scale 0.8 (0.8+(2/3)) $ slow 2.5 sine1)) . + (# nudge 0)) $ -- -} + mt $ + -- every 3 (density 2) $ -- (3) + -- every' 2 2 (within (0, 0.5) (const silence)) $ -- (2) + -- whenmod 5 3 rev $ -- (1) + slow 16 . striate 256 $ n "[0 1]/2" # s "nimble" diff --git a/snippets/hnim3 b/snippets/hnim3 new file mode 100644 index 0000000..7175067 --- /dev/null +++ b/snippets/hnim3 @@ -0,0 +1,21 @@ +# -*- mode: snippet -*- +# name: hnim3 +# group: haddeo +# key: hnim3 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hnim3 +d'nim $ + {- -- (4) + superimpose (iter 4 + .(# speed (scale 0.8 (0.8+(2/3)) $ slow 2.5 sine1)) -- (5) + ) $ -- -} + {- -- (2) + every' 16 1 ((# vowel "o u") + {- -- (3) + .(# orbit 1) -- opt. remove to delay all the things + .(# delay 0.5).(# delayfeedback 0.6).(# delaytime 0.25) + -- -} + ) $ -- -} + -- whenmod 16 12 (# vowel "[a i]/3") $ -- (1) + (1 ~>) $ slow 16 . striate 256 $ n "[0 1]/2" # s "nimble" diff --git a/snippets/hnim4 b/snippets/hnim4 new file mode 100644 index 0000000..c2f9de5 --- /dev/null +++ b/snippets/hnim4 @@ -0,0 +1,12 @@ +# -*- mode: snippet -*- +# name: hnim4 +# group: haddeo +# key: hnim4 +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hnim4 +d'nim $ -- mt $ -- (2) + (0.25 ~>) $ + whenmod 4 2 (const silence) $ + slow 16 . striate 256 $ n "[0 1]/2" # s "nimble" + -- # vowel "o" -- (1) diff --git a/snippets/hsetup b/snippets/hsetup new file mode 100644 index 0000000..b209475 --- /dev/null +++ b/snippets/hsetup @@ -0,0 +1,24 @@ +# -*- mode: snippet -*- +# name: hsetup +# group: haddeo +# key: hsetup +# expand-env: (yas-indent-line 'fixed) +# -- +let bpm b = cps (b/60) + withmod a b c d = (whenmod a b . within (c, d)) + every' n o f = when ((== (o-1)) . (`mod` n)) f + msil = mapM_ ($ silence) + tmod s e = (# nudge (scale 0 s $ fmap (**e) saw1)) + swing a = within (0.1, 0.4) (a ~>) . within (0.6, 0.9) (a ~>) + d'drum = d1 + d'bass = d3 + d'bass2 = d2 + d'wax = d4 + d'nim = d5 + d'hi = d6 + d'fx1 = d8 + d'fx2 = d9 + d'fx3 = d10 + -- given bpm = 105 + tmod' s e = tmod (s*(1/(105/60))) e + mt i = slow 16 $ tmod' 0.5 3 $ density 16 $ i diff --git a/snippets/hsnoo b/snippets/hsnoo new file mode 100644 index 0000000..9a158fe --- /dev/null +++ b/snippets/hsnoo @@ -0,0 +1,13 @@ +# -*- mode: snippet -*- +# name: hsnoo +# group: haddeo +# key: hsnoo +# expand-env: (yas-indent-line 'fixed) +# -- +-- @hsnoo +d'fx3 $ + (1.5 ~>) $ + slow 4 $ chop 48 $ + sound (samples "snoo" <$> slow 7 $ run 7) + # gain 0.8 + # cut 10