csound-expression 4.2.0 → 4.2.1
raw patch · 2 files changed
+45/−2 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Csound.Air.Misc: gaussVol :: SigSpace a => D -> a -> SE a
+ Csound.Air.Misc: rndPan :: Sig -> SE Sig2
+ Csound.Air.Misc: rndPan2 :: Sig2 -> SE Sig2
+ Csound.Air.Misc: rndVol :: SigSpace a => (D, D) -> a -> SE a
+ Csound.Air.Misc: writeHifi :: D -> String -> SE Sig2 -> IO ()
Files
- csound-expression.cabal +1/−1
- src/Csound/Air/Misc.hs +44/−1
csound-expression.cabal view
@@ -1,5 +1,5 @@ Name: csound-expression-Version: 4.2.0+Version: 4.2.1 Cabal-Version: >= 1.6 License: BSD3 License-file: LICENSE
src/Csound/Air/Misc.hs view
@@ -3,7 +3,11 @@ mean, vibrate, randomPitch, chorusPitch, resons, resonsBy, modes, dryWet, once, onceBy, several, fromMono, -- * List functions- odds, evens+ odds, evens,+ -- * Random functions+ rndPan, rndPan2, rndVol, gaussVol, + -- * Saving to file+ writeHifi ) where import Data.Boolean@@ -12,6 +16,10 @@ import Csound.Typed.Opcode import Csound.Air.Wave import Csound.Air.Filter+import Csound.SigSpace+import Csound.IO(writeSndBy)+import Csound.Options(setRates)+import Csound.Types(Sig2) -------------------------------------------------------------------------- -- patterns@@ -121,3 +129,38 @@ -- | Doubles the mono signal to get the stereo signal. fromMono :: Sig -> (Sig, Sig) fromMono a = (a, a)+++-- | Random panning+rndPan2 :: Sig2 -> SE Sig2+rndPan2 (a, b) = rndPan $ mean [a, b]++-- | Random panning+rndPan :: Sig -> SE Sig2+rndPan a = do + return $ pan2 a (sig $ rnd (1 :: D))++-- | Random volume (with gauss distribution)+-- +-- > gaussVol radiusOfDistribution+gaussVol :: SigSpace a => D -> a -> SE a+gaussVol k a = do+ level <- fmap ir $ gauss (sig k)+ return $ mul (sig $ level + 1) a++-- | Random volume+-- +-- > gaussVol (minVolume, maxVolume)+rndVol :: SigSpace a => (D, D) -> a -> SE a+rndVol (kMin, kMax) a = do+ let level = rnd (1 :: D)+ return $ mul (sig $ kMin + (kMax - kMin) * level) a+++-- | Hi-fi output for stereo signals. Saves the stereo signal to file.+-- The length of the file is defined in seconds.+--+-- > writeHifi fileLength fileName asig+writeHifi :: D -> String -> SE Sig2 -> IO ()+writeHifi n fileName a = writeSndBy (setRates 48000 10) fileName $ fmap (setDur $ n) a+