From e76dca9208888aa7a9fab9dba0881c9c05305f3d Mon Sep 17 00:00:00 2001 From: Aneurin Barker Snook Date: Tue, 28 Mar 2017 22:34:16 +0100 Subject: [PATCH] improve notes + readme, rename bass'params -> bassP, minor fixes --- README.md | 6 +-- piston.scd | 7 ++++ piston.tidal | 101 +++++++++++++++++++++++++++++---------------------- 3 files changed, 67 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index dd83a79..b73e193 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Anny: Piston LP -Piston: minimal progressive techno built around recycled rhythms. Written to perform at algoraves in the UK, now available as a CD album and to download. +[anny.audio](https://www.anny.audio) | [pistonlp.co.uk](http://pistonlp.co.uk) Originally performed live @ Texture, Manchester, 12th November 2015. Album released 20th November 2015. @@ -12,12 +12,12 @@ _Anny is formerly Anny FM._ `piston.scd` is a simple SuperCollider startup file to configure audio routing and load project samples. -`piston.tidal` is the full Piston composition for Tidal Cycles. (Current version compatible with Tidal 0.8) +`piston.tidal` is the full Piston composition for Tidal Cycles. `samples.csv` contains sample attributions. All samples are available in `samples/` directory. ## License -Album recording is copyright © Aneurin "Anny" Barker Snook 2015. +Album recording is copyright of Aneurin "Anny" Barker Snook 2015. Source code is [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/) and samples are all royalty free. Remix to your heart's content! diff --git a/piston.scd b/piston.scd index 6e0c455..aa9b80f 100644 --- a/piston.scd +++ b/piston.scd @@ -1,3 +1,10 @@ +/* +Anny: Piston LP +anny.audio | pistonlp.co.uk + +See README.md for more information +*/ + include("SuperDirt") Server.local.options.device = "Soundflower (2ch)"; diff --git a/piston.tidal b/piston.tidal index 3880bcb..5691772 100644 --- a/piston.tidal +++ b/piston.tidal @@ -2,16 +2,37 @@ Anny: Piston LP anny.audio | pistonlp.co.uk -Originally performed live @ Texture, Manchester, 12th November 2015 -Album released 20th November 2015 - See README.md for more information + +~ Version info ~ +Current version: 1.0 +Compatibility: Tidal Cycles 0.8 + SuperCollider 3.7.2 + SuperDirt +Updated: 27 March 2017 +Notes: All Piston LP Tidal code is now "demystified" so all code blocks + are all-inclusive and can be run in-place with a minimal megalet + at the top of the document, serving three purposes: + 1) to make all the code easier for any Tidal Cycles user to + understand and if they wish, reuse and remix + 2) to reduce maintenance, especially when playing parts of Piston LP + live; this file will be my primary reference in live practice + 2) to contribute better to the shared goal in live coding of + showing my working-out in live performance +License: CC-BY-SA https://creativecommons.org/licenses/by-sa/4.0/ + +~ Navigating this Tidal Cycles document ~ +I have used @tags throughout this document to mark checkpoints (Piston I, +Piston II etc.) and 'optimal' versions of key elements of each tune that +I have found cause to reuse in crossover tracks. For example, to search +for/within Piston I, search the document for "@p1". +In places where elements are reused, particularly in later tracks, a +references is made with the format "~p1..." so you know where it all links +up (and I know where to copy-paste future updates). -} let bpm b = cps (b/60) msil = mapM_ ($ silence) - bass'params = (# gain "0.7") . (# hcutoff "485") . (# hresonance "0.001") - bass' c = rev . chop c $ bass'params $ n "[0 1]/2" # s "dubb" + bassP = (# gain "0.7") . (# hcutoff "485") . (# hresonance "0.001") + bass' c = rev . chop c $ bassP $ n "[0 1]/2" # s "dubb" d'drum = d1 d'perc = d2 d'gnome = d3 @@ -24,10 +45,9 @@ let bpm b = cps (b/60) d'cymb = d10 {- +@p1 Anny: Piston I anny.audio | pistonlp.co.uk - -See README.md -} bpm 138 @@ -84,10 +104,9 @@ d'perc $ s "[~ wt*4 ~ wt*2 ~]/5" d'drum $ overlay (3.75 ~> s "wtsn/4") $ s "[k(3,8), ~ sn]/2" {- +@p2 Anny: Piston II anny.audio | pistonlp.co.uk - -See README.md -} bpm 138 @@ -101,7 +120,7 @@ d'perc $ s "wt*2" # vowel "[u e u a]/2" # end "0.15" -d'bass $ slow 8 $ ((1%8) <~) $ chop 32 $ bass'params $ n "[0 1]/2" # s "dubb" +d'bass $ slow 8 $ ((1%8) <~) $ chop 32 $ bassP $ n "[0 1]/2" # s "dubb" # speed "1.2" # shape (scale 0 0.5 $ density 4 sine1) # cut "1" @@ -111,7 +130,7 @@ d'ant $ slow 2 $ smash 16 [1,2] $ sound "ant:1" # cutoff "1764" -- 0.08 * (44100/2) # resonance "0.01" --- ~p2sharda +-- @p2sharda d'shard $ ((1%16) <~) $ chop 16 $ s "[ice [~ ice] ~ ~]/4" # gain "0.7" @@ -126,7 +145,7 @@ d'fly $ chop 64 $ s "[fly ~ [fly ~ ~ fly] ~]/4" d'drum $ 0.5 <~ sound "[[k k:1] [sn ~ ~ k]]/2" -d'bass $ slow 8 $ ((1%8) <~) $ chop 32 $ bass'params $ n "[0 1]/2" # s "dubb" +d'bass $ slow 8 $ ((1%8) <~) $ chop 32 $ bassP $ n "[0 1]/2" # s "dubb" # speed "1.2" # shape (scale 0 0.5 $ density 4 sine1) # cut "1" @@ -142,7 +161,7 @@ d'perc $ s "wt*2" # vowel "[u e u a]/2" # end "0.15" -d'bass $ slow 8 $ ((1%8) <~) $ chop 32 $ bass'params $ n "[0 1]/2" # s "dubb" +d'bass $ slow 8 $ ((1%8) <~) $ chop 32 $ bassP $ n "[0 1]/2" # s "dubb" # speed "1.2" # shape (scale 0 0.5 $ density 4 sine1) # cut "1" @@ -155,7 +174,7 @@ d'shard $ every 2 (density 1.5) $ whenmod 5 3 (density 2) $ -- (1) # gain "0.7" # shape (scale 0.25 0.75 $ density 8 saw1) -d'bass $ slow 8 $ ((1%8) <~) $ chop 32 $ bass'params $ n "[0 1]/2" # s "dubb" +d'bass $ slow 8 $ ((1%8) <~) $ chop 32 $ bassP $ n "[0 1]/2" # s "dubb" # speed "0.8 1.2" # shape (scale 0 0.5 $ density 4 sine1) # cut "1" @@ -168,10 +187,9 @@ d'drum $ sound "[k [sn k:1 k:1 ~]]/2" d'perc $ s "~ wt*2" {- +@p3 Anny: Piston III anny.audio | pistonlp.co.uk - -See README.md -} let p3percd = (# orbit "1") . @@ -202,7 +220,7 @@ let v = "o i" -- (0) i (1) o i (4 <~) $ every 2 (0.5 <~) $ slow 4 . b $ rev . chop 16 $ - bass'params $ n "[0 1]/2" # s "dubb" + bassP $ n "[0 1]/2" # s "dubb" # cut c # vowel v @@ -210,7 +228,7 @@ d'drum $ s "{[k*2 [~ k*2] k ~ k*2 ~ k*2 ~]/8, [~ sn]/2}" -- @p3drumb d'perc $ sound "[[k:1 [~ k:1] k:1 [~ k:1]] sn]/8" -- @p3bass2 -d'misc $ slow 8 $ chop 16 $ bass'params $ n "[0 1]/2" # s "dubb" +d'misc $ slow 8 $ chop 16 $ bassP $ n "[0 1]/2" # s "dubb" # cut "1" # speed "0.2" # vowel "e" @@ -237,15 +255,14 @@ d'gnome $ within (0, 0.5) rev $ chop 8 $ s "[gnome(3,8)]/2" -- ~p3bass w/ v="o i", c="0", b=brak {- +@p4 Anny: Piston IV anny.audio | pistonlp.co.uk - -See README.md -} bpm 138 -solo $ d'misc $ slow 8 $ chop 16 $ bass'params $ n "[0 1]/2" # s "dubb" +solo $ d'misc $ slow 8 $ chop 16 $ bassP $ n "[0 1]/2" # s "dubb" # cut "1" # speed "0.2" # vowel "e" @@ -278,7 +295,7 @@ d'drum $ sound "[[k k:1]*2 sn k*2 [~ sn] [~ k]]/5" d'bass $ (0.75 ~>) $ -- @p4bass whenmod 5 3 (density (3%2) . brak) $ - bass'params $ + bassP $ rev $ (0.5 ~>) $ slow 2 . chop 8 $ n "[0 1]/2" # s "dubb" # speed "0.5" # cut "1" @@ -310,10 +327,9 @@ msil [d'perc,d'bass,d'shard] -- ~p4bz w/ (4) {- +@p5 Anny: Piston V anny.audio | pistonlp.co.uk - -See README.md -} bpm 138 @@ -333,7 +349,7 @@ d'drum $ sound "{[~ ~ ~ k:1], [~ sn]/2}" msil [d'bz, d'ant] d'drum $ sound "{k, [~ ~ ~ k:1], [~ sn]/2}" -- @p5drum -d'bass $ chop 16 $ bass'params $ s "[~ dubb]" +d'bass $ chop 16 $ bassP $ s "[~ dubb]" # n (slow 4 "0 1") # cut "1" @@ -341,7 +357,7 @@ d'bass $ chop 16 $ bass'params $ s "[~ dubb]" let b = id -- (0) id (1) brak in d'fly $ whenmod 5 3 rev $ b $ slow 16 $ jux ((1.5 ~>) . rev) $ - chop 64 $ bass'params $ sound "fly:1" + chop 64 $ bassP $ sound "fly:1" # speed "0.7" # shape (scale 0 0.5 $ density 2.1 saw1) @@ -350,7 +366,7 @@ d'bass $ -- within (0.5, 0.75) (# vowel "u o") $ -- (4), delete in (5) -- every 2 (density 2) $ -- (3) -- density 1.6 $ -- (2) replacing (1) -- whenmod 3 2 (density 1.6) $ -- (1), (4) replacing (2) - chop 16 $ bass'params $ s "[~ dubb]" + chop 16 $ bassP $ s "[~ dubb]" # n (slow 4 "0 1") # cut "1" -- # speed (scale 0.75 1.25 $ slow 1.3 sine1) -- (3) @@ -404,10 +420,9 @@ msil [d'perc, d'bz] d'gnome silence {- +@p6 Anny: Piston VI anny.audio | pistonlp.co.uk - -See README.md -} bpm 138 @@ -417,7 +432,7 @@ d'bass $ (# gain (scale 0 0.7 $ saw1)) $ within (0.5, 0.75) (# vowel "u o") $ -- (4), delete in (5) every 2 (density 2) $ -- (3) whenmod 3 2 (density 1.6) $ -- (1), (4) replacing (2) - chop 16 $ bass'params $ s "[~ dubb]" + chop 16 $ bassP $ s "[~ dubb]" # n (slow 4 "0 1") # cut "1" # speed (scale 0.75 1.25 $ slow 1.3 sine1) -- (3) @@ -463,7 +478,7 @@ d'drum $ sound "{k, [~ ~ ~ k:1] [~ k:1], [~ sn ~ sn*2]/8}" -- @p6drum-sn d'bass $ (0.6 ~>) $ -- ~p4bass whenmod 5 3 (density (3%2) . brak) $ - bass'params $ + bassP $ rev $ (0.5 ~>) $ slow 2 . chop 8 $ n "[0 1]/2" # s "dubb" # speed "0.5" # cut "1" @@ -486,7 +501,7 @@ d'drum $ sound "[[k k:1]*2 [sn k:1 ~ k] [~ k:1 k ~] [~ sn ~ k]]/8" -- @p6drumslo -- ~p5fly d'fly $ whenmod 5 3 rev $ slow 16 $ jux ((1.5 ~>) . rev) $ - chop 64 $ bass'params $ sound "fly:1" + chop 64 $ bassP $ sound "fly:1" # speed "0.7" # shape (scale 0 0.5 $ density 2.1 saw1) @@ -505,10 +520,9 @@ d'drum $ sound "{k, [~ ~ ~ k:1] [~ k:1], [~ sn ~ sn*2]/8}" msil [d'perc, d'fly, d'bz] {- +@p7 Anny: Piston VII anny.audio | pistonlp.co.uk - -See README.md -} bpm 138 @@ -538,7 +552,7 @@ d'perc $ s "[wt*3 ~]/2" -- @p7bassa d'bass $ slow 8 $ slowspread ($) [rev.chop 12, rev.chop 24] $ - bass'params $ n "[0 1]/2" # s "dubb" + bassP $ n "[0 1]/2" # s "dubb" -- @p7fly d'fly $ slow (4%3) . @@ -565,7 +579,7 @@ let bm f = scale f (0.5 + f) $ density (5%4) sine1 (# end (bm 0.05)) $ slow 8 $ slowspread ($) [rev.chop 12, rev.chop 24] $ - bass'params $ n "[0 1]/2" # s "dubb" + bassP $ n "[0 1]/2" # s "dubb" -- ~p7shard w/ (0) @@ -580,7 +594,7 @@ msil [d'bass, d'shard] d'bass $ slow 8 $ within (0.33, 0.67) (0.25 ~>) $ slowspread ($) [rev.chop 12, rev.chop 24] $ - bass'params $ n "[0 1]/2" # s "dubb" + bassP $ n "[0 1]/2" # s "dubb" # vowel "o" d'bass silence @@ -588,10 +602,9 @@ d'drum $ within (0, 0.5) (jux ((1%3) ~>)) $ s "[k [sn ~ k] [~ ~ sn] ~]/8" d'bz silence {- +@p8 Anny: Piston VIII anny.audio | pistonlp.co.uk - -See README.md -} bpm 138 @@ -631,7 +644,7 @@ d'misc $ chop 64 $ s "[fly ~ [fly ~ ~ fly] ~]/4" -- ~p5bass d'shard $ every 2 (density 2) $ whenmod 3 2 (density 1.6) $ - chop 16 $ bass'params $ s "[~ dubb]" + chop 16 $ bassP $ s "[~ dubb]" # n (slow 4 "0 1") # cut "1" # speed (scale 0.75 1.25 $ slow 1.3 sine1) @@ -666,14 +679,14 @@ msil [d'fly, d'bz, d'shard, d'misc, d'ant, d'cymb] d'misc $ stack [ {- (1) ~p5bass every 2 (density 2) $ whenmod 3 2 (density 1.6) $ - chop 16 $ bass'params $ s "[~ dubb]" + chop 16 $ bassP $ s "[~ dubb]" # n (slow 4 "0 1") # cut "1" # speed (scale 0.75 1.25 $ slow 1.3 sine1), (0.75 ~>) $ -- -} -- ~p4bass whenmod 5 3 (density (3%2) . brak) $ - bass'params $ + bassP $ rev $ (0.5 ~>) $ slow 2 . chop 8 $ n "[0 1]/2" # s "dubb" # speed "0.5" # cut "1" @@ -697,7 +710,7 @@ d'shard $ whenmod 7 3 (density (5%4)) $ let b = brak in d'fly $ whenmod 5 3 rev $ b $ slow 16 $ jux ((1.5 ~>) . rev) $ - chop 64 $ bass'params $ sound "fly:1" + chop 64 $ bassP $ sound "fly:1" # speed "0.7" # shape (scale 0 0.5 $ density 2.1 saw1) @@ -721,7 +734,7 @@ let d = 5 -- (0) 5 (1) 3 # speed (scale 0.76 (0.76 + 1/d) $ slow 1.1 sine1) -- ~p3shard -d'bz $ -- within (0.5, 1) (density 2) $ (1) +d'bz $ -- within (0.5, 1) (density 2) $ -- (1) iter 4 . density 2 $ (0.5 <~) $ ((1%16) <~) $ chop 16 $ s "[ice [~ ice] ~ ~]/4" # vowel "e o"