packages feed

temporal-media 0.5.0 → 0.6.0

raw patch · 3 files changed

+24/−19 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Temporal.Class: class Harmony a where a =:= b = har [a, b] har = foldl1 (=:=)
+ Temporal.Class: class Melody a where a +:+ b = mel [a, b] mel = foldl1 (+:+)
+ Temporal.Media: instance (Num t, IfB t, OrdB t) => Harmony (Track t a)
+ Temporal.Media: instance (Num t, IfB t, OrdB t) => Melody (Track t a)
- Temporal.Class: (+:+) :: Compose a => a -> a -> a
+ Temporal.Class: (+:+) :: Melody a => a -> a -> a
- Temporal.Class: (=:=) :: Compose a => a -> a -> a
+ Temporal.Class: (=:=) :: Harmony a => a -> a -> a
- Temporal.Class: class Compose a where a =:= b = har [a, b] a +:+ b = mel [a, b] har = foldl1 (=:=) mel = foldl1 (+:+)
+ Temporal.Class: class (Melody a, Harmony a) => Compose a
- Temporal.Class: class Compose a => Rest a
+ Temporal.Class: class Rest a
- Temporal.Class: har :: Compose a => [a] -> a
+ Temporal.Class: har :: Harmony a => [a] -> a
- Temporal.Class: harMap :: Compose b => (a -> b) -> [a] -> b
+ Temporal.Class: harMap :: Harmony b => (a -> b) -> [a] -> b
- Temporal.Class: loopBy :: Compose a => Int -> a -> a
+ Temporal.Class: loopBy :: Melody a => Int -> a -> a
- Temporal.Class: mel :: Compose a => [a] -> a
+ Temporal.Class: mel :: Melody a => [a] -> a
- Temporal.Class: melMap :: Compose b => (a -> b) -> [a] -> b
+ Temporal.Class: melMap :: Melody b => (a -> b) -> [a] -> b

Files

src/Temporal/Class.hs view
@@ -1,6 +1,7 @@ {-# Language TypeFamilies #-} module Temporal.Class(-	DurOf, Duration(..), Compose(..), loopBy, melMap, harMap, +	DurOf, Duration(..), Melody(..), Harmony(..), Compose(..), +	loopBy, melMap, harMap,  	Delay(..), (+|), 	Rest(..), Stretch(..), (*|), Limit(..),  	Loop(..)@@ -13,27 +14,30 @@ -- | Duration for the given type. type family DurOf a :: * -class Compose a where+class Melody a where 	-- | Sequent composition for a list of values (melody).  	mel :: [a] -> a+	-- | Sequent composition. Play first track then second.+	(+:+) :: a -> a -> a +	a +:+ b = mel [a, b]+	mel = foldl1 (+:+)++class Harmony a where 	-- | Parallel composition for a list of values (harmony).  	har :: [a] -> a-	-	-- | Sequent composition. Play first track then second.-	(+:+) :: a -> a -> a  	-- | Parallel composition. Play two tracks simultaneously. 	(=:=) :: a -> a -> a  	a =:= b = har [a, b]-	a +:+ b = mel [a, b]- 	har = foldl1 (=:=)-	mel = foldl1 (+:+) ++class (Melody a, Harmony a) => Compose a where+ -- | Repeats the given audio segment several times.-loopBy :: Compose a => Int -> a -> a+loopBy :: Melody a => Int -> a -> a loopBy n = mel . replicate n  class Delay a where@@ -52,7 +56,7 @@ (*|) :: Stretch a => DurOf a -> a -> a (*|) = str -class Compose a => Rest a where+class Rest a where 	rest :: DurOf a -> a  class Limit a where@@ -63,11 +67,10 @@ 	-- | Loops over the sound 	loop :: a -> a - -- | Transforms a sequence and then applies a mel.-melMap :: (Compose b) => (a -> b) -> [a] -> b+melMap :: (Melody b) => (a -> b) -> [a] -> b melMap f xs = mel $ fmap f xs  -- | Transforms a sequence and then applies a har.-harMap :: (Compose b) => (a -> b) -> [a] -> b+harMap :: (Harmony b) => (a -> b) -> [a] -> b harMap f xs = har $ fmap f xs
src/Temporal/Media.hs view
@@ -98,13 +98,15 @@ (=:/) :: (Real t, IfB t, OrdB t) => Track t a -> Track t a -> Track t a a =:/ b = slice 0 (dur a `minB` dur b) $ a <> b --- | Parallel composition on list of tracks (short for harmony).-instance (Num t, IfB t, OrdB t) => Compose (Track t a) where-    har = mconcat+instance (Num t, IfB t, OrdB t) => Melody (Track t a) where     mel = foldr (+:+) nil--    a =:= b = a <> b     a +:+ b = a <> del (dur a) b++instance (Num t, IfB t, OrdB t) => Harmony (Track t a) where+    har = mconcat+    a =:= b = a <> b   ++instance (Num t, IfB t, OrdB t) => Compose (Track t a) where   -- | Turncating parallel composition on list of tracks. harT :: (Real t, IfB t, OrdB t) => [Track t a] -> Track t a
temporal-media.cabal view
@@ -1,5 +1,5 @@ Name:          temporal-media-Version:       0.5.0+Version:       0.6.0 License-file:  LICENSE Cabal-Version: >= 1.6 License:       BSD3