tidal 0.9.5 → 0.9.6
raw patch · 9 files changed
+147/−7 lines, 9 filesdep ~hosc
Dependency ranges changed: hosc
Files
- CHANGELOG.md +6/−0
- Sound/Tidal/Chords.hs +55/−0
- Sound/Tidal/Context.hs +5/−2
- Sound/Tidal/Dirt.hs +1/−1
- Sound/Tidal/Scales.hs +75/−0
- Sound/Tidal/SuperCollider.hs +1/−1
- Sound/Tidal/Tempo.hs +1/−0
- Sound/Tidal/Version.hs +1/−1
- tidal.cabal +2/−2
CHANGELOG.md view
@@ -1,5 +1,11 @@ # TidalCycles log of changes +## 0.96++### Enhancements++* Added `chord` for chord patterns and `scaleP` for scale patterns+ ## 0.9.5 ### Enhancements
Sound/Tidal/Chords.hs view
@@ -104,3 +104,58 @@ -- will create a pattern of a C-major chord followed by a G-minor chord. enchord :: Num a => [[a]] -> Pattern a -> Pattern Int -> Pattern a enchord chords pn pc = flatpat $ (chordate chords) <$> pn <*> pc++chordTable :: Num a => [(String, [a])]+chordTable = [("major", major),+ ("minor", minor),+ ("major7", major7),+ ("dom7", dom7),+ ("minor7", minor7),+ ("aug", aug),+ ("dim", dim),+ ("dim7", dim7),+ ("one", one),+ ("five", five),+ ("plus", plus),+ ("sharp5", sharp5),+ ("msharp5", msharp5),+ ("sus2", sus2),+ ("sus4", sus4),+ ("six", six),+ ("m6", m6),+ ("sevenSus2", sevenSus2),+ ("sevenSus4", sevenSus4),+ ("sevenFlat5", sevenFlat5),+ ("m7flat5", m7flat5),+ ("sevenSharp5", sevenSharp5),+ ("m7sharp5", m7sharp5),+ ("nine", nine),+ ("m9", m9),+ ("m7sharp9", m7sharp9),+ ("maj9", maj9),+ ("nineSus4", nineSus4),+ ("sixby9", sixby9),+ ("m6by9", m6by9),+ ("sevenFlat9", sevenFlat9),+ ("m7flat9", m7flat9),+ ("sevenFlat10", sevenFlat10),+ ("nineSharp5", nineSharp5),+ ("m9sharp5", m9sharp5),+ ("sevenSharp5flat9", sevenSharp5flat9),+ ("m7sharp5flat9", m7sharp5flat9),+ ("eleven", eleven),+ ("m11", m11),+ ("maj11", maj11),+ ("evelenSharp", evelenSharp),+ ("m11sharp", m11sharp),+ ("thirteen", thirteen),+ ("m13", m13)+ ]++chordL :: Num a => Pattern String -> Pattern [a]+chordL p = (\name -> fromMaybe [] $ lookup name chordTable) <$> p++-- | @chord p@ turns a pattern of chord names into a pattern of+-- numbers, representing note value offsets for the chords+chord :: Num a => Pattern String -> Pattern a+chord p = flatpat $ chordL p
Sound/Tidal/Context.hs view
@@ -18,6 +18,9 @@ import Sound.Tidal.Params as C import Sound.Tidal.Transition as C import Sound.Tidal.Version as C-import qualified Sound.Tidal.Scales as Scales-import qualified Sound.Tidal.Chords as Chords+import Sound.Tidal.Chords as C (chord)+import Sound.Tidal.Scales as C (scaleP)++import qualified Sound.Tidal.Scales as C.Scales+import qualified Sound.Tidal.Chords as C.Chords
Sound/Tidal/Dirt.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE NoMonomorphismRestriction #-} module Sound.Tidal.Dirt where -import Sound.OSC.FD (Datum)+import Sound.OSC.Datum (Datum) import qualified Data.Map as Map import Control.Applicative import Control.Concurrent.MVar
Sound/Tidal/Scales.hs view
@@ -1,5 +1,11 @@ module Sound.Tidal.Scales where +import Data.Maybe++import Sound.Tidal.Pattern+import Sound.Tidal.Utils+import Control.Applicative+ -- five notes scales minPent :: Num a => [a] minPent = [0,3,5,7,10]@@ -147,3 +153,72 @@ -- 12 note scales chromatic :: Num a => [a] chromatic = [0,1,2,3,4,5,6,7,8,9,10,11]++scaleP :: Pattern String -> Pattern Int -> Pattern Int+scaleP sp p = (\n scaleName -> noteInScale (fromMaybe [0] $ lookup scaleName scaleTable) n) <$> p <*> sp+ where octave s x = x `div` (length s)+ noteInScale s x = (s !!! x) + (12 * octave s x)++scaleTable :: Num a => [(String, [a])]+scaleTable = [("minPent", minPent),+ ("majPent", majPent),+ ("ritusen", ritusen),+ ("egyptian", egyptian),+ ("kumai", kumai),+ ("hirajoshi", hirajoshi),+ ("iwato", iwato),+ ("chinese", chinese),+ ("indian", indian),+ ("pelog", pelog),+ ("prometheus", prometheus),+ ("scriabin", scriabin),+ ("gong", gong),+ ("shang", shang),+ ("jiao", jiao),+ ("zhi", zhi),+ ("yu", yu),+ ("whole", whole),+ ("augmented", augmented),+ ("augmented2", augmented2),+ ("hexMajor7", hexMajor7),+ ("hexDorian", hexDorian),+ ("hexPhrygian", hexPhrygian),+ ("hexSus", hexSus),+ ("hexMajor6", hexMajor6),+ ("hexAeolian", hexAeolian),+ ("major", major),+ ("ionian", ionian),+ ("dorian", dorian),+ ("phrygian", phrygian),+ ("lydian", lydian),+ ("mixolydian", mixolydian),+ ("aeolian", aeolian),+ ("minor", minor),+ ("locrian", locrian),+ ("harmonicMinor", harmonicMinor),+ ("harmonicMajor", harmonicMajor),+ ("melodicMinor", melodicMinor),+ ("melodicMinorDesc", melodicMinorDesc),+ ("melodicMajor", melodicMajor),+ ("bartok", bartok),+ ("hindu", hindu),+ ("todi", todi),+ ("purvi", purvi),+ ("marva", marva),+ ("bhairav", bhairav),+ ("ahirbhairav", ahirbhairav),+ ("superLocrian", superLocrian),+ ("romanianMinor", romanianMinor),+ ("hungarianMinor", hungarianMinor),+ ("neapolitanMinor", neapolitanMinor),+ ("enigmatic", enigmatic),+ ("spanish", spanish),+ ("leadingWhole", leadingWhole),+ ("lydianMinor", lydianMinor),+ ("neapolitanMajor", neapolitanMajor),+ ("locrianMajor", locrianMajor),+ ("diminished", diminished),+ ("diminished2", diminished2),+ ("chromatic", chromatic)+ ]+
Sound/Tidal/SuperCollider.hs view
@@ -5,7 +5,7 @@ import Sound.Tidal.Stream import Sound.Tidal.Pattern import Sound.Tidal.Parse-import Sound.OSC.FD+import Sound.OSC.Datum import Sound.Tidal.OscStream supercollider :: [Param] -> Double -> Shape
Sound/Tidal/Tempo.hs view
@@ -20,6 +20,7 @@ import System.Environment (lookupEnv) import qualified System.IO.Error as Error import GHC.Conc.Sync (ThreadId)+import Sound.OSC.Datum.Datem import Sound.OSC.FD import Sound.Tidal.Utils
Sound/Tidal/Version.hs view
@@ -1,4 +1,4 @@ module Sound.Tidal.Version where -tidal_version = "0.9.5"+tidal_version = "0.9.6"
tidal.cabal view
@@ -1,5 +1,5 @@ name: tidal-version: 0.9.5+version: 0.9.6 synopsis: Pattern language for improvised music -- description: homepage: http://tidalcycles.org/@@ -46,7 +46,7 @@ , containers , hashable , colour- , hosc > 0.13, hosc <= 0.15+ , hosc >= 0.16 , text , mersenne-random-pure64 , time