Last active
May 2, 2017 23:17
-
-
Save tado/7785ba7145f4c75ecbba1ababe68483f to your computer and use it in GitHub Desktop.
TidalCycles Pattern Generator using Syncopation Degrees
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Example | |
d1 $ metre "[1 2 3 4]/8" $ sound "cp" | |
d1 $ metre (slow 256 $ run 256) $ sound "cp" | |
-- Patterns sorted by syncopation degree | |
-- using Sioros and Guedes (2011) syncopation models [1] | |
-- revised by Alex McLean https://gist.github.com/tado/7785ba7145f4c75ecbba1ababe68483f#gistcomment-2081699 | |
let metre metrep p = unwrap $ (\metren -> struct (xs !!! metren) p) <$> metrep | |
(!!!) xs n = xs !! (n `mod` length xs) | |
xs = [ | |
"{~ ~ ~ ~ ~ ~ ~ ~}", | |
"{1 ~ ~ ~ ~ ~ ~ ~}", | |
"{1 ~ ~ ~ 1 ~ ~ ~}", | |
"{1 ~ ~ ~ 1 ~ 1 ~}", | |
"{1 ~ ~ ~ 1 ~ 1 1}", | |
"{1 ~ ~ ~ 1 1 1 ~}", | |
"{1 ~ ~ ~ 1 1 1 1}", | |
"{1 ~ 1 ~ 1 ~ ~ ~}", | |
"{1 ~ 1 ~ 1 ~ 1 ~}", | |
"{1 ~ 1 ~ 1 ~ 1 1}", | |
"{1 ~ 1 ~ 1 1 1 ~}", | |
"{1 ~ 1 ~ 1 1 1 1}", | |
"{1 ~ 1 1 1 ~ ~ ~}", | |
"{1 ~ 1 1 1 ~ 1 ~}", | |
"{1 ~ 1 1 1 ~ 1 1}", | |
"{1 ~ 1 1 1 1 1 ~}", | |
"{1 ~ 1 1 1 1 1 1}", | |
"{1 1 1 ~ 1 ~ ~ ~}", | |
"{1 1 1 ~ 1 ~ 1 ~}", | |
"{1 1 1 ~ 1 ~ 1 1}", | |
"{1 1 1 ~ 1 1 1 ~}", | |
"{1 1 1 ~ 1 1 1 1}", | |
"{1 1 1 1 1 ~ ~ ~}", | |
"{1 1 1 1 1 ~ 1 ~}", | |
"{1 1 1 1 1 ~ 1 1}", | |
"{1 1 1 1 1 1 1 ~}", | |
"{1 1 1 1 1 1 1 1}", | |
"{1 ~ ~ ~ ~ ~ 1 ~}", | |
"{1 ~ ~ ~ ~ ~ 1 1}", | |
"{1 ~ ~ ~ ~ ~ ~ 1}", | |
"{1 ~ ~ ~ 1 ~ ~ 1}", | |
"{1 ~ ~ 1 1 ~ ~ ~}", | |
"{1 ~ ~ 1 1 ~ 1 ~}", | |
"{1 ~ ~ 1 1 ~ 1 1}", | |
"{1 ~ ~ 1 1 1 1 ~}", | |
"{1 ~ ~ 1 1 1 1 1}", | |
"{1 ~ 1 ~ 1 ~ ~ 1}", | |
"{1 ~ 1 1 1 ~ ~ 1}", | |
"{1 1 1 ~ 1 ~ ~ 1}", | |
"{1 1 1 1 1 ~ ~ 1}", | |
"{1 ~ 1 ~ ~ ~ ~ ~}", | |
"{1 1 1 ~ ~ ~ ~ ~}", | |
"{1 ~ ~ ~ ~ 1 1 1}", | |
"{1 ~ ~ ~ 1 1 ~ ~}", | |
"{1 ~ 1 ~ 1 1 ~ ~}", | |
"{1 ~ 1 1 1 1 ~ ~}", | |
"{1 1 ~ ~ ~ ~ ~ ~}", | |
"{1 1 ~ ~ 1 ~ ~ ~}", | |
"{1 1 ~ ~ 1 ~ 1 ~}", | |
"{1 1 ~ ~ 1 ~ 1 1}", | |
"{1 1 ~ ~ 1 1 1 ~}", | |
"{1 1 ~ ~ 1 1 1 1}", | |
"{1 1 1 ~ 1 1 ~ ~}", | |
"{1 1 1 1 1 1 ~ ~}", | |
"{~ ~ ~ ~ 1 ~ ~ ~}", | |
"{1 1 1 1 ~ ~ ~ ~}", | |
"{~ ~ 1 1 1 ~ ~ ~}", | |
"{~ ~ ~ ~ 1 1 1 ~}", | |
"{~ ~ 1 ~ 1 ~ ~ ~}", | |
"{~ ~ ~ ~ 1 ~ 1 ~}", | |
"{~ ~ ~ 1 1 ~ ~ ~}", | |
"{~ ~ 1 1 1 1 1 ~}", | |
"{1 ~ 1 ~ ~ ~ 1 ~}", | |
"{1 ~ 1 ~ ~ ~ 1 1}", | |
"{1 1 1 ~ ~ ~ 1 ~}", | |
"{1 1 1 ~ ~ ~ 1 1}", | |
"{~ ~ ~ ~ 1 1 ~ ~}", | |
"{1 ~ ~ 1 1 ~ ~ 1}", | |
"{1 ~ ~ ~ ~ 1 1 ~}", | |
"{~ ~ ~ 1 1 1 1 ~}", | |
"{1 ~ 1 ~ ~ ~ ~ 1}", | |
"{1 1 1 ~ ~ ~ ~ 1}", | |
"{~ ~ 1 ~ 1 1 1 ~}", | |
"{~ ~ 1 ~ ~ ~ ~ ~}", | |
"{~ ~ 1 1 1 1 ~ ~}", | |
"{1 1 ~ ~ ~ ~ 1 ~}", | |
"{1 1 ~ ~ ~ ~ 1 1}", | |
"{~ 1 1 1 1 ~ ~ ~}", | |
"{~ ~ ~ ~ ~ ~ 1 ~}", | |
"{~ ~ 1 1 1 ~ 1 ~}", | |
"{~ ~ ~ 1 1 1 ~ ~}", | |
"{1 ~ ~ ~ 1 1 ~ 1}", | |
"{1 ~ ~ 1 1 1 ~ ~}", | |
"{1 ~ 1 ~ 1 1 ~ 1}", | |
"{1 ~ 1 1 1 1 ~ 1}", | |
"{1 1 ~ ~ ~ ~ ~ 1}", | |
"{1 1 ~ ~ 1 ~ ~ 1}", | |
"{1 1 ~ 1 1 ~ ~ ~}", | |
"{1 1 ~ 1 1 ~ 1 ~}", | |
"{1 1 ~ 1 1 ~ 1 1}", | |
"{1 1 ~ 1 1 1 1 ~}", | |
"{1 1 ~ 1 1 1 1 1}", | |
"{1 1 1 ~ 1 1 ~ 1}", | |
"{1 1 1 1 1 1 ~ 1}", | |
"{~ ~ ~ ~ ~ 1 1 ~}", | |
"{1 ~ 1 ~ ~ 1 1 1}", | |
"{1 1 1 ~ ~ 1 1 1}", | |
"{~ ~ 1 ~ 1 ~ 1 ~}", | |
"{~ ~ ~ ~ 1 1 1 1}", | |
"{~ ~ 1 1 ~ ~ ~ ~}", | |
"{1 ~ 1 1 ~ ~ ~ ~}", | |
"{1 1 1 1 ~ ~ 1 ~}", | |
"{1 1 1 1 ~ ~ 1 1}", | |
"{~ ~ ~ ~ ~ 1 ~ ~}", | |
"{1 ~ ~ ~ ~ 1 ~ ~}", | |
"{1 1 ~ ~ ~ 1 1 1}", | |
"{~ 1 1 ~ ~ ~ ~ ~}", | |
"{~ 1 1 1 1 1 1 ~}", | |
"{~ ~ ~ 1 ~ ~ ~ ~}", | |
"{1 ~ ~ 1 ~ ~ ~ ~}", | |
"{1 1 ~ ~ 1 1 ~ ~}", | |
"{1 1 1 1 ~ ~ ~ 1}", | |
"{~ ~ ~ ~ ~ ~ 1 1}", | |
"{~ ~ 1 1 1 1 1 1}", | |
"{~ 1 1 1 1 1 ~ ~}", | |
"{~ 1 ~ ~ ~ ~ ~ ~}", | |
"{~ 1 1 1 1 ~ 1 ~}", | |
"{1 1 1 1 ~ 1 1 1}", | |
"{~ ~ ~ ~ ~ ~ ~ 1}", | |
"{~ ~ ~ 1 1 1 1 1}", | |
"{~ ~ 1 ~ 1 1 1 1}", | |
"{~ ~ ~ 1 1 ~ 1 ~}", | |
"{~ 1 1 1 ~ ~ ~ ~}", | |
"{~ ~ ~ ~ ~ 1 1 1}", | |
"{~ ~ 1 ~ 1 1 ~ ~}", | |
"{1 ~ 1 ~ ~ 1 1 ~}", | |
"{1 1 1 ~ ~ 1 1 ~}", | |
"{~ 1 1 ~ 1 ~ ~ ~}", | |
"{~ 1 1 1 1 1 1 1}", | |
"{~ ~ ~ ~ 1 ~ 1 1}", | |
"{1 ~ 1 1 ~ ~ 1 ~}", | |
"{1 ~ 1 1 ~ ~ 1 1}", | |
"{1 ~ ~ 1 1 1 ~ 1}", | |
"{1 1 ~ 1 1 ~ ~ 1}", | |
"{1 1 ~ ~ ~ 1 1 ~}", | |
"{1 ~ ~ 1 ~ ~ 1 ~}", | |
"{1 ~ ~ 1 ~ ~ 1 1}", | |
"{1 ~ 1 1 ~ ~ ~ 1}", | |
"{1 ~ ~ ~ ~ 1 ~ 1}", | |
"{~ ~ 1 1 1 ~ 1 1}", | |
"{~ 1 1 ~ 1 1 1 ~}", | |
"{1 ~ ~ 1 ~ ~ ~ 1}", | |
"{1 1 ~ ~ 1 1 ~ 1}", | |
"{1 1 ~ 1 1 1 ~ ~}", | |
"{1 ~ 1 ~ ~ 1 ~ ~}", | |
"{1 1 1 ~ ~ 1 ~ ~}", | |
"{1 ~ 1 1 ~ 1 1 1}", | |
"{1 1 1 1 ~ 1 1 ~}", | |
"{~ ~ 1 ~ 1 ~ 1 1}", | |
"{1 ~ ~ 1 ~ 1 1 1}", | |
"{1 1 ~ ~ ~ 1 ~ ~}", | |
"{~ 1 1 ~ 1 ~ 1 ~}", | |
"{1 1 ~ 1 ~ ~ ~ ~}", | |
"{~ 1 ~ ~ 1 ~ ~ ~}", | |
"{1 1 1 1 ~ 1 ~ ~}", | |
"{~ 1 1 1 1 ~ 1 1}", | |
"{~ ~ ~ ~ 1 ~ ~ 1}", | |
"{~ ~ ~ 1 1 ~ 1 1}", | |
"{~ 1 1 ~ 1 1 1 1}", | |
"{~ ~ 1 ~ ~ 1 1 ~}", | |
"{~ ~ 1 ~ ~ ~ 1 ~}", | |
"{~ ~ 1 1 ~ ~ 1 ~}", | |
"{~ 1 ~ ~ 1 1 1 ~}", | |
"{~ ~ 1 1 1 ~ ~ 1}", | |
"{~ 1 1 ~ 1 1 ~ ~}", | |
"{~ ~ 1 ~ ~ 1 ~ ~}", | |
"{~ 1 1 ~ ~ ~ 1 ~}", | |
"{1 ~ 1 1 ~ 1 1 ~}", | |
"{~ ~ ~ 1 ~ ~ 1 ~}", | |
"{~ ~ 1 ~ 1 ~ ~ 1}", | |
"{1 1 ~ 1 1 1 ~ 1}", | |
"{~ 1 ~ ~ 1 ~ 1 ~}", | |
"{~ 1 ~ 1 1 ~ ~ ~}", | |
"{1 ~ 1 ~ ~ 1 ~ 1}", | |
"{1 1 1 ~ ~ 1 ~ 1}", | |
"{~ ~ 1 ~ ~ ~ 1 1}", | |
"{1 ~ ~ 1 ~ 1 1 ~}", | |
"{~ 1 ~ ~ ~ ~ 1 ~}", | |
"{~ 1 ~ ~ 1 1 ~ ~}", | |
"{~ ~ ~ 1 1 ~ ~ 1}", | |
"{1 1 ~ 1 ~ ~ 1 ~}", | |
"{1 1 ~ 1 ~ ~ 1 1}", | |
"{~ ~ 1 1 ~ 1 1 ~}", | |
"{~ ~ 1 ~ ~ ~ ~ 1}", | |
"{~ ~ ~ ~ 1 1 ~ 1}", | |
"{1 1 ~ ~ ~ 1 ~ 1}", | |
"{~ 1 ~ 1 1 1 1 ~}", | |
"{~ 1 1 ~ ~ 1 1 ~}", | |
"{1 1 ~ 1 ~ ~ ~ 1}", | |
"{~ ~ ~ 1 ~ 1 1 ~}", | |
"{~ ~ 1 1 ~ 1 ~ ~}", | |
"{1 ~ 1 1 ~ 1 ~ ~}", | |
"{~ 1 1 1 ~ ~ 1 ~}", | |
"{~ ~ 1 1 1 1 ~ 1}", | |
"{~ 1 1 1 1 ~ ~ 1}", | |
"{~ ~ 1 ~ ~ 1 1 1}", | |
"{~ 1 ~ 1 1 1 ~ ~}", | |
"{~ 1 1 ~ ~ 1 ~ ~}", | |
"{~ 1 ~ ~ ~ 1 1 ~}", | |
"{~ ~ ~ 1 ~ 1 ~ ~}", | |
"{1 ~ ~ 1 ~ 1 ~ ~}", | |
"{1 1 ~ 1 ~ 1 1 1}", | |
"{1 1 1 1 ~ 1 ~ 1}", | |
"{~ ~ 1 1 ~ ~ 1 1}", | |
"{~ 1 ~ ~ 1 1 1 1}", | |
"{~ ~ ~ 1 1 1 ~ 1}", | |
"{~ 1 1 ~ 1 ~ 1 1}", | |
"{~ 1 1 ~ ~ ~ 1 1}", | |
"{~ 1 ~ ~ ~ 1 ~ ~}", | |
"{~ ~ 1 1 ~ ~ ~ 1}", | |
"{~ ~ ~ 1 ~ ~ 1 1}", | |
"{~ 1 ~ 1 ~ ~ ~ ~}", | |
"{~ 1 1 1 ~ 1 1 ~}", | |
"{~ ~ ~ ~ ~ 1 ~ 1}", | |
"{~ 1 1 ~ ~ ~ ~ 1}", | |
"{~ ~ ~ 1 ~ ~ ~ 1}", | |
"{~ 1 ~ ~ ~ ~ 1 1}", | |
"{~ ~ 1 1 ~ 1 1 1}", | |
"{~ 1 1 1 ~ 1 ~ ~}", | |
"{~ 1 ~ ~ ~ ~ ~ 1}", | |
"{~ 1 ~ 1 1 1 1 1}", | |
"{~ 1 1 1 1 1 ~ 1}", | |
"{~ 1 1 ~ ~ 1 1 1}", | |
"{~ ~ ~ 1 ~ 1 1 1}", | |
"{~ 1 ~ 1 1 ~ 1 ~}", | |
"{~ 1 1 1 ~ ~ 1 1}", | |
"{~ 1 ~ ~ ~ 1 1 1}", | |
"{~ 1 1 1 ~ ~ ~ 1}", | |
"{~ ~ 1 ~ 1 1 ~ 1}", | |
"{1 ~ 1 1 ~ 1 ~ 1}", | |
"{1 1 ~ 1 ~ 1 1 ~}", | |
"{~ 1 ~ ~ 1 ~ 1 1}", | |
"{~ 1 1 1 ~ 1 1 1}", | |
"{~ 1 1 ~ 1 ~ ~ 1}", | |
"{1 ~ ~ 1 ~ 1 ~ 1}", | |
"{1 1 ~ 1 ~ 1 ~ ~}", | |
"{~ 1 ~ ~ 1 ~ ~ 1}", | |
"{~ 1 ~ 1 1 ~ 1 1}", | |
"{~ 1 ~ 1 ~ ~ 1 ~}", | |
"{~ 1 1 ~ 1 1 ~ 1}", | |
"{~ ~ 1 ~ ~ 1 ~ 1}", | |
"{1 1 ~ 1 ~ 1 ~ 1}", | |
"{~ 1 ~ 1 1 ~ ~ 1}", | |
"{~ 1 ~ ~ 1 1 ~ 1}", | |
"{~ 1 ~ 1 ~ 1 1 ~}", | |
"{~ ~ 1 1 ~ 1 ~ 1}", | |
"{~ 1 ~ 1 ~ 1 ~ ~}", | |
"{~ 1 ~ 1 1 1 ~ 1}", | |
"{~ 1 1 ~ ~ 1 ~ 1}", | |
"{~ ~ ~ 1 ~ 1 ~ 1}", | |
"{~ 1 ~ 1 ~ ~ 1 1}", | |
"{~ 1 ~ ~ ~ 1 ~ 1}", | |
"{~ 1 ~ 1 ~ ~ ~ 1}", | |
"{~ 1 ~ 1 ~ 1 1 1}", | |
"{~ 1 1 1 ~ 1 ~ 1}", | |
"{~ 1 ~ 1 ~ 1 ~ 1}" | |
] | |
-- [1] Sioros, G., & Guedes, C. (2011). Complexity Driven Recombination of MIDI Loops. Int. Society for Music Information Retrieval Conference, (Ismir), 381–386. http://doi.org/10.3389/fpsyg.2014.01036 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Howabout something like the below, so you can do e.g.:
d1 $ metre "[4 100 128 50]/4" $ sound "cp"
ord1 $ metre (slow 128 $ run 128) $ sound "cp"