summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonKholomiov <>2018-04-25 11:02:00 (GMT)
committerhdiff <hdiff@hdiff.luite.com>2018-04-25 11:02:00 (GMT)
commit3fb70eae38ab957618a1b756ee12f1aa9bf3e94c (patch)
treee79f5e70b4071ce235cd8ac48f70303882d9f535
parent7a0206ddaa1fb9bb6353cc830ae03a2e8737ce08 (diff)
version 0.7.20.7.2
-rw-r--r--csound-catalog.cabal4
-rw-r--r--src/Csound/Catalog/Drum/Hm.hs48
-rw-r--r--src/Csound/Catalog/Drum/MiniPops.hs66
-rw-r--r--src/Csound/Catalog/Drum/Tr808.hs72
-rw-r--r--src/Csound/Catalog/Wave/Sean.hs52
-rw-r--r--src/Csound/Patch.hs268
6 files changed, 255 insertions, 255 deletions
diff --git a/csound-catalog.cabal b/csound-catalog.cabal
index f3ee43d..4ce4df7 100644
--- a/csound-catalog.cabal
+++ b/csound-catalog.cabal
@@ -1,5 +1,5 @@
Name: csound-catalog
-Version: 0.7.1
+Version: 0.7.2
Cabal-Version: >= 1.6
License: BSD3
License-file: LICENSE
@@ -27,7 +27,7 @@ Source-repository head
Library
Ghc-Options: -Wall
Build-Depends:
- base >= 4, base < 5, transformers >= 0.3, csound-expression >= 5.2.2, csound-sampler >=0.0.8.1, sharc-timbre
+ base >= 4, base < 5, transformers >= 0.3, csound-expression >= 5.3.2, csound-sampler >=0.0.9.0, sharc-timbre
Hs-Source-Dirs: src/
Exposed-Modules:
Csound.Catalog
diff --git a/src/Csound/Catalog/Drum/Hm.hs b/src/Csound/Catalog/Drum/Hm.hs
index bd688f3..ee0f7f3 100644
--- a/src/Csound/Catalog/Drum/Hm.hs
+++ b/src/Csound/Catalog/Drum/Hm.hs
@@ -3,15 +3,15 @@ module Csound.Catalog.Drum.Hm(
-- * Subtractive
dumb, dumbBass, pluckSnare, sortaKnockSweep, metalBoink,
- -- * Fullkit
+ -- * Fullkit
-- ** Non-pitched drums
- snare, openHihat, closedHihat,
+ snare, openHihat, closedHihat,
-- ** Pitched drums
--
-- The instrument turns a pitch (in Hz) to the signal.
- bassDrum, crash, handClap,
+ bassDrum, crash, handClap,
bassDrum', crash', handClap',
-- * Sampler
@@ -21,7 +21,7 @@ module Csound.Catalog.Drum.Hm(
import Csound.Base
import Csound.Sam
--- subtractive
+-- subtractive
bpb :: Sig -> Sig -> Sig -> Sig
bpb cfq q asig = balance (bp cfq q asig) asig
@@ -44,9 +44,9 @@ dumb = (toDrum =<<) $ fmap (bpb 1000 100) $ rand $ expseg [0.0001, 0.01, 1, 0.04
dumbBass :: SE Sig
dumbBass = (toDrum =<<) $ fmap (bpb kfreqenv (kfreqenv / 8)) $ rand $ expseg [0.0001, 0.01, 1, 0.08, 0.01]
where kfreqenv = expseg [50, 0.01, 200, 0.08, 50]
-
-pluckSnare :: SE Sig
-pluckSnare = toDrum $ pluck kampenv4 kptchenv 50 (elins [1, 1]) 4 `withDs` [0.8, 3]
+
+pluckSnare :: SE Sig
+pluckSnare = toDrum $ pluck kampenv4 kptchenv 50 (elins [1, 1]) 4 `withDs` [0.8, 3]
where
kampenv4 = linseg [0, 0.001, 1, xdur - 0.21, 1, 0.02, 0]
kptchenv = linseg [100, 0.01, 300, 0.2, 200, 0.01, 200]
@@ -57,16 +57,16 @@ sortaKnockSweep :: SE Sig
sortaKnockSweep = (toDrum =<<) $
fmap (resonsBy bpb
[ (kfreqenv41, kfreqenv41 / 8)
- , (kfreqenv42, kfreqenv42 / 4)
+ , (kfreqenv42, kfreqenv42 / 4)
]
) $ rand kampenv4
where
kfreqenv41 = expseg [ 50, 0.01, 200, 0.08, 50]
- kfreqenv42 = linseg [ 150, 0.01, 1000, 0.08, 250]
- kampenv4 = linseg [ 0, 0.01, 1, 0.08, 0, 0.01, 0]
+ kfreqenv42 = linseg [ 150, 0.01, 1000, 0.08, 250]
+ kampenv4 = linseg [ 0, 0.01, 1, 0.08, 0, 0.01, 0]
metalBoink :: SE Sig
-metalBoink = toDrum $ foscil kampenv61 30 1 6.726 kampenv62 sine
+metalBoink = toDrum $ foscil kampenv61 30 1 6.726 kampenv62 sine
where
kampenv61 = expseg [ 0.01, 0.01, 1, 0.2, 0.1, 0.1, 0.001 ]
kampenv62 = linseg [ 1, 0.1, 10, 0.1, 0.5, 0.01, 1 ]
@@ -78,7 +78,7 @@ bassDrum = bassDrum' 64
bassDrum' :: D -> SE Sig
bassDrum' cps = toDrum $ env * osc (sig cps * kgliss * 0.5)
where env = linseg [0, 0.00245, 1, 0.1225, 0]
- kgliss = expseg [10, 0.625, 1, 0.25, 1]
+ kgliss = expseg [10, 0.625, 1, 0.25, 1]
openHihat :: SE Sig
@@ -100,9 +100,9 @@ snare = toDrum =<< do
asound <- rand 1
let as1 = butbp asound 210 55
return $ kenv2 * (as1 * 0.9 + asound * 0.8 * kenv1)
- where
+ where
kenv1 = linseg [0, 0.00176, 1, 0.1232, 0]
- kenv2 = expseg [0.01, 0.0002, 1, 0.0297, 0.01, 0.09, 0.01]
+ kenv2 = expseg [0.01, 0.0002, 1, 0.0297, 0.01, 0.09, 0.01]
crash = crash' $ cpspch 13.05
@@ -115,7 +115,7 @@ crash' cps = toDrum =<< do
kenv2 = expseg [0.001, 0.0466, 1, 3.95, 0.001]
resonator asig = 0.7 * a1 + 0.6 * kenv18 * a2
- where
+ where
flt a = butbp asig (sig $ a * cps) (sig $ 0.5 * cps)
a1 = sum $ fmap flt [1, 2.1, 2.8]
a2 = comb a1 0.5 (0.5 / cps)
@@ -125,7 +125,7 @@ crash' cps = toDrum =<< do
aall = sum $ zipWith3 harm weights envelopes harmonics
- harmonics =
+ harmonics =
[ [1, 0.89, 1.12341]
, [2.24, 2.4 * 0.98, 2.14 * 1.02]
, [3.312, 3.513312*0.89, 3.123312*1.11]
@@ -138,7 +138,7 @@ crash' cps = toDrum =<< do
weights = replicate 7 0.2 ++ [0.1]
- envelopes = fmap (\(a, b) -> expseg [0.01, a, 1, b, 0.01])
+ envelopes = fmap (\(a, b) -> expseg [0.01, a, 1, b, 0.01])
[ (0.0274, 3.972)
, (0.0264, 3.973)
, (0.0209, 3.979)
@@ -158,15 +158,15 @@ handClap' cps = (toDrum =<< ) $ fmap onNoise $ rand 1
kenv2 = expseg [0.001, 0.005, 1, 0.35, 0.001]
onNoise asig = aout
- where
+ where
anoise1 = kenv1 * asig
anoise2 = kenv2 * asig
adel1 = anoise1
- adel2 = delaySig 0.01 anoise1
- adel3 = delaySig 0.02 anoise1
- adel4 = delaySig 0.03 anoise2
-
+ adel2 = delaySig 0.01 anoise1
+ adel3 = delaySig 0.02 anoise1
+ adel4 = delaySig 0.03 anoise2
+
aout = mean
[ rz adel1 2
, rz adel2 3
@@ -179,7 +179,7 @@ handClap' cps = (toDrum =<< ) $ fmap onNoise $ rand 1
--------------------------------------------------
-- sampler
-mkSam = limSam 1
+mkSam = limSam 4
bd1 = mkSam dumb
bd2 = mkSam dumbBass
@@ -194,4 +194,4 @@ chh = mkSam closedHihat
bd3 = mkSam bassDrum
cr = mkSam crash
-clap = mkSam handClap
+clap = mkSam handClap
diff --git a/src/Csound/Catalog/Drum/MiniPops.hs b/src/Csound/Catalog/Drum/MiniPops.hs
index f2456ec..0ef2da3 100644
--- a/src/Csound/Catalog/Drum/MiniPops.hs
+++ b/src/Csound/Catalog/Drum/MiniPops.hs
@@ -2,26 +2,26 @@
module Csound.Catalog.Drum.MiniPops(
MpSpec(..),
- bass, snare1, snare2, rimShot, cymbal1, cymbal2, bongo1, bongo2, bongo3,
+ bass, snare1, snare2, rimShot, cymbal1, cymbal2, bongo1, bongo2, bongo3,
claves, cowbell, guiro, maracas, quijada, tamb,
-- * Generic
- bass', bdSpec, snare1', snSpec1, snare2', snSpec2, rimShot', rimSpec,
- cymbal1', cymSpec1, cymbal2', cymSpec2, bongo1', bonSpec1, bongo2', bonSpec2, bongo3', bonSpec3,
+ bass', bdSpec, snare1', snSpec1, snare2', snSpec2, rimShot', rimSpec,
+ cymbal1', cymSpec1, cymbal2', cymSpec2, bongo1', bonSpec1, bongo2', bonSpec2, bongo3', bonSpec3,
claves', clSpec, cowbell', cowSpec, guiro', groSpec, maracas', marSpec, quijada', qjSpec, tamb', tamSpec,
-- * Sample
- bd, sn1, sn2, rim, cym1, cym2, bon1, bon2, bon3, cl, cow, gro, mar, qj, tam,
+ bd, sn1, sn2, rim, cym1, cym2, bon1, bon2, bon3, cl, cow, gro, mar, qj, tam,
-- ** Generic
bd', sn1', sn2', rim', cym1', cym2', bon1', bon2', bon3', cl', cow', gro', mar', qj', tam'
) where
-import Csound.Base hiding (guiro)
+import Csound.Base hiding (guiro)
import Csound.Sam
data MpSpec = MpSpec {
- mpDur :: D
+ mpDur :: D
, mpCps :: D
, mpRnd :: Maybe D }
@@ -37,14 +37,14 @@ addDur = addDur' 0.1
toDrum :: Sig -> SE Sig
toDrum a = rndAmp =<< addDur a
-defSpec dur cps = MpSpec
+defSpec dur cps = MpSpec
{ mpDur = dur
- , mpCps = cps
+ , mpCps = cps
, mpRnd = Just 0.085 }
rndVal :: D -> D -> D -> SE D
rndVal total amount x = do
- k <- birnd amount
+ k <- birnd amount
return $ x + k * total
rndDur amt x = rndVal x amt x
@@ -52,13 +52,13 @@ rndCps amt x = rndVal x (amt / 10) x
rndSpec :: MpSpec -> SE MpSpec
rndSpec spec = do
- dur <- rndDur'
+ dur <- rndDur'
cps <- rndCps'
- return $ spec
- { mpDur = dur
+ return $ spec
+ { mpDur = dur
, mpCps = cps }
- where
- rndDur' = (maybe return rndDur $ (mpRnd spec)) $ mpDur spec
+ where
+ rndDur' = (maybe return rndDur $ (mpRnd spec)) $ mpDur spec
rndCps' = (maybe return rndCps $ (mpRnd spec)) $ mpCps spec
rezz cps bw = reson (mpulse 1 0) cps (cps * bw) `withD` 2
@@ -97,7 +97,7 @@ pureSnare1' spec = toDrum =<< (mul (fadeOut dur) $ aout)
aenv = transeg [1, dur ,-5 , 0]
asig1 = at (bhp 3000) $ mul aenv asig
- xdur = 0.006
+ xdur = 0.006
astrike = osc (transeg [cps,xdur,-4,60])
aenv2 = transeg [1,xdur,-2,0]
astrike1 = aenv2 * astrike
@@ -118,9 +118,9 @@ pureSnare2' spec = toDrum =<< (mul (fadeOut dur) $ aout)
anoise = pink
asig = fmap (\x -> butbp x 5200 5200 `withD` 1) anoise
aenv = transeg [1, dur ,-8 , 0]
- asig1 = at (bhp 3000) $ mul aenv asig
+ asig1 = at (bhp 3000) $ mul aenv asig
- xdur = 0.005
+ xdur = 0.005
astrike = osc (transeg [cps,xdur,-4,cps / 4])
aenv2 = transeg [1,xdur,-2,0]
astrike1 = aenv2 * astrike
@@ -141,7 +141,7 @@ pureRimShot' spec = toDrum $ mul (fadeOut dur) $ asig
dur = mpDur spec
cps = sig $ mpCps spec
- aenv = expon 1 dur 0.0001
+ aenv = expon 1 dur 0.0001
asig1 = osc' 0.2 cps
asig2 = reson asig1 cps 1500 `withD` 2
asig = bhp 500 (asig1 + asig2 * 0.4 * 0.3)
@@ -159,7 +159,7 @@ pureCymbal1' spec = (toDrum =<< ) $ mul (fadeOut dur) $ do
let asig1 = blp 14000 $ reson (anoise*aenv) icf (icf*0.7) `withD` 1
asig2 = bhp 6000 $ (asig1 + anoise * 0.001)
return $ 0.25 * aenv * asig2
- where
+ where
dur = mpDur spec
cps = sig $ mpCps spec
@@ -242,7 +242,7 @@ claves = claves' clSpec
clSpec = defSpec 0.186 400
-claves' spec = pureClaves' =<< rndSpec spec
+claves' spec = pureClaves' =<< rndSpec spec
pureClaves' spec = toDrum aout
where
@@ -251,14 +251,14 @@ pureClaves' spec = toDrum aout
aenv = linseg [1, dur, 0]
asig1 = rezz cps 0.025
- asig2 = rezz (cps * 5.45) 0.03
+ asig2 = rezz (cps * 5.45) 0.03
aout = mul (3.2 * aenv * fadeOut dur) $ asig1 + 1.3 * asig2
cowbell = cowbell' cowSpec
cowSpec = defSpec 0.3 850
-cowbell' spec = pureCowbell' =<< rndSpec spec
+cowbell' spec = pureCowbell' =<< rndSpec spec
pureCowbell' spec = toDrum asig
where
@@ -274,7 +274,7 @@ guiro = guiro' groSpec
groSpec = defSpec 0.256 66
-guiro' spec = pureGuiro' =<< rndSpec spec
+guiro' spec = pureGuiro' =<< rndSpec spec
pureGuiro' spec = toDrum asig
where
@@ -289,7 +289,7 @@ maracas = maracas' marSpec
marSpec = defSpec 0.05 5000
-maracas' spec = pureMaracas' =<< rndSpec spec
+maracas' spec = pureMaracas' =<< rndSpec spec
pureMaracas' spec = toDrum =<< do
asig <- noise 1 0.04
@@ -299,20 +299,20 @@ pureMaracas' spec = toDrum =<< do
cps = sig $ mpCps spec
aenv = transeg [1,dur,-4,0]
-
+
quijada = quijada' qjSpec
qjSpec = defSpec 0.817 550
-quijada' spec = pureQuijada' =<< rndSpec spec
+quijada' spec = pureQuijada' =<< rndSpec spec
pureQuijada' spec = toDrum $ bhp cps $ mul (6 * fadeOut dur) $ phi dur (1/22.7272) + phi (dur * 0.39) (1/13.1579)
where
dur = mpDur spec
cps = sig $ mpCps spec
- phi dt freq = mul kenv $ reson (mpulse 1 freq) 2727 400 `withD` 1
+ phi dt freq = mul kenv $ reson (mpulse 1 freq) 2727 400 `withD` 1
where kenv = transeg [0.8,0.05,1, 1,dt-0.05,-6,0]
@@ -320,13 +320,13 @@ tamb = tamb' tamSpec
tamSpec = defSpec 0.271 7000
-tamb' spec = pureTamb' =<< rndSpec spec
+tamb' spec = pureTamb' =<< rndSpec spec
pureTamb' spec = toDrum =<< do
anoise <- noise 1 0
- return $ mul (1.5 * aenv * fadeOut dur)
+ return $ mul (1.5 * aenv * fadeOut dur)
$ reson (bhp cps $ (+ (anoise * 0.1 * aenv)) $ reson (anoise * aenv) 4600 100 `withD` 2) 9000 3000 `withD` 1
- where
+ where
dur = mpDur spec
cps = sig $ mpCps spec
aenv = transeg [1,dur,-8,0]
@@ -334,7 +334,7 @@ pureTamb' spec = toDrum =<< do
-------------------------------------------------------
-- Sampler
-mkSam = limSam 1
+mkSam = limSam 4
-- | Bass drum
bd :: Sam
@@ -346,11 +346,11 @@ sn1 = mkSam snare1
-- | Snare 2
sn2 :: Sam
-sn2 = mkSam snare2
+sn2 = limSam 2 snare2
-- | Rim shot
rim :: Sam
-rim = mkSam rimShot
+rim = limSam 1 rimShot
-- | Cymbal 1
cym1 :: Sam
diff --git a/src/Csound/Catalog/Drum/Tr808.hs b/src/Csound/Catalog/Drum/Tr808.hs
index cfe16ad..2f34418 100644
--- a/src/Csound/Catalog/Drum/Tr808.hs
+++ b/src/Csound/Catalog/Drum/Tr808.hs
@@ -2,7 +2,7 @@
module Csound.Catalog.Drum.Tr808(
TrSpec(..),
- bass, bass2, snare, openHiHat, closedHiHat,
+ bass, bass2, snare, openHiHat, closedHiHat,
lowTom, midTom, highTom, cymbal, claves, rimShot,
maraca, highConga, midConga, lowConga,
@@ -38,16 +38,16 @@ data TrSpec = TrSpec {
, trRnd :: Maybe D
}
-cpsSpec cps = TrSpec
+cpsSpec cps = TrSpec
{ trDur = 0.8
, trTune = 0
- , trCps = cps
+ , trCps = cps
, trRnd = Just 0.085 }
rndVal :: D -> D -> D -> SE D
rndVal total amount x = do
- k <- birnd amount
+ k <- birnd amount
return $ x + k * total
rndDur amt x = rndVal x amt x
@@ -59,19 +59,19 @@ rndSpec spec = do
dur <- rndDur'
tune <- rndTune'
cps <- rndCps'
- return $ spec
- { trDur = dur
+ return $ spec
+ { trDur = dur
, trTune = tune
, trCps = cps }
- where
+ where
rndDur' = (maybe return rndDur $ (trRnd spec)) $ trDur spec
rndTune' = (maybe return rndTune $ (trRnd spec)) $ trTune spec
rndCps' = (maybe return rndCps $ (trRnd spec)) $ trCps spec
-bdSpec = TrSpec
+bdSpec = TrSpec
{ trDur = 0.95
, trTune = 1
- , trCps = 55
+ , trCps = 55
, trRnd = Just 0.05 }
addDur' dt x = xtratim dt >> return x
@@ -99,7 +99,7 @@ pureBass' spec = rndAmp =<< addDur amix
aimp = oscili aenv1 acps sine
amix = asig1 * 0.7 + aimp * 0.25
-bdSpec2 = TrSpec
+bdSpec2 = TrSpec
{ trDur = 1.3
, trTune = 1
, trCps = 57
@@ -110,24 +110,24 @@ bass2 = bass2' bdSpec2
bass2' spec = pureBass2' =<< rndSpec spec
pureBass2' :: TrSpec -> SE Sig
-pureBass2' spec = (rndAmp <=< addDur) $ compr $ mul (expsegr [1, 0.6 * dur, 0.1, 0.4 * dur, 0.001] (0.4 * dur) 0.001) $
+pureBass2' spec = (rndAmp <=< addDur) $ compr $ mul (expsegr [1, 0.6 * dur, 0.1, 0.4 * dur, 0.001] (0.4 * dur) 0.001) $
fosc 1 2 (0.5 * xeg 0.01 0.1 0.2 0.5) (cps * semitone (expseg [12, 0.01, 27, 0.3, 0.001]))
- where
+ where
compr x = dam x 0.65 2.4 2.3 0.05 0.1
dur = trDur spec
- cps = sig $ trCps spec
+ cps = sig $ trCps spec
snSpec = cpsSpec 342
-
+
snare = snare' snSpec
snare' spec = pureSnare' =<< rndSpec spec
--- sound consists of two sine tones, an octave apart and a noise signal
+-- sound consists of two sine tones, an octave apart and a noise signal
pureSnare' :: TrSpec -> SE Sig
pureSnare' spec = rndAmp =<< addDur =<< (apitch + anoise)
- where
+ where
dur = trDur spec
tune = trTune spec
cps = trCps spec
@@ -141,7 +141,7 @@ pureSnare' spec = rndAmp =<< addDur =<< (apitch + anoise)
apitch2 = rndOsc (0.5 * sig cps)
apitch = mul (0.75 * aenv1) (apitch1 + apitch2)
- -- noise component
+ -- noise component
aenv2 = expon 1 iNseDur 0.0005
kcf = expsegr [5000, 0.1, 3000] iNseDur 0.0001
anoise = mul aenv2 $ do
@@ -166,20 +166,20 @@ closedHiHat' spec = genHiHat (expsega [1, (dur / 2), 0.001]) spec
-- cps = 296
genHiHat :: Sig -> TrSpec -> SE Sig
genHiHat pitchedEnv spec = rndAmp =<< addDur =<< (amix1 + anoise)
- where
+ where
dur = trDur spec
tune = trTune spec
cps = trCps spec
- halfDur = dur * 0.5
+ halfDur = dur * 0.5
-- pitched element
- harmonics = [1.0, 0.962, 1.233, 1.175,1.419, 2.821]
+ harmonics = [1.0, 0.962, 1.233, 1.175,1.419, 2.821]
amix = mul 0.5 $ fmap sum $ mapM (rndPw 0.25 . sig . (* (cps * octave tune))) harmonics
amix1 = mul pitchedEnv $ at (\asig -> bhp 5000 $ bhp 5000 $ reson asig (5000 * octave (sig tune)) 5000 `withD` 1) amix
-- noise element
- kcf = expseg [20000, 0.7, 9000, halfDur-0.1, 9000]
+ kcf = expseg [20000, 0.7, 9000, halfDur-0.1, 9000]
anoise = mul pitchedEnv $ do
x <- noise 0.8 0
return $ bhp 8000 $ blp kcf x
@@ -190,7 +190,7 @@ ltSpec = cpsSpec 90
lowTom = lowTom' ltSpec
midTom = midTom' mtSpec
-highTom = highTom' htSpec
+highTom = highTom' htSpec
-- cps = 200
highTom' :: TrSpec -> SE Sig
@@ -206,7 +206,7 @@ lowTom' = genTom 0.6 (40, 100, 600)
genTom :: D -> (Sig, Sig, Sig) -> TrSpec -> SE Sig
genTom durDt (resonCf, hpCf, lpCf) spec = rndAmp =<< addDur =<< (asig + anoise)
- where
+ where
dur = trDur spec
tune = trTune spec
cps = trCps spec
@@ -215,14 +215,14 @@ genTom durDt (resonCf, hpCf, lpCf) spec = rndAmp =<< addDur =<< (asig + anoise)
halfDur = durDt * dur
-- sine tone signal
- aAmpEnv = transeg [1, halfDur, -10, 0.001]
+ aAmpEnv = fadeIn 0.04 * transeg [1, halfDur, -10, 0.001]
afmod = expsega [5, 0.125/ifrq, 1]
asig = mul (-aAmpEnv) $ rndOsc (sig ifrq * afmod)
-- noise signal
aEnvNse = transeg [1, halfDur, -6 , 0.001]
otune = sig $ octave tune
- anoise = mul aEnvNse $ do
+ anoise = mul aEnvNse $ do
x <- noise 1 0.4
return $ blp (lpCf * otune) $ bhp (hpCf * otune) $ reson x (resonCf * otune) 800 `withD` 1
@@ -234,7 +234,7 @@ cymbal = cymbal' cymSpec
-- cps = 296
cymbal' :: TrSpec -> SE Sig
cymbal' spec = rndAmp =<< addDur =<< (fmap (amix1 + ) anoise)
- where
+ where
dur = trDur spec
tune = trTune spec
cps = trCps spec
@@ -249,7 +249,7 @@ cymbal' spec = rndAmp =<< addDur =<< (fmap (amix1 + ) anoise)
-- noise element
aenv2 = expsega [1,0.3,0.07,fullDur-0.1,0.00001]
- kcf = expseg [14000, 0.7, 7000, fullDur-0.1, 5000]
+ kcf = expseg [14000, 0.7, 7000, fullDur-0.1, 5000]
anoise = mul aenv2 $ do
x <- noise 0.8 0
return $ bhp 8000 $ blp kcf x
@@ -290,7 +290,7 @@ pureRimShot' spec = rndAmp =<< addDur =<< (mul 0.8 $ aring + anoise)
-- ring
aenv1 = expsega [1,fullDur,0.001]
- ifrq1 = sig $ cps * octave tune
+ ifrq1 = sig $ cps * octave tune
aring = mul (0.5 * (aenv1 - 0.001)) $ at (bbp ifrq1 (ifrq1 * 8)) $ rndOscBy tabTR808RimShot ifrq1
-- noise
@@ -325,13 +325,13 @@ cowbell' spec = rndAmp =<< addDur =<< ares
kcf = expseg [12000,0.07,iLPF2,1,iLPF2]
alpf = at (blp kcf) amix
abpf = at (\x -> reson x ifrq2 25) amix
- ares = mul (0.08 * kenv) $ at dcblock2 $ mul (0.06 * kenv1) abpf + mul 0.5 alpf + mul 0.9 amix
+ ares = mul (0.08 * kenv) $ at dcblock2 $ mul (0.06 * kenv1) abpf + mul 0.5 alpf + mul 0.9 amix
-- TODO clap
{-
instr 112 ;CLAP
- krelease release ;SENSE RELEASE OF THIS NOTE ('1' WHEN RELEASED, OTHERWISE ZERO)
+ krelease release ;SENSE RELEASE OF THIS NOTE ('1' WHEN RELEASED, OTHERWISE ZERO)
chnset 1-krelease,"Act12" ;TURN ON ACTIVE LIGHT WHEN NOTE STARTS, TURN IT OFF WHEN NOTE ENDS
iTimGap = 0.01 ;GAP BETWEEN EVENTS DURING ATTACK PORTION OF CLAP
idur1 = 0.02 ;DURING OF THE THREE INITIAL 'CLAPS'
@@ -347,7 +347,7 @@ instr 112 ;CLAP
event_i "i", p1+0.1, iTimGap*3, idur2, p4
else
kenv transeg 1,p3,-25,0 ;AMPLITUDE ENVELOPE
- iamp random 0.7,1 ;SLIGHT RANDOMISATION OF AMPLITUDE
+ iamp random 0.7,1 ;SLIGHT RANDOMISATION OF AMPLITUDE
anoise pinkish kenv*iamp
iBPF = 1100*octave(i(gktune12)) ;FREQUENCY OF THE BANDPASS FILTER
ibw = 2000*octave(i(gktune12)) ;BANDWIDTH OF THE BANDPASS FILTER
@@ -396,7 +396,7 @@ lcSpec = cpsSpec 227
highConga = highConga' hcSpec
midConga = midConga' mcSpec
-lowConga = lowConga' lcSpec
+lowConga = lowConga' lcSpec
-- high conga
-- cps = 420
@@ -428,7 +428,7 @@ genConga dt spec = rndAmp =<< addDur =<< asig
-----------------------------------------------------
-- sampler
-mkSam = limSam 1
+mkSam = limSam 4
-- | Bass drum
bd :: Sam
@@ -443,11 +443,11 @@ sn = mkSam snare
-- | Open hi-hat
ohh :: Sam
-ohh = mkSam openHiHat
+ohh = limSam 8 openHiHat
-- | Closed hi-hat
chh :: Sam
-chh = mkSam closedHiHat
+chh = mkSam closedHiHat
-- | High tom
htom :: Sam
@@ -463,7 +463,7 @@ ltom = mkSam lowTom
-- | Cymbal
cym :: Sam
-cym = mkSam cymbal
+cym = limSam 8 cymbal
-- | Claves
cl :: Sam
diff --git a/src/Csound/Catalog/Wave/Sean.hs b/src/Csound/Catalog/Wave/Sean.hs
index 5f39b03..9139535 100644
--- a/src/Csound/Catalog/Wave/Sean.hs
+++ b/src/Csound/Catalog/Wave/Sean.hs
@@ -1,7 +1,7 @@
{-# Language FlexibleContexts #-}
module Csound.Catalog.Wave.Sean(
RissetBellSpec(..), rissetBell, timpani, timpaniSpec, noiseBell, noiseBellSpec,
- snowCrackle,
+ snowCrackle,
fmDrone, fmDrones,
tenorOsc, sopranoOsc
) where
@@ -15,7 +15,7 @@ data RissetBellSpec = RissetBellSpec
{ rissetBellRands :: [D]
, rissetBellRandShifts :: [D]
, rissetBellDurs :: [D]
- , rissetBellAmps :: [Sig]
+ , rissetBellAmps :: [Sig]
, rissetBellFreqs :: [Sig]
, rissetBellFreqShifts :: [Sig]
}
@@ -37,10 +37,10 @@ rissetBell spec (from, to) dur amp cps = ares
env = expsegr [1, dur, 0.001] dur 0.001
ares = mul 0.75 $ fmap sum $ zipWithM (\(iamp, ifreq, ifreqDt) (idur, irand, irandDt) -> partial iamp ifreq ifreqDt idur irand irandDt) (zip3 iamps ifreqs ifreqDt) (zip3 idurs irands irandDt)
-timpaniSpec = RissetBellSpec
+timpaniSpec = RissetBellSpec
{ rissetBellDurs = [0.087, 0.5, 0.804, 0.065, 0.325, 0.54, 1, 0.195, 0.108, 0.89, 0.075]
, rissetBellFreqs = [0.8, 1.00, 1.5, 1.65, 1.97, 2, 2.44, 2.86, 2.71, 2.91, 3.27]
- , rissetBellFreqShifts = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+ , rissetBellFreqShifts = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
, rissetBellAmps = [1, 2.52, 1.83, 0.55, 1.47, 1.67, 0.62, 0.5, 0.52, 0.55, 0.33]
, rissetBellRands = [0.56, 0.56, 0.92, 0.92, 1.19, 1.7, 2, 2.74, 3, 3.75, 4.07]
, rissetBellRandShifts = [0, 1, 0, 1.7, 0, 0, 0, 0, 0, 0, 0] }
@@ -50,7 +50,7 @@ timpani (from, to) dur amp cps = mul env $ rissetBell timpaniSpec (from, to) dur
where env = expsegr [1, dur, 0.001] dur 0.001
-noiseBellSpec = RissetBellSpec
+noiseBellSpec = RissetBellSpec
{ rissetBellDurs =[1, 0.9, 0.65, 0.55, 0.325, 0.35, 0.25, 0.2, 0.15, 0.1, 0.075]
, rissetBellFreqs = [0.56, 0.56, 0.92, 0.92, 1.19, 1.7, 3, 2.74, 3, 3.75, 4.07]
, rissetBellFreqShifts = [0, 1, 0, 1.7, 0, 0, 0, 0, 0, 0, 0]
@@ -72,13 +72,13 @@ snowCrackle :: Sig -> Sig
snowCrackle speed = mlp 1200 0.1 $ mouseDrum speed (3 + 2 * uosc 0.1) (160 + 100 * uosc 0.13)
where
mouseDrum :: Sig -> Sig -> Sig -> Sig
- mouseDrum freq index cps =
- sched instr $ withDur dur $ fmap (\[a, b] -> (a, b)) $ randList 2 $ dust freq
- where
+ mouseDrum freq index cps =
+ sched instr $ withDur (sig dur) $ fmap (\[a, b] -> (a, b)) $ randList 2 $ dust freq
+ where
dur = 0.049
instr (rndCps, rndIndex) = return $
- mouseDrumGrain dur
- (cps + 10 * sig (2 * rndCps - 1))
+ mouseDrumGrain dur
+ (cps + 10 * sig (2 * rndCps - 1))
(index + 0.01 * sig (2 * rndIndex - 1))
mouseDrumGrain dur icarfreq index = aosc
@@ -100,8 +100,8 @@ fmDronePartial amod' index idev kamp1 ifreq1 (a1, a2, a3, a4) = ares
aosc4 = osc (a4 + aosc1 + amod')
ares = 0.5 * kamp1 * sum [aosc2, aosc3, aosc4]
-scDrone = fmDrone 3
-scDrones = fmDrones 3
+scDrone = fmDrone 3
+scDrones = fmDrones 3
pulseIndex ns speed = 1 + 7 * seqSqr [seqDesc ns] speed
@@ -112,9 +112,9 @@ fmPulses amps harms ns speed = fmDrones (pulseIndex ns speed) amps harms (0.05,
fmDrone index (iatt, irel) cps = (aout1, aout2)
where
ifreq1 = cps
- iamp = 0.39
+ iamp = 0.39
idev = index * ifreq1
- kamp1 = leg iatt 0 1 irel
+ kamp1 = leg iatt 0 1 irel
f a1 a2 a3 a4 = iamp * fmDronePartial 0 index idev kamp1 ifreq1 (a1, a2, a3, a4)
@@ -123,12 +123,12 @@ fmDrone index (iatt, irel) cps = (aout1, aout2)
fmDrones index amps harms (iatt, irel) cps = aout
where
- iamp = 0.39
- kamp1 = leg iatt 0 1 irel
+ iamp = 0.39
+ kamp1 = leg iatt 0 1 irel
f amp h = do
let ifreq1 = h * cps
- idev = index * ifreq1
+ idev = index * ifreq1
a1 <- randomSig 1 0.03
a2 <- randomSig 0.998 0.025
@@ -152,24 +152,24 @@ gaussSig :: Sig -> Sig -> SE Sig
gaussSig val dev = fmap ((+ val)) $ gauss val
randiDev :: Sig -> Sig -> Sig -> SE Sig
-randiDev val dev cps = fmap (+ val) $ randi dev cps
+randiDev val dev cps = fmap (+ val) $ randi dev cps
randhDev :: Sig -> Sig -> Sig -> SE Sig
-randhDev val dev cps = fmap (+ val) $ randh dev cps
+randhDev val dev cps = fmap (+ val) $ randh dev cps
------------------------------------------------------------------------
-- choir
-tenorOsc = voiceOsc 0.9
-sopranoOsc = voiceOsc 0.8
+tenorOsc = voiceOsc 0.9
+sopranoOsc = voiceOsc 0.8
linVibr2 (v1, v2) (vtime1, vtime2) = linseg [v1, vtime1, v1, vtime2, v2]
voiceOsc :: Sig -> (Sig -> Sig) -> Sig -> Sig -> SE Sig
voiceOsc mulHarm formantFilter kvib cps = at formantFilter $ voiceAnimator (RndDev 0.05 0.75) kvib $ asig * kenv
- where
+ where
iharms = sig getSampleRate * 0.4 / cps
- asig = gbuzz 1 cps iharms 1 mulHarm (sines3 [(1, 1, 0.25)])
+ asig = gbuzz 1 cps iharms 1 mulHarm (sines3 [(1, 1, 0.25)])
kenv = leg 0.1 0 1 0.1
data RndDev = RndDev
@@ -190,13 +190,13 @@ addRnd spec ain = do
return $ ain * (1 + xDt)
-data Formant = Formant
+data Formant = Formant
{ formantWeight :: Sig
, formantCenter :: Sig
- , formantWidth :: Sig
+ , formantWidth :: Sig
}
------------------------------------------------------------------------
---
+--
diff --git a/src/Csound/Patch.hs b/src/Csound/Patch.hs
index 52a66fe..d73916f 100644
--- a/src/Csound/Patch.hs
+++ b/src/Csound/Patch.hs
@@ -11,15 +11,15 @@
module Csound.Patch(
-- * Electric piano
- Epiano1(..), epiano1, epiano1',
+ Epiano1(..), epiano1, epiano1',
MutedPiano(..), mutedPiano, mutedPiano',
- amPiano, fmPiano,
+ amPiano, fmPiano,
epiano2, epianoHeavy, epianoBright,
vibraphonePiano1, vibraphonePiano2,
addHammer,
-- * Organ
- cathedralOrgan, toneWheelOrgan,
+ cathedralOrgan, toneWheelOrgan,
HammondOrgan(..), hammondOrgan, hammondOrgan',
sawOrgan, triOrgan, sqrOrgan, pwOrgan, waveOrgan,
@@ -45,13 +45,13 @@ module Csound.Patch(
-- ** Pad Monosynth
pwPadm, triPadm, nightPadm, overtonePadm, caveOvertonePadm, choruselm,
- pwEnsemblem, fmDroneSlowm, fmDroneMediumm, fmDroneFastm,
+ pwEnsemblem, fmDroneSlowm, fmDroneMediumm, fmDroneFastm,
razorPadSlowm, razorPadFastm, razorPadTremolom, razorPadm, razorPadm',
dreamPadm, dreamPadBym, underwaterPadm, lightIsTooBrightPadm, whaleSongPadm, dreamPadm', underwaterPadm', dreamPadBym',
lightIsTooBrightPadm', whaleSongPadm',
-- * Lead
- polySynth,
+ polySynth,
phasingLead, RazorLead(..), razorLeadSlow, razorLeadFast, razorLeadTremolo,
razorLead, razorLead',
overtoneLead,
@@ -67,7 +67,7 @@ module Csound.Patch(
celloSynt,
-- * Plucked
- guitar, harpsichord,
+ guitar, harpsichord,
-- * Strikeh
@@ -75,20 +75,20 @@ module Csound.Patch(
smallBanyan,banyan, largeBanyan, magicBanyan,
smallXylophone, xylophone, largeXylophone, magicXylophone,
smallTibetanBowl180, tibetanBowl180, largeTibetanBowl180, magicTibetanBowl180,
- smallSpinelSphere, spinelSphere, largeSpinelSphere, magicSpinelSphere,
+ smallSpinelSphere, spinelSphere, largeSpinelSphere, magicSpinelSphere,
smallPotLid, potLid, largePotLid, magicPotLid,
smallRedCedarWoodPlate, redCedarWoodPlate, largeRedCedarWoodPlate, magicRedCedarWoodPlate,
smallTubularBell, tubularBell, largeTubularBell, magicTubularBell,
smallRedwoodPlate, redwoodPlate, largeRedwoodPlate, magicRedwoodPlate, smallDouglasFirWoodPlate,
douglasFirWoodPlate, largeDouglasFirWoodPlate, magicDouglasFirWoodPlate, smallUniformWoodenBar,
uniformWoodenBar, largeUniformWoodenBar, magicUniformWoodenBar, smallUniformAluminumBar,
- uniformAluminumBar, largeUniformAluminumBar, magicUniformAluminumBar,
+ uniformAluminumBar, largeUniformAluminumBar, magicUniformAluminumBar,
smallVibraphone1, vibraphone1, largeVibraphone1, magicVibraphone1,
smallVibraphone2, vibraphone2, largeVibraphone2, magicVibraphone2,
smallChalandiPlates, chalandiPlates, largeChalandiPlates, magicChalandiPlates,
smallTibetanBowl152, tibetanBowl152, largeTibetanBowl152, magicTibetanBowl152,
smallTibetanBowl140, tibetanBowl140, largeTibetanBowl140, magicTibetanBowl140,
- smallWineGlass, wineGlass, largeWineGlass, magicWineGlass,
+ smallWineGlass, wineGlass, largeWineGlass, magicWineGlass,
smallHandbell, handbell, largeHandbell, magicHandbell,
smallAlbertClockBellBelfast, albertClockBellBelfast, largeAlbertClockBellBelfast, magicAlbertClockBellBelfast,
smallWoodBlock, woodBlock, largeWoodBlock, magicWoodBlock,
@@ -97,7 +97,7 @@ module Csound.Patch(
scrapeDahina, scrapeBanyan, scrapeXylophone, scrapeTibetanBowl180, scrapeSpinelSphere, scrapePotLid, scrapeRedCedarWoodPlate,
scrapeTubularBell, scrapeRedwoodPlate, scrapeDouglasFirWoodPlate, scrapeUniformWoodenBar, scrapeUniformAluminumBar,
scrapeVibraphone1, scrapeVibraphone2, scrapeChalandiPlates, scrapeTibetanBowl152, scrapeTibetanBowl140, scrapeWineGlass,
- scrapeSmallHandbell, scrapeAlbertClockBellBelfast, scrapeWoodBlock,
+ scrapeSmallHandbell, scrapeAlbertClockBellBelfast, scrapeWoodBlock,
scrapeFastDahina, scrapeFastBanyan, scrapeFastXylophone, scrapeFastTibetanBowl180, scrapeFastSpinelSphere, scrapeFastPotLid,
scrapeFastRedCedarWoodPlate, scrapeFastTubularBell, scrapeFastRedwoodPlate, scrapeFastDouglasFirWoodPlate, scrapeFastUniformWoodenBar,
@@ -111,11 +111,11 @@ module Csound.Patch(
-- ** Scrape monosynth
- -- | Unfortunately they don't work with @atMonoMidi@. Though @atNote@ works fine.
+ -- | Unfortunately they don't work with @atMonoMidi@. Though @atNote@ works fine.
scrapeDahinam, scrapeBanyanm, scrapeXylophonem, scrapeTibetanBowl180m, scrapeSpinelSpherem, scrapePotLidm, scrapeRedCedarWoodPlatem,
scrapeTubularBellm, scrapeRedwoodPlatem, scrapeDouglasFirWoodPlatem, scrapeUniformWoodenBarm, scrapeUniformAluminumBarm,
scrapeVibraphone1m, scrapeVibraphone2m, scrapeChalandiPlatesm, scrapeTibetanBowl152m, scrapeTibetanBowl140m, scrapeWineGlassm,
- scrapeSmallHandbellm, scrapeAlbertClockBellBelfastm, scrapeWoodBlockm,
+ scrapeSmallHandbellm, scrapeAlbertClockBellBelfastm, scrapeWoodBlockm,
scrapePadDahinam, scrapePadBanyanm, scrapePadXylophonem, scrapePadTibetanBowl180m, scrapePadSpinelSpherem, scrapePadPotLidm,
scrapePadRedCedarWoodPlatem, scrapePadTubularBellm, scrapePadRedwoodPlatem, scrapePadDouglasFirWoodPlatem, scrapePadUniformWoodenBarm,
@@ -126,28 +126,28 @@ module Csound.Patch(
Wind(..), woodWind',
- fluteSpec, shortFluteSpec,
- flute, shortFlute, fluteVibrato, mutedFlute, brightFlute,
+ fluteSpec, shortFluteSpec,
+ flute, shortFlute, fluteVibrato, mutedFlute, brightFlute,
bassClarinetSpec, shortBassClarinetSpec,
bassClarinet, shortBassClarinet, bassClarinetVibrato, mutedBassClarinet, brightBassClarinet,
- frenchHornSpec, shortFrenchHornSpec,
- frenchHorn, shortFrenchHorn, frenchHornVibrato, mutedFrenchHorn, brightFrenchHorn,
+ frenchHornSpec, shortFrenchHornSpec,
+ frenchHorn, shortFrenchHorn, frenchHornVibrato, mutedFrenchHorn, brightFrenchHorn,
shengSpec, shortShengSpec,
sheng, shortSheng, shengVibrato, mutedSheng, brightSheng,
- hulusiSpec, shortHulusiSpec,
+ hulusiSpec, shortHulusiSpec,
hulusi, shortHulusi, hulusiVibrato, mutedHulusi, brightHulusi,
- diziSpec, shortDiziSpec,
+ diziSpec, shortDiziSpec,
dizi, shortDizi, diziVibrato, mutedDizi, brightDizi,
-- * SHARC instruments
- SharcInstr,
- soloSharc, orcSharc, padSharc, purePadSharc,
- dreamSharc, lightIsTooBrightSharc, whaleSongSharc,
+ SharcInstr,
+ soloSharc, orcSharc, padSharc, purePadSharc,
+ dreamSharc, lightIsTooBrightSharc, whaleSongSharc,
sharcOrgan,
-- ** Padsynth instruments
@@ -166,7 +166,7 @@ module Csound.Patch(
psDeepMagicPadSharc, psDeepMagicPadSharc', psDeepMagicSoftPadSharc, psDeepMagicSoftPadSharc',
--- *** Crossfades
- psPadSharcCfd, psPadSharcCfd', psPadSharcCfd4, psPadSharcCfd4', psDeepPadSharcCfd, psDeepPadSharcCfd',
+ psPadSharcCfd, psPadSharcCfd', psPadSharcCfd4, psPadSharcCfd4', psDeepPadSharcCfd, psDeepPadSharcCfd',
psDeepPadSharcCfd4, psDeepPadSharcCfd4', psSoftPadSharcCfd, psSoftPadSharcCfd', psSoftPadSharcCfd4, psSoftPadSharcCfd4',
psDeepSoftPadSharcCfd, psDeepSoftPadSharcCfd', psDeepSoftPadSharcCfd4, psDeepSoftPadSharcCfd4',
@@ -179,7 +179,7 @@ module Csound.Patch(
psSoftPadSharcHifi,
psMagicPadSharcHifi,
psMagicSoftPadSharcHifi,
- psLargePianoSharcHifi,
+ psLargePianoSharcHifi,
xpsLargePianoSharcHifi,
-- *** Vedic pads
@@ -220,14 +220,14 @@ module Csound.Patch(
-- * Nature
windWall, mildWind, wind, snowCrackle,
- -- * Misc
- -- limRel,
+ -- * Misc
+ -- limRel,
singleFx, singleFx'
) where
import Control.Monad
-import Csound.Base
+import Csound.Base
import qualified Csound.Catalog.Wave as C
import qualified Csound.Catalog.Reson as C
@@ -252,7 +252,7 @@ monoArgToNote arg = (monoAmp arg * monoGate arg, monoCps arg)
monoSig1 :: SigSpace a => (Sig -> a) -> (MonoArg -> a)
monoSig1 f arg = mul env $ f cps
- where
+ where
env = amp * monoAdsr arg 0.35 0.5 1 0.5
amp = port (monoAmp arg) 0.01
cps = portk (monoCps arg) (delay1 gate * 0.01)
@@ -273,7 +273,7 @@ singleFx :: Sig -> (a -> a) -> Patch a -> Patch a
singleFx = fx1
singleFxFilter :: Sig -> (ResonFilter -> a -> a) -> Patch a -> Patch a
-singleFxFilter dw f = FxChain [fxSpecFilter dw (\filter x -> return $ f filter x)]
+singleFxFilter dw f = FxChain [fxSpecFilter dw (\filter x -> return $ f filter x)]
-- | Creates a simple FX-xhain, that contains a single effect.
-- The first argument is the dry/wet-value.
@@ -287,17 +287,17 @@ limRel rel p = mapPatchInstr (\instr -> fmap (mul (fadeOut rel)) . instr) p
----------------------------------------------
-- electric pianos
-data Epiano1 = Epiano1
+data Epiano1 = Epiano1
{ epiano1Rel :: D }
instance Default Epiano1 where
- def = Epiano1 5
+ def = Epiano1 5
epiano1 = epiano1' def
epiano1' (Epiano1 rel) = withLargeHall $ polySynt $ \a -> mul 0.4 $ C.simpleFading rel a
-data MutedPiano = MutedPiano
+data MutedPiano = MutedPiano
{ mutedPianoMute :: Sig
, mutedPianoRel :: D }
@@ -306,23 +306,23 @@ instance Default MutedPiano where
mutedPiano = mutedPiano' def
-mutedPiano' (MutedPiano mute rel) = fx1 0.25 (largeHall2 . at (mlp3 (250 + 7000 * mute) 0.2)) $
- polySynt $ \a -> mul 0.7 $ C.simpleSust rel a
+mutedPiano' (MutedPiano mute rel) = fx1 0.25 (largeHall2 . at (mlp3 (250 + 7000 * mute) 0.2)) $
+ polySynt $ \a -> mul 0.7 $ C.simpleSust rel a
amPiano = fx1 0.25 id $ polySyntFilter $ \filter -> mul 1.4 . onCps (C.amPianoBy filter)
-fmPiano = withSmallHall $ polySynt $ at fromMono . mul 0.75 . onCps (C.fmFlavio 6 3)
+fmPiano = withSmallHall $ polySynt $ at fromMono . mul 0.75 . onCps (C.fmFlavio 6 3)
epianoReleaseTime :: ReleaseTime
epianoReleaseTime = 0.25
-epiano2 = addHammer 0.15 $ fx1 0.25 smallHall2 $
- polySyntFilter $ \filter -> mul 1.125 . at fromMono . (onCps $ C.epianoBy filter epianoReleaseTime [C.EpianoOsc 4 5 1 1, C.EpianoOsc 8 10 2.01 1])
+epiano2 = addHammer 0.15 $ fx1 0.25 smallHall2 $
+ polySyntFilter $ \filter -> mul 1.125 . at fromMono . (onCps $ C.epianoBy filter epianoReleaseTime [C.EpianoOsc 4 5 1 1, C.EpianoOsc 8 10 2.01 1])
-epianoHeavy = addHammer 0.15 $ fx1 0.2 smallHall2 $
- polySyntFilter $ \filter -> mul 1.125 . at fromMono . (onCps $ C.epianoBy filter epianoReleaseTime [C.EpianoOsc 4 5 1 1, C.EpianoOsc 8 10 2.01 1, C.EpianoOsc 8 15 0.5 0.5])
+epianoHeavy = addHammer 0.15 $ fx1 0.2 smallHall2 $
+ polySyntFilter $ \filter -> mul 1.125 . at fromMono . (onCps $ C.epianoBy filter epianoReleaseTime [C.EpianoOsc 4 5 1 1, C.EpianoOsc 8 10 2.01 1, C.EpianoOsc 8 15 0.5 0.5])
-epianoBright = addHammer 0.15 $ fx1 0.2 smallHall2 $
+epianoBright = addHammer 0.15 $ fx1 0.2 smallHall2 $
polySyntFilter $ \filter -> mul 1.12 . at fromMono . (onCps $ C.epianoBy filter epianoReleaseTime [C.EpianoOsc 4 5 1 1, C.EpianoOsc 8 10 3.01 1, C.EpianoOsc 8 15 5 0.5, C.EpianoOsc 8 4 7 0.3])
vibraphonePiano1 = vibraphoneToPiano smallVibraphone1
@@ -337,10 +337,10 @@ addHammer amt = mixInstr amt impulseMarimba2
----------------------------------------------
-- organs
-cathedralOrgan = withLargeHall $ polySynt $ at fromMono . mul 0.7 . onCps C.cathedralOrgan
+cathedralOrgan = withLargeHall $ polySynt $ at fromMono . mul 0.7 . onCps C.cathedralOrgan
-- [0, 30]
-data HammondOrgan = HammondOrgan
+data HammondOrgan = HammondOrgan
{ hammondOrganDetune :: Sig }
instance Default HammondOrgan where
@@ -354,7 +354,7 @@ hammondOrgan' (HammondOrgan detune) = fx1 0.15 smallRoom2 $ polySynt $ mul 0.4 .
hammondOrganm' (HammondOrgan detune) = fx1 0.15 smallRoom2 $ monoSynt $ mul 0.4 . at fromMono . monoSig1 (C.hammondOrgan detune)
-toneWheelOrgan = withSmallHall $ polySynt $ at fromMono . mul (0.6 * fadeOut 0.05) . onCps C.toneWheel
+toneWheelOrgan = withSmallHall $ polySynt $ at fromMono . mul (0.6 * fadeOut 0.05) . onCps C.toneWheel
sawOrgan = mul 0.45 $ waveOrgan rndSaw
triOrgan = mul 0.5 $ waveOrgan rndTri
@@ -369,13 +369,13 @@ pwOrganm k = mul 0.45 $ waveOrganm (rndPw k)
organFx :: Patch2 -> Patch2
organFx = withSmallHall . singleFxFilter 1 (\filter -> at $ filter 3500 0.1)
-waveOrgan :: (Sig -> SE Sig) -> Patch2
+waveOrgan :: (Sig -> SE Sig) -> Patch2
waveOrgan wave = organFx $ polySynt $ onCps $ at fromMono . mul (fades 0.01 0.01) . wave
-waveOrganm :: (Sig -> SE Sig) -> Patch2
+waveOrganm :: (Sig -> SE Sig) -> Patch2
waveOrganm wave = organFx $ monoSynt $ monoSig1 $ at fromMono . mul (fades 0.01 0.01) . wave
-waveOrganWithKey :: (D -> Sig -> SE Sig) -> Patch2
+waveOrganWithKey :: (D -> Sig -> SE Sig) -> Patch2
waveOrganWithKey wave = organFx $ polySynt $ onCps $ \cps -> (at fromMono . mul (fades 0.01 0.01) . wave cps) (sig cps)
----------------------------------------------
@@ -414,7 +414,7 @@ choirO' = choir' singO
choirE' = choir' singE
choirU' = choir' singU
-data NoisyChoir = NoisyChoir
+data NoisyChoir = NoisyChoir
{ noisyChoirFilterNum :: Int
, noisyChoirBw :: Sig
}
@@ -431,7 +431,7 @@ noisyChoir = noisyChoir' def
dryNoisyChoir (NoisyChoir n bw) = polySynt $ at fromMono . mul 0.45 . onCps (C.noisyChoir n bw)
longNoisyChoir' ch = fx1 0.15 magicCave2 $ dryNoisyChoir ch
-
+
noisyChoir' ch = fx1 0.15 largeHall2 $ dryNoisyChoir ch
-- modes (wth delay or not delay)
@@ -529,7 +529,7 @@ dreamPadWithKey brightness wave = dreamPadFx $ polySyntFilter $ genDreamPadNote
-- | The first argument is brightness (0 to 1)
dreamPadm' :: Sig -> Patch2
-dreamPadm' bright = dreamPadFx $ monoSyntFilter $ \filter -> fmap fromMono . monoSig1 (C.dreamPad filter bright)
+dreamPadm' bright = dreamPadFx $ monoSyntFilter $ \filter -> fmap fromMono . monoSig1 (C.dreamPad filter bright)
-- | The first argument is brightness (0 to 1). The second argument is a wave function.
dreamPadBym' :: Sig -> (Sig -> SE Sig) -> Patch2
@@ -537,28 +537,28 @@ dreamPadBym' bright wave = dreamPadFx $ monoSyntFilter $ \filter -> fmap fromMon
-- | The first argument is brightness (0 to 1)
underwaterPad' :: Sig -> Patch2
-underwaterPad' bright = dreamPadFx $ polySyntFilter $ \filter -> fmap fromMono . onCps (C.underwaterPad filter bright)
+underwaterPad' bright = dreamPadFx $ polySyntFilter $ \filter -> fmap fromMono . onCps (C.underwaterPad filter bright)
-- | The first argument is brightness (0 to 1)
underwaterPadm' :: Sig -> Patch2
-underwaterPadm' bright = dreamPadFx $ monoSyntFilter $ \filter -> fmap fromMono . monoSig1 (C.underwaterPad filter bright)
+underwaterPadm' bright = dreamPadFx $ monoSyntFilter $ \filter -> fmap fromMono . monoSig1 (C.underwaterPad filter bright)
-- | The first argument is brightness (0 to 1)
lightIsTooBrightPad' :: Sig -> Patch2
-lightIsTooBrightPad' bright = dreamPadFx $ polySyntFilter $ \filter -> fmap fromMono . onCps (C.lightIsTooBrightPad filter bright)
+lightIsTooBrightPad' bright = dreamPadFx $ polySyntFilter $ \filter -> fmap fromMono . onCps (C.lightIsTooBrightPad filter bright)
lightIsTooBrightPadm' :: Sig -> Patch2
-lightIsTooBrightPadm' bright = dreamPadFx $ monoSyntFilter $ \filter -> fmap fromMono . monoSig1 (C.lightIsTooBrightPad filter bright)
+lightIsTooBrightPadm' bright = dreamPadFx $ monoSyntFilter $ \filter -> fmap fromMono . monoSig1 (C.lightIsTooBrightPad filter bright)
lightIsTooBrightPadWithKey :: Sig -> (D -> Sig -> SE Sig) -> Patch2
lightIsTooBrightPadWithKey brightness wave = dreamPadFx $ polySyntFilter $ genDreamPadNote C.lightIsTooBrightPadBy wave brightness
-- | The first argument is brightness (0 to 1)
whaleSongPad' :: Sig -> Patch2
-whaleSongPad' bright = dreamPadFx $ polySyntFilter $ \filter -> fmap fromMono . onCps (C.whaleSongPad filter bright)
+whaleSongPad' bright = dreamPadFx $ polySyntFilter $ \filter -> fmap fromMono . onCps (C.whaleSongPad filter bright)
whaleSongPadm' :: Sig -> Patch2
-whaleSongPadm' bright = dreamPadFx $ monoSyntFilter $ \filter -> fmap fromMono . monoSig1 (C.whaleSongPad filter bright)
+whaleSongPadm' bright = dreamPadFx $ monoSyntFilter $ \filter -> fmap fromMono . monoSig1 (C.whaleSongPad filter bright)
whaleSongPadWithKey :: Sig -> (D -> Sig -> SE Sig) -> Patch2
whaleSongPadWithKey brightness wave = dreamPadFx $ polySyntFilter $ genDreamPadNote C.whaleSongPadBy wave brightness
@@ -568,13 +568,13 @@ whaleSongPadWithKey brightness wave = dreamPadFx $ polySyntFilter $ genDreamPadN
polySynthFxChain = FxChain [fxSpec 0.25 (return . largeHall2), fxSpec 0.25 (return . (at $ echo 0.25 0.65)), fxSpec 0.25 (at $ chorus 0.07 1.25 1), fxSpecFilter 1 $ \filter -> return . at (filter 5500 0.12 . filt 2 br 18000 0.3)]
-polySynth = polySynthFxChain $ polySynt $ fmap fromMono . onCps C.polySynth
-polySynthm = polySynthFxChain $ monoSynt $ fmap fromMono . monoSig1 C.polySynth
-
+polySynth = polySynthFxChain $ polySynt $ fmap fromMono . onCps C.polySynth
+polySynthm = polySynthFxChain $ monoSynt $ fmap fromMono . monoSig1 C.polySynth
+
phasingLead = withSmallHall $ polySynt $ at fromMono . mul (0.7 * fadeOut 0.05) . onCps (uncurry C.phasingSynth)
-data RazorLead = RazorLead
- { razorLeadBright :: Sig
+data RazorLead = RazorLead
+ { razorLeadBright :: Sig
, razorLeadSpeed :: Sig }
instance Default RazorLead where
@@ -629,10 +629,10 @@ strikeRelease :: (D, D) -> Strike -> D
strikeRelease (amp, cps) spec = (0.85 * strikeRel spec * amp) * amp + (strikeRel spec) - (cps / 10000)
-- dac $ mixAt 0.15 largeHall2 $ mixAt 0.2 (echo 0.25 0.45) $ at fromMono $ midi $ onMsg $ onCps (mul (fadeOut 2) . C.tibetanBowl152 )
-data Strike = Strike
+data Strike = Strike
{ strikeRel :: D
, strikeHasDelay :: Bool
- , strikeReverb :: Sig2 -> Sig2
+ , strikeReverb :: Sig2 -> Sig2
}
instance Default Strike where
@@ -657,10 +657,10 @@ prevSize x = case x of
Huge -> Large
toStrikeSpec :: Size -> Size -> Strike
-toStrikeSpec revSpec restSpec = Strike
+toStrikeSpec revSpec restSpec = Strike
{ strikeReverb = toReverb revSpec
, strikeRel = toRel restSpec
- , strikeHasDelay = toHasDelay restSpec }
+ , strikeHasDelay = toHasDelay restSpec }
toReverb :: Size -> (Sig2 -> Sig2)
toReverb x = case x of
@@ -835,12 +835,12 @@ magicWoodBlock = magicStrike woodBlockSize C.woodBlock
---------------------------------------------------------------
-- scrape
--- scrapePatch
+-- scrapePatch
names = ["dahina","banyan","xylophone","tibetanBowl180","spinelSphere","potLid","redCedarWoodPlate","tubularBell","redwoodPlate","douglasFirWoodPlate","uniformWoodenBar","uniformAluminumBar","vibraphone1","vibraphone2","chalandiPlates","tibetanBowl152","tibetanBowl140","wineGlass","smallHandbell","albertClockBellBelfast","woodBlock"]
toUpperName (x:xs) = toUpper x : xs
--- scrapePatch
+-- scrapePatch
scrapeRelease :: (D, D) -> D -> D
scrapeRelease (amp, cps) rel = (0.85 * rel * amp) * amp + rel - (cps / 10000)
@@ -991,29 +991,29 @@ scrapePadWoodBlockm = scrapePadm scaleScrapeWoodBlock C.woodBlockModes
------------------------------------
-- woodwind
-data Wind = Wind
+data Wind = Wind
{ windAtt :: D
, windDec :: D
- , windSus :: D
- , windVib :: D
+ , windSus :: D
+ , windVib :: D
, windBright :: D }
-woodWind' spec instr = withSmallHall $ polySynt $ \(amp, cps) -> mul 1.3 $ do
+woodWind' spec instr = withSmallHall $ polySynt $ \(amp, cps) -> mul 1.3 $ do
seed <- rnd 1
vibDisp <- rnd (0.1 * amp)
- let dispVib vib = vib * (0.9 + vibDisp)
+ let dispVib vib = vib * (0.9 + vibDisp)
return $ fromMono $ mul (0.8 * sig amp * fadeOut (windDec spec)) $ instr seed (dispVib $ windVib spec) (windAtt spec) (windSus spec) (windDec spec) (0.4 + 0.75 * windBright spec * amp) cps
-- flute
-fluteSpec bright vib = Wind
+fluteSpec bright vib = Wind
{ windAtt = 0.08
, windDec = 0.1
, windSus = 20
, windVib = vib
, windBright = bright }
-shortFluteSpec bright vib = Wind
+shortFluteSpec bright vib = Wind
{ windAtt = 0.03
, windDec = 0.05
, windSus = 20
@@ -1021,40 +1021,40 @@ shortFluteSpec bright vib = Wind
, windBright = bright }
flute = woodWind' (fluteSpec br vib) C.flute
- where
+ where
br = 0.7
vib = 0.015
shortFlute = woodWind' (shortFluteSpec br vib) C.flute
- where
+ where
br = 0.7
vib = 0.015
fluteVibrato = woodWind' (fluteSpec br vib) C.flute
- where
+ where
br = 0.7
vib = 0.04
mutedFlute = woodWind' (fluteSpec br vib) C.flute
- where
+ where
br = 0.25
vib = 0.015
brightFlute = woodWind' (fluteSpec br vib) C.flute
- where
+ where
br = 1.2
vib = 0.015
-- bass clarinet
-bassClarinetSpec bright vib = Wind
+bassClarinetSpec bright vib = Wind
{ windAtt = 0.06
, windDec = 0.15
, windSus = 20
, windVib = vib
, windBright = bright }
-shortBassClarinetSpec bright vib = Wind
+shortBassClarinetSpec bright vib = Wind
{ windAtt = 0.03
, windDec = 0.04
, windSus = 20
@@ -1062,40 +1062,40 @@ shortBassClarinetSpec bright vib = Wind
, windBright = bright }
bassClarinet = woodWind' (bassClarinetSpec br vib) C.bassClarinet
- where
+ where
br = 0.7
vib = 0.01
shortBassClarinet = woodWind' (shortBassClarinetSpec br vib) C.bassClarinet
- where
+ where
br = 0.7
vib = 0.01
bassClarinetVibrato = woodWind' (bassClarinetSpec br vib) C.bassClarinet
- where
+ where
br = 0.7
vib = 0.035
mutedBassClarinet = woodWind' (bassClarinetSpec br vib) C.bassClarinet
- where
+ where
br = 0.25
vib = 0.01
brightBassClarinet = woodWind' (bassClarinetSpec br vib) C.bassClarinet
- where
+ where
br = 1.2
vib = 0.01
-- french horn
-frenchHornSpec bright vib = Wind
+frenchHornSpec bright vib = Wind
{ windAtt = 0.08
, windDec = 0.25
, windSus = 20
, windVib = vib
, windBright = bright }
-shortFrenchHornSpec bright vib = Wind
+shortFrenchHornSpec bright vib = Wind
{ windAtt = 0.03
, windDec = 0.04
, windSus = 20
@@ -1103,40 +1103,40 @@ shortFrenchHornSpec bright vib = Wind
, windBright = bright }
frenchHorn = woodWind' (frenchHornSpec br vib) C.frenchHorn
- where
+ where
br = 0.7
vib = 0.01
shortFrenchHorn = woodWind' (shortFrenchHornSpec br vib) C.frenchHorn
- where
+ where
br = 0.7
vib = 0.01
frenchHornVibrato = woodWind' (frenchHornSpec br vib) C.frenchHorn
- where
+ where
br = 0.7
vib = 0.035
mutedFrenchHorn = woodWind' (frenchHornSpec br vib) C.frenchHorn
- where
+ where
br = 0.25
vib = 0.01
brightFrenchHorn = woodWind' (frenchHornSpec br vib) C.frenchHorn
- where
+ where
br = 1.2
vib = 0.01
-- sheng
-shengSpec bright vib = Wind
+shengSpec bright vib = Wind
{ windAtt = 0.1
, windDec = 0.2
, windSus = 20
, windVib = vib
, windBright = bright }
-shortShengSpec bright vib = Wind
+shortShengSpec bright vib = Wind
{ windAtt = 0.03
, windDec = 0.04
, windSus = 20
@@ -1144,40 +1144,40 @@ shortShengSpec bright vib = Wind
, windBright = bright }
sheng = woodWind' (shengSpec br vib) C.sheng
- where
+ where
br = 0.7
vib = 0.01
shortSheng = woodWind' (shortShengSpec br vib) C.sheng
- where
+ where
br = 0.7
vib = 0.01
shengVibrato = woodWind' (shengSpec br vib) C.sheng
- where
+ where
br = 0.7
vib = 0.025
mutedSheng = woodWind' (shengSpec br vib) C.sheng
- where
+ where
br = 0.25
vib = 0.01
brightSheng = woodWind' (shortShengSpec br vib) C.sheng
- where
+ where
br = 1.2
vib = 0.01
-- hulusi
-hulusiSpec bright vib = Wind
+hulusiSpec bright vib = Wind
{ windAtt = 0.12
, windDec = 0.14
, windSus = 20
, windVib = vib
, windBright = bright }
-shortHulusiSpec bright vib = Wind
+shortHulusiSpec bright vib = Wind
{ windAtt = 0.03
, windDec = 0.04
, windSus = 20
@@ -1185,41 +1185,41 @@ shortHulusiSpec bright vib = Wind
, windBright = bright }
hulusi = woodWind' (hulusiSpec br vib) C.hulusi
- where
+ where
br = 0.7
vib = 0.015
shortHulusi = woodWind' (shortHulusiSpec br vib) C.hulusi
- where
+ where
br = 0.7
vib = 0.015
hulusiVibrato = woodWind' (hulusiSpec br vib) C.hulusi
- where
+ where
br = 0.7
vib = 0.035
mutedHulusi = woodWind' (hulusiSpec br vib) C.hulusi
- where
+ where
br = 0.25
vib = 0.015
brightHulusi = woodWind' (shortHulusiSpec br vib) C.hulusi
- where
+ where
br = 1.2
vib = 0.015
-- dizi
-diziSpec bright vib = Wind
+diziSpec bright vib = Wind
{ windAtt = 0.03
, windDec = 0.2
, windSus = 20
, windVib = vib
, windBright = bright }
-shortDiziSpec bright vib = Wind
+shortDiziSpec bright vib = Wind
{ windAtt = 0.1
, windDec = 0.04
, windSus = 20
@@ -1227,27 +1227,27 @@ shortDiziSpec bright vib = Wind
, windBright = bright }
dizi = woodWind' (diziSpec br vib) C.dizi
- where
+ where
br = 0.7
vib = 0.01
shortDizi = woodWind' (shortDiziSpec br vib) C.dizi
- where
+ where
br = 0.7
vib = 0.01
diziVibrato = woodWind' (diziSpec br vib) C.dizi
- where
+ where
br = 0.7
vib = 0.035
mutedDizi = woodWind' (diziSpec br vib) C.dizi
- where
+ where
br = 0.25
vib = 0.01
brightDizi = woodWind' (shortDiziSpec br vib) C.dizi
- where
+ where
br = 1.2
vib = 0.01
@@ -1267,7 +1267,7 @@ blue = fx1 0.25 smallHall2 $ polySynt $ at fromMono . mul (1.5 * fades 0.01 0.5)
black = fx1 0.25 smallHall2 $ polySynt $ at fromMono . mul (2 * fades 0.01 0.5). onCps (\cps -> C.black 3 (cps / 2) (cps * 2) 12 (sig cps))
simpleMarimba = fx1 0.25 smallHall2 $ polySynt $ at fromMono . mul (0.8 * fades 0.01 0.5). onCps (C.simpleMarimba 5)
-
+
impulseMarimba1 = fx1 0.3 smallHall2 $ polySynt $ at fromMono . mul (0.8 * fadeOut 0.75). onCps C.impulseMarimba1
impulseMarimba2 = fx1 0.3 smallHall2 $ polySynt $ at fromMono . mul (0.8 * fadeOut 0.75). onCps C.impulseMarimba2
@@ -1277,7 +1277,7 @@ okComputer = polySyntFilter $ \filter (amp, cps) -> (at fromMono . mul (0.75 * s
snowCrackle = polySynt $ \(amp, cps) -> (return . fromMono . mul (0.8 * sig amp * fades 0.001 0.001) . (C.snowCrackle . (/ 25))) (sig cps)
noiseBell = fx1 0.25 smallHall2 $ polySynt $ at fromMono . mul 0.75 . onCps (C.noiseBell (31, 125) 2.3 0.2 . ( * 8))
-
+
------------------------------------
-- vowels
@@ -1370,7 +1370,7 @@ psPianoSharc = psPianoSharc' def
-- | High resolution Padsynth instrument with piano-like amplitude envelope.
psPianoSharcHifi :: ReleaseTime -> SharcInstr -> Patch2
psPianoSharcHifi = psPianoSharc' hiDef
-
+
-- | Padsynth instrument with piano-like amplitude envelope. We can specify aux parameters.
psPianoSharc' :: PadSharcSpec -> ReleaseTime -> SharcInstr -> Patch2
psPianoSharc' spec releaseTime sh = fxs $ polySynt $ \ampCps -> mul (0.75 * C.pianoEnv releaseTime ampCps) $ onCps (C.padsynthSharcOsc2' spec sh) ampCps
@@ -1420,7 +1420,7 @@ psPadFilterBy rippleLevel q resonFilter ampCps = resonFilter (0.3 * (sig $ snd a
where rel (amp, cps) = amp - cps / 3500
psPadFilter filter = psPadFilterBy 75 15 filter
-psSoftPadFilter filter = psPadFilterBy 350 0.15 filter
+psSoftPadFilter filter = psPadFilterBy 350 0.15 filter
deepOsc :: (Num a, SigSpace a) => (D -> a) -> (D -> a)
deepOsc f x = mul 0.5 (f x + f (x / 2))
@@ -1436,7 +1436,7 @@ psDeepOscCfd4 koeffX koeffY (spec1, sh1) (spec2, sh2) (spec3, sh3) (spec4, sh4)
genPsPad :: (Sig2 -> Sig2) -> (ResonFilter -> (D, D) -> Sig -> Sig) -> (D -> SE Sig2) -> Patch2
genPsPad effect mkFilter wave = fxs $ polySyntFilter $ \filter ampCps -> mul (1.2 * fades 0.5 (0.6 + rel ampCps)) $ onCps (at (mkFilter filter ampCps) . wave) ampCps
- where
+ where
fxs = FxChain [fxSpec 0.25 (return . effect), fxSpec 0.5 (return . (at $ mul 2.1 . saturator 0.75)), fxSpec 0.3 (return . (at $ echo 0.125 0.65))]
rel (amp, cps) = amp - cps / 3500
@@ -1591,8 +1591,8 @@ vedicSizeLofi = 4
--
-- Good values for bandwidth lies in the interval [0, 120]
vedicPad :: SharcInstr -> PadsynthBandwidth -> Patch2
-vedicPad instr bandwidth = mul 0.8 $
- addPreFx 0.45 (return . pingPong 0.25 0.65 0.5) $
+vedicPad instr bandwidth = mul 0.8 $
+ addPreFx 0.45 (return . pingPong 0.25 0.65 0.5) $
psDeepSoftPadSharc' (def { padSharcBandwidth = bandwidth, padSharcSize = 15 }) instr
-- | Deep spiritual drones. Crossfade between two instruments.
@@ -1601,8 +1601,8 @@ vedicPad instr bandwidth = mul 0.8 $
--
-- Good values for bandwidth lies in the interval [0, 120]
vedicPadCfd :: Sig -> SharcInstr -> SharcInstr -> PadsynthBandwidth -> Patch2
-vedicPadCfd k instr1 instr2 bandwidth = mul 0.8 $
- addPreFx 0.45 (return . pingPong 0.25 0.65 0.5) $
+vedicPadCfd k instr1 instr2 bandwidth = mul 0.8 $
+ addPreFx 0.45 (return . pingPong 0.25 0.65 0.5) $
psDeepSoftPadSharcCfd' k (def { padSharcBandwidth = bandwidth, padSharcSize = 15 }, instr1) (def { padSharcBandwidth = bandwidth, padSharcSize = 15 }, instr2)
-- | Deep spiritual drones. Crossfade between four instruments.
@@ -1611,9 +1611,9 @@ vedicPadCfd k instr1 instr2 bandwidth = mul 0.8 $
--
-- Good values for bandwidth lies in the interval [0, 120]
vedicPadCfd4 :: Sig -> Sig -> SharcInstr -> SharcInstr -> SharcInstr -> SharcInstr -> PadsynthBandwidth -> Patch2
-vedicPadCfd4 kX kY instr1 instr2 instr3 instr4 bandwidth = mul 0.8 $
- addPreFx 0.45 (return . pingPong 0.25 0.65 0.5) $
- psDeepSoftPadSharcCfd4' kX kY
+vedicPadCfd4 kX kY instr1 instr2 instr3 instr4 bandwidth = mul 0.8 $
+ addPreFx 0.45 (return . pingPong 0.25 0.65 0.5) $
+ psDeepSoftPadSharcCfd4' kX kY
(def { padSharcBandwidth = bandwidth, padSharcSize = 15 }, instr1) (def { padSharcBandwidth = bandwidth, padSharcSize = 15 }, instr2)
(def { padSharcBandwidth = bandwidth, padSharcSize = 15 }, instr3) (def { padSharcBandwidth = bandwidth, padSharcSize = 15 }, instr4)
@@ -1624,9 +1624,9 @@ vedicPadCfd4 kX kY instr1 instr2 instr3 instr4 bandwidth = mul 0.8 $
--
-- Good values for bandwidth lies in the interval [0, 120]
vedicPadHifi :: SharcInstr -> PadsynthBandwidth -> Patch2
-vedicPadHifi instr bandwidth = mul 0.8 $
- addPreFx 0.45 (return . pingPong 0.25 0.65 0.5) $
- deepPad $
+vedicPadHifi instr bandwidth = mul 0.8 $
+ addPreFx 0.45 (return . pingPong 0.25 0.65 0.5) $
+ deepPad $
psSoftPadSharc' (def { padSharcBandwidth = bandwidth, padSharcSize = 32 }) instr
-- | Deep spiritual drones. Contains only quater of ftables as for simple @vedicPad@.
@@ -1635,9 +1635,9 @@ vedicPadHifi instr bandwidth = mul 0.8 $
--
-- Good values for bandwidth lies in the interval [0, 120]
vedicPadLofi :: SharcInstr -> PadsynthBandwidth -> Patch2
-vedicPadLofi instr bandwidth = mul 0.8 $
- addPreFx 0.45 (return . pingPong 0.25 0.65 0.5) $
- deepPad $
+vedicPadLofi instr bandwidth = mul 0.8 $
+ addPreFx 0.45 (return . pingPong 0.25 0.65 0.5) $
+ deepPad $
psSoftPadSharc' (def { padSharcBandwidth = bandwidth, padSharcSize = 4 }) instr
-- | Eminent
@@ -1814,7 +1814,7 @@ avataraBhumi = vedicCfd shAvatara shBhumi
noisyRise :: Patch2
noisyRise = fxs $ polySynt $ onCps $ \cps -> mul 0.24 $ wave cps
where
- fxs = FxChain [fxSpec 0.35 (return . largeHall2), fxSpec 0.5 (return . (at $ echo 0.25 0.85))]
+ fxs = FxChain [fxSpec 0.35 (return . largeHall2), fxSpec 0.5 (return . (at $ echo 0.25 0.85))]
wave x = noisy x + pad x
noisy x = at (mul 0.3 . fromMono . bat (bp (x * 5) 23) . lp (300 + 2500 * linseg [0, 0.73, 0, 8, 3]) 14) white
pad x = envelope $ filter x $ padsynthOsc2 spec x + mul 0.15 (padsynthOsc2 spec (x * 5)) + mul 0.5 (padsynthOsc2 spec (x / 2))
@@ -1833,7 +1833,7 @@ noisySpiral = noisySpiral' 8
noisySpiral' :: D -> Patch2
noisySpiral' spiralSpeed = fxs $ polySynt $ onCps $ \cps -> mul 0.24 $ wave cps
where
- fxs = FxChain [fxSpec 0.15 (return . magicCave2), fxSpec 0.43 (return . (at $ echo 0.35 0.85))]
+ fxs = FxChain [fxSpec 0.15 (return . magicCave2), fxSpec 0.43 (return . (at $ echo 0.35 0.85))]
wave x = noisy x + pad x
noisy x = at (mul 0.3 . fromMono . bat (bp (x * 5) 23) . lp (300 + 2500 * linseg [0, 0.73, 0, 8, 3] * uosc (expseg [0.25, 5, spiralSpeed])) 14) white
@@ -1854,8 +1854,8 @@ noisySpec = defPadsynthSpec 82.2 noisyHarms
----------------------------------
-dafunkWave cfq adsrFun (amp, cps) = at (bhp 30) $ diode (0.95 + 0.2 * cfq) (550 + 4500 * cfq) (0.52 + 0.4 * cfq) $ amp * env * (\x -> saw x + 0.5 * saw (x * 0.503) + 0.25 * (sqr (x * 0.253))) (port cps 0.001)
- where
+dafunkWave cfq adsrFun (amp, cps) = at (bhp 30) $ diode 1.2 (550 + 4500 * cfq) (0.52 + 0.4 * cfq) $ amp * env * (\x -> saw x + 0.5 * saw (x * 0.503) + 0.25 * (sqr (x * 0.253))) (port cps 0.001)
+ where
env = adsrFun 0.019 8.5 0.2 0.07
dafunkLead = adsrMono (\env (amp, cps) -> return $ fromMono $ dafunkWave cfq env (amp, cps))