packages feed

csound-expression 4.4 → 4.4.1

raw patch · 4 files changed

+44/−43 lines, 4 filesdep ~csound-expression-typedPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: csound-expression-typed

API changes (from Hackage documentation)

- Csound.IO: instance (Sigs a, Sigs b) => RenderCsd (a -> b)
- Csound.IO: instance RenderCsd (SE (Sig, Sig))
- Csound.IO: instance RenderCsd (SE (Sig, Sig, Sig, Sig))
- Csound.IO: instance RenderCsd (SE (Sig, Sig, Sig, Sig, Sig, Sig))
- Csound.IO: instance RenderCsd (SE (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig))
- Csound.IO: instance RenderCsd (Sig, Sig)
- Csound.IO: instance RenderCsd (Sig, Sig, Sig, Sig)
- Csound.IO: instance RenderCsd (Sig, Sig, Sig, Sig, Sig, Sig)
- Csound.IO: instance RenderCsd (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)
- Csound.Options: WinmmMidi :: Rtmidi
+ Csound.IO: instance RenderCsd (SE (Sig8, Sig8))
+ Csound.IO: instance RenderCsd (SE (Sig8, Sig8, Sig8, Sig8))
+ Csound.IO: instance RenderCsd (SE Sig2)
+ Csound.IO: instance RenderCsd (SE Sig4)
+ Csound.IO: instance RenderCsd (SE Sig6)
+ Csound.IO: instance RenderCsd (SE Sig8)
+ Csound.IO: instance RenderCsd (Sig8, Sig8)
+ Csound.IO: instance RenderCsd (Sig8, Sig8, Sig8, Sig8)
+ Csound.IO: instance RenderCsd Sig2
+ Csound.IO: instance RenderCsd Sig4
+ Csound.IO: instance RenderCsd Sig6
+ Csound.IO: instance RenderCsd Sig8
+ Csound.IO: instance Sigs a => RenderCsd (a -> (Sig8, Sig8))
+ Csound.IO: instance Sigs a => RenderCsd (a -> (Sig8, Sig8, Sig8, Sig8))
+ Csound.IO: instance Sigs a => RenderCsd (a -> Sig)
+ Csound.IO: instance Sigs a => RenderCsd (a -> Sig2)
+ Csound.IO: instance Sigs a => RenderCsd (a -> Sig4)
+ Csound.IO: instance Sigs a => RenderCsd (a -> Sig6)
+ Csound.IO: instance Sigs a => RenderCsd (a -> Sig8)
+ Csound.Options: CoreMidi :: Rtmidi
+ Csound.Options: WinmmeMidi :: Rtmidi

Files

csound-expression.cabal view
@@ -1,5 +1,5 @@ Name:          csound-expression-Version:       4.4+Version:       4.4.1 Cabal-Version: >= 1.6 License:       BSD3 License-file:  LICENSE@@ -68,7 +68,7 @@   Ghc-Options:    -Wall   Build-Depends:         base >= 4, base < 5, process, data-default, Boolean >= 0.1.0, colour >= 2.0,-        csound-expression-typed >= 0.0.7.0, csound-expression-opcodes >= 0.0.1+        csound-expression-typed >= 0.0.7.1, csound-expression-opcodes >= 0.0.1   Hs-Source-Dirs:      src/   Exposed-Modules:         Csound.Base
src/Csound/Air/Wav.hs view
@@ -182,13 +182,15 @@     deriving (Show, Eq, Enum)  -- | Loads the sample in the table. The sample should be short. The size of the table is limited.--- It's up to 6 minutes for +-- It's up to 3 minutes for 44100 sample rate (sr), 2.9 minutes for 48000 sr, 1.4 minutes for 96000 sr. ramSnd :: LoopMode -> Sig -> String -> Sig2 ramSnd loopMode speed file = loscil3 1 speed t `withDs` [1, int $ fromEnum loopMode]     where t              | isMp3 file = mp3s file 0             | otherwise  = wavs file 0 0 +-- | Loads the sample in the table. The sample should be short. The size of the table is limited.+-- It's up to 6 minutes for 44100 sample rate (sr), 5.9 minutes for 48000 sr, 2.8 minutes for 96000 sr. ramSnd1 :: LoopMode -> Sig -> String -> Sig ramSnd1 loopMode speed file      | isMp3 file = (\(aleft, aright) -> 0.5 * (aleft + aright)) $ loscil3 1 speed (mp3s file 0) `withDs` [1, int $ fromEnum loopMode]
src/Csound/IO.hs view
@@ -44,10 +44,10 @@ import Data.Monoid import Data.Default import Csound.Typed-import Csound.Types(Sig2, Sig4)+import Csound.Types(Sig2, Sig4, Sig6, Sig8) import Csound.Control.Gui -import Csound.Options(setSilent, setMa)+import Csound.Options(setSilent, setMa, setDac)  render :: Sigs a => Options -> SE a -> IO String render = renderOutBy @@ -64,61 +64,66 @@ instance RenderCsd Sig where     renderCsdBy opt a = render opt (return a) -instance RenderCsd (Sig, Sig) where+instance RenderCsd Sig2 where     renderCsdBy opt a = render opt (return a) -instance RenderCsd (Sig, Sig, Sig, Sig) where+instance RenderCsd Sig4 where     renderCsdBy opt a = render opt (return a) -instance RenderCsd (Sig, Sig, Sig, Sig, Sig, Sig) where+instance RenderCsd Sig6 where     renderCsdBy opt a = render opt (return a) -instance RenderCsd (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig) where+instance RenderCsd Sig8 where     renderCsdBy opt a = render opt (return a)-{--instance RenderCsd -    ( (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)-    , (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig) ) where  ++instance RenderCsd (Sig8, Sig8) where       renderCsdBy opt a = render opt (return a) -instance RenderCsd -    ( (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)-    , (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)-    , (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)-    , (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig) ) where  +instance RenderCsd (Sig8, Sig8, Sig8, Sig8) where       renderCsdBy opt a = render opt (return a)--}+ instance RenderCsd (SE Sig) where     renderCsdBy opt a = render opt a -instance RenderCsd (SE (Sig, Sig)) where+instance RenderCsd (SE Sig2) where     renderCsdBy opt a = render opt a -instance RenderCsd (SE (Sig, Sig, Sig, Sig)) where+instance RenderCsd (SE Sig4) where     renderCsdBy opt a = render opt a -instance RenderCsd (SE (Sig, Sig, Sig, Sig, Sig, Sig)) where+instance RenderCsd (SE Sig6) where     renderCsdBy opt a = render opt a -instance RenderCsd (SE (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)) where+instance RenderCsd (SE Sig8) where     renderCsdBy opt a = render opt a -{--instance RenderCsd (SE -    ( (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)-    , (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig) )) where  +instance RenderCsd (SE (Sig8, Sig8)) where       renderCsdBy opt a = render opt a -instance RenderCsd (SE -    ( (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)-    , (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)-    , (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)-    , (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig) )) where  +instance RenderCsd (SE (Sig8, Sig8, Sig8, Sig8)) where       renderCsdBy opt a = render opt a--}-instance (Sigs a, Sigs b) => RenderCsd (a -> b) where++instance (Sigs a) => RenderCsd (a -> Sig) where     renderCsdBy opt f = renderEffBy opt (return . f) +instance (Sigs a) => RenderCsd (a -> Sig2) where+    renderCsdBy opt f = renderEffBy opt (return . f)++instance (Sigs a) => RenderCsd (a -> Sig4) where+    renderCsdBy opt f = renderEffBy opt (return . f)++instance (Sigs a) => RenderCsd (a -> Sig6) where+    renderCsdBy opt f = renderEffBy opt (return . f)++instance (Sigs a) => RenderCsd (a -> Sig8) where+    renderCsdBy opt f = renderEffBy opt (return . f)++instance (Sigs a) => RenderCsd (a -> (Sig8, Sig8)) where+    renderCsdBy opt f = renderEffBy opt (return . f)++instance (Sigs a) => RenderCsd (a -> (Sig8, Sig8, Sig8, Sig8)) where+    renderCsdBy opt f = renderEffBy opt (return . f)+ instance (Sigs a, Sigs b) => RenderCsd (a -> SE b) where     renderCsdBy opt f = renderEffBy opt f @@ -211,7 +216,7 @@     where phi file = do             runWithUserInterrupt $ player ++ " " ++ file --- | Renders csound code to file @tmp.csd@ and plays it with @-odac@ option+-- | Renders csound code to file @tmp.csd@ with flags set to @-odac@ and @-Ma@ -- (sound output goes to soundcard in real time). dac :: (RenderCsd a) => a -> IO () dac = dacBy def@@ -220,8 +225,8 @@ dacBy :: (RenderCsd a) => Options -> a -> IO () dacBy opt' a = do     writeCsdBy opt "tmp.csd" a-    runWithUserInterrupt $ "csound -odac " ++ "tmp.csd" -    where opt = opt' <> setMa +    runWithUserInterrupt $ "csound " ++ "tmp.csd" +    where opt = opt' <> (setMa <> setDac)  -- | Output to dac with virtual midi keyboard. vdac :: (RenderCsd a) => a -> IO ()
src/Csound/Types.hs view
@@ -78,12 +78,6 @@ import Data.Boolean import Csound.Typed.Types -type Sig2 = (Sig, Sig)-type Sig3 = (Sig, Sig, Sig)-type Sig4 = (Sig, Sig, Sig, Sig)-type Sig6 = (Sig, Sig, Sig, Sig, Sig, Sig)-type Sig8 = (Sig, Sig, Sig, Sig, Sig, Sig, Sig, Sig)- -- | Gets an init-rate value from the list by index. atArg :: (Tuple a, Arg a) => [a] -> D -> a atArg as ind = guardedArg (zip (fmap (\x -> int x ==* ind) [0 .. ]) as) (head as)