{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
module Csound.Patch(
Epiano1(..), epiano1, epiano1',
MutedPiano(..), mutedPiano, mutedPiano',
amPiano, fmPiano,
epiano2, epianoHeavy, epianoBright,
vibraphonePiano1, vibraphonePiano2,
addHammer,
cathedralOrgan, toneWheelOrgan,
HammondOrgan(..), hammondOrgan, hammondOrgan',
sawOrgan, triOrgan, sqrOrgan, pwOrgan, waveOrgan,
hammondOrganm, hammondOrganm', sawOrganm, triOrganm, sqrOrganm, pwOrganm, waveOrganm,
accordeon, accordeonBright1, accordeonBright2, brokenAccordeon, accordeonHeavy,
accordeon', Accordeon(..),
choirA, choirO, choirU, choirE,
Choir(..), choirA', choirO', choirU', choirE',
windSings, noisyChoir, longNoisyChoir, noisyChoir', longNoisyChoir', NoisyChoir(..),
noisyRise, noisySpiral, noisySpiral',
pwPad, triPad, nightPad, overtonePad, caveOvertonePad,
chorusel, pwEnsemble, fmDroneSlow, fmDroneMedium, fmDroneFast, vibrophonePad,
RazorPad(..), razorPadSlow, razorPadFast, razorPadTremolo, razorPad, razorPad',
dreamPad, underwaterPad, lightIsTooBrightPad, whaleSongPad, dreamPadBy,
dreamPad', underwaterPad', lightIsTooBrightPad', whaleSongPad',
pwPadm, triPadm, nightPadm, overtonePadm, caveOvertonePadm, choruselm,
pwEnsemblem, fmDroneSlowm, fmDroneMediumm, fmDroneFastm,
razorPadSlowm, razorPadFastm, razorPadTremolom, razorPadm, razorPadm',
dreamPadm, dreamPadBym, underwaterPadm, lightIsTooBrightPadm, whaleSongPadm, dreamPadm', underwaterPadm', dreamPadBym',
lightIsTooBrightPadm', whaleSongPadm',
polySynth,
phasingLead, RazorLead(..), razorLeadSlow, razorLeadFast, razorLeadTremolo,
razorLead, razorLead',
overtoneLead,
polySynthm, dafunkLead,
simpleBass, pwBass, deepBass, withDeepBass,
fmBass1, fmBass2,
celloSynt,
guitar, harpsichord,
smallDahina, dahina, largeDahina, magicDahina,
smallBanyan,banyan, largeBanyan, magicBanyan,
smallXylophone, xylophone, largeXylophone, magicXylophone,
smallTibetanBowl180, tibetanBowl180, largeTibetanBowl180, magicTibetanBowl180,
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,
smallVibraphone1, vibraphone1, largeVibraphone1, magicVibraphone1,
smallVibraphone2, vibraphone2, largeVibraphone2, magicVibraphone2,
smallChalandiPlates, chalandiPlates, largeChalandiPlates, magicChalandiPlates,
smallTibetanBowl152, tibetanBowl152, largeTibetanBowl152, magicTibetanBowl152,
smallTibetanBowl140, tibetanBowl140, largeTibetanBowl140, magicTibetanBowl140,
smallWineGlass, wineGlass, largeWineGlass, magicWineGlass,
smallHandbell, handbell, largeHandbell, magicHandbell,
smallAlbertClockBellBelfast, albertClockBellBelfast, largeAlbertClockBellBelfast, magicAlbertClockBellBelfast,
smallWoodBlock, woodBlock, largeWoodBlock, magicWoodBlock,
scrapeDahina, scrapeBanyan, scrapeXylophone, scrapeTibetanBowl180, scrapeSpinelSphere, scrapePotLid, scrapeRedCedarWoodPlate,
scrapeTubularBell, scrapeRedwoodPlate, scrapeDouglasFirWoodPlate, scrapeUniformWoodenBar, scrapeUniformAluminumBar,
scrapeVibraphone1, scrapeVibraphone2, scrapeChalandiPlates, scrapeTibetanBowl152, scrapeTibetanBowl140, scrapeWineGlass,
scrapeSmallHandbell, scrapeAlbertClockBellBelfast, scrapeWoodBlock,
scrapeFastDahina, scrapeFastBanyan, scrapeFastXylophone, scrapeFastTibetanBowl180, scrapeFastSpinelSphere, scrapeFastPotLid,
scrapeFastRedCedarWoodPlate, scrapeFastTubularBell, scrapeFastRedwoodPlate, scrapeFastDouglasFirWoodPlate, scrapeFastUniformWoodenBar,
scrapeFastUniformAluminumBar, scrapeFastVibraphone1, scrapeFastVibraphone2, scrapeFastChalandiPlates, scrapeFastTibetanBowl152,
scrapeFastTibetanBowl140, scrapeFastWineGlass, scrapeFastSmallHandbell, scrapeFastAlbertClockBellBelfast, scrapeFastWoodBlock,
scrapePadDahina, scrapePadBanyan, scrapePadXylophone, scrapePadTibetanBowl180, scrapePadSpinelSphere, scrapePadPotLid,
scrapePadRedCedarWoodPlate, scrapePadTubularBell, scrapePadRedwoodPlate, scrapePadDouglasFirWoodPlate, scrapePadUniformWoodenBar,
scrapePadUniformAluminumBar, scrapePadVibraphone1, scrapePadVibraphone2, scrapePadChalandiPlates, scrapePadTibetanBowl152,
scrapePadTibetanBowl140, scrapePadWineGlass, scrapePadSmallHandbell, scrapePadAlbertClockBellBelfast, scrapePadWoodBlock,
scrapeDahinam, scrapeBanyanm, scrapeXylophonem, scrapeTibetanBowl180m, scrapeSpinelSpherem, scrapePotLidm, scrapeRedCedarWoodPlatem,
scrapeTubularBellm, scrapeRedwoodPlatem, scrapeDouglasFirWoodPlatem, scrapeUniformWoodenBarm, scrapeUniformAluminumBarm,
scrapeVibraphone1m, scrapeVibraphone2m, scrapeChalandiPlatesm, scrapeTibetanBowl152m, scrapeTibetanBowl140m, scrapeWineGlassm,
scrapeSmallHandbellm, scrapeAlbertClockBellBelfastm, scrapeWoodBlockm,
scrapePadDahinam, scrapePadBanyanm, scrapePadXylophonem, scrapePadTibetanBowl180m, scrapePadSpinelSpherem, scrapePadPotLidm,
scrapePadRedCedarWoodPlatem, scrapePadTubularBellm, scrapePadRedwoodPlatem, scrapePadDouglasFirWoodPlatem, scrapePadUniformWoodenBarm,
scrapePadUniformAluminumBarm, scrapePadVibraphone1m, scrapePadVibraphone2m, scrapePadChalandiPlatesm, scrapePadTibetanBowl152m,
scrapePadTibetanBowl140m, scrapePadWineGlassm, scrapePadSmallHandbellm, scrapePadAlbertClockBellBelfastm, scrapePadWoodBlockm,
Wind(..), woodWind',
fluteSpec, shortFluteSpec,
flute, shortFlute, fluteVibrato, mutedFlute, brightFlute,
bassClarinetSpec, shortBassClarinetSpec,
bassClarinet, shortBassClarinet, bassClarinetVibrato, mutedBassClarinet, brightBassClarinet,
frenchHornSpec, shortFrenchHornSpec,
frenchHorn, shortFrenchHorn, frenchHornVibrato, mutedFrenchHorn, brightFrenchHorn,
shengSpec, shortShengSpec,
sheng, shortSheng, shengVibrato, mutedSheng, brightSheng,
hulusiSpec, shortHulusiSpec,
hulusi, shortHulusi, hulusiVibrato, mutedHulusi, brightHulusi,
diziSpec, shortDiziSpec,
dizi, shortDizi, diziVibrato, mutedDizi, brightDizi,
SharcInstr,
soloSharc, orcSharc, padSharc, purePadSharc,
dreamSharc, lightIsTooBrightSharc, whaleSongSharc,
sharcOrgan,
PadSharcSpec(..),
psOrganSharc, psOrganSharc', psLargeOrganSharc, psLargeOrganSharc', psPianoSharc, psPianoSharc',
xpsPianoSharc, xpsPianoSharc',
psPadSharc, psPadSharc', psSoftPadSharc, psSoftPadSharc',
psMagicPadSharc, psMagicPadSharc', psMagicSoftPadSharc, psMagicSoftPadSharc',
psLargePianoSharc, psLargePianoSharc',
xpsLargePianoSharc,
xpsLargePianoSharc',
psDeepPadSharc, psDeepPadSharc', psDeepSoftPadSharc, psDeepSoftPadSharc',
psDeepMagicPadSharc, psDeepMagicPadSharc', psDeepMagicSoftPadSharc, psDeepMagicSoftPadSharc',
psPadSharcCfd, psPadSharcCfd', psPadSharcCfd4, psPadSharcCfd4', psDeepPadSharcCfd, psDeepPadSharcCfd',
psDeepPadSharcCfd4, psDeepPadSharcCfd4', psSoftPadSharcCfd, psSoftPadSharcCfd', psSoftPadSharcCfd4, psSoftPadSharcCfd4',
psDeepSoftPadSharcCfd, psDeepSoftPadSharcCfd', psDeepSoftPadSharcCfd4, psDeepSoftPadSharcCfd4',
psOrganSharcHifi,
psLargeOrganSharcHifi,
psPianoSharcHifi,
xpsPianoSharcHifi,
psPadSharcHifi,
psSoftPadSharcHifi,
psMagicPadSharcHifi,
psMagicSoftPadSharcHifi,
psLargePianoSharcHifi,
xpsLargePianoSharcHifi,
vedicPad, vedicPadCfd, vedicPadCfd4, vibhu, rishi, agni, prakriti, rajas, avatara, bhumi,
vedicPadHifi, vibhuHifi, rishiHifi, agniHifi, prakritiHifi, rajasHifi, avataraHifi, bhumiHifi,
vedicPadLofi, vibhuLofi, rishiLofi, agniLofi, prakritiLofi, rajasLofi, avataraLofi, bhumiLofi,
vibhuRishi, vibhuAgni, vibhuPrakriti, vibhuRajas, vibhuAvatara, vibhuBhumi, rishiAgni, rishiPrakriti,
rishiRajas, rishiAvatara, rishiBhumi, agniPrakriti, agniRajas, agniAvatara, agniBhumi, prakritiRajas,
prakritiAvatara, prakritiBhumi, rajasAvatara, rajasBhumi, avataraBhumi,
shViolin, shViolinPizzicato, shViolinMuted, shViolinMarteleBowing, shViolinsEnsemble, shViola, shViolaPizzicato, shViolaMuted,
shViolaMarteleBowing, shTuba, shTromboneMuted, shTrombone, shPiccolo, shOboe, shFrenchHornMuted, shFrenchHorn, shFlute,
shEnglishHorn, shClarinetEflat, shTrumpetMutedC, shTrumpetC, shContrabassClarinet, shContrabassoon, shCello, shCelloPizzicato,
shCelloMuted, shCelloMarteleBowing, shContrabassPizzicato, shContrabassMuted, shContrabassMarteleBowing, shContrabass,
shClarinet, shBassTrombone, shBassClarinet, shBassoon, shBassFlute, shTrumpetBach, shAltoTrombone, shAltoFlute,
pulseWidth, xanadu, alienIsAngry, noiz, blue, black, simpleMarimba, impulseMarimba1, impulseMarimba2, okComputer, noiseBell,
robotVowels, robotLoopVowels, robotVowel,
maleA, maleE, maleIY, maleO, maleOO, maleU, maleER, maleUH,
femaleA, femaleE, femaleIY, femaleO, femaleOO,
windWall, mildWind, wind, snowCrackle,
limRel,
singleFx, singleFx'
) where
import Prelude hiding (filter)
import Csound.Base hiding (ampCps, br, seed, filt, detune, mute)
import qualified Csound.Base as C(br, filt)
import qualified Csound.Catalog.Wave as C
import qualified Csound.Catalog.Reson as C
import Csound.Catalog.Wave(maleA, maleE, maleIY, maleO, maleOO, maleU, maleER, maleUH,
femaleA, femaleE, femaleIY, femaleO, femaleOO)
import Csound.Catalog.Wave(Accordeon(..),
ReleaseTime,
SharcInstr,
PadSharcSpec(..),
shViolin, shViolinPizzicato, shViolinMuted, shViolinMarteleBowing, shViolinsEnsemble, shViola, shViolaPizzicato, shViolaMuted,
shViolaMarteleBowing, shTuba, shTromboneMuted, shTrombone, shPiccolo, shOboe, shFrenchHornMuted, shFrenchHorn, shFlute,
shEnglishHorn, shClarinetEflat, shTrumpetMutedC, shTrumpetC, shContrabassClarinet, shContrabassoon, shCello, shCelloPizzicato,
shCelloMuted, shCelloMarteleBowing, shContrabassPizzicato, shContrabassMuted, shContrabassMarteleBowing, shContrabass,
shClarinet, shBassTrombone, shBassClarinet, shBassoon, shBassFlute, shTrumpetBach, shAltoTrombone, shAltoFlute)
monoArgToNote :: MonoArg -> (Sig, Sig)
monoArgToNote :: MonoArg -> (DryWetRatio, DryWetRatio)
monoArgToNote MonoArg
arg = (MonoArg -> DryWetRatio
monoAmp MonoArg
arg DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* MonoArg -> DryWetRatio
monoGate MonoArg
arg, MonoArg -> DryWetRatio
monoCps MonoArg
arg)
monoSig1 :: SigSpace a => (Sig -> a) -> (MonoArg -> a)
monoSig1 :: forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 DryWetRatio -> a
f MonoArg
arg = DryWetRatio -> a -> a
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
env (a -> a) -> a -> a
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> a
f DryWetRatio
cps
where
env :: DryWetRatio
env = DryWetRatio
amp DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* MonoArg -> MonoAdsr
monoAdsr MonoArg
arg DryWetRatio
0.35 DryWetRatio
0.5 DryWetRatio
1 DryWetRatio
0.5
amp :: DryWetRatio
amp = DryWetRatio -> D -> DryWetRatio
port (MonoArg -> DryWetRatio
monoAmp MonoArg
arg) D
0.01
cps :: DryWetRatio
cps = DryWetRatio -> DryWetRatio -> DryWetRatio
portk (MonoArg -> DryWetRatio
monoCps MonoArg
arg) (DryWetRatio -> DryWetRatio
delay1 DryWetRatio
gate DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
0.01)
gate :: DryWetRatio
gate = MonoArg -> DryWetRatio
monoGate MonoArg
arg
fx1 :: Sig -> (a -> a) -> Patch a -> Patch a
fx1 :: forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
dw a -> a
f = [GenFxSpec a] -> Patch a -> Patch a
forall a. [GenFxSpec a] -> Patch a -> Patch a
FxChain [DryWetRatio -> Fx a -> GenFxSpec a
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
dw (Fx a
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return Fx a -> (a -> a) -> Fx a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
f)]
fx1' :: Sig -> (a -> SE a) -> Patch a -> Patch a
fx1' :: forall a. DryWetRatio -> (a -> SE a) -> Patch a -> Patch a
fx1' DryWetRatio
dw a -> SE a
f = [GenFxSpec a] -> Patch a -> Patch a
forall a. [GenFxSpec a] -> Patch a -> Patch a
FxChain [DryWetRatio -> (a -> SE a) -> GenFxSpec a
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
dw a -> SE a
f]
singleFx :: Sig -> (a -> a) -> Patch a -> Patch a
singleFx :: forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
singleFx = DryWetRatio -> (a -> a) -> Patch a -> Patch a
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1
singleFxFilter :: Sig -> (ResonFilter -> a -> a) -> Patch a -> Patch a
singleFxFilter :: forall a.
DryWetRatio -> (ResonFilter -> a -> a) -> Patch a -> Patch a
singleFxFilter DryWetRatio
dw ResonFilter -> a -> a
f = [GenFxSpec a] -> Patch a -> Patch a
forall a. [GenFxSpec a] -> Patch a -> Patch a
FxChain [DryWetRatio -> (ResonFilter -> Fx a) -> GenFxSpec a
forall a. DryWetRatio -> (ResonFilter -> Fx a) -> GenFxSpec a
fxSpecFilter DryWetRatio
dw (\ResonFilter
filter a
x -> Fx a
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return Fx a -> Fx a
forall a b. (a -> b) -> a -> b
$ ResonFilter -> a -> a
f ResonFilter
filter a
x)]
singleFx' :: Sig -> (a -> SE a) -> Patch a -> Patch a
singleFx' :: forall a. DryWetRatio -> (a -> SE a) -> Patch a -> Patch a
singleFx' = DryWetRatio -> (a -> SE a) -> Patch a -> Patch a
forall a. DryWetRatio -> (a -> SE a) -> Patch a -> Patch a
fx1'
limRel :: SigSpace a => D -> Patch a -> Patch a
limRel :: forall a. SigSpace a => D -> Patch a -> Patch a
limRel D
rel Patch a
p = (Instr D a -> Instr D a) -> Patch a -> Patch a
forall a. (Instr D a -> Instr D a) -> Patch a -> Patch a
mapPatchInstr (\Instr D a
instr -> (a -> a) -> SE a -> SE a
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (DryWetRatio -> a -> a
forall a. SigSpace a => DryWetRatio -> a -> a
mul (D -> DryWetRatio
fadeOut D
rel)) (SE a -> SE a) -> Instr D a -> Instr D a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Instr D a
instr) Patch a
p
data Epiano1 = Epiano1
{ Epiano1 -> D
epiano1Rel :: D }
instance Default Epiano1 where
def :: Epiano1
def = D -> Epiano1
Epiano1 D
5
epiano1 :: Patch2
epiano1 = Epiano1 -> Patch2
epiano1' Epiano1
forall a. Default a => a
def
epiano1' :: Epiano1 -> Patch2
epiano1' (Epiano1 D
rel) = Patch2 -> Patch2
withLargeHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ \CsdNote D
a -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.4 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ D -> Instr D (DryWetRatio, DryWetRatio)
C.simpleFading D
rel CsdNote D
a
data MutedPiano = MutedPiano
{ MutedPiano -> DryWetRatio
mutedPianoMute :: Sig
, MutedPiano -> D
mutedPianoRel :: D }
instance Default MutedPiano where
def :: MutedPiano
def = DryWetRatio -> D -> MutedPiano
MutedPiano DryWetRatio
0.5 D
7
mutedPiano :: Patch2
mutedPiano = MutedPiano -> Patch2
mutedPiano' MutedPiano
forall a. Default a => a
def
mutedPiano' :: MutedPiano -> Patch2
mutedPiano' (MutedPiano DryWetRatio
mute D
rel) = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.25 ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at (ResonFilter
mlp3 (DryWetRatio
250 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ DryWetRatio
7000 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
mute) DryWetRatio
0.2)) (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$
Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ \CsdNote D
a -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.7 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ D -> Instr D (DryWetRatio, DryWetRatio)
C.simpleSust D
rel CsdNote D
a
amPiano :: Patch DryWetRatio
amPiano = DryWetRatio
-> (DryWetRatio -> DryWetRatio)
-> Patch DryWetRatio
-> Patch DryWetRatio
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.25 DryWetRatio -> DryWetRatio
forall a. a -> a
id (Patch DryWetRatio -> Patch DryWetRatio)
-> Patch DryWetRatio -> Patch DryWetRatio
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> Instr D DryWetRatio) -> Patch DryWetRatio
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D DryWetRatio) -> Patch DryWetRatio)
-> (ResonFilter -> Instr D DryWetRatio) -> Patch DryWetRatio
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
1.4 (SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (ResonFilter -> DryWetRatio -> SE DryWetRatio
C.amPianoBy ResonFilter
filter)
fmPiano :: Patch2
fmPiano = Patch2 -> Patch2
withSmallHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.75 (SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (D -> DryWetRatio -> DryWetRatio -> DryWetRatio
C.fmFlavio D
6 DryWetRatio
3)
epianoReleaseTime :: ReleaseTime
epianoReleaseTime :: D
epianoReleaseTime = D
0.25
epiano2 :: Patch2
epiano2 = DryWetRatio -> Patch2 -> Patch2
addHammer DryWetRatio
0.15 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.25 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$
(ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
1.125 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Instr D DryWetRatio
-> CsdNote D -> SE (CpsInstrOut (Instr D DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (Instr D DryWetRatio
-> CsdNote D -> SE (CpsInstrOut (Instr D DryWetRatio)))
-> Instr D DryWetRatio
-> CsdNote D
-> SE (CpsInstrOut (Instr D DryWetRatio))
forall a b. (a -> b) -> a -> b
$ ResonFilter -> D -> [EpianoOsc] -> Instr D DryWetRatio
C.epianoBy ResonFilter
filter D
epianoReleaseTime [Int -> DryWetRatio -> DryWetRatio -> DryWetRatio -> EpianoOsc
C.EpianoOsc Int
4 DryWetRatio
5 DryWetRatio
1 DryWetRatio
1, Int -> DryWetRatio -> DryWetRatio -> DryWetRatio -> EpianoOsc
C.EpianoOsc Int
8 DryWetRatio
10 DryWetRatio
2.01 DryWetRatio
1])
epianoHeavy :: Patch2
epianoHeavy = DryWetRatio -> Patch2 -> Patch2
addHammer DryWetRatio
0.15 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.2 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$
(ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
1.125 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Instr D DryWetRatio
-> CsdNote D -> SE (CpsInstrOut (Instr D DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (Instr D DryWetRatio
-> CsdNote D -> SE (CpsInstrOut (Instr D DryWetRatio)))
-> Instr D DryWetRatio
-> CsdNote D
-> SE (CpsInstrOut (Instr D DryWetRatio))
forall a b. (a -> b) -> a -> b
$ ResonFilter -> D -> [EpianoOsc] -> Instr D DryWetRatio
C.epianoBy ResonFilter
filter D
epianoReleaseTime [Int -> DryWetRatio -> DryWetRatio -> DryWetRatio -> EpianoOsc
C.EpianoOsc Int
4 DryWetRatio
5 DryWetRatio
1 DryWetRatio
1, Int -> DryWetRatio -> DryWetRatio -> DryWetRatio -> EpianoOsc
C.EpianoOsc Int
8 DryWetRatio
10 DryWetRatio
2.01 DryWetRatio
1, Int -> DryWetRatio -> DryWetRatio -> DryWetRatio -> EpianoOsc
C.EpianoOsc Int
8 DryWetRatio
15 DryWetRatio
0.5 DryWetRatio
0.5])
epianoBright :: Patch2
epianoBright = DryWetRatio -> Patch2 -> Patch2
addHammer DryWetRatio
0.15 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.2 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$
(ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
1.12 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Instr D DryWetRatio
-> CsdNote D -> SE (CpsInstrOut (Instr D DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (Instr D DryWetRatio
-> CsdNote D -> SE (CpsInstrOut (Instr D DryWetRatio)))
-> Instr D DryWetRatio
-> CsdNote D
-> SE (CpsInstrOut (Instr D DryWetRatio))
forall a b. (a -> b) -> a -> b
$ ResonFilter -> D -> [EpianoOsc] -> Instr D DryWetRatio
C.epianoBy ResonFilter
filter D
epianoReleaseTime [Int -> DryWetRatio -> DryWetRatio -> DryWetRatio -> EpianoOsc
C.EpianoOsc Int
4 DryWetRatio
5 DryWetRatio
1 DryWetRatio
1, Int -> DryWetRatio -> DryWetRatio -> DryWetRatio -> EpianoOsc
C.EpianoOsc Int
8 DryWetRatio
10 DryWetRatio
3.01 DryWetRatio
1, Int -> DryWetRatio -> DryWetRatio -> DryWetRatio -> EpianoOsc
C.EpianoOsc Int
8 DryWetRatio
15 DryWetRatio
5 DryWetRatio
0.5, Int -> DryWetRatio -> DryWetRatio -> DryWetRatio -> EpianoOsc
C.EpianoOsc Int
8 DryWetRatio
4 DryWetRatio
7 DryWetRatio
0.3])
vibraphonePiano1 :: Patch2
vibraphonePiano1 = Patch2 -> Patch2
vibraphoneToPiano Patch2
smallVibraphone1
vibraphonePiano2 :: Patch2
vibraphonePiano2 = Patch2 -> Patch2
vibraphoneToPiano Patch2
smallVibraphone2
vibraphoneToPiano :: Patch2 -> Patch2
vibraphoneToPiano Patch2
patch = DryWetRatio -> Patch2 -> Patch2
addHammer DryWetRatio
0.15 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio))
-> Patch2 -> Patch2
forall a. (Instr D a -> Instr D a) -> Patch a -> Patch a
mapPatchInstr (\Instr D (DryWetRatio, DryWetRatio)
instr -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
1.5 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> DryWetRatio
fadeOut D
0.25) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (SE (DryWetRatio, DryWetRatio))
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at (ResonFilter
mlp DryWetRatio
6500 DryWetRatio
0.1) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Instr D (DryWetRatio, DryWetRatio)
instr) Patch2
patch
addHammer :: Sig -> Patch2 -> Patch2
addHammer :: DryWetRatio -> Patch2 -> Patch2
addHammer DryWetRatio
amt = DryWetRatio -> Patch2 -> Patch2 -> Patch2
forall b.
(SigSpace b, Num b) =>
DryWetRatio -> Patch b -> Patch b -> Patch b
mixInstr DryWetRatio
amt Patch2
impulseMarimba2
cathedralOrgan :: Patch2
cathedralOrgan = Patch2 -> Patch2
withLargeHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.7 (SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps DryWetRatio -> SE DryWetRatio
C.cathedralOrgan
data HammondOrgan = HammondOrgan
{ HammondOrgan -> DryWetRatio
hammondOrganDetune :: Sig }
instance Default HammondOrgan where
def :: HammondOrgan
def = DryWetRatio -> HammondOrgan
HammondOrgan DryWetRatio
12
hammondOrgan :: Patch2
hammondOrgan = HammondOrgan -> Patch2
hammondOrgan' HammondOrgan
forall a. Default a => a
def
hammondOrganm :: Patch2
hammondOrganm = HammondOrgan -> Patch2
hammondOrganm' HammondOrgan
forall a. Default a => a
def
hammondOrgan' :: HammondOrgan -> Patch2
hammondOrgan' (HammondOrgan DryWetRatio
detune) = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.15 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallRoom2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.4 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.hammondOrgan DryWetRatio
detune)
hammondOrganm' :: HammondOrgan -> Patch2
hammondOrganm' (HammondOrgan DryWetRatio
detune) = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.15 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallRoom2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a. MonoInstr a -> Patch a
monoSynt (MonoInstr (DryWetRatio, DryWetRatio) -> Patch2)
-> MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.4 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> MonoInstr (DryWetRatio, DryWetRatio)
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> SE DryWetRatio)
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio) -> MonoArg -> SE DryWetRatio
forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 (DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.hammondOrgan DryWetRatio
detune)
toneWheelOrgan :: Patch2
toneWheelOrgan = Patch2 -> Patch2
withSmallHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.6 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> DryWetRatio
fadeOut D
0.05) (SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (D -> DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (D -> DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps D -> DryWetRatio
C.toneWheel
sawOrgan :: Patch2
sawOrgan = DryWetRatio -> Patch2 -> Patch2
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.45 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> SE DryWetRatio) -> Patch2
waveOrgan DryWetRatio -> SE DryWetRatio
rndSaw
triOrgan :: Patch2
triOrgan = DryWetRatio -> Patch2 -> Patch2
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.5 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> SE DryWetRatio) -> Patch2
waveOrgan DryWetRatio -> SE DryWetRatio
rndTri
sqrOrgan :: Patch2
sqrOrgan = DryWetRatio -> Patch2 -> Patch2
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.45 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> SE DryWetRatio) -> Patch2
waveOrgan DryWetRatio -> SE DryWetRatio
rndSqr
pwOrgan :: DryWetRatio -> Patch2
pwOrgan DryWetRatio
k = DryWetRatio -> Patch2 -> Patch2
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.45 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> SE DryWetRatio) -> Patch2
waveOrgan (DryWetRatio -> DryWetRatio -> SE DryWetRatio
rndPw DryWetRatio
k)
sawOrganm :: Patch2
sawOrganm = DryWetRatio -> Patch2 -> Patch2
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.45 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> SE DryWetRatio) -> Patch2
waveOrganm DryWetRatio -> SE DryWetRatio
rndSaw
triOrganm :: Patch2
triOrganm = DryWetRatio -> Patch2 -> Patch2
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.5 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> SE DryWetRatio) -> Patch2
waveOrganm DryWetRatio -> SE DryWetRatio
rndTri
sqrOrganm :: Patch2
sqrOrganm = DryWetRatio -> Patch2 -> Patch2
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.45 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> SE DryWetRatio) -> Patch2
waveOrganm DryWetRatio -> SE DryWetRatio
rndSqr
pwOrganm :: DryWetRatio -> Patch2
pwOrganm DryWetRatio
k = DryWetRatio -> Patch2 -> Patch2
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.45 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> SE DryWetRatio) -> Patch2
waveOrganm (DryWetRatio -> DryWetRatio -> SE DryWetRatio
rndPw DryWetRatio
k)
organFx :: Patch2 -> Patch2
organFx :: Patch2 -> Patch2
organFx = Patch2 -> Patch2
withSmallHall (Patch2 -> Patch2) -> (Patch2 -> Patch2) -> Patch2 -> Patch2
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio
-> (ResonFilter
-> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a.
DryWetRatio -> (ResonFilter -> a -> a) -> Patch a -> Patch a
singleFxFilter DryWetRatio
1 (\ResonFilter
filter -> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ ResonFilter
filter DryWetRatio
3500 DryWetRatio
0.1)
waveOrgan :: (Sig -> SE Sig) -> Patch2
waveOrgan :: (DryWetRatio -> SE DryWetRatio) -> Patch2
waveOrgan DryWetRatio -> SE DryWetRatio
wave = Patch2 -> Patch2
organFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (DryWetRatio -> SE (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps ((DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (DryWetRatio -> SE (DryWetRatio, DryWetRatio))))
-> (DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (DryWetRatio -> SE (DryWetRatio, DryWetRatio)))
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (D -> D -> DryWetRatio
fades D
0.01 D
0.01) (SE DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio -> SE DryWetRatio) -> DryWetRatio -> SE DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio
wave
waveOrganm :: (Sig -> SE Sig) -> Patch2
waveOrganm :: (DryWetRatio -> SE DryWetRatio) -> Patch2
waveOrganm DryWetRatio -> SE DryWetRatio
wave = Patch2 -> Patch2
organFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a. MonoInstr a -> Patch a
monoSynt (MonoInstr (DryWetRatio, DryWetRatio) -> Patch2)
-> MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> MonoInstr (DryWetRatio, DryWetRatio)
forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 ((DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> MonoInstr (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> MonoInstr (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (D -> D -> DryWetRatio
fades D
0.01 D
0.01) (SE DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio -> SE DryWetRatio) -> DryWetRatio -> SE DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio
wave
waveOrganWithKey :: (D -> Sig -> SE Sig) -> Patch2
waveOrganWithKey :: (D -> DryWetRatio -> SE DryWetRatio) -> Patch2
waveOrganWithKey D -> DryWetRatio -> SE DryWetRatio
wave = Patch2 -> Patch2
organFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (D -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (D -> SE (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps ((D -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (D -> SE (DryWetRatio, DryWetRatio))))
-> (D -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (D -> SE (DryWetRatio, DryWetRatio)))
forall a b. (a -> b) -> a -> b
$ \D
cps -> ((DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (D -> D -> DryWetRatio
fades D
0.01 D
0.01) (SE DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio -> SE DryWetRatio) -> DryWetRatio -> SE DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> DryWetRatio -> SE DryWetRatio
wave D
cps) (D -> DryWetRatio
sig D
cps)
accordeon :: Patch2
accordeon = Accordeon -> Patch2
accordeon' Accordeon
forall a. Default a => a
def
accordeonBright1 :: Patch2
accordeonBright1 = Accordeon -> Patch2
accordeon' (DryWetRatio
-> DryWetRatio -> DryWetRatio -> DryWetRatio -> Accordeon
C.Accordeon DryWetRatio
1 DryWetRatio
5 DryWetRatio
3 DryWetRatio
7)
accordeonBright2 :: Patch2
accordeonBright2 = Accordeon -> Patch2
accordeon' (DryWetRatio
-> DryWetRatio -> DryWetRatio -> DryWetRatio -> Accordeon
C.Accordeon DryWetRatio
1 DryWetRatio
6 DryWetRatio
3 DryWetRatio
13)
accordeonHeavy :: Patch2
accordeonHeavy = Accordeon -> Patch2
accordeon' (DryWetRatio
-> DryWetRatio -> DryWetRatio -> DryWetRatio -> Accordeon
C.Accordeon DryWetRatio
1 DryWetRatio
0.501 DryWetRatio
2 DryWetRatio
1.005)
brokenAccordeon :: Patch2
brokenAccordeon = Accordeon -> Patch2
accordeon' (DryWetRatio
-> DryWetRatio -> DryWetRatio -> DryWetRatio -> Accordeon
C.Accordeon DryWetRatio
1 DryWetRatio
1.07 DryWetRatio
2.02 DryWetRatio
0.5)
accordeon' :: Accordeon -> Patch2
accordeon' Accordeon
spec = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> SE a) -> Patch a -> Patch a
fx1' DryWetRatio
0.25 (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
C.accordeonFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.63 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (DryWetRatio -> SE (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (Accordeon -> DryWetRatio -> SE (DryWetRatio, DryWetRatio)
C.accordeon Accordeon
spec)
data Choir = Choir { Choir -> DryWetRatio
choirVibr :: Sig }
instance Default Choir where
def :: Choir
def = DryWetRatio -> Choir
Choir DryWetRatio
7
tenor' :: (DryWetRatio -> DryWetRatio) -> Choir -> Patch2
tenor' DryWetRatio -> DryWetRatio
filt (Choir DryWetRatio
vib) = Patch2 -> Patch2
withSmallHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.15 (SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps ((DryWetRatio -> DryWetRatio)
-> DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.tenorOsc DryWetRatio -> DryWetRatio
filt DryWetRatio
vib)
soprano' :: (DryWetRatio -> DryWetRatio) -> Choir -> Patch2
soprano' DryWetRatio -> DryWetRatio
filt (Choir DryWetRatio
vib) = Patch2 -> Patch2
withSmallHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.15 (SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps ((DryWetRatio -> DryWetRatio)
-> DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.sopranoOsc DryWetRatio -> DryWetRatio
filt DryWetRatio
vib)
choir' :: (DryWetRatio -> DryWetRatio) -> Choir -> Patch2
choir' DryWetRatio -> DryWetRatio
filt Choir
vib = Patch2 -> Patch2
withSmallHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Patch2 -> D -> Patch2 -> Patch2
forall a. Patch a -> D -> Patch a -> Patch a
SplitPatch (Patch2 -> Patch2
forall a. Patch a -> Patch a
dryPatch (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> DryWetRatio) -> Choir -> Patch2
tenor' DryWetRatio -> DryWetRatio
filt Choir
vib) D
220 (Patch2 -> Patch2
forall a. Patch a -> Patch a
dryPatch (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> DryWetRatio) -> Choir -> Patch2
soprano' DryWetRatio -> DryWetRatio
filt Choir
vib)
choirA :: Patch2
choirA = Choir -> Patch2
choirA' Choir
forall a. Default a => a
def
choirO :: Patch2
choirO = Choir -> Patch2
choirO' Choir
forall a. Default a => a
def
choirE :: Patch2
choirE = Choir -> Patch2
choirE' Choir
forall a. Default a => a
def
choirU :: Patch2
choirU = Choir -> Patch2
choirU' Choir
forall a. Default a => a
def
choirA' :: Choir -> Patch2
choirA' = (DryWetRatio -> DryWetRatio) -> Choir -> Patch2
choir' DryWetRatio -> DryWetRatio
singA
choirO' :: Choir -> Patch2
choirO' = (DryWetRatio -> DryWetRatio) -> Choir -> Patch2
choir' DryWetRatio -> DryWetRatio
singO
choirE' :: Choir -> Patch2
choirE' = (DryWetRatio -> DryWetRatio) -> Choir -> Patch2
choir' DryWetRatio -> DryWetRatio
singE
choirU' :: Choir -> Patch2
choirU' = (DryWetRatio -> DryWetRatio) -> Choir -> Patch2
choir' DryWetRatio -> DryWetRatio
singU
data NoisyChoir = NoisyChoir
{ NoisyChoir -> Int
noisyChoirFilterNum :: Int
, NoisyChoir -> DryWetRatio
noisyChoirBw :: Sig
}
instance Default NoisyChoir where
def :: NoisyChoir
def = Int -> DryWetRatio -> NoisyChoir
NoisyChoir Int
2 DryWetRatio
25
windSings :: Patch2
windSings = NoisyChoir -> Patch2
longNoisyChoir' (Int -> DryWetRatio -> NoisyChoir
NoisyChoir Int
1 DryWetRatio
15)
longNoisyChoir :: Patch2
longNoisyChoir = NoisyChoir -> Patch2
longNoisyChoir' NoisyChoir
forall a. Default a => a
def
noisyChoir :: Patch2
noisyChoir = NoisyChoir -> Patch2
noisyChoir' NoisyChoir
forall a. Default a => a
def
dryNoisyChoir :: NoisyChoir -> Patch2
dryNoisyChoir (NoisyChoir Int
n DryWetRatio
bw) = Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.45 (SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (Int -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.noisyChoir Int
n DryWetRatio
bw)
longNoisyChoir' :: NoisyChoir -> Patch2
longNoisyChoir' NoisyChoir
ch = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.15 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
magicCave2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ NoisyChoir -> Patch2
dryNoisyChoir NoisyChoir
ch
noisyChoir' :: NoisyChoir -> Patch2
noisyChoir' NoisyChoir
ch = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.15 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ NoisyChoir -> Patch2
dryNoisyChoir NoisyChoir
ch
pwPad :: Patch2
pwPad = Patch2 -> Patch2
withSmallHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.6 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (ResonFilter -> DryWetRatio -> SE DryWetRatio
C.pwPadBy ResonFilter
filter)
pwPadm :: Patch2
pwPadm = Patch2 -> Patch2
withSmallHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> MonoInstr a) -> Patch a
monoSyntFilter ((ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.6 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> MonoInstr (DryWetRatio, DryWetRatio)
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> SE DryWetRatio)
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio) -> MonoArg -> SE DryWetRatio
forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 (ResonFilter -> DryWetRatio -> SE DryWetRatio
C.pwPadBy ResonFilter
filter)
triPad :: Patch2
triPad = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> SE a) -> Patch a -> Patch a
fx1' DryWetRatio
0.25 (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
C.triPadFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.7 (SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (ResonFilter -> DryWetRatio -> SE DryWetRatio
C.triPadBy ResonFilter
filter)
triPadm :: Patch2
triPadm = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> SE a) -> Patch a -> Patch a
fx1' DryWetRatio
0.25 (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
C.triPadFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> MonoInstr a) -> Patch a
monoSyntFilter ((ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> SE DryWetRatio)
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.7 (SE DryWetRatio -> SE DryWetRatio)
-> (MonoArg -> SE DryWetRatio) -> MonoArg -> SE DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio) -> MonoArg -> SE DryWetRatio
forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 (ResonFilter -> DryWetRatio -> SE DryWetRatio
C.triPadBy ResonFilter
filter)
nightPad :: Patch2
nightPad = Patch2 -> Patch2
withLargeHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.48 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (D -> DryWetRatio
fadeOut D
1) (DryWetRatio -> DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> DryWetRatio -> DryWetRatio
C.nightPad D
0.5)
nightPadm :: Patch2
nightPadm = Patch2 -> Patch2
withLargeHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a. MonoInstr a -> Patch a
monoSynt (MonoInstr (DryWetRatio, DryWetRatio) -> Patch2)
-> MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.48 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> MonoInstr (DryWetRatio, DryWetRatio)
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> (DryWetRatio, DryWetRatio))
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> (MonoArg -> DryWetRatio)
-> MonoArg
-> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio) -> MonoArg -> DryWetRatio
forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 ((D -> DryWetRatio
fadeOut D
1 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* ) (DryWetRatio -> DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> DryWetRatio -> DryWetRatio
C.nightPad D
0.5)
overtoneFx :: Patch2 -> Patch2
overtoneFx Patch2
p = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.35 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> (ResonFilter
-> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a.
DryWetRatio -> (ResonFilter -> a -> a) -> Patch a -> Patch a
singleFxFilter DryWetRatio
0.25 (\ResonFilter
filter -> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at (ResonFilter
filter DryWetRatio
1500 DryWetRatio
0.1)) Patch2
p
caveOvertoneFx :: Patch2 -> Patch2
caveOvertoneFx Patch2
p = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.2 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
magicCave2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> (ResonFilter
-> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a.
DryWetRatio -> (ResonFilter -> a -> a) -> Patch a -> Patch a
singleFxFilter DryWetRatio
0.25 (\ResonFilter
filter -> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at (ResonFilter
filter DryWetRatio
1500 DryWetRatio
0.1)) (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> Patch2 -> Patch2
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.8 Patch2
p
overtonePad :: Patch2
overtonePad = Patch2 -> Patch2
overtoneFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.65 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (\DryWetRatio
cps -> DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (D -> D -> DryWetRatio
fades D
0.25 D
1.2) (Int -> DryWetRatio -> DryWetRatio -> DryWetRatio
C.tibetan Int
11 DryWetRatio
0.012 DryWetRatio
cps) DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (D -> D -> DryWetRatio
fades D
0.25 D
1) (Int -> DryWetRatio -> DryWetRatio -> DryWetRatio
C.tibetan Int
13 DryWetRatio
0.015 (DryWetRatio
cps DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
0.5)))
overtonePadm :: Patch2
overtonePadm = Patch2 -> Patch2
overtoneFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a. MonoInstr a -> Patch a
monoSynt (MonoInstr (DryWetRatio, DryWetRatio) -> Patch2)
-> MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.65 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> MonoInstr (DryWetRatio, DryWetRatio)
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> (DryWetRatio, DryWetRatio))
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> (MonoArg -> DryWetRatio)
-> MonoArg
-> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio) -> MonoArg -> DryWetRatio
forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 (\DryWetRatio
cps -> DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (D -> D -> DryWetRatio
fades D
0.25 D
1.2) (Int -> DryWetRatio -> DryWetRatio -> DryWetRatio
C.tibetan Int
11 DryWetRatio
0.012 DryWetRatio
cps) DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (D -> D -> DryWetRatio
fades D
0.25 D
1) (Int -> DryWetRatio -> DryWetRatio -> DryWetRatio
C.tibetan Int
13 DryWetRatio
0.015 (DryWetRatio
cps DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
0.5)))
caveOvertonePad :: Patch2
caveOvertonePad = Patch2 -> Patch2
caveOvertoneFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Patch2 -> Patch2
forall a. Patch a -> Patch a
dryPatch Patch2
overtonePad
caveOvertonePadm :: Patch2
caveOvertonePadm = Patch2 -> Patch2
caveOvertoneFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Patch2 -> Patch2
forall a. Patch a -> Patch a
dryPatch Patch2
overtonePadm
chorusel :: Patch2
chorusel = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.35 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter CsdNote D
note -> (DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.9 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (SE (DryWetRatio, DryWetRatio))
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at (ResonFilter
filter (DryWetRatio
3500 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ DryWetRatio
2000 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio -> DryWetRatio
uosc DryWetRatio
0.1) DryWetRatio
0.1) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (DryWetRatio -> (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (DryWetRatio
-> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (D -> D -> DryWetRatio
fades D
0.65 D
1) ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> DryWetRatio
-> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> D -> D -> DryWetRatio -> (DryWetRatio, DryWetRatio)
C.chorusel D
13 D
0.5 D
10)) CsdNote D
note
choruselm :: Patch2
choruselm = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.35 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> MonoInstr a) -> Patch a
monoSyntFilter ((ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter MonoArg
note -> (DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.9 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> MonoInstr (DryWetRatio, DryWetRatio)
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> (DryWetRatio, DryWetRatio))
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at (ResonFilter
filter (DryWetRatio
3500 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ DryWetRatio
2000 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio -> DryWetRatio
uosc DryWetRatio
0.1) DryWetRatio
0.1) ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (MonoArg -> (DryWetRatio, DryWetRatio))
-> MonoArg
-> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> MonoArg -> (DryWetRatio, DryWetRatio)
forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 (DryWetRatio
-> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (D -> D -> DryWetRatio
fades D
0.65 D
1) ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> DryWetRatio
-> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> D -> D -> DryWetRatio -> (DryWetRatio, DryWetRatio)
C.chorusel D
13 D
0.5 D
10)) MonoArg
note
pwEnsemble :: Patch2
pwEnsemble = Patch2 -> Patch2
withSmallHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.55 (SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (ResonFilter -> DryWetRatio -> SE DryWetRatio
C.pwEnsembleBy ResonFilter
filter)
pwEnsemblem :: Patch2
pwEnsemblem = Patch2 -> Patch2
withSmallHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> MonoInstr a) -> Patch a
monoSyntFilter ((ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> SE DryWetRatio)
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.55 (SE DryWetRatio -> SE DryWetRatio)
-> (MonoArg -> SE DryWetRatio) -> MonoArg -> SE DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio) -> MonoArg -> SE DryWetRatio
forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 (ResonFilter -> DryWetRatio -> SE DryWetRatio
C.pwEnsembleBy ResonFilter
filter)
fmDroneSlow :: Patch2
fmDroneSlow = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.35 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio)
-> AtOut
DryWetRatio
(DryWetRatio, DryWetRatio)
(SE (DryWetRatio, DryWetRatio))
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.5 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (DryWetRatio -> (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (DryWetRatio
-> CsdNote D -> DryWetRatio -> (DryWetRatio, DryWetRatio)
C.fmDrone DryWetRatio
3 (D
10, D
5))
fmDroneSlowm :: Patch2
fmDroneSlowm = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.35 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a. MonoInstr a -> Patch a
monoSynt (MonoInstr (DryWetRatio, DryWetRatio) -> Patch2)
-> MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> (DryWetRatio, DryWetRatio))
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> AtOut
DryWetRatio (DryWetRatio, DryWetRatio) (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (MonoArg -> (DryWetRatio, DryWetRatio))
-> MonoArg
-> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio
-> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.5 ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (MonoArg -> (DryWetRatio, DryWetRatio))
-> MonoArg
-> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> MonoArg -> (DryWetRatio, DryWetRatio)
forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 (DryWetRatio
-> CsdNote D -> DryWetRatio -> (DryWetRatio, DryWetRatio)
C.fmDrone DryWetRatio
3 (D
10, D
5))
fmDroneMedium :: Patch2
fmDroneMedium = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.35 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio)
-> AtOut
DryWetRatio
(DryWetRatio, DryWetRatio)
(SE (DryWetRatio, DryWetRatio))
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.5 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (DryWetRatio -> (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (DryWetRatio
-> CsdNote D -> DryWetRatio -> (DryWetRatio, DryWetRatio)
C.fmDrone DryWetRatio
3 (D
5, D
3))
fmDroneMediumm :: Patch2
fmDroneMediumm = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.35 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a. MonoInstr a -> Patch a
monoSynt (MonoInstr (DryWetRatio, DryWetRatio) -> Patch2)
-> MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> (DryWetRatio, DryWetRatio))
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> AtOut
DryWetRatio (DryWetRatio, DryWetRatio) (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (MonoArg -> (DryWetRatio, DryWetRatio))
-> MonoArg
-> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio
-> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.5 ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (MonoArg -> (DryWetRatio, DryWetRatio))
-> MonoArg
-> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> MonoArg -> (DryWetRatio, DryWetRatio)
forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 (DryWetRatio
-> CsdNote D -> DryWetRatio -> (DryWetRatio, DryWetRatio)
C.fmDrone DryWetRatio
3 (D
5, D
3))
fmDroneFast :: Patch2
fmDroneFast = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.25 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio)
-> AtOut
DryWetRatio
(DryWetRatio, DryWetRatio)
(SE (DryWetRatio, DryWetRatio))
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.5 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (DryWetRatio -> (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (DryWetRatio
-> CsdNote D -> DryWetRatio -> (DryWetRatio, DryWetRatio)
C.fmDrone DryWetRatio
3 (D
0.5, D
1))
fmDroneFastm :: Patch2
fmDroneFastm = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.25 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a. MonoInstr a -> Patch a
monoSynt (MonoInstr (DryWetRatio, DryWetRatio) -> Patch2)
-> MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> (DryWetRatio, DryWetRatio))
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> AtOut
DryWetRatio (DryWetRatio, DryWetRatio) (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (MonoArg -> (DryWetRatio, DryWetRatio))
-> MonoArg
-> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio
-> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.5 ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (MonoArg -> (DryWetRatio, DryWetRatio))
-> MonoArg
-> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> MonoArg -> (DryWetRatio, DryWetRatio)
forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 (DryWetRatio
-> CsdNote D -> DryWetRatio -> (DryWetRatio, DryWetRatio)
C.fmDrone DryWetRatio
3 (D
0.5, D
1))
vibrophonePad :: Patch2
vibrophonePad = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> SE a) -> Patch a -> Patch a
addPreFx DryWetRatio
1 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ ResonFilter
mlp DryWetRatio
2500 DryWetRatio
0.1)) (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio))
-> Patch2 -> Patch2
forall a. (Instr D a -> Instr D a) -> Patch a -> Patch a
mapPatchInstr (\Instr D (DryWetRatio, DryWetRatio)
instr -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
1.5 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.5 D
0.25) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Instr D (DryWetRatio, DryWetRatio)
instr) Patch2
largeVibraphone1
data RazorPad = RazorPad { RazorPad -> DryWetRatio
razorPadSpeed :: Sig }
instance Default RazorPad where
def :: RazorPad
def = DryWetRatio -> RazorPad
RazorPad DryWetRatio
0.5
razorPadSlow :: Patch2
razorPadSlow = RazorPad -> Patch2
razorPad' (RazorPad
forall a. Default a => a
def { razorPadSpeed = 0.1 })
razorPadFast :: Patch2
razorPadFast = RazorPad -> Patch2
razorPad' (RazorPad
forall a. Default a => a
def { razorPadSpeed = 1.7 })
razorPadTremolo :: Patch2
razorPadTremolo = RazorPad -> Patch2
razorPad' (RazorPad
forall a. Default a => a
def { razorPadSpeed = 6.7 })
razorPadSlowm :: Patch2
razorPadSlowm = RazorPad -> Patch2
razorPadm' (RazorPad
forall a. Default a => a
def { razorPadSpeed = 0.1 })
razorPadFastm :: Patch2
razorPadFastm = RazorPad -> Patch2
razorPadm' (RazorPad
forall a. Default a => a
def { razorPadSpeed = 1.7 })
razorPadTremolom :: Patch2
razorPadTremolom = RazorPad -> Patch2
razorPadm' (RazorPad
forall a. Default a => a
def { razorPadSpeed = 6.7 })
razorPad :: Patch2
razorPad = RazorPad -> Patch2
razorPad' RazorPad
forall a. Default a => a
def
razorPadm :: Patch2
razorPadm = RazorPad -> Patch2
razorPadm' RazorPad
forall a. Default a => a
def
razorPad' :: RazorPad -> Patch2
razorPad' (RazorPad DryWetRatio
speed) = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.35 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.6 (SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((DryWetRatio, DryWetRatio) -> SE DryWetRatio)
-> CsdNote D
-> SE (CpsInstrOut ((DryWetRatio, DryWetRatio) -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps ((DryWetRatio -> DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio, DryWetRatio) -> SE DryWetRatio
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry ((DryWetRatio -> DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio, DryWetRatio) -> SE DryWetRatio)
-> (DryWetRatio -> DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> SE DryWetRatio
forall a b. (a -> b) -> a -> b
$ ResonFilter
-> DryWetRatio -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
forall {b} {t}.
(SigSpace (SE b), Fractional t, Fractional (SE b)) =>
(DryWetRatio -> t -> DryWetRatio -> b)
-> DryWetRatio -> DryWetRatio -> DryWetRatio -> SE b
C.razorPad ResonFilter
filter DryWetRatio
speed)
razorPadm' :: RazorPad -> Patch2
razorPadm' (RazorPad DryWetRatio
speed) = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.35 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> MonoInstr a) -> Patch a
monoSyntFilter ((ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter MonoArg
arg -> ((DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> SE DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.6 (SE DryWetRatio -> SE DryWetRatio)
-> ((DryWetRatio, DryWetRatio) -> SE DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> SE DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((DryWetRatio -> DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio, DryWetRatio) -> SE DryWetRatio
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry ((DryWetRatio -> DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio, DryWetRatio) -> SE DryWetRatio)
-> (DryWetRatio -> DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> SE DryWetRatio
forall a b. (a -> b) -> a -> b
$ ResonFilter
-> DryWetRatio -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
forall {b} {t}.
(SigSpace (SE b), Fractional t, Fractional (SE b)) =>
(DryWetRatio -> t -> DryWetRatio -> b)
-> DryWetRatio -> DryWetRatio -> DryWetRatio -> SE b
C.razorPad ResonFilter
filter DryWetRatio
speed)) (MonoArg -> (DryWetRatio, DryWetRatio)
monoArgToNote MonoArg
arg)
dreamPadFx :: Patch2 -> Patch2
dreamPadFx = [GenFxSpec (DryWetRatio, DryWetRatio)] -> Patch2 -> Patch2
forall a. [GenFxSpec a] -> Patch a -> Patch a
FxChain [DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.35 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2), DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.25 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ D -> DryWetRatio -> DryWetRatio -> DryWetRatio
echo D
0.25 DryWetRatio
0.65)), DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.25 ((DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio (SE DryWetRatio) (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at ((DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio (SE DryWetRatio) (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio (SE DryWetRatio) (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> DryWetRatio -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
chorus DryWetRatio
0.07 DryWetRatio
1.25 DryWetRatio
1)]
dreamPad :: Patch2
dreamPad = DryWetRatio -> Patch2
dreamPad' DryWetRatio
0.35
underwaterPad :: Patch2
underwaterPad = DryWetRatio -> Patch2
underwaterPad' DryWetRatio
0.35
lightIsTooBrightPad :: Patch2
lightIsTooBrightPad = DryWetRatio -> Patch2
lightIsTooBrightPad' DryWetRatio
0.55
whaleSongPad :: Patch2
whaleSongPad = DryWetRatio -> Patch2
whaleSongPad' DryWetRatio
0.35
dreamPadm :: Patch2
dreamPadm = DryWetRatio -> Patch2
dreamPadm' DryWetRatio
0.35
underwaterPadm :: Patch2
underwaterPadm = DryWetRatio -> Patch2
underwaterPadm' DryWetRatio
0.35
lightIsTooBrightPadm :: Patch2
lightIsTooBrightPadm = DryWetRatio -> Patch2
lightIsTooBrightPadm' DryWetRatio
0.55
whaleSongPadm :: Patch2
whaleSongPadm = DryWetRatio -> Patch2
whaleSongPadm' DryWetRatio
0.35
dreamPadBym :: (DryWetRatio -> SE DryWetRatio) -> Patch2
dreamPadBym = DryWetRatio -> (DryWetRatio -> SE DryWetRatio) -> Patch2
dreamPadBym' DryWetRatio
0.35
dreamPad' :: Sig -> Patch2
dreamPad' :: DryWetRatio -> Patch2
dreamPad' DryWetRatio
bright = Patch2 -> Patch2
dreamPadFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter CsdNote D
note -> ((DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (ResonFilter -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.dreamPad ResonFilter
filter DryWetRatio
bright)) CsdNote D
note
dreamPadBy :: Sig -> Wave -> Patch2
dreamPadBy :: DryWetRatio -> (DryWetRatio -> SE DryWetRatio) -> Patch2
dreamPadBy DryWetRatio
brightness DryWetRatio -> SE DryWetRatio
wave = Patch2 -> Patch2
dreamPadFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter CsdNote D
note -> ((DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (ResonFilter
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> DryWetRatio
-> SE DryWetRatio
C.dreamPadBy ResonFilter
filter DryWetRatio -> SE DryWetRatio
wave DryWetRatio
brightness)) CsdNote D
note
genDreamPadNote :: (ResonFilter -> Wave -> Sig -> Sig -> SE Sig) -> (D -> Wave) -> Sig -> ResonFilter -> Instr D Sig2
genDreamPadNote :: (ResonFilter
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> DryWetRatio
-> SE DryWetRatio)
-> (D -> DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> ResonFilter
-> Instr D (DryWetRatio, DryWetRatio)
genDreamPadNote ResonFilter
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> DryWetRatio
-> SE DryWetRatio
f D -> DryWetRatio -> SE DryWetRatio
wave DryWetRatio
brightness ResonFilter
filter = (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (D -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (D -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (\D
cps -> ResonFilter
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> DryWetRatio
-> SE DryWetRatio
f ResonFilter
filter (D -> DryWetRatio -> SE DryWetRatio
wave D
cps) DryWetRatio
brightness (D -> DryWetRatio
sig D
cps))
dreamPadWithKey :: Sig -> (D -> Sig -> SE Sig) -> Patch2
dreamPadWithKey :: DryWetRatio -> (D -> DryWetRatio -> SE DryWetRatio) -> Patch2
dreamPadWithKey DryWetRatio
brightness D -> DryWetRatio -> SE DryWetRatio
wave = Patch2 -> Patch2
dreamPadFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> DryWetRatio
-> SE DryWetRatio)
-> (D -> DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> ResonFilter
-> Instr D (DryWetRatio, DryWetRatio)
genDreamPadNote ResonFilter
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> DryWetRatio
-> SE DryWetRatio
C.dreamPadBy D -> DryWetRatio -> SE DryWetRatio
wave DryWetRatio
brightness
dreamPadm' :: Sig -> Patch2
dreamPadm' :: DryWetRatio -> Patch2
dreamPadm' DryWetRatio
bright = Patch2 -> Patch2
dreamPadFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> MonoInstr a) -> Patch a
monoSyntFilter ((ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> SE DryWetRatio)
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio) -> MonoArg -> SE DryWetRatio
forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 (ResonFilter -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.dreamPad ResonFilter
filter DryWetRatio
bright)
dreamPadBym' :: Sig -> (Sig -> SE Sig) -> Patch2
dreamPadBym' :: DryWetRatio -> (DryWetRatio -> SE DryWetRatio) -> Patch2
dreamPadBym' DryWetRatio
bright DryWetRatio -> SE DryWetRatio
wave = Patch2 -> Patch2
dreamPadFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> MonoInstr a) -> Patch a
monoSyntFilter ((ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> SE DryWetRatio)
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio) -> MonoArg -> SE DryWetRatio
forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 (ResonFilter
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> DryWetRatio
-> SE DryWetRatio
C.dreamPadBy ResonFilter
filter DryWetRatio -> SE DryWetRatio
wave DryWetRatio
bright)
underwaterPad' :: Sig -> Patch2
underwaterPad' :: DryWetRatio -> Patch2
underwaterPad' DryWetRatio
bright = Patch2 -> Patch2
dreamPadFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (ResonFilter -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.underwaterPad ResonFilter
filter DryWetRatio
bright)
underwaterPadm' :: Sig -> Patch2
underwaterPadm' :: DryWetRatio -> Patch2
underwaterPadm' DryWetRatio
bright = Patch2 -> Patch2
dreamPadFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> MonoInstr a) -> Patch a
monoSyntFilter ((ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> SE DryWetRatio)
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio) -> MonoArg -> SE DryWetRatio
forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 (ResonFilter -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.underwaterPad ResonFilter
filter DryWetRatio
bright)
lightIsTooBrightPad' :: Sig -> Patch2
lightIsTooBrightPad' :: DryWetRatio -> Patch2
lightIsTooBrightPad' DryWetRatio
bright = Patch2 -> Patch2
dreamPadFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (ResonFilter -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.lightIsTooBrightPad ResonFilter
filter DryWetRatio
bright)
lightIsTooBrightPadm' :: Sig -> Patch2
lightIsTooBrightPadm' :: DryWetRatio -> Patch2
lightIsTooBrightPadm' DryWetRatio
bright = Patch2 -> Patch2
dreamPadFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> MonoInstr a) -> Patch a
monoSyntFilter ((ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> SE DryWetRatio)
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio) -> MonoArg -> SE DryWetRatio
forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 (ResonFilter -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.lightIsTooBrightPad ResonFilter
filter DryWetRatio
bright)
lightIsTooBrightPadWithKey :: Sig -> (D -> Sig -> SE Sig) -> Patch2
lightIsTooBrightPadWithKey :: DryWetRatio -> (D -> DryWetRatio -> SE DryWetRatio) -> Patch2
lightIsTooBrightPadWithKey DryWetRatio
brightness D -> DryWetRatio -> SE DryWetRatio
wave = Patch2 -> Patch2
dreamPadFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> DryWetRatio
-> SE DryWetRatio)
-> (D -> DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> ResonFilter
-> Instr D (DryWetRatio, DryWetRatio)
genDreamPadNote ResonFilter
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> DryWetRatio
-> SE DryWetRatio
C.lightIsTooBrightPadBy D -> DryWetRatio -> SE DryWetRatio
wave DryWetRatio
brightness
whaleSongPad' :: Sig -> Patch2
whaleSongPad' :: DryWetRatio -> Patch2
whaleSongPad' DryWetRatio
bright = Patch2 -> Patch2
dreamPadFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (ResonFilter -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.whaleSongPad ResonFilter
filter DryWetRatio
bright)
whaleSongPadm' :: Sig -> Patch2
whaleSongPadm' :: DryWetRatio -> Patch2
whaleSongPadm' DryWetRatio
bright = Patch2 -> Patch2
dreamPadFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> MonoInstr a) -> Patch a
monoSyntFilter ((ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> MonoInstr (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> SE DryWetRatio)
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio) -> MonoArg -> SE DryWetRatio
forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 (ResonFilter -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.whaleSongPad ResonFilter
filter DryWetRatio
bright)
whaleSongPadWithKey :: Sig -> (D -> Sig -> SE Sig) -> Patch2
whaleSongPadWithKey :: DryWetRatio -> (D -> DryWetRatio -> SE DryWetRatio) -> Patch2
whaleSongPadWithKey DryWetRatio
brightness D -> DryWetRatio -> SE DryWetRatio
wave = Patch2 -> Patch2
dreamPadFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> DryWetRatio
-> SE DryWetRatio)
-> (D -> DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> ResonFilter
-> Instr D (DryWetRatio, DryWetRatio)
genDreamPadNote ResonFilter
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> DryWetRatio
-> SE DryWetRatio
C.whaleSongPadBy D -> DryWetRatio -> SE DryWetRatio
wave DryWetRatio
brightness
polySynthFxChain :: Patch2 -> Patch2
polySynthFxChain = [GenFxSpec (DryWetRatio, DryWetRatio)] -> Patch2 -> Patch2
forall a. [GenFxSpec a] -> Patch a -> Patch a
FxChain [DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.25 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2), DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.25 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ D -> DryWetRatio -> DryWetRatio -> DryWetRatio
echo D
0.25 DryWetRatio
0.65)), DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.25 ((DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio (SE DryWetRatio) (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at ((DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio (SE DryWetRatio) (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio (SE DryWetRatio) (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> DryWetRatio -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
chorus DryWetRatio
0.07 DryWetRatio
1.25 DryWetRatio
1), DryWetRatio
-> (ResonFilter
-> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> (ResonFilter -> Fx a) -> GenFxSpec a
fxSpecFilter DryWetRatio
1 ((ResonFilter
-> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio))
-> (ResonFilter
-> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at (ResonFilter
filter DryWetRatio
5500 DryWetRatio
0.12 (DryWetRatio -> DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> ResonFilter -> ResonFilter
C.filt Int
2 ResonFilter
C.br DryWetRatio
18000 DryWetRatio
0.3)]
polySynth :: Patch2
polySynth = Patch2 -> Patch2
polySynthFxChain (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps DryWetRatio -> SE DryWetRatio
C.polySynth
polySynthm :: Patch2
polySynthm = Patch2 -> Patch2
polySynthFxChain (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a. MonoInstr a -> Patch a
monoSynt (MonoInstr (DryWetRatio, DryWetRatio) -> Patch2)
-> MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> SE DryWetRatio)
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio) -> MonoArg -> SE DryWetRatio
forall a. SigSpace a => (DryWetRatio -> a) -> MonoArg -> a
monoSig1 DryWetRatio -> SE DryWetRatio
C.polySynth
phasingLead :: Patch2
phasingLead = Patch2 -> Patch2
withSmallHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.7 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> DryWetRatio
fadeOut D
0.05) (SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((DryWetRatio, DryWetRatio) -> DryWetRatio)
-> CsdNote D
-> SE (CpsInstrOut ((DryWetRatio, DryWetRatio) -> DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps ((DryWetRatio -> DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio) -> DryWetRatio
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry DryWetRatio -> DryWetRatio -> DryWetRatio
C.phasingSynth)
data RazorLead = RazorLead
{ RazorLead -> DryWetRatio
razorLeadBright :: Sig
, RazorLead -> DryWetRatio
razorLeadSpeed :: Sig }
instance Default RazorLead where
def :: RazorLead
def = DryWetRatio -> DryWetRatio -> RazorLead
RazorLead DryWetRatio
0.5 DryWetRatio
0.5
razorLeadSlow :: Patch2
razorLeadSlow = RazorLead -> Patch2
razorLead' (RazorLead
forall a. Default a => a
def { razorLeadSpeed = 0.1 })
razorLeadFast :: Patch2
razorLeadFast = RazorLead -> Patch2
razorLead' (RazorLead
forall a. Default a => a
def { razorLeadSpeed = 1.7 })
razorLeadTremolo :: Patch2
razorLeadTremolo = RazorLead -> Patch2
razorLead' (RazorLead
forall a. Default a => a
def { razorLeadSpeed = 6.7 })
razorLead :: Patch2
razorLead = RazorLead -> Patch2
razorLead' RazorLead
forall a. Default a => a
def
razorLead' :: RazorLead -> Patch2
razorLead' (RazorLead DryWetRatio
bright DryWetRatio
speed) = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.35 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (\(D
amp, D
cps) -> DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (D -> DryWetRatio
fadeOut (D
0.05 D -> D -> D
forall a. Num a => a -> a -> a
+ D
amp D -> D -> D
forall a. Num a => a -> a -> a
* D
0.3)) (SE DryWetRatio -> SE DryWetRatio)
-> SE DryWetRatio -> SE DryWetRatio
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> DryWetRatio -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.razorLead (DryWetRatio
bright DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> DryWetRatio
sig D
amp) (DryWetRatio
speed DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> DryWetRatio
sig D
amp) (D -> DryWetRatio
sig D
amp) (D -> DryWetRatio
sig D
cps))
overtoneLeadFx :: Sig2 -> SE Sig2
overtoneLeadFx :: (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
overtoneLeadFx (DryWetRatio, DryWetRatio)
x = (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
magicCave2 ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c.
MixAt a b c =>
DryWetRatio -> (a -> b) -> c -> AtOut a b c
mixAt DryWetRatio
0.2 (D -> DryWetRatio -> DryWetRatio -> DryWetRatio
echo D
0.25 DryWetRatio
0.45) (DryWetRatio, DryWetRatio)
x
overtoneLead :: Patch2
overtoneLead :: Patch2
overtoneLead = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> SE a) -> Patch a -> Patch a
fx1' DryWetRatio
0.15 (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
overtoneLeadFx (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.4 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (D -> D -> DryWetRatio
fades D
0.01 D
1) (DryWetRatio -> DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> DryWetRatio -> DryWetRatio -> DryWetRatio
C.tibetan Int
13 DryWetRatio
0.012)
simpleBass :: Patch2
simpleBass = Patch2 -> Patch2
withSmallRoom (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.32 (SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (CsdNote D -> DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (CsdNote D -> DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps CsdNote D -> DryWetRatio
C.simpleBass
pwBass :: Patch2
pwBass = Patch2 -> Patch2
withSmallHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter -> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.4 (SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (ResonFilter -> DryWetRatio -> SE DryWetRatio
C.pwBassBy ResonFilter
filter)
deepBass :: Patch2
deepBass = Patch2 -> Patch2
withSmallHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.4 (SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps DryWetRatio -> DryWetRatio
C.deepBass
fmBass1 :: Patch2
fmBass1 = (MonoAdsr
-> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Patch2
forall a. (MonoAdsr -> Instr DryWetRatio a) -> Patch a
adsrMono (\MonoAdsr
env (DryWetRatio
amp, DryWetRatio
cps) -> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> DryWetRatio -> (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ MonoAdsr -> (DryWetRatio, DryWetRatio) -> DryWetRatio
C.fmBass1 MonoAdsr
env (DryWetRatio
amp, DryWetRatio
cps))
fmBass2 :: Patch2
fmBass2 = Patch2 -> Patch2
fxs (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (MonoAdsr
-> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Patch2
forall a. (MonoAdsr -> Instr DryWetRatio a) -> Patch a
adsrMono (\MonoAdsr
env (DryWetRatio
amp, DryWetRatio
cps) -> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> DryWetRatio -> (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ MonoAdsr -> (DryWetRatio, DryWetRatio) -> DryWetRatio
C.fmBass2 MonoAdsr
env (DryWetRatio
amp, DryWetRatio
cps))
where fxs :: Patch2 -> Patch2
fxs = [GenFxSpec (DryWetRatio, DryWetRatio)] -> Patch2 -> Patch2
forall a. [GenFxSpec a] -> Patch a -> Patch a
FxChain [DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
1 ((DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio (SE DryWetRatio) (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at (DryWetRatio
-> DryWetRatio -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
chorus DryWetRatio
0.2 DryWetRatio
0.15 DryWetRatio
0.17)), DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
1 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at (DryWetRatio -> DryWetRatio -> DryWetRatio
bhp DryWetRatio
35 (DryWetRatio -> DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> DryWetRatio -> DryWetRatio
blp DryWetRatio
1200))]
withDeepBass :: Sig -> Patch2 -> Patch2
withDeepBass :: DryWetRatio -> Patch2 -> Patch2
withDeepBass DryWetRatio
k = DryWetRatio -> Patch2 -> Patch2 -> Patch2
forall b.
(SigSpace b, Num b) =>
DryWetRatio -> Patch b -> Patch b -> Patch b
mixInstr DryWetRatio
k Patch2
deepBass
guitar :: Patch2
guitar = Patch2 -> Patch2
withSmallHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (D -> (DryWetRatio, DryWetRatio))
-> CsdNote D -> SE (CpsInstrOut (D -> (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps ((D -> (DryWetRatio, DryWetRatio))
-> CsdNote D -> SE (CpsInstrOut (D -> (DryWetRatio, DryWetRatio))))
-> (D -> (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (D -> (DryWetRatio, DryWetRatio)))
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> (D -> DryWetRatio) -> D -> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.6 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.01 D
0.25) (DryWetRatio -> DryWetRatio)
-> (D -> DryWetRatio) -> D -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> DryWetRatio
C.plainString
harpsichord :: Patch2
harpsichord = Patch2 -> Patch2
withSmallHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (D -> (DryWetRatio, DryWetRatio))
-> CsdNote D -> SE (CpsInstrOut (D -> (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps ((D -> (DryWetRatio, DryWetRatio))
-> CsdNote D -> SE (CpsInstrOut (D -> (DryWetRatio, DryWetRatio))))
-> (D -> (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (D -> (DryWetRatio, DryWetRatio)))
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> (D -> DryWetRatio) -> D -> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.65 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.01 D
0.13) (DryWetRatio -> DryWetRatio)
-> (D -> DryWetRatio) -> D -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> DryWetRatio
C.harpsichord
strikeFx :: Strike -> Sig2 -> SE Sig2
strikeFx :: Strike
-> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
strikeFx Strike
spec (DryWetRatio, DryWetRatio)
a = ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio)
-> AtOut
(DryWetRatio, DryWetRatio)
(DryWetRatio, DryWetRatio)
(SE (DryWetRatio, DryWetRatio))
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at (Strike -> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
strikeReverb Strike
spec) (SE (DryWetRatio, DryWetRatio)
-> AtOut
(DryWetRatio, DryWetRatio)
(DryWetRatio, DryWetRatio)
(SE (DryWetRatio, DryWetRatio)))
-> SE (DryWetRatio, DryWetRatio)
-> AtOut
(DryWetRatio, DryWetRatio)
(DryWetRatio, DryWetRatio)
(SE (DryWetRatio, DryWetRatio))
forall a b. (a -> b) -> a -> b
$ (if (Strike -> Bool
strikeHasDelay Strike
spec) then (DryWetRatio
-> (DryWetRatio -> DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (SE (DryWetRatio, DryWetRatio))
forall a b c.
MixAt a b c =>
DryWetRatio -> (a -> b) -> c -> AtOut a b c
mixAt DryWetRatio
0.35 (D -> DryWetRatio -> DryWetRatio -> DryWetRatio
echo D
0.25 DryWetRatio
0.55)) else SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
SE (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (SE (DryWetRatio, DryWetRatio))
forall a. a -> a
id) ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return (DryWetRatio, DryWetRatio)
a :: SE Sig2)
strikeRelease :: (D, D) -> Strike -> D
strikeRelease :: CsdNote D -> Strike -> D
strikeRelease (D
amp, D
cps) Strike
spec = (D
0.85 D -> D -> D
forall a. Num a => a -> a -> a
* Strike -> D
strikeRel Strike
spec D -> D -> D
forall a. Num a => a -> a -> a
* D
amp) D -> D -> D
forall a. Num a => a -> a -> a
* D
amp D -> D -> D
forall a. Num a => a -> a -> a
+ (Strike -> D
strikeRel Strike
spec) D -> D -> D
forall a. Num a => a -> a -> a
- (D
cps D -> D -> D
forall a. Fractional a => a -> a -> a
/ D
10000)
data Strike = Strike
{ Strike -> D
strikeRel :: D
, Strike -> Bool
strikeHasDelay :: Bool
, Strike -> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
strikeReverb :: Sig2 -> Sig2
}
instance Default Strike where
def :: Strike
def = D
-> Bool
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Strike
Strike D
1.5 Bool
True (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2
strike' :: Strike -> (Sig -> Sig) -> Patch2
strike' :: Strike -> (DryWetRatio -> DryWetRatio) -> Patch2
strike' Strike
spec DryWetRatio -> DryWetRatio
instr = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> SE a) -> Patch a -> Patch a
fx1' DryWetRatio
0.25 (Strike
-> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
strikeFx Strike
spec) (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ \x :: CsdNote D
x@(D
amp, D
cps) -> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> DryWetRatio -> (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.75 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> DryWetRatio
sig D
amp DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> DryWetRatio
fadeOut (CsdNote D -> D
rel CsdNote D
x)) (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> DryWetRatio
instr (D -> DryWetRatio
sig D
cps)
where rel :: CsdNote D -> D
rel CsdNote D
a = CsdNote D -> Strike -> D
strikeRelease CsdNote D
a Strike
spec
data Size = Small | Medium | Large | Huge
nextSize :: Size -> Size
nextSize Size
x = case Size
x of
Size
Small -> Size
Medium
Size
Medium -> Size
Large
Size
Large -> Size
Huge
Size
Huge -> Size
Huge
prevSize :: Size -> Size
prevSize Size
x = case Size
x of
Size
Small -> Size
Small
Size
Medium -> Size
Small
Size
Large -> Size
Medium
Size
Huge -> Size
Large
toStrikeSpec :: Size -> Size -> Strike
toStrikeSpec :: Size -> Size -> Strike
toStrikeSpec Size
revSpec Size
restSpec = Strike
{ strikeReverb :: (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
strikeReverb = Size -> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
toReverb Size
revSpec
, strikeRel :: D
strikeRel = Size -> D
toRel Size
restSpec
, strikeHasDelay :: Bool
strikeHasDelay = Size -> Bool
toHasDelay Size
restSpec }
toReverb :: Size -> (Sig2 -> Sig2)
toReverb :: Size -> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
toReverb Size
x = case Size
x of
Size
Small -> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallRoom2
Size
Medium -> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2
Size
Large -> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2
Size
Huge -> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
magicCave2
toRel :: Size -> D
toRel :: Size -> D
toRel Size
x = case Size
x of
Size
Small -> D
0.4
Size
Medium -> D
1.5
Size
Large -> D
2.5
Size
Huge -> D
4.5
toGain :: Size -> Sig
toGain :: Size -> DryWetRatio
toGain Size
x = case Size
x of
Size
Small -> DryWetRatio
0.85
Size
Medium -> DryWetRatio
0.75
Size
Large -> DryWetRatio
0.6
Size
Huge -> DryWetRatio
0.45
toHasDelay :: Size -> Bool
toHasDelay :: Size -> Bool
toHasDelay Size
x = case Size
x of
Size
Small -> Bool
False
Size
_ -> Bool
True
dahinaSize :: Size
dahinaSize = Size
Small
banyanSize :: Size
banyanSize = Size
Medium
xylophoneSize :: Size
xylophoneSize = Size
Small
tibetanBowl152Size :: Size
tibetanBowl152Size = Size
Medium
tibetanBowl140Size :: Size
tibetanBowl140Size = Size
Small
tibetanBowl180Size :: Size
tibetanBowl180Size = Size
Medium
spinelSphereSize :: Size
spinelSphereSize = Size
Small
potLidSize :: Size
potLidSize = Size
Medium
redCedarWoodPlateSize :: Size
redCedarWoodPlateSize = Size
Small
tubularBellSize :: Size
tubularBellSize = Size
Large
redwoodPlateSize :: Size
redwoodPlateSize = Size
Small
douglasFirWoodPlateSize :: Size
douglasFirWoodPlateSize = Size
Small
uniformWoodenBarSize :: Size
uniformWoodenBarSize = Size
Small
uniformAluminumBarSize :: Size
uniformAluminumBarSize = Size
Small
vibraphone1Size :: Size
vibraphone1Size = Size
Medium
vibraphone2Size :: Size
vibraphone2Size = Size
Medium
chalandiPlatesSize :: Size
chalandiPlatesSize = Size
Medium
wineGlassSize :: Size
wineGlassSize = Size
Medium
smallHandbellSize :: Size
smallHandbellSize = Size
Medium
albertClockBellBelfastSize :: Size
albertClockBellBelfastSize = Size
Large
woodBlockSize :: Size
woodBlockSize = Size
Small
smallStrike :: Size -> (Sig -> Sig) -> Patch2
smallStrike :: Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
size = Size -> Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike' (Size -> Size
prevSize Size
size) Size
size
mediumStrike :: Size -> (Sig -> Sig) -> Patch2
mediumStrike :: Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
size = Size -> Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike' Size
size Size
size
largeStrike :: Size -> (Sig -> Sig) -> Patch2
largeStrike :: Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
size = Size -> Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike' (Size -> Size
nextSize Size
size) Size
size
magicStrike :: Size -> (Sig -> Sig) -> Patch2
magicStrike :: Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
size = Size -> Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike' (Size -> Size
nextSize (Size -> Size) -> Size -> Size
forall a b. (a -> b) -> a -> b
$ Size -> Size
nextSize Size
size) Size
size
mediumStrike' :: Size -> Size -> (Sig -> Sig) -> Patch2
mediumStrike' :: Size -> Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike' Size
revSize Size
size DryWetRatio -> DryWetRatio
f = (Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio))
-> Patch2 -> Patch2
forall a. (Instr D a -> Instr D a) -> Patch a -> Patch a
mapPatchInstr (\Instr D (DryWetRatio, DryWetRatio)
instr -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (Size -> DryWetRatio
toGain Size
size) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Instr D (DryWetRatio, DryWetRatio)
instr) Patch2
p
where p :: Patch2
p = Strike -> (DryWetRatio -> DryWetRatio) -> Patch2
strike' (Size -> Size -> Strike
toStrikeSpec Size
revSize Size
size) DryWetRatio -> DryWetRatio
f
smallDahina :: Patch2
smallDahina = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
dahinaSize DryWetRatio -> DryWetRatio
C.dahina
dahina :: Patch2
dahina = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
dahinaSize DryWetRatio -> DryWetRatio
C.dahina
largeDahina :: Patch2
largeDahina = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
dahinaSize DryWetRatio -> DryWetRatio
C.dahina
magicDahina :: Patch2
magicDahina = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
dahinaSize DryWetRatio -> DryWetRatio
C.dahina
smallBanyan :: Patch2
smallBanyan = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
banyanSize DryWetRatio -> DryWetRatio
C.banyan
banyan :: Patch2
banyan = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
banyanSize DryWetRatio -> DryWetRatio
C.banyan
largeBanyan :: Patch2
largeBanyan = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
banyanSize DryWetRatio -> DryWetRatio
C.banyan
magicBanyan :: Patch2
magicBanyan = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
banyanSize DryWetRatio -> DryWetRatio
C.banyan
smallXylophone :: Patch2
smallXylophone = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
xylophoneSize DryWetRatio -> DryWetRatio
C.xylophone
xylophone :: Patch2
xylophone = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
xylophoneSize DryWetRatio -> DryWetRatio
C.xylophone
largeXylophone :: Patch2
largeXylophone = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
xylophoneSize DryWetRatio -> DryWetRatio
C.xylophone
magicXylophone :: Patch2
magicXylophone = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
xylophoneSize DryWetRatio -> DryWetRatio
C.xylophone
smallTibetanBowl180 :: Patch2
smallTibetanBowl180 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
tibetanBowl180Size DryWetRatio -> DryWetRatio
C.tibetanBowl180
tibetanBowl180 :: Patch2
tibetanBowl180 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
tibetanBowl180Size DryWetRatio -> DryWetRatio
C.tibetanBowl180
largeTibetanBowl180 :: Patch2
largeTibetanBowl180 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
tibetanBowl180Size DryWetRatio -> DryWetRatio
C.tibetanBowl180
magicTibetanBowl180 :: Patch2
magicTibetanBowl180 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
tibetanBowl180Size DryWetRatio -> DryWetRatio
C.tibetanBowl180
smallSpinelSphere :: Patch2
smallSpinelSphere = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
spinelSphereSize DryWetRatio -> DryWetRatio
C.spinelSphere
spinelSphere :: Patch2
spinelSphere = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
spinelSphereSize DryWetRatio -> DryWetRatio
C.spinelSphere
largeSpinelSphere :: Patch2
largeSpinelSphere = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
spinelSphereSize DryWetRatio -> DryWetRatio
C.spinelSphere
magicSpinelSphere :: Patch2
magicSpinelSphere = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
spinelSphereSize DryWetRatio -> DryWetRatio
C.spinelSphere
smallPotLid :: Patch2
smallPotLid = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
potLidSize DryWetRatio -> DryWetRatio
C.potLid
potLid :: Patch2
potLid = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
potLidSize DryWetRatio -> DryWetRatio
C.potLid
largePotLid :: Patch2
largePotLid = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
potLidSize DryWetRatio -> DryWetRatio
C.potLid
magicPotLid :: Patch2
magicPotLid = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
potLidSize DryWetRatio -> DryWetRatio
C.potLid
smallRedCedarWoodPlate :: Patch2
smallRedCedarWoodPlate = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
redCedarWoodPlateSize DryWetRatio -> DryWetRatio
C.redCedarWoodPlate
redCedarWoodPlate :: Patch2
redCedarWoodPlate = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
redCedarWoodPlateSize DryWetRatio -> DryWetRatio
C.redCedarWoodPlate
largeRedCedarWoodPlate :: Patch2
largeRedCedarWoodPlate = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
redCedarWoodPlateSize DryWetRatio -> DryWetRatio
C.redCedarWoodPlate
magicRedCedarWoodPlate :: Patch2
magicRedCedarWoodPlate = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
redCedarWoodPlateSize DryWetRatio -> DryWetRatio
C.redCedarWoodPlate
smallTubularBell :: Patch2
smallTubularBell = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
tubularBellSize DryWetRatio -> DryWetRatio
C.tubularBell
tubularBell :: Patch2
tubularBell = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
tubularBellSize DryWetRatio -> DryWetRatio
C.tubularBell
largeTubularBell :: Patch2
largeTubularBell = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
tubularBellSize DryWetRatio -> DryWetRatio
C.tubularBell
magicTubularBell :: Patch2
magicTubularBell = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
tubularBellSize DryWetRatio -> DryWetRatio
C.tubularBell
smallRedwoodPlate :: Patch2
smallRedwoodPlate = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
redwoodPlateSize DryWetRatio -> DryWetRatio
C.redwoodPlate
redwoodPlate :: Patch2
redwoodPlate = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
redwoodPlateSize DryWetRatio -> DryWetRatio
C.redwoodPlate
largeRedwoodPlate :: Patch2
largeRedwoodPlate = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
redwoodPlateSize DryWetRatio -> DryWetRatio
C.redwoodPlate
magicRedwoodPlate :: Patch2
magicRedwoodPlate = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
redwoodPlateSize DryWetRatio -> DryWetRatio
C.redwoodPlate
smallDouglasFirWoodPlate :: Patch2
smallDouglasFirWoodPlate = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
douglasFirWoodPlateSize DryWetRatio -> DryWetRatio
C.douglasFirWoodPlate
douglasFirWoodPlate :: Patch2
douglasFirWoodPlate = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
douglasFirWoodPlateSize DryWetRatio -> DryWetRatio
C.douglasFirWoodPlate
largeDouglasFirWoodPlate :: Patch2
largeDouglasFirWoodPlate = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
douglasFirWoodPlateSize DryWetRatio -> DryWetRatio
C.douglasFirWoodPlate
magicDouglasFirWoodPlate :: Patch2
magicDouglasFirWoodPlate = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
douglasFirWoodPlateSize DryWetRatio -> DryWetRatio
C.douglasFirWoodPlate
smallUniformWoodenBar :: Patch2
smallUniformWoodenBar = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
uniformWoodenBarSize DryWetRatio -> DryWetRatio
C.uniformWoodenBar
uniformWoodenBar :: Patch2
uniformWoodenBar = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
uniformWoodenBarSize DryWetRatio -> DryWetRatio
C.uniformWoodenBar
largeUniformWoodenBar :: Patch2
largeUniformWoodenBar = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
uniformWoodenBarSize DryWetRatio -> DryWetRatio
C.uniformWoodenBar
magicUniformWoodenBar :: Patch2
magicUniformWoodenBar = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
uniformWoodenBarSize DryWetRatio -> DryWetRatio
C.uniformWoodenBar
smallUniformAluminumBar :: Patch2
smallUniformAluminumBar = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
uniformAluminumBarSize DryWetRatio -> DryWetRatio
C.uniformAluminumBar
uniformAluminumBar :: Patch2
uniformAluminumBar = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
uniformAluminumBarSize DryWetRatio -> DryWetRatio
C.uniformAluminumBar
largeUniformAluminumBar :: Patch2
largeUniformAluminumBar = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
uniformAluminumBarSize DryWetRatio -> DryWetRatio
C.uniformAluminumBar
magicUniformAluminumBar :: Patch2
magicUniformAluminumBar = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
uniformAluminumBarSize DryWetRatio -> DryWetRatio
C.uniformAluminumBar
smallVibraphone1 :: Patch2
smallVibraphone1 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
vibraphone1Size DryWetRatio -> DryWetRatio
C.vibraphone1
vibraphone1 :: Patch2
vibraphone1 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
vibraphone1Size DryWetRatio -> DryWetRatio
C.vibraphone1
largeVibraphone1 :: Patch2
largeVibraphone1 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
vibraphone1Size DryWetRatio -> DryWetRatio
C.vibraphone1
magicVibraphone1 :: Patch2
magicVibraphone1 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
vibraphone1Size DryWetRatio -> DryWetRatio
C.vibraphone1
smallVibraphone2 :: Patch2
smallVibraphone2 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
vibraphone2Size DryWetRatio -> DryWetRatio
C.vibraphone2
vibraphone2 :: Patch2
vibraphone2 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
vibraphone2Size DryWetRatio -> DryWetRatio
C.vibraphone2
largeVibraphone2 :: Patch2
largeVibraphone2 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
vibraphone2Size DryWetRatio -> DryWetRatio
C.vibraphone2
magicVibraphone2 :: Patch2
magicVibraphone2 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
vibraphone2Size DryWetRatio -> DryWetRatio
C.vibraphone2
smallChalandiPlates :: Patch2
smallChalandiPlates = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
chalandiPlatesSize DryWetRatio -> DryWetRatio
C.chalandiPlates
chalandiPlates :: Patch2
chalandiPlates = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
chalandiPlatesSize DryWetRatio -> DryWetRatio
C.chalandiPlates
largeChalandiPlates :: Patch2
largeChalandiPlates = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
chalandiPlatesSize DryWetRatio -> DryWetRatio
C.chalandiPlates
magicChalandiPlates :: Patch2
magicChalandiPlates = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
chalandiPlatesSize DryWetRatio -> DryWetRatio
C.chalandiPlates
smallTibetanBowl152 :: Patch2
smallTibetanBowl152 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
tibetanBowl152Size DryWetRatio -> DryWetRatio
C.tibetanBowl152
tibetanBowl152 :: Patch2
tibetanBowl152 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
tibetanBowl152Size DryWetRatio -> DryWetRatio
C.tibetanBowl152
largeTibetanBowl152 :: Patch2
largeTibetanBowl152 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
tibetanBowl152Size DryWetRatio -> DryWetRatio
C.tibetanBowl152
magicTibetanBowl152 :: Patch2
magicTibetanBowl152 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
tibetanBowl152Size DryWetRatio -> DryWetRatio
C.tibetanBowl152
smallTibetanBowl140 :: Patch2
smallTibetanBowl140 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
tibetanBowl140Size DryWetRatio -> DryWetRatio
C.tibetanBowl140
tibetanBowl140 :: Patch2
tibetanBowl140 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
tibetanBowl140Size DryWetRatio -> DryWetRatio
C.tibetanBowl140
largeTibetanBowl140 :: Patch2
largeTibetanBowl140 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
tibetanBowl140Size DryWetRatio -> DryWetRatio
C.tibetanBowl140
magicTibetanBowl140 :: Patch2
magicTibetanBowl140 = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
tibetanBowl140Size DryWetRatio -> DryWetRatio
C.tibetanBowl140
smallWineGlass :: Patch2
smallWineGlass = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
wineGlassSize DryWetRatio -> DryWetRatio
C.wineGlass
wineGlass :: Patch2
wineGlass = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
wineGlassSize DryWetRatio -> DryWetRatio
C.wineGlass
largeWineGlass :: Patch2
largeWineGlass = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
wineGlassSize DryWetRatio -> DryWetRatio
C.wineGlass
magicWineGlass :: Patch2
magicWineGlass = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
wineGlassSize DryWetRatio -> DryWetRatio
C.wineGlass
smallHandbell :: Patch2
smallHandbell = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
smallHandbellSize DryWetRatio -> DryWetRatio
C.smallHandbell
handbell :: Patch2
handbell = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
smallHandbellSize DryWetRatio -> DryWetRatio
C.smallHandbell
largeHandbell :: Patch2
largeHandbell = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
smallHandbellSize DryWetRatio -> DryWetRatio
C.smallHandbell
magicHandbell :: Patch2
magicHandbell = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
smallHandbellSize DryWetRatio -> DryWetRatio
C.smallHandbell
smallAlbertClockBellBelfast :: Patch2
smallAlbertClockBellBelfast = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
albertClockBellBelfastSize DryWetRatio -> DryWetRatio
C.albertClockBellBelfast
albertClockBellBelfast :: Patch2
albertClockBellBelfast = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
albertClockBellBelfastSize DryWetRatio -> DryWetRatio
C.albertClockBellBelfast
largeAlbertClockBellBelfast :: Patch2
largeAlbertClockBellBelfast = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
albertClockBellBelfastSize DryWetRatio -> DryWetRatio
C.albertClockBellBelfast
magicAlbertClockBellBelfast :: Patch2
magicAlbertClockBellBelfast = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
albertClockBellBelfastSize DryWetRatio -> DryWetRatio
C.albertClockBellBelfast
smallWoodBlock :: Patch2
smallWoodBlock = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
smallStrike Size
woodBlockSize DryWetRatio -> DryWetRatio
C.woodBlock
woodBlock :: Patch2
woodBlock = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
mediumStrike Size
woodBlockSize DryWetRatio -> DryWetRatio
C.woodBlock
largeWoodBlock :: Patch2
largeWoodBlock = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
largeStrike Size
woodBlockSize DryWetRatio -> DryWetRatio
C.woodBlock
magicWoodBlock :: Patch2
magicWoodBlock = Size -> (DryWetRatio -> DryWetRatio) -> Patch2
magicStrike Size
woodBlockSize DryWetRatio -> DryWetRatio
C.woodBlock
scrapeRelease :: (D, D) -> D -> D
scrapeRelease :: CsdNote D -> D -> D
scrapeRelease (D
amp, D
cps) D
rel = (D
0.85 D -> D -> D
forall a. Num a => a -> a -> a
* D
rel D -> D -> D
forall a. Num a => a -> a -> a
* D
amp) D -> D -> D
forall a. Num a => a -> a -> a
* D
amp D -> D -> D
forall a. Num a => a -> a -> a
+ D
rel D -> D -> D
forall a. Num a => a -> a -> a
- (D
cps D -> D -> D
forall a. Fractional a => a -> a -> a
/ D
10000)
scrapeFast :: DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
k Modes DryWetRatio
m = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.15 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ \x :: CsdNote D
x@(D
amp, D
cps) -> (DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.75 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> DryWetRatio
sig D
amp DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
k DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.02 (CsdNote D -> D -> D
scrapeRelease CsdNote D
x D
0.25)) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> DryWetRatio
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Modes DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.scrapeModes Modes DryWetRatio
m) (D -> DryWetRatio
sig D
cps)
scrape :: DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
k Modes DryWetRatio
m = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.15 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ \x :: CsdNote D
x@(D
amp, D
cps) -> (DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.75 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> DryWetRatio
sig D
amp DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
k DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.5 (CsdNote D -> D -> D
scrapeRelease CsdNote D
x D
0.97)) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> DryWetRatio
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Modes DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.scrapeModes Modes DryWetRatio
m) (D -> DryWetRatio
sig D
cps)
scrapem :: DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
k Modes DryWetRatio
m = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.15 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a. MonoInstr a -> Patch a
monoSynt (MonoInstr (DryWetRatio, DryWetRatio) -> Patch2)
-> MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (\(DryWetRatio
amp, DryWetRatio
cps) -> (DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.75 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
amp DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
k DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.5 D
1.97) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> DryWetRatio
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Modes DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.scrapeModes Modes DryWetRatio
m) DryWetRatio
cps) ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> (DryWetRatio, DryWetRatio))
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. MonoArg -> (DryWetRatio, DryWetRatio)
monoArgToNote
scrapePad :: DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
k Modes DryWetRatio
m =
DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.15 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$
Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ \x :: CsdNote D
x@(D
amp, D
cps) -> (DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.75 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> DryWetRatio
sig D
amp DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
k DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.5 (CsdNote D -> D -> D
scrapeRelease CsdNote D
x D
2.27)) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> DryWetRatio
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Modes DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.scrapeModes Modes DryWetRatio
m) (D -> DryWetRatio
sig D
cps)
scrapePadm :: DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
k Modes DryWetRatio
m = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.15 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a. MonoInstr a -> Patch a
monoSynt (MonoInstr (DryWetRatio, DryWetRatio) -> Patch2)
-> MonoInstr (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (\(DryWetRatio
amp, DryWetRatio
cps) -> (DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.75 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
amp DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
k DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.5 D
2.27) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> DryWetRatio
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Modes DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.scrapeModes Modes DryWetRatio
m) DryWetRatio
cps) ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (MonoArg -> (DryWetRatio, DryWetRatio))
-> MonoInstr (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. MonoArg -> (DryWetRatio, DryWetRatio)
monoArgToNote
scaleScrapeDahina :: DryWetRatio
scaleScrapeDahina = DryWetRatio
1.32
scaleScrapeBanyan :: DryWetRatio
scaleScrapeBanyan = DryWetRatio
0.95
scaleScrapeXylophone :: DryWetRatio
scaleScrapeXylophone = DryWetRatio
1
scaleScrapeTibetanBowl180 :: DryWetRatio
scaleScrapeTibetanBowl180 = DryWetRatio
0.55
scaleScrapeSpinelSphere :: DryWetRatio
scaleScrapeSpinelSphere = DryWetRatio
1.4
scaleScrapePotLid :: DryWetRatio
scaleScrapePotLid = DryWetRatio
0.65
scaleScrapeRedCedarWoodPlate :: DryWetRatio
scaleScrapeRedCedarWoodPlate = DryWetRatio
1
scaleScrapeTubularBell :: DryWetRatio
scaleScrapeTubularBell = DryWetRatio
0.75
scaleScrapeRedwoodPlate :: DryWetRatio
scaleScrapeRedwoodPlate = DryWetRatio
1
scaleScrapeDouglasFirWoodPlate :: DryWetRatio
scaleScrapeDouglasFirWoodPlate = DryWetRatio
1
scaleScrapeUniformWoodenBar :: DryWetRatio
scaleScrapeUniformWoodenBar = DryWetRatio
1
scaleScrapeUniformAluminumBar :: DryWetRatio
scaleScrapeUniformAluminumBar = DryWetRatio
0.75
scaleScrapeVibraphone1 :: DryWetRatio
scaleScrapeVibraphone1 = DryWetRatio
0.9
scaleScrapeVibraphone2 :: DryWetRatio
scaleScrapeVibraphone2 = DryWetRatio
0.9
scaleScrapeChalandiPlates :: DryWetRatio
scaleScrapeChalandiPlates = DryWetRatio
1
scaleScrapeTibetanBowl152 :: DryWetRatio
scaleScrapeTibetanBowl152 = DryWetRatio
0.65
scaleScrapeTibetanBowl140 :: DryWetRatio
scaleScrapeTibetanBowl140 = DryWetRatio
0.75
scaleScrapeWineGlass :: DryWetRatio
scaleScrapeWineGlass = DryWetRatio
0.6
scaleScrapeSmallHandbell :: DryWetRatio
scaleScrapeSmallHandbell = DryWetRatio
1
scaleScrapeAlbertClockBellBelfast :: DryWetRatio
scaleScrapeAlbertClockBellBelfast = DryWetRatio
0.5
scaleScrapeWoodBlock :: DryWetRatio
scaleScrapeWoodBlock = DryWetRatio
1.32
scrapeDahina :: Patch2
scrapeDahina = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeDahina Modes DryWetRatio
forall a. Fractional a => Modes a
C.dahinaModes
scrapeBanyan :: Patch2
scrapeBanyan = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeBanyan Modes DryWetRatio
forall a. Fractional a => Modes a
C.banyanModes
scrapeXylophone :: Patch2
scrapeXylophone = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeXylophone Modes DryWetRatio
forall a. Fractional a => Modes a
C.xylophoneModes
scrapeTibetanBowl180 :: Patch2
scrapeTibetanBowl180 = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeTibetanBowl180 Modes DryWetRatio
forall a. Fractional a => Modes a
C.tibetanBowlModes180
scrapeSpinelSphere :: Patch2
scrapeSpinelSphere = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeSpinelSphere Modes DryWetRatio
forall a. Fractional a => Modes a
C.spinelSphereModes
scrapePotLid :: Patch2
scrapePotLid = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapePotLid Modes DryWetRatio
forall a. Fractional a => Modes a
C.potLidModes
scrapeRedCedarWoodPlate :: Patch2
scrapeRedCedarWoodPlate = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeRedCedarWoodPlate Modes DryWetRatio
forall a. Fractional a => Modes a
C.redCedarWoodPlateModes
scrapeTubularBell :: Patch2
scrapeTubularBell = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeTubularBell Modes DryWetRatio
forall a. Fractional a => Modes a
C.tubularBellModes
scrapeRedwoodPlate :: Patch2
scrapeRedwoodPlate = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeRedwoodPlate Modes DryWetRatio
forall a. Fractional a => Modes a
C.redwoodPlateModes
scrapeDouglasFirWoodPlate :: Patch2
scrapeDouglasFirWoodPlate = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeDouglasFirWoodPlate Modes DryWetRatio
forall a. Fractional a => Modes a
C.douglasFirWoodPlateModes
scrapeUniformWoodenBar :: Patch2
scrapeUniformWoodenBar = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeUniformWoodenBar Modes DryWetRatio
forall a. Fractional a => Modes a
C.uniformWoodenBarModes
scrapeUniformAluminumBar :: Patch2
scrapeUniformAluminumBar = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeUniformAluminumBar Modes DryWetRatio
forall a. Fractional a => Modes a
C.uniformAluminumBarModes
scrapeVibraphone1 :: Patch2
scrapeVibraphone1 = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeVibraphone1 Modes DryWetRatio
forall a. Fractional a => Modes a
C.vibraphoneModes1
scrapeVibraphone2 :: Patch2
scrapeVibraphone2 = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeVibraphone2 Modes DryWetRatio
forall a. Fractional a => Modes a
C.vibraphoneModes2
scrapeChalandiPlates :: Patch2
scrapeChalandiPlates = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeChalandiPlates Modes DryWetRatio
forall a. Fractional a => Modes a
C.chalandiPlatesModes
scrapeTibetanBowl152 :: Patch2
scrapeTibetanBowl152 = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeTibetanBowl152 Modes DryWetRatio
forall a. Fractional a => Modes a
C.tibetanBowlModes152
scrapeTibetanBowl140 :: Patch2
scrapeTibetanBowl140 = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeTibetanBowl140 Modes DryWetRatio
forall a. Fractional a => Modes a
C.tibetanBowlModes140
scrapeWineGlass :: Patch2
scrapeWineGlass = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeWineGlass Modes DryWetRatio
forall a. Fractional a => Modes a
C.wineGlassModes
scrapeSmallHandbell :: Patch2
scrapeSmallHandbell = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeSmallHandbell Modes DryWetRatio
forall a. Fractional a => Modes a
C.smallHandbellModes
scrapeAlbertClockBellBelfast :: Patch2
scrapeAlbertClockBellBelfast = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeAlbertClockBellBelfast Modes DryWetRatio
forall a. Fractional a => Modes a
C.albertClockBellBelfastModes
scrapeWoodBlock :: Patch2
scrapeWoodBlock = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapeWoodBlock Modes DryWetRatio
forall a. Fractional a => Modes a
C.woodBlockModes
scrapeDahinam :: Patch2
scrapeDahinam = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeDahina Modes DryWetRatio
forall a. Fractional a => Modes a
C.dahinaModes
scrapeBanyanm :: Patch2
scrapeBanyanm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeBanyan Modes DryWetRatio
forall a. Fractional a => Modes a
C.banyanModes
scrapeXylophonem :: Patch2
scrapeXylophonem = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeXylophone Modes DryWetRatio
forall a. Fractional a => Modes a
C.xylophoneModes
scrapeTibetanBowl180m :: Patch2
scrapeTibetanBowl180m = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeTibetanBowl180 Modes DryWetRatio
forall a. Fractional a => Modes a
C.tibetanBowlModes180
scrapeSpinelSpherem :: Patch2
scrapeSpinelSpherem = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeSpinelSphere Modes DryWetRatio
forall a. Fractional a => Modes a
C.spinelSphereModes
scrapePotLidm :: Patch2
scrapePotLidm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrape DryWetRatio
scaleScrapePotLid Modes DryWetRatio
forall a. Fractional a => Modes a
C.potLidModes
scrapeRedCedarWoodPlatem :: Patch2
scrapeRedCedarWoodPlatem = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeRedCedarWoodPlate Modes DryWetRatio
forall a. Fractional a => Modes a
C.redCedarWoodPlateModes
scrapeTubularBellm :: Patch2
scrapeTubularBellm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeTubularBell Modes DryWetRatio
forall a. Fractional a => Modes a
C.tubularBellModes
scrapeRedwoodPlatem :: Patch2
scrapeRedwoodPlatem = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeRedwoodPlate Modes DryWetRatio
forall a. Fractional a => Modes a
C.redwoodPlateModes
scrapeDouglasFirWoodPlatem :: Patch2
scrapeDouglasFirWoodPlatem = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeDouglasFirWoodPlate Modes DryWetRatio
forall a. Fractional a => Modes a
C.douglasFirWoodPlateModes
scrapeUniformWoodenBarm :: Patch2
scrapeUniformWoodenBarm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeUniformWoodenBar Modes DryWetRatio
forall a. Fractional a => Modes a
C.uniformWoodenBarModes
scrapeUniformAluminumBarm :: Patch2
scrapeUniformAluminumBarm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeUniformAluminumBar Modes DryWetRatio
forall a. Fractional a => Modes a
C.uniformAluminumBarModes
scrapeVibraphone1m :: Patch2
scrapeVibraphone1m = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeVibraphone1 Modes DryWetRatio
forall a. Fractional a => Modes a
C.vibraphoneModes1
scrapeVibraphone2m :: Patch2
scrapeVibraphone2m = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeVibraphone2 Modes DryWetRatio
forall a. Fractional a => Modes a
C.vibraphoneModes2
scrapeChalandiPlatesm :: Patch2
scrapeChalandiPlatesm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeChalandiPlates Modes DryWetRatio
forall a. Fractional a => Modes a
C.chalandiPlatesModes
scrapeTibetanBowl152m :: Patch2
scrapeTibetanBowl152m = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeTibetanBowl152 Modes DryWetRatio
forall a. Fractional a => Modes a
C.tibetanBowlModes152
scrapeTibetanBowl140m :: Patch2
scrapeTibetanBowl140m = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeTibetanBowl140 Modes DryWetRatio
forall a. Fractional a => Modes a
C.tibetanBowlModes140
scrapeWineGlassm :: Patch2
scrapeWineGlassm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeWineGlass Modes DryWetRatio
forall a. Fractional a => Modes a
C.wineGlassModes
scrapeSmallHandbellm :: Patch2
scrapeSmallHandbellm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeSmallHandbell Modes DryWetRatio
forall a. Fractional a => Modes a
C.smallHandbellModes
scrapeAlbertClockBellBelfastm :: Patch2
scrapeAlbertClockBellBelfastm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeAlbertClockBellBelfast Modes DryWetRatio
forall a. Fractional a => Modes a
C.albertClockBellBelfastModes
scrapeWoodBlockm :: Patch2
scrapeWoodBlockm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapem DryWetRatio
scaleScrapeWoodBlock Modes DryWetRatio
forall a. Fractional a => Modes a
C.woodBlockModes
scrapeFastDahina :: Patch2
scrapeFastDahina = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeDahina Modes DryWetRatio
forall a. Fractional a => Modes a
C.dahinaModes
scrapeFastBanyan :: Patch2
scrapeFastBanyan = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeBanyan Modes DryWetRatio
forall a. Fractional a => Modes a
C.banyanModes
scrapeFastXylophone :: Patch2
scrapeFastXylophone = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeXylophone Modes DryWetRatio
forall a. Fractional a => Modes a
C.xylophoneModes
scrapeFastTibetanBowl180 :: Patch2
scrapeFastTibetanBowl180 = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeTibetanBowl180 Modes DryWetRatio
forall a. Fractional a => Modes a
C.tibetanBowlModes180
scrapeFastSpinelSphere :: Patch2
scrapeFastSpinelSphere = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeSpinelSphere Modes DryWetRatio
forall a. Fractional a => Modes a
C.spinelSphereModes
scrapeFastPotLid :: Patch2
scrapeFastPotLid = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapePotLid Modes DryWetRatio
forall a. Fractional a => Modes a
C.potLidModes
scrapeFastRedCedarWoodPlate :: Patch2
scrapeFastRedCedarWoodPlate = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeRedCedarWoodPlate Modes DryWetRatio
forall a. Fractional a => Modes a
C.redCedarWoodPlateModes
scrapeFastTubularBell :: Patch2
scrapeFastTubularBell = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeTubularBell Modes DryWetRatio
forall a. Fractional a => Modes a
C.tubularBellModes
scrapeFastRedwoodPlate :: Patch2
scrapeFastRedwoodPlate = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeRedwoodPlate Modes DryWetRatio
forall a. Fractional a => Modes a
C.redwoodPlateModes
scrapeFastDouglasFirWoodPlate :: Patch2
scrapeFastDouglasFirWoodPlate = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeDouglasFirWoodPlate Modes DryWetRatio
forall a. Fractional a => Modes a
C.douglasFirWoodPlateModes
scrapeFastUniformWoodenBar :: Patch2
scrapeFastUniformWoodenBar = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeUniformWoodenBar Modes DryWetRatio
forall a. Fractional a => Modes a
C.uniformWoodenBarModes
scrapeFastUniformAluminumBar :: Patch2
scrapeFastUniformAluminumBar = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeUniformAluminumBar Modes DryWetRatio
forall a. Fractional a => Modes a
C.uniformAluminumBarModes
scrapeFastVibraphone1 :: Patch2
scrapeFastVibraphone1 = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeVibraphone1 Modes DryWetRatio
forall a. Fractional a => Modes a
C.vibraphoneModes1
scrapeFastVibraphone2 :: Patch2
scrapeFastVibraphone2 = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeVibraphone2 Modes DryWetRatio
forall a. Fractional a => Modes a
C.vibraphoneModes2
scrapeFastChalandiPlates :: Patch2
scrapeFastChalandiPlates = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeChalandiPlates Modes DryWetRatio
forall a. Fractional a => Modes a
C.chalandiPlatesModes
scrapeFastTibetanBowl152 :: Patch2
scrapeFastTibetanBowl152 = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeTibetanBowl152 Modes DryWetRatio
forall a. Fractional a => Modes a
C.tibetanBowlModes152
scrapeFastTibetanBowl140 :: Patch2
scrapeFastTibetanBowl140 = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeTibetanBowl140 Modes DryWetRatio
forall a. Fractional a => Modes a
C.tibetanBowlModes140
scrapeFastWineGlass :: Patch2
scrapeFastWineGlass = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeWineGlass Modes DryWetRatio
forall a. Fractional a => Modes a
C.wineGlassModes
scrapeFastSmallHandbell :: Patch2
scrapeFastSmallHandbell = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeSmallHandbell Modes DryWetRatio
forall a. Fractional a => Modes a
C.smallHandbellModes
scrapeFastAlbertClockBellBelfast :: Patch2
scrapeFastAlbertClockBellBelfast = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeAlbertClockBellBelfast Modes DryWetRatio
forall a. Fractional a => Modes a
C.albertClockBellBelfastModes
scrapeFastWoodBlock :: Patch2
scrapeFastWoodBlock = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapeFast DryWetRatio
scaleScrapeWoodBlock Modes DryWetRatio
forall a. Fractional a => Modes a
C.woodBlockModes
scrapePadDahina :: Patch2
scrapePadDahina = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeDahina Modes DryWetRatio
forall a. Fractional a => Modes a
C.dahinaModes
scrapePadBanyan :: Patch2
scrapePadBanyan = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeBanyan Modes DryWetRatio
forall a. Fractional a => Modes a
C.banyanModes
scrapePadXylophone :: Patch2
scrapePadXylophone = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeXylophone Modes DryWetRatio
forall a. Fractional a => Modes a
C.xylophoneModes
scrapePadTibetanBowl180 :: Patch2
scrapePadTibetanBowl180 = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeTibetanBowl180 Modes DryWetRatio
forall a. Fractional a => Modes a
C.tibetanBowlModes180
scrapePadSpinelSphere :: Patch2
scrapePadSpinelSphere = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeSpinelSphere Modes DryWetRatio
forall a. Fractional a => Modes a
C.spinelSphereModes
scrapePadPotLid :: Patch2
scrapePadPotLid = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapePotLid Modes DryWetRatio
forall a. Fractional a => Modes a
C.potLidModes
scrapePadRedCedarWoodPlate :: Patch2
scrapePadRedCedarWoodPlate = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeRedCedarWoodPlate Modes DryWetRatio
forall a. Fractional a => Modes a
C.redCedarWoodPlateModes
scrapePadTubularBell :: Patch2
scrapePadTubularBell = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeTubularBell Modes DryWetRatio
forall a. Fractional a => Modes a
C.tubularBellModes
scrapePadRedwoodPlate :: Patch2
scrapePadRedwoodPlate = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeRedwoodPlate Modes DryWetRatio
forall a. Fractional a => Modes a
C.redwoodPlateModes
scrapePadDouglasFirWoodPlate :: Patch2
scrapePadDouglasFirWoodPlate = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeDouglasFirWoodPlate Modes DryWetRatio
forall a. Fractional a => Modes a
C.douglasFirWoodPlateModes
scrapePadUniformWoodenBar :: Patch2
scrapePadUniformWoodenBar = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeUniformWoodenBar Modes DryWetRatio
forall a. Fractional a => Modes a
C.uniformWoodenBarModes
scrapePadUniformAluminumBar :: Patch2
scrapePadUniformAluminumBar = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeUniformAluminumBar Modes DryWetRatio
forall a. Fractional a => Modes a
C.uniformAluminumBarModes
scrapePadVibraphone1 :: Patch2
scrapePadVibraphone1 = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeVibraphone1 Modes DryWetRatio
forall a. Fractional a => Modes a
C.vibraphoneModes1
scrapePadVibraphone2 :: Patch2
scrapePadVibraphone2 = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeVibraphone2 Modes DryWetRatio
forall a. Fractional a => Modes a
C.vibraphoneModes2
scrapePadChalandiPlates :: Patch2
scrapePadChalandiPlates = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeChalandiPlates Modes DryWetRatio
forall a. Fractional a => Modes a
C.chalandiPlatesModes
scrapePadTibetanBowl152 :: Patch2
scrapePadTibetanBowl152 = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeTibetanBowl152 Modes DryWetRatio
forall a. Fractional a => Modes a
C.tibetanBowlModes152
scrapePadTibetanBowl140 :: Patch2
scrapePadTibetanBowl140 = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeTibetanBowl140 Modes DryWetRatio
forall a. Fractional a => Modes a
C.tibetanBowlModes140
scrapePadWineGlass :: Patch2
scrapePadWineGlass = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeWineGlass Modes DryWetRatio
forall a. Fractional a => Modes a
C.wineGlassModes
scrapePadSmallHandbell :: Patch2
scrapePadSmallHandbell = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeSmallHandbell Modes DryWetRatio
forall a. Fractional a => Modes a
C.smallHandbellModes
scrapePadAlbertClockBellBelfast :: Patch2
scrapePadAlbertClockBellBelfast = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeAlbertClockBellBelfast Modes DryWetRatio
forall a. Fractional a => Modes a
C.albertClockBellBelfastModes
scrapePadWoodBlock :: Patch2
scrapePadWoodBlock = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePad DryWetRatio
scaleScrapeWoodBlock Modes DryWetRatio
forall a. Fractional a => Modes a
C.woodBlockModes
scrapePadDahinam :: Patch2
scrapePadDahinam = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeDahina Modes DryWetRatio
forall a. Fractional a => Modes a
C.dahinaModes
scrapePadBanyanm :: Patch2
scrapePadBanyanm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeBanyan Modes DryWetRatio
forall a. Fractional a => Modes a
C.banyanModes
scrapePadXylophonem :: Patch2
scrapePadXylophonem = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeXylophone Modes DryWetRatio
forall a. Fractional a => Modes a
C.xylophoneModes
scrapePadTibetanBowl180m :: Patch2
scrapePadTibetanBowl180m = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeTibetanBowl180 Modes DryWetRatio
forall a. Fractional a => Modes a
C.tibetanBowlModes180
scrapePadSpinelSpherem :: Patch2
scrapePadSpinelSpherem = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeSpinelSphere Modes DryWetRatio
forall a. Fractional a => Modes a
C.spinelSphereModes
scrapePadPotLidm :: Patch2
scrapePadPotLidm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapePotLid Modes DryWetRatio
forall a. Fractional a => Modes a
C.potLidModes
scrapePadRedCedarWoodPlatem :: Patch2
scrapePadRedCedarWoodPlatem = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeRedCedarWoodPlate Modes DryWetRatio
forall a. Fractional a => Modes a
C.redCedarWoodPlateModes
scrapePadTubularBellm :: Patch2
scrapePadTubularBellm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeTubularBell Modes DryWetRatio
forall a. Fractional a => Modes a
C.tubularBellModes
scrapePadRedwoodPlatem :: Patch2
scrapePadRedwoodPlatem = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeRedwoodPlate Modes DryWetRatio
forall a. Fractional a => Modes a
C.redwoodPlateModes
scrapePadDouglasFirWoodPlatem :: Patch2
scrapePadDouglasFirWoodPlatem = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeDouglasFirWoodPlate Modes DryWetRatio
forall a. Fractional a => Modes a
C.douglasFirWoodPlateModes
scrapePadUniformWoodenBarm :: Patch2
scrapePadUniformWoodenBarm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeUniformWoodenBar Modes DryWetRatio
forall a. Fractional a => Modes a
C.uniformWoodenBarModes
scrapePadUniformAluminumBarm :: Patch2
scrapePadUniformAluminumBarm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeUniformAluminumBar Modes DryWetRatio
forall a. Fractional a => Modes a
C.uniformAluminumBarModes
scrapePadVibraphone1m :: Patch2
scrapePadVibraphone1m = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeVibraphone1 Modes DryWetRatio
forall a. Fractional a => Modes a
C.vibraphoneModes1
scrapePadVibraphone2m :: Patch2
scrapePadVibraphone2m = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeVibraphone2 Modes DryWetRatio
forall a. Fractional a => Modes a
C.vibraphoneModes2
scrapePadChalandiPlatesm :: Patch2
scrapePadChalandiPlatesm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeChalandiPlates Modes DryWetRatio
forall a. Fractional a => Modes a
C.chalandiPlatesModes
scrapePadTibetanBowl152m :: Patch2
scrapePadTibetanBowl152m = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeTibetanBowl152 Modes DryWetRatio
forall a. Fractional a => Modes a
C.tibetanBowlModes152
scrapePadTibetanBowl140m :: Patch2
scrapePadTibetanBowl140m = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeTibetanBowl140 Modes DryWetRatio
forall a. Fractional a => Modes a
C.tibetanBowlModes140
scrapePadWineGlassm :: Patch2
scrapePadWineGlassm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeWineGlass Modes DryWetRatio
forall a. Fractional a => Modes a
C.wineGlassModes
scrapePadSmallHandbellm :: Patch2
scrapePadSmallHandbellm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeSmallHandbell Modes DryWetRatio
forall a. Fractional a => Modes a
C.smallHandbellModes
scrapePadAlbertClockBellBelfastm :: Patch2
scrapePadAlbertClockBellBelfastm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeAlbertClockBellBelfast Modes DryWetRatio
forall a. Fractional a => Modes a
C.albertClockBellBelfastModes
scrapePadWoodBlockm :: Patch2
scrapePadWoodBlockm = DryWetRatio -> Modes DryWetRatio -> Patch2
scrapePadm DryWetRatio
scaleScrapeWoodBlock Modes DryWetRatio
forall a. Fractional a => Modes a
C.woodBlockModes
data Wind = Wind
{ Wind -> D
windAtt :: D
, Wind -> D
windDec :: D
, Wind -> D
windSus :: D
, Wind -> D
windVib :: D
, Wind -> D
windBright :: D }
woodWind' :: Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' Wind
spec t -> D -> D -> D -> D -> D -> D -> DryWetRatio
instr = Patch2 -> Patch2
withSmallHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ \(D
amp, D
cps) -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
1.3 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ do
t
seed <- t -> SE t
forall a. SigOrD a => a -> SE a
rnd t
1
D
vibDisp <- D -> SE D
forall a. SigOrD a => a -> SE a
rnd (D
0.1 D -> D -> D
forall a. Num a => a -> a -> a
* D
amp)
let dispVib :: D -> D
dispVib D
vib = D
vib D -> D -> D
forall a. Num a => a -> a -> a
* (D
0.9 D -> D -> D
forall a. Num a => a -> a -> a
+ D
vibDisp)
(DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> DryWetRatio -> (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.8 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> DryWetRatio
sig D
amp DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> DryWetRatio
fadeOut (Wind -> D
windDec Wind
spec)) (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall a b. (a -> b) -> a -> b
$ t -> D -> D -> D -> D -> D -> D -> DryWetRatio
instr t
seed (D -> D
dispVib (D -> D) -> D -> D
forall a b. (a -> b) -> a -> b
$ Wind -> D
windVib Wind
spec) (Wind -> D
windAtt Wind
spec) (Wind -> D
windSus Wind
spec) (Wind -> D
windDec Wind
spec) (D
0.4 D -> D -> D
forall a. Num a => a -> a -> a
+ D
0.75 D -> D -> D
forall a. Num a => a -> a -> a
* Wind -> D
windBright Wind
spec D -> D -> D
forall a. Num a => a -> a -> a
* D
amp) D
cps
fluteSpec :: D -> D -> Wind
fluteSpec D
bright D
vib = Wind
{ windAtt :: D
windAtt = D
0.08
, windDec :: D
windDec = D
0.1
, windSus :: D
windSus = D
20
, windVib :: D
windVib = D
vib
, windBright :: D
windBright = D
bright }
shortFluteSpec :: D -> D -> Wind
shortFluteSpec D
bright D
vib = Wind
{ windAtt :: D
windAtt = D
0.03
, windDec :: D
windDec = D
0.05
, windSus :: D
windSus = D
20
, windVib :: D
windVib = D
vib
, windBright :: D
windBright = D
bright }
flute :: Patch2
flute = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
fluteSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.flute
where
br :: D
br = D
0.7
vib :: D
vib = D
0.015
shortFlute :: Patch2
shortFlute = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
shortFluteSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.flute
where
br :: D
br = D
0.7
vib :: D
vib = D
0.015
fluteVibrato :: Patch2
fluteVibrato = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
fluteSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.flute
where
br :: D
br = D
0.7
vib :: D
vib = D
0.04
mutedFlute :: Patch2
mutedFlute = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
fluteSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.flute
where
br :: D
br = D
0.25
vib :: D
vib = D
0.015
brightFlute :: Patch2
brightFlute = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
fluteSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.flute
where
br :: D
br = D
1.2
vib :: D
vib = D
0.015
bassClarinetSpec :: D -> D -> Wind
bassClarinetSpec D
bright D
vib = Wind
{ windAtt :: D
windAtt = D
0.06
, windDec :: D
windDec = D
0.15
, windSus :: D
windSus = D
20
, windVib :: D
windVib = D
vib
, windBright :: D
windBright = D
bright }
shortBassClarinetSpec :: D -> D -> Wind
shortBassClarinetSpec D
bright D
vib = Wind
{ windAtt :: D
windAtt = D
0.03
, windDec :: D
windDec = D
0.04
, windSus :: D
windSus = D
20
, windVib :: D
windVib = D
vib
, windBright :: D
windBright = D
bright }
bassClarinet :: Patch2
bassClarinet = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
bassClarinetSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.bassClarinet
where
br :: D
br = D
0.7
vib :: D
vib = D
0.01
shortBassClarinet :: Patch2
shortBassClarinet = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
shortBassClarinetSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.bassClarinet
where
br :: D
br = D
0.7
vib :: D
vib = D
0.01
bassClarinetVibrato :: Patch2
bassClarinetVibrato = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
bassClarinetSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.bassClarinet
where
br :: D
br = D
0.7
vib :: D
vib = D
0.035
mutedBassClarinet :: Patch2
mutedBassClarinet = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
bassClarinetSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.bassClarinet
where
br :: D
br = D
0.25
vib :: D
vib = D
0.01
brightBassClarinet :: Patch2
brightBassClarinet = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
bassClarinetSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.bassClarinet
where
br :: D
br = D
1.2
vib :: D
vib = D
0.01
frenchHornSpec :: D -> D -> Wind
frenchHornSpec D
bright D
vib = Wind
{ windAtt :: D
windAtt = D
0.08
, windDec :: D
windDec = D
0.25
, windSus :: D
windSus = D
20
, windVib :: D
windVib = D
vib
, windBright :: D
windBright = D
bright }
shortFrenchHornSpec :: D -> D -> Wind
shortFrenchHornSpec D
bright D
vib = Wind
{ windAtt :: D
windAtt = D
0.03
, windDec :: D
windDec = D
0.04
, windSus :: D
windSus = D
20
, windVib :: D
windVib = D
vib
, windBright :: D
windBright = D
bright }
frenchHorn :: Patch2
frenchHorn = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
frenchHornSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.frenchHorn
where
br :: D
br = D
0.7
vib :: D
vib = D
0.01
shortFrenchHorn :: Patch2
shortFrenchHorn = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
shortFrenchHornSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.frenchHorn
where
br :: D
br = D
0.7
vib :: D
vib = D
0.01
frenchHornVibrato :: Patch2
frenchHornVibrato = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
frenchHornSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.frenchHorn
where
br :: D
br = D
0.7
vib :: D
vib = D
0.035
mutedFrenchHorn :: Patch2
mutedFrenchHorn = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
frenchHornSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.frenchHorn
where
br :: D
br = D
0.25
vib :: D
vib = D
0.01
brightFrenchHorn :: Patch2
brightFrenchHorn = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
frenchHornSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.frenchHorn
where
br :: D
br = D
1.2
vib :: D
vib = D
0.01
shengSpec :: D -> D -> Wind
shengSpec D
bright D
vib = Wind
{ windAtt :: D
windAtt = D
0.1
, windDec :: D
windDec = D
0.2
, windSus :: D
windSus = D
20
, windVib :: D
windVib = D
vib
, windBright :: D
windBright = D
bright }
shortShengSpec :: D -> D -> Wind
shortShengSpec D
bright D
vib = Wind
{ windAtt :: D
windAtt = D
0.03
, windDec :: D
windDec = D
0.04
, windSus :: D
windSus = D
20
, windVib :: D
windVib = D
vib
, windBright :: D
windBright = D
bright }
sheng :: Patch2
sheng = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
shengSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.sheng
where
br :: D
br = D
0.7
vib :: D
vib = D
0.01
shortSheng :: Patch2
shortSheng = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
shortShengSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.sheng
where
br :: D
br = D
0.7
vib :: D
vib = D
0.01
shengVibrato :: Patch2
shengVibrato = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
shengSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.sheng
where
br :: D
br = D
0.7
vib :: D
vib = D
0.025
mutedSheng :: Patch2
mutedSheng = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
shengSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.sheng
where
br :: D
br = D
0.25
vib :: D
vib = D
0.01
brightSheng :: Patch2
brightSheng = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
shortShengSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.sheng
where
br :: D
br = D
1.2
vib :: D
vib = D
0.01
hulusiSpec :: D -> D -> Wind
hulusiSpec D
bright D
vib = Wind
{ windAtt :: D
windAtt = D
0.12
, windDec :: D
windDec = D
0.14
, windSus :: D
windSus = D
20
, windVib :: D
windVib = D
vib
, windBright :: D
windBright = D
bright }
shortHulusiSpec :: D -> D -> Wind
shortHulusiSpec D
bright D
vib = Wind
{ windAtt :: D
windAtt = D
0.03
, windDec :: D
windDec = D
0.04
, windSus :: D
windSus = D
20
, windVib :: D
windVib = D
vib
, windBright :: D
windBright = D
bright }
hulusi :: Patch2
hulusi = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
hulusiSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.hulusi
where
br :: D
br = D
0.7
vib :: D
vib = D
0.015
shortHulusi :: Patch2
shortHulusi = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
shortHulusiSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.hulusi
where
br :: D
br = D
0.7
vib :: D
vib = D
0.015
hulusiVibrato :: Patch2
hulusiVibrato = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
hulusiSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.hulusi
where
br :: D
br = D
0.7
vib :: D
vib = D
0.035
mutedHulusi :: Patch2
mutedHulusi = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
hulusiSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.hulusi
where
br :: D
br = D
0.25
vib :: D
vib = D
0.015
brightHulusi :: Patch2
brightHulusi = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
shortHulusiSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.hulusi
where
br :: D
br = D
1.2
vib :: D
vib = D
0.015
diziSpec :: D -> D -> Wind
diziSpec D
bright D
vib = Wind
{ windAtt :: D
windAtt = D
0.03
, windDec :: D
windDec = D
0.2
, windSus :: D
windSus = D
20
, windVib :: D
windVib = D
vib
, windBright :: D
windBright = D
bright }
shortDiziSpec :: D -> D -> Wind
shortDiziSpec D
bright D
vib = Wind
{ windAtt :: D
windAtt = D
0.1
, windDec :: D
windDec = D
0.04
, windSus :: D
windSus = D
20
, windVib :: D
windVib = D
vib
, windBright :: D
windBright = D
bright }
dizi :: Patch2
dizi = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
diziSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.dizi
where
br :: D
br = D
0.7
vib :: D
vib = D
0.01
shortDizi :: Patch2
shortDizi = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
shortDiziSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.dizi
where
br :: D
br = D
0.7
vib :: D
vib = D
0.01
diziVibrato :: Patch2
diziVibrato = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
diziSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.dizi
where
br :: D
br = D
0.7
vib :: D
vib = D
0.035
mutedDizi :: Patch2
mutedDizi = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
diziSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.dizi
where
br :: D
br = D
0.25
vib :: D
vib = D
0.01
brightDizi :: Patch2
brightDizi = Wind -> (D -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
forall {t}.
SigOrD t =>
Wind -> (t -> D -> D -> D -> D -> D -> D -> DryWetRatio) -> Patch2
woodWind' (D -> D -> Wind
shortDiziSpec D
br D
vib) D -> D -> D -> D -> D -> D -> D -> DryWetRatio
C.dizi
where
br :: D
br = D
1.2
vib :: D
vib = D
0.01
pulseWidth :: Patch2
pulseWidth = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.15 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.75 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
0.6) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (D -> D -> DryWetRatio
fades D
0.07 D
0.1)(SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((DryWetRatio, DryWetRatio) -> DryWetRatio)
-> CsdNote D
-> SE (CpsInstrOut ((DryWetRatio, DryWetRatio) -> DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps ((DryWetRatio -> DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio) -> DryWetRatio
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry DryWetRatio -> DryWetRatio -> DryWetRatio
C.pulseWidth)
xanadu :: Patch2
xanadu = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.27 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
1.2 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
0.6) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (D -> D -> DryWetRatio
fades D
0.01 D
2.2)(SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (D -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (D -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps D -> SE DryWetRatio
C.xanadu1
alienIsAngry :: Patch2
alienIsAngry = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.15 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallRoom2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.5 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.01 D
2.3)(SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (D -> DryWetRatio -> DryWetRatio
C.fmMod D
5)
noiz :: Patch2
noiz = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.15 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
1.5 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.01 D
0.5)(SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps DryWetRatio -> SE DryWetRatio
C.noiz
blue :: Patch2
blue = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.25 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
1.5 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.01 D
0.5)(SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (D -> D -> D -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.blue D
5 D
7 D
0.24 DryWetRatio
12)
black :: Patch2
black = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.25 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
2 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.01 D
0.5)(SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (D -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (D -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (\D
cps -> D -> D -> D -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.black D
3 (D
cps D -> D -> D
forall a. Fractional a => a -> a -> a
/ D
2) (D
cps D -> D -> D
forall a. Num a => a -> a -> a
* D
2) DryWetRatio
12 (D -> DryWetRatio
sig D
cps))
simpleMarimba :: Patch2
simpleMarimba = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.25 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.8 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.01 D
0.5)(SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (D -> DryWetRatio -> DryWetRatio
C.simpleMarimba D
5)
impulseMarimba1 :: Patch2
impulseMarimba1 = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.3 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.8 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> DryWetRatio
fadeOut D
0.75)(SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps DryWetRatio -> DryWetRatio
C.impulseMarimba1
impulseMarimba2 :: Patch2
impulseMarimba2 = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.3 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.8 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> DryWetRatio
fadeOut D
0.75)(SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps DryWetRatio -> DryWetRatio
C.impulseMarimba2
okComputer :: Patch2
okComputer = (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter (D
amp, D
cps) -> ((DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> SE DryWetRatio)
-> DryWetRatio
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.75 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> DryWetRatio
sig D
amp DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.01 D
0.01) (SE DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio -> SE DryWetRatio) -> DryWetRatio -> SE DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> SE DryWetRatio -> AtOut DryWetRatio DryWetRatio (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at (ResonFilter
filter (DryWetRatio
1500 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ D -> DryWetRatio
sig D
amp DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
8500) DryWetRatio
0.1) (SE DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio -> SE DryWetRatio) -> DryWetRatio -> SE DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio
C.okComputer (DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> SE DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Fractional a => a -> a -> a
/ DryWetRatio
25))) (D -> DryWetRatio
sig D
cps)
snowCrackle :: Patch2
snowCrackle = Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ \(D
amp, D
cps) -> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> DryWetRatio
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> DryWetRatio)
-> DryWetRatio
-> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.8 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> DryWetRatio
sig D
amp DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.001 D
0.001) (DryWetRatio -> DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio
C.snowCrackle (DryWetRatio -> DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Fractional a => a -> a -> a
/ DryWetRatio
25))) (D -> DryWetRatio
sig D
cps)
noiseBell :: Patch2
noiseBell = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.25 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.75 (SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (CsdNote D -> D -> DryWetRatio -> DryWetRatio -> SE DryWetRatio
C.noiseBell (D
31, D
125) D
2.3 DryWetRatio
0.2 (DryWetRatio -> SE DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> SE DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ( DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
8))
robotVowels :: [(Vowel, D)] -> Vowel -> Patch2
robotVowels [(Vowel, D)]
vows Vowel
latVow = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.15 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
1.1 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.1 D
0.1)(SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (D -> [(Vowel, D)] -> Vowel -> DryWetRatio -> DryWetRatio
C.vowels D
25 [(Vowel, D)]
vows Vowel
latVow)
robotLoopVowels :: DryWetRatio -> [(Vowel, D)] -> Patch2
robotLoopVowels DryWetRatio
loopDur [(Vowel, D)]
vows = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.15 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
1.1 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.1 D
0.1)(SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (D -> DryWetRatio -> [(Vowel, D)] -> DryWetRatio -> DryWetRatio
C.loopVowels D
25 DryWetRatio
loopDur [(Vowel, D)]
vows)
robotVowel :: Vowel -> Patch2
robotVowel Vowel
vow = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.15 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
1.1 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.1 D
0.1)(SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (D -> Vowel -> DryWetRatio -> DryWetRatio
C.oneVowel D
25 Vowel
vow)
windWall :: Patch2
windWall = Patch2 -> Patch2
withLargeHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
1.25 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.1 D
5)(SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps DryWetRatio -> SE DryWetRatio
C.windWall
mildWind :: Patch2
mildWind = Patch2 -> Patch2
withLargeHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
1.25 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.1 D
1.5)(SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps DryWetRatio -> SE DryWetRatio
C.mildWind
wind :: Patch2
wind = Patch2 -> Patch2
withLargeHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> SE DryWetRatio -> SE DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.8 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.1 D
1.5)(SE DryWetRatio -> SE DryWetRatio)
-> Instr D DryWetRatio -> Instr D DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (DryWetRatio -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (\DryWetRatio
cps -> DryWetRatio
-> DryWetRatio -> (DryWetRatio, DryWetRatio) -> SE DryWetRatio
C.thorWind (DryWetRatio
cps DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
2) DryWetRatio
150 (DryWetRatio
0.3, DryWetRatio
1))
soloSharc :: SharcInstr -> Patch2
soloSharc :: SharcInstr -> Patch2
soloSharc SharcInstr
instr = Patch2 -> Patch2
withSmallHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (D -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (D -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (SharcInstr -> D -> SE DryWetRatio
C.soloSharcOsc SharcInstr
instr)
orcSharc :: SharcInstr -> Patch2
orcSharc :: SharcInstr -> Patch2
orcSharc SharcInstr
instr = Patch2 -> Patch2
withLargeHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (D -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (D -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (SharcInstr -> D -> SE DryWetRatio
C.orcSharcOsc SharcInstr
instr)
padSharc :: SharcInstr -> Patch2
padSharc :: SharcInstr -> Patch2
padSharc SharcInstr
instr = Patch2 -> Patch2
withLargeHall (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (D -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (D -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (SharcInstr -> D -> SE DryWetRatio
C.padSharcOsc SharcInstr
instr)
purePadSharc :: SharcInstr -> Patch2
purePadSharc :: SharcInstr -> Patch2
purePadSharc SharcInstr
instr = DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> a) -> Patch a -> Patch a
fx1 DryWetRatio
0.35 (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> Instr D DryWetRatio -> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (D -> SE DryWetRatio)
-> CsdNote D -> SE (CpsInstrOut (D -> SE DryWetRatio))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (SharcInstr -> D -> SE DryWetRatio
C.purePadSharcOsc SharcInstr
instr)
dreamSharc :: SharcInstr -> Patch2
dreamSharc :: SharcInstr -> Patch2
dreamSharc SharcInstr
instr = DryWetRatio -> (D -> DryWetRatio -> SE DryWetRatio) -> Patch2
dreamPadWithKey DryWetRatio
0.35 (SharcInstr -> D -> DryWetRatio -> SE DryWetRatio
C.rndSigSharcOsc SharcInstr
instr)
lightIsTooBrightSharc :: SharcInstr -> Patch2
lightIsTooBrightSharc :: SharcInstr -> Patch2
lightIsTooBrightSharc SharcInstr
instr = DryWetRatio -> (D -> DryWetRatio -> SE DryWetRatio) -> Patch2
lightIsTooBrightPadWithKey DryWetRatio
0.6 (SharcInstr -> D -> DryWetRatio -> SE DryWetRatio
C.rndSigSharcOsc SharcInstr
instr)
whaleSongSharc :: SharcInstr -> Patch2
whaleSongSharc :: SharcInstr -> Patch2
whaleSongSharc SharcInstr
instr = DryWetRatio -> (D -> DryWetRatio -> SE DryWetRatio) -> Patch2
whaleSongPadWithKey DryWetRatio
0.4 (SharcInstr -> D -> DryWetRatio -> SE DryWetRatio
C.rndSigSharcOsc SharcInstr
instr)
sharcOrgan :: SharcInstr -> Patch2
sharcOrgan :: SharcInstr -> Patch2
sharcOrgan SharcInstr
instr = (D -> DryWetRatio -> SE DryWetRatio) -> Patch2
waveOrganWithKey (SharcInstr -> D -> DryWetRatio -> SE DryWetRatio
C.rndSigSharcOsc SharcInstr
instr)
type PadsynthBandwidth = Double
psOrganSharc :: SharcInstr -> Patch2
psOrganSharc :: SharcInstr -> Patch2
psOrganSharc = PadSharcSpec -> SharcInstr -> Patch2
psOrganSharc' PadSharcSpec
forall a. Default a => a
def
hiDef :: PadSharcSpec
hiDef = PadSharcSpec
forall a. Default a => a
def { padSharcSize = 35 }
psOrganSharcHifi :: SharcInstr -> Patch2
psOrganSharcHifi :: SharcInstr -> Patch2
psOrganSharcHifi = PadSharcSpec -> SharcInstr -> Patch2
psOrganSharc' PadSharcSpec
hiDef
psOrganSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psOrganSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psOrganSharc' PadSharcSpec
spec SharcInstr
sh = Patch2 -> Patch2
fxs (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.5 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.01 D
0.1) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (D -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (D -> SE (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
C.padsynthSharcOsc2' PadSharcSpec
spec SharcInstr
sh)
where fxs :: Patch2 -> Patch2
fxs = [GenFxSpec (DryWetRatio, DryWetRatio)] -> Patch2 -> Patch2
forall a. [GenFxSpec a] -> Patch a -> Patch a
FxChain [DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.25 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2), DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
1 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
1.4 (DryWetRatio -> DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> DryWetRatio -> DryWetRatio
saturator DryWetRatio
0.75))]
psLargeOrganSharc :: SharcInstr -> Patch2
psLargeOrganSharc :: SharcInstr -> Patch2
psLargeOrganSharc = PadSharcSpec -> SharcInstr -> Patch2
psLargeOrganSharc' PadSharcSpec
forall a. Default a => a
def
psLargeOrganSharcHifi :: SharcInstr -> Patch2
psLargeOrganSharcHifi :: SharcInstr -> Patch2
psLargeOrganSharcHifi = PadSharcSpec -> SharcInstr -> Patch2
psLargeOrganSharc' PadSharcSpec
hiDef
psLargeOrganSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psLargeOrganSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psLargeOrganSharc' PadSharcSpec
spec SharcInstr
sh = Patch2 -> Patch2
fxs (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.65 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.01 D
0.1) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Instr D (DryWetRatio, DryWetRatio)
-> Instr D (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (D -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (D -> SE (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
C.padsynthSharcOsc2' PadSharcSpec
spec SharcInstr
sh)
where fxs :: Patch2 -> Patch2
fxs = [GenFxSpec (DryWetRatio, DryWetRatio)] -> Patch2 -> Patch2
forall a. [GenFxSpec a] -> Patch a -> Patch a
FxChain [DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.35 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2), DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
1 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
1.4 (DryWetRatio -> DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> DryWetRatio -> DryWetRatio
saturator DryWetRatio
0.75))]
psPianoSharc :: ReleaseTime -> SharcInstr -> Patch2
psPianoSharc :: D -> SharcInstr -> Patch2
psPianoSharc = PadSharcSpec -> D -> SharcInstr -> Patch2
psPianoSharc' PadSharcSpec
forall a. Default a => a
def
psPianoSharcHifi :: ReleaseTime -> SharcInstr -> Patch2
psPianoSharcHifi :: D -> SharcInstr -> Patch2
psPianoSharcHifi = PadSharcSpec -> D -> SharcInstr -> Patch2
psPianoSharc' PadSharcSpec
hiDef
psPianoSharc' :: PadSharcSpec -> ReleaseTime -> SharcInstr -> Patch2
psPianoSharc' :: PadSharcSpec -> D -> SharcInstr -> Patch2
psPianoSharc' PadSharcSpec
spec D
releaseTime SharcInstr
sh = Patch2 -> Patch2
fxs (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ \CsdNote D
ampCps -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.75 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> CsdNote D -> DryWetRatio
C.pianoEnv D
releaseTime CsdNote D
ampCps) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ (D -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (D -> SE (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
C.padsynthSharcOsc2' PadSharcSpec
spec SharcInstr
sh) CsdNote D
ampCps
where fxs :: Patch2 -> Patch2
fxs = [GenFxSpec (DryWetRatio, DryWetRatio)] -> Patch2 -> Patch2
forall a. [GenFxSpec a] -> Patch a -> Patch a
FxChain [DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.15 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2), DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
1 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
1.4 (DryWetRatio -> DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> DryWetRatio -> DryWetRatio
saturator DryWetRatio
0.75))]
xpsPianoSharc :: ReleaseTime -> SharcInstr -> Patch2
xpsPianoSharc :: D -> SharcInstr -> Patch2
xpsPianoSharc = PadSharcSpec -> D -> SharcInstr -> Patch2
xpsPianoSharc' PadSharcSpec
forall a. Default a => a
def
xpsPianoSharcHifi :: ReleaseTime -> SharcInstr -> Patch2
xpsPianoSharcHifi :: D -> SharcInstr -> Patch2
xpsPianoSharcHifi = PadSharcSpec -> D -> SharcInstr -> Patch2
xpsPianoSharc' PadSharcSpec
hiDef
xpsPianoSharc' :: PadSharcSpec -> ReleaseTime -> SharcInstr -> Patch2
xpsPianoSharc' :: PadSharcSpec -> D -> SharcInstr -> Patch2
xpsPianoSharc' PadSharcSpec
spec D
releaseTime SharcInstr
sh = DryWetRatio -> Patch2 -> Patch2
addHammer DryWetRatio
0.12 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Patch2 -> Patch2
fxs (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ \CsdNote D
ampCps -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.75 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> CsdNote D -> DryWetRatio
C.xpianoEnv D
releaseTime CsdNote D
ampCps) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ (D -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (D -> SE (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
C.padsynthSharcOsc2' PadSharcSpec
spec SharcInstr
sh) CsdNote D
ampCps
where fxs :: Patch2 -> Patch2
fxs = [GenFxSpec (DryWetRatio, DryWetRatio)] -> Patch2 -> Patch2
forall a. [GenFxSpec a] -> Patch a -> Patch a
FxChain [DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.15 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
smallHall2), DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
1 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
1.4 (DryWetRatio -> DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> DryWetRatio -> DryWetRatio
saturator DryWetRatio
0.75))]
psLargePianoSharc :: ReleaseTime -> SharcInstr -> Patch2
psLargePianoSharc :: D -> SharcInstr -> Patch2
psLargePianoSharc = PadSharcSpec -> D -> SharcInstr -> Patch2
psLargePianoSharc' PadSharcSpec
forall a. Default a => a
def
psLargePianoSharcHifi :: ReleaseTime -> SharcInstr -> Patch2
psLargePianoSharcHifi :: D -> SharcInstr -> Patch2
psLargePianoSharcHifi = PadSharcSpec -> D -> SharcInstr -> Patch2
psLargePianoSharc' PadSharcSpec
hiDef
psLargePianoSharc' :: PadSharcSpec -> ReleaseTime -> SharcInstr -> Patch2
psLargePianoSharc' :: PadSharcSpec -> D -> SharcInstr -> Patch2
psLargePianoSharc' PadSharcSpec
spec D
releaseTime SharcInstr
sh = Patch2 -> Patch2
fxs (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ \CsdNote D
ampCps -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.75 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> CsdNote D -> DryWetRatio
C.pianoEnv D
releaseTime CsdNote D
ampCps) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ (D -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (D -> SE (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
C.padsynthSharcOsc2' PadSharcSpec
spec SharcInstr
sh) CsdNote D
ampCps
where fxs :: Patch2 -> Patch2
fxs = [GenFxSpec (DryWetRatio, DryWetRatio)] -> Patch2 -> Patch2
forall a. [GenFxSpec a] -> Patch a -> Patch a
FxChain [DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.15 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2), DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
1 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
1.4 (DryWetRatio -> DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> DryWetRatio -> DryWetRatio
saturator DryWetRatio
0.75))]
xpsLargePianoSharc :: ReleaseTime -> SharcInstr -> Patch2
xpsLargePianoSharc :: D -> SharcInstr -> Patch2
xpsLargePianoSharc = PadSharcSpec -> D -> SharcInstr -> Patch2
xpsLargePianoSharc' PadSharcSpec
forall a. Default a => a
def
xpsLargePianoSharcHifi :: ReleaseTime -> SharcInstr -> Patch2
xpsLargePianoSharcHifi :: D -> SharcInstr -> Patch2
xpsLargePianoSharcHifi = PadSharcSpec -> D -> SharcInstr -> Patch2
xpsLargePianoSharc' PadSharcSpec
hiDef
xpsLargePianoSharc' :: PadSharcSpec -> ReleaseTime -> SharcInstr -> Patch2
xpsLargePianoSharc' :: PadSharcSpec -> D -> SharcInstr -> Patch2
xpsLargePianoSharc' PadSharcSpec
spec D
releaseTime SharcInstr
sh = Patch2 -> Patch2
fxs (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ \CsdNote D
ampCps -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
0.75 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> CsdNote D -> DryWetRatio
C.xpianoEnv D
releaseTime CsdNote D
ampCps) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ (D -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (D -> SE (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
C.padsynthSharcOsc2' PadSharcSpec
spec SharcInstr
sh) CsdNote D
ampCps
where fxs :: Patch2 -> Patch2
fxs = [GenFxSpec (DryWetRatio, DryWetRatio)] -> Patch2 -> Patch2
forall a. [GenFxSpec a] -> Patch a -> Patch a
FxChain [DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.15 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2), DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
1 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
1.4 (DryWetRatio -> DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> DryWetRatio -> DryWetRatio
saturator DryWetRatio
0.75))]
psPadFilterBy :: Sig -> Sig -> (Sig -> Sig -> Sig -> Sig) -> (D, D) -> Sig -> Sig
psPadFilterBy :: DryWetRatio
-> DryWetRatio
-> ResonFilter
-> CsdNote D
-> DryWetRatio
-> DryWetRatio
psPadFilterBy DryWetRatio
rippleLevel DryWetRatio
q ResonFilter
resonFilter CsdNote D
ampCps = ResonFilter
resonFilter (DryWetRatio
0.3 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* (D -> DryWetRatio
sig (D -> DryWetRatio) -> D -> DryWetRatio
forall a b. (a -> b) -> a -> b
$ CsdNote D -> D
forall a b. (a, b) -> b
snd CsdNote D
ampCps) DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ DryWetRatio
2500 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ DryWetRatio
2000 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.15 (D
0.6 D -> D -> D
forall a. Num a => a -> a -> a
+ CsdNote D -> D
forall {a}. Fractional a => (a, a) -> a
rel CsdNote D
ampCps) DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ DryWetRatio
rippleLevel DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
slope D
0.75 D
0.5 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio -> DryWetRatio
osc DryWetRatio
8) DryWetRatio
q
where rel :: (a, a) -> a
rel (a
amp, a
cps) = a
amp a -> a -> a
forall a. Num a => a -> a -> a
- a
cps a -> a -> a
forall a. Fractional a => a -> a -> a
/ a
3500
psPadFilter :: ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psPadFilter ResonFilter
filter = DryWetRatio
-> DryWetRatio
-> ResonFilter
-> CsdNote D
-> DryWetRatio
-> DryWetRatio
psPadFilterBy DryWetRatio
75 DryWetRatio
15 ResonFilter
filter
psSoftPadFilter :: ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psSoftPadFilter ResonFilter
filter = DryWetRatio
-> DryWetRatio
-> ResonFilter
-> CsdNote D
-> DryWetRatio
-> DryWetRatio
psPadFilterBy DryWetRatio
350 DryWetRatio
0.15 ResonFilter
filter
deepOsc :: (Num a, SigSpace a) => (D -> a) -> (D -> a)
deepOsc :: forall a. (Num a, SigSpace a) => (D -> a) -> D -> a
deepOsc D -> a
f D
x = DryWetRatio -> a -> a
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.5 (D -> a
f D
x a -> a -> a
forall a. Num a => a -> a -> a
+ D -> a
f (D
x D -> D -> D
forall a. Fractional a => a -> a -> a
/ D
2))
psOsc :: PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
psOsc PadSharcSpec
spec SharcInstr
sh D
x = PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
C.padsynthSharcOsc2' PadSharcSpec
spec SharcInstr
sh D
x
psDeepOsc :: PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
psDeepOsc PadSharcSpec
spec SharcInstr
sh = (D -> SE (DryWetRatio, DryWetRatio))
-> D -> SE (DryWetRatio, DryWetRatio)
forall a. (Num a, SigSpace a) => (D -> a) -> D -> a
deepOsc (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
C.padsynthSharcOsc2' PadSharcSpec
spec SharcInstr
sh)
psOscCfd :: DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> D
-> SE (DryWetRatio, DryWetRatio)
psOscCfd DryWetRatio
koeff (PadSharcSpec
spec1, SharcInstr
sh1) (PadSharcSpec
spec2, SharcInstr
sh2) D
x = DryWetRatio
-> SE (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall a. (Num a, SigSpace a) => DryWetRatio -> a -> a -> a
cfd DryWetRatio
koeff (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
C.padsynthSharcOsc2' PadSharcSpec
spec1 SharcInstr
sh1 D
x) (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
C.padsynthSharcOsc2' PadSharcSpec
spec2 SharcInstr
sh2 D
x)
psOscCfd4 :: DryWetRatio
-> DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> D
-> SE (DryWetRatio, DryWetRatio)
psOscCfd4 DryWetRatio
koeffX DryWetRatio
koeffY (PadSharcSpec
spec1, SharcInstr
sh1) (PadSharcSpec
spec2, SharcInstr
sh2) (PadSharcSpec
spec3, SharcInstr
sh3) (PadSharcSpec
spec4, SharcInstr
sh4) D
x = DryWetRatio
-> DryWetRatio
-> SE (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall a.
(Num a, SigSpace a) =>
DryWetRatio -> DryWetRatio -> a -> a -> a -> a -> a
cfd4 DryWetRatio
koeffX DryWetRatio
koeffY (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
C.padsynthSharcOsc2' PadSharcSpec
spec1 SharcInstr
sh1 D
x) (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
C.padsynthSharcOsc2' PadSharcSpec
spec2 SharcInstr
sh2 D
x) (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
C.padsynthSharcOsc2' PadSharcSpec
spec3 SharcInstr
sh3 D
x) (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
C.padsynthSharcOsc2' PadSharcSpec
spec4 SharcInstr
sh4 D
x)
psDeepOscCfd :: DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> D
-> SE (DryWetRatio, DryWetRatio)
psDeepOscCfd DryWetRatio
koeff (PadSharcSpec
spec1, SharcInstr
sh1) (PadSharcSpec
spec2, SharcInstr
sh2) = (D -> SE (DryWetRatio, DryWetRatio))
-> D -> SE (DryWetRatio, DryWetRatio)
forall a. (Num a, SigSpace a) => (D -> a) -> D -> a
deepOsc (DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> D
-> SE (DryWetRatio, DryWetRatio)
psOscCfd DryWetRatio
koeff (PadSharcSpec
spec1, SharcInstr
sh1) (PadSharcSpec
spec2, SharcInstr
sh2))
psDeepOscCfd4 :: DryWetRatio
-> DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> D
-> SE (DryWetRatio, DryWetRatio)
psDeepOscCfd4 DryWetRatio
koeffX DryWetRatio
koeffY (PadSharcSpec
spec1, SharcInstr
sh1) (PadSharcSpec
spec2, SharcInstr
sh2) (PadSharcSpec
spec3, SharcInstr
sh3) (PadSharcSpec
spec4, SharcInstr
sh4) = (D -> SE (DryWetRatio, DryWetRatio))
-> D -> SE (DryWetRatio, DryWetRatio)
forall a. (Num a, SigSpace a) => (D -> a) -> D -> a
deepOsc (DryWetRatio
-> DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> D
-> SE (DryWetRatio, DryWetRatio)
psOscCfd4 DryWetRatio
koeffX DryWetRatio
koeffY (PadSharcSpec
spec1, SharcInstr
sh1) (PadSharcSpec
spec2, SharcInstr
sh2) (PadSharcSpec
spec3, SharcInstr
sh3) (PadSharcSpec
spec4, SharcInstr
sh4))
genPsPad :: (Sig2 -> Sig2) -> (ResonFilter -> (D, D) -> Sig -> Sig) -> (D -> SE Sig2) -> Patch2
genPsPad :: ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio)
-> (D -> SE (DryWetRatio, DryWetRatio))
-> Patch2
genPsPad (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
effect ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
mkFilter D -> SE (DryWetRatio, DryWetRatio)
wave =
Patch2 -> Patch2
fxs (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a. (ResonFilter -> Instr D a) -> Patch a
polySyntFilter ((ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2)
-> (ResonFilter -> Instr D (DryWetRatio, DryWetRatio)) -> Patch2
forall a b. (a -> b) -> a -> b
$ \ResonFilter
filter CsdNote D
ampCps -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul (DryWetRatio
1.2 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* D -> D -> DryWetRatio
fades D
0.5 (D
0.6 D -> D -> D
forall a. Num a => a -> a -> a
+ CsdNote D -> D
forall {a}. Fractional a => (a, a) -> a
rel CsdNote D
ampCps)) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ (D -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (D -> SE (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps ((DryWetRatio -> DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (SE (DryWetRatio, DryWetRatio))
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
mkFilter ResonFilter
filter CsdNote D
ampCps) (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (D -> SE (DryWetRatio, DryWetRatio))
-> D
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> SE (DryWetRatio, DryWetRatio)
wave) CsdNote D
ampCps
where
fxs :: Patch2 -> Patch2
fxs = [GenFxSpec (DryWetRatio, DryWetRatio)] -> Patch2 -> Patch2
forall a. [GenFxSpec a] -> Patch a -> Patch a
FxChain [DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.25 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
effect), DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.5 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
2.1 (DryWetRatio -> DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> DryWetRatio -> DryWetRatio
saturator DryWetRatio
0.75)), DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.3 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ D -> DryWetRatio -> DryWetRatio -> DryWetRatio
echo D
0.125 DryWetRatio
0.65))]
rel :: (a, a) -> a
rel (a
amp, a
cps) = a
amp a -> a -> a
forall a. Num a => a -> a -> a
- a
cps a -> a -> a
forall a. Fractional a => a -> a -> a
/ a
3500
psPadSharc :: SharcInstr -> Patch2
psPadSharc :: SharcInstr -> Patch2
psPadSharc = PadSharcSpec -> SharcInstr -> Patch2
psPadSharc' PadSharcSpec
forall a. Default a => a
def
psPadSharcHifi :: SharcInstr -> Patch2
psPadSharcHifi :: SharcInstr -> Patch2
psPadSharcHifi = PadSharcSpec -> SharcInstr -> Patch2
psPadSharc' PadSharcSpec
hiDef
psPadSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psPadSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psPadSharc' PadSharcSpec
spec SharcInstr
sh = ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio)
-> (D -> SE (DryWetRatio, DryWetRatio))
-> Patch2
genPsPad (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psPadFilter (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
psOsc PadSharcSpec
spec SharcInstr
sh)
psDeepPadSharc :: SharcInstr -> Patch2
psDeepPadSharc :: SharcInstr -> Patch2
psDeepPadSharc = PadSharcSpec -> SharcInstr -> Patch2
psDeepPadSharc' PadSharcSpec
forall a. Default a => a
def
psDeepPadSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psDeepPadSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psDeepPadSharc' PadSharcSpec
spec SharcInstr
sh = ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio)
-> (D -> SE (DryWetRatio, DryWetRatio))
-> Patch2
genPsPad (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psPadFilter (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
psDeepOsc PadSharcSpec
spec SharcInstr
sh)
psPadSharcCfd :: Sig -> SharcInstr -> SharcInstr -> Patch2
psPadSharcCfd :: DryWetRatio -> SharcInstr -> SharcInstr -> Patch2
psPadSharcCfd DryWetRatio
k SharcInstr
sh1 SharcInstr
sh2 = DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psPadSharcCfd' DryWetRatio
k (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh1) (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh2)
psPadSharcCfd' :: Sig -> (PadSharcSpec, SharcInstr) -> (PadSharcSpec, SharcInstr) -> Patch2
psPadSharcCfd' :: DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psPadSharcCfd' DryWetRatio
k (PadSharcSpec, SharcInstr)
spec1 (PadSharcSpec, SharcInstr)
spec2 = ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio)
-> (D -> SE (DryWetRatio, DryWetRatio))
-> Patch2
genPsPad (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psPadFilter (DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> D
-> SE (DryWetRatio, DryWetRatio)
psOscCfd DryWetRatio
k (PadSharcSpec, SharcInstr)
spec1 (PadSharcSpec, SharcInstr)
spec2)
psPadSharcCfd4 :: Sig -> Sig -> SharcInstr -> SharcInstr -> SharcInstr -> SharcInstr -> Patch2
psPadSharcCfd4 :: DryWetRatio
-> DryWetRatio
-> SharcInstr
-> SharcInstr
-> SharcInstr
-> SharcInstr
-> Patch2
psPadSharcCfd4 DryWetRatio
k1 DryWetRatio
k2 SharcInstr
sh1 SharcInstr
sh2 SharcInstr
sh3 SharcInstr
sh4 = DryWetRatio
-> DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psPadSharcCfd4' DryWetRatio
k1 DryWetRatio
k2 (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh1) (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh2) (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh3) (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh4)
psPadSharcCfd4' :: Sig -> Sig -> (PadSharcSpec, SharcInstr) -> (PadSharcSpec, SharcInstr) -> (PadSharcSpec, SharcInstr) -> (PadSharcSpec, SharcInstr) -> Patch2
psPadSharcCfd4' :: DryWetRatio
-> DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psPadSharcCfd4' DryWetRatio
k1 DryWetRatio
k2 (PadSharcSpec, SharcInstr)
spec1 (PadSharcSpec, SharcInstr)
spec2 (PadSharcSpec, SharcInstr)
spec3 (PadSharcSpec, SharcInstr)
spec4 = ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio)
-> (D -> SE (DryWetRatio, DryWetRatio))
-> Patch2
genPsPad (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psPadFilter (DryWetRatio
-> DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> D
-> SE (DryWetRatio, DryWetRatio)
psOscCfd4 DryWetRatio
k1 DryWetRatio
k2 (PadSharcSpec, SharcInstr)
spec1 (PadSharcSpec, SharcInstr)
spec2 (PadSharcSpec, SharcInstr)
spec3 (PadSharcSpec, SharcInstr)
spec4)
psDeepPadSharcCfd :: Sig -> SharcInstr -> SharcInstr -> Patch2
psDeepPadSharcCfd :: DryWetRatio -> SharcInstr -> SharcInstr -> Patch2
psDeepPadSharcCfd DryWetRatio
k SharcInstr
sh1 SharcInstr
sh2 = DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psDeepPadSharcCfd' DryWetRatio
k (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh1) (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh2)
psDeepPadSharcCfd' :: Sig -> (PadSharcSpec, SharcInstr) -> (PadSharcSpec, SharcInstr) -> Patch2
psDeepPadSharcCfd' :: DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psDeepPadSharcCfd' DryWetRatio
k (PadSharcSpec, SharcInstr)
spec1 (PadSharcSpec, SharcInstr)
spec2 = ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio)
-> (D -> SE (DryWetRatio, DryWetRatio))
-> Patch2
genPsPad (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psPadFilter (DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> D
-> SE (DryWetRatio, DryWetRatio)
psDeepOscCfd DryWetRatio
k (PadSharcSpec, SharcInstr)
spec1 (PadSharcSpec, SharcInstr)
spec2)
psDeepPadSharcCfd4 :: Sig -> Sig -> SharcInstr -> SharcInstr -> SharcInstr -> SharcInstr -> Patch2
psDeepPadSharcCfd4 :: DryWetRatio
-> DryWetRatio
-> SharcInstr
-> SharcInstr
-> SharcInstr
-> SharcInstr
-> Patch2
psDeepPadSharcCfd4 DryWetRatio
k1 DryWetRatio
k2 SharcInstr
sh1 SharcInstr
sh2 SharcInstr
sh3 SharcInstr
sh4 = DryWetRatio
-> DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psDeepPadSharcCfd4' DryWetRatio
k1 DryWetRatio
k2 (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh1) (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh2) (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh3) (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh4)
psDeepPadSharcCfd4' :: Sig -> Sig -> (PadSharcSpec, SharcInstr) -> (PadSharcSpec, SharcInstr) -> (PadSharcSpec, SharcInstr) -> (PadSharcSpec, SharcInstr) -> Patch2
psDeepPadSharcCfd4' :: DryWetRatio
-> DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psDeepPadSharcCfd4' DryWetRatio
k1 DryWetRatio
k2 (PadSharcSpec, SharcInstr)
spec1 (PadSharcSpec, SharcInstr)
spec2 (PadSharcSpec, SharcInstr)
spec3 (PadSharcSpec, SharcInstr)
spec4 = ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio)
-> (D -> SE (DryWetRatio, DryWetRatio))
-> Patch2
genPsPad (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psPadFilter (DryWetRatio
-> DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> D
-> SE (DryWetRatio, DryWetRatio)
psDeepOscCfd4 DryWetRatio
k1 DryWetRatio
k2 (PadSharcSpec, SharcInstr)
spec1 (PadSharcSpec, SharcInstr)
spec2 (PadSharcSpec, SharcInstr)
spec3 (PadSharcSpec, SharcInstr)
spec4)
psSoftPadSharc :: SharcInstr -> Patch2
psSoftPadSharc :: SharcInstr -> Patch2
psSoftPadSharc = PadSharcSpec -> SharcInstr -> Patch2
psSoftPadSharc' PadSharcSpec
forall a. Default a => a
def
psSoftPadSharcHifi :: SharcInstr -> Patch2
psSoftPadSharcHifi :: SharcInstr -> Patch2
psSoftPadSharcHifi = PadSharcSpec -> SharcInstr -> Patch2
psSoftPadSharc' PadSharcSpec
hiDef
psSoftPadSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psSoftPadSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psSoftPadSharc' PadSharcSpec
spec SharcInstr
sh = ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio)
-> (D -> SE (DryWetRatio, DryWetRatio))
-> Patch2
genPsPad (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psSoftPadFilter (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
psOsc PadSharcSpec
spec SharcInstr
sh)
psDeepSoftPadSharc :: SharcInstr -> Patch2
psDeepSoftPadSharc :: SharcInstr -> Patch2
psDeepSoftPadSharc = PadSharcSpec -> SharcInstr -> Patch2
psDeepSoftPadSharc' PadSharcSpec
forall a. Default a => a
def
psDeepSoftPadSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psDeepSoftPadSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psDeepSoftPadSharc' PadSharcSpec
spec SharcInstr
sh = ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio)
-> (D -> SE (DryWetRatio, DryWetRatio))
-> Patch2
genPsPad (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psSoftPadFilter (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
psDeepOsc PadSharcSpec
spec SharcInstr
sh)
psSoftPadSharcCfd :: Sig -> SharcInstr -> SharcInstr -> Patch2
psSoftPadSharcCfd :: DryWetRatio -> SharcInstr -> SharcInstr -> Patch2
psSoftPadSharcCfd DryWetRatio
k SharcInstr
sh1 SharcInstr
sh2 = DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psSoftPadSharcCfd' DryWetRatio
k (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh1) (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh2)
psSoftPadSharcCfd' :: Sig -> (PadSharcSpec, SharcInstr) -> (PadSharcSpec, SharcInstr) -> Patch2
psSoftPadSharcCfd' :: DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psSoftPadSharcCfd' DryWetRatio
k (PadSharcSpec, SharcInstr)
spec1 (PadSharcSpec, SharcInstr)
spec2 = ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio)
-> (D -> SE (DryWetRatio, DryWetRatio))
-> Patch2
genPsPad (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psSoftPadFilter (DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> D
-> SE (DryWetRatio, DryWetRatio)
psOscCfd DryWetRatio
k (PadSharcSpec, SharcInstr)
spec1 (PadSharcSpec, SharcInstr)
spec2)
psSoftPadSharcCfd4 :: Sig -> Sig -> SharcInstr -> SharcInstr -> SharcInstr -> SharcInstr -> Patch2
psSoftPadSharcCfd4 :: DryWetRatio
-> DryWetRatio
-> SharcInstr
-> SharcInstr
-> SharcInstr
-> SharcInstr
-> Patch2
psSoftPadSharcCfd4 DryWetRatio
k1 DryWetRatio
k2 SharcInstr
sh1 SharcInstr
sh2 SharcInstr
sh3 SharcInstr
sh4 = DryWetRatio
-> DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psSoftPadSharcCfd4' DryWetRatio
k1 DryWetRatio
k2 (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh1) (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh2) (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh3) (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh4)
psSoftPadSharcCfd4' :: Sig -> Sig -> (PadSharcSpec, SharcInstr) -> (PadSharcSpec, SharcInstr) -> (PadSharcSpec, SharcInstr) -> (PadSharcSpec, SharcInstr) -> Patch2
psSoftPadSharcCfd4' :: DryWetRatio
-> DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psSoftPadSharcCfd4' DryWetRatio
k1 DryWetRatio
k2 (PadSharcSpec, SharcInstr)
spec1 (PadSharcSpec, SharcInstr)
spec2 (PadSharcSpec, SharcInstr)
spec3 (PadSharcSpec, SharcInstr)
spec4 = ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio)
-> (D -> SE (DryWetRatio, DryWetRatio))
-> Patch2
genPsPad (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psSoftPadFilter (DryWetRatio
-> DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> D
-> SE (DryWetRatio, DryWetRatio)
psOscCfd4 DryWetRatio
k1 DryWetRatio
k2 (PadSharcSpec, SharcInstr)
spec1 (PadSharcSpec, SharcInstr)
spec2 (PadSharcSpec, SharcInstr)
spec3 (PadSharcSpec, SharcInstr)
spec4)
psDeepSoftPadSharcCfd :: Sig -> SharcInstr -> SharcInstr -> Patch2
psDeepSoftPadSharcCfd :: DryWetRatio -> SharcInstr -> SharcInstr -> Patch2
psDeepSoftPadSharcCfd DryWetRatio
k SharcInstr
sh1 SharcInstr
sh2 = DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psDeepSoftPadSharcCfd' DryWetRatio
k (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh1) (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh2)
psDeepSoftPadSharcCfd' :: Sig -> (PadSharcSpec, SharcInstr) -> (PadSharcSpec, SharcInstr) -> Patch2
psDeepSoftPadSharcCfd' :: DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psDeepSoftPadSharcCfd' DryWetRatio
k (PadSharcSpec, SharcInstr)
spec1 (PadSharcSpec, SharcInstr)
spec2 = ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio)
-> (D -> SE (DryWetRatio, DryWetRatio))
-> Patch2
genPsPad (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psSoftPadFilter (DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> D
-> SE (DryWetRatio, DryWetRatio)
psDeepOscCfd DryWetRatio
k (PadSharcSpec, SharcInstr)
spec1 (PadSharcSpec, SharcInstr)
spec2)
psDeepSoftPadSharcCfd4 :: Sig -> Sig -> SharcInstr -> SharcInstr -> SharcInstr -> SharcInstr -> Patch2
psDeepSoftPadSharcCfd4 :: DryWetRatio
-> DryWetRatio
-> SharcInstr
-> SharcInstr
-> SharcInstr
-> SharcInstr
-> Patch2
psDeepSoftPadSharcCfd4 DryWetRatio
k1 DryWetRatio
k2 SharcInstr
sh1 SharcInstr
sh2 SharcInstr
sh3 SharcInstr
sh4 = DryWetRatio
-> DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psDeepSoftPadSharcCfd4' DryWetRatio
k1 DryWetRatio
k2 (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh1) (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh2) (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh3) (PadSharcSpec
forall a. Default a => a
def, SharcInstr
sh4)
psDeepSoftPadSharcCfd4' :: Sig -> Sig -> (PadSharcSpec, SharcInstr) -> (PadSharcSpec, SharcInstr) -> (PadSharcSpec, SharcInstr) -> (PadSharcSpec, SharcInstr) -> Patch2
psDeepSoftPadSharcCfd4' :: DryWetRatio
-> DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psDeepSoftPadSharcCfd4' DryWetRatio
k1 DryWetRatio
k2 (PadSharcSpec, SharcInstr)
spec1 (PadSharcSpec, SharcInstr)
spec2 (PadSharcSpec, SharcInstr)
spec3 (PadSharcSpec, SharcInstr)
spec4 = ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio)
-> (D -> SE (DryWetRatio, DryWetRatio))
-> Patch2
genPsPad (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2 ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psSoftPadFilter (DryWetRatio
-> DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> D
-> SE (DryWetRatio, DryWetRatio)
psDeepOscCfd4 DryWetRatio
k1 DryWetRatio
k2 (PadSharcSpec, SharcInstr)
spec1 (PadSharcSpec, SharcInstr)
spec2 (PadSharcSpec, SharcInstr)
spec3 (PadSharcSpec, SharcInstr)
spec4)
psMagicPadSharc :: SharcInstr -> Patch2
psMagicPadSharc :: SharcInstr -> Patch2
psMagicPadSharc = PadSharcSpec -> SharcInstr -> Patch2
psMagicPadSharc' PadSharcSpec
forall a. Default a => a
def
psMagicPadSharcHifi :: SharcInstr -> Patch2
psMagicPadSharcHifi :: SharcInstr -> Patch2
psMagicPadSharcHifi = PadSharcSpec -> SharcInstr -> Patch2
psMagicPadSharc' PadSharcSpec
hiDef
psMagicPadSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psMagicPadSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psMagicPadSharc' PadSharcSpec
spec SharcInstr
sh = ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio)
-> (D -> SE (DryWetRatio, DryWetRatio))
-> Patch2
genPsPad (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
magicCave2 ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psPadFilter (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
psOsc PadSharcSpec
spec SharcInstr
sh)
psDeepMagicPadSharc :: SharcInstr -> Patch2
psDeepMagicPadSharc :: SharcInstr -> Patch2
psDeepMagicPadSharc = PadSharcSpec -> SharcInstr -> Patch2
psDeepMagicPadSharc' PadSharcSpec
forall a. Default a => a
def
psDeepMagicPadSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psDeepMagicPadSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psDeepMagicPadSharc' PadSharcSpec
spec SharcInstr
sh = ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio)
-> (D -> SE (DryWetRatio, DryWetRatio))
-> Patch2
genPsPad (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
magicCave2 ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psPadFilter (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
psDeepOsc PadSharcSpec
spec SharcInstr
sh)
psMagicSoftPadSharc :: SharcInstr -> Patch2
psMagicSoftPadSharc :: SharcInstr -> Patch2
psMagicSoftPadSharc = PadSharcSpec -> SharcInstr -> Patch2
psMagicSoftPadSharc' PadSharcSpec
forall a. Default a => a
def
psMagicSoftPadSharcHifi :: SharcInstr -> Patch2
psMagicSoftPadSharcHifi :: SharcInstr -> Patch2
psMagicSoftPadSharcHifi = PadSharcSpec -> SharcInstr -> Patch2
psMagicSoftPadSharc' PadSharcSpec
hiDef
psMagicSoftPadSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psMagicSoftPadSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psMagicSoftPadSharc' PadSharcSpec
spec SharcInstr
sh = ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio)
-> (D -> SE (DryWetRatio, DryWetRatio))
-> Patch2
genPsPad (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
magicCave2 ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psSoftPadFilter (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
psOsc PadSharcSpec
spec SharcInstr
sh)
psDeepMagicSoftPadSharc :: SharcInstr -> Patch2
psDeepMagicSoftPadSharc :: SharcInstr -> Patch2
psDeepMagicSoftPadSharc = PadSharcSpec -> SharcInstr -> Patch2
psDeepMagicSoftPadSharc' PadSharcSpec
forall a. Default a => a
def
psDeepMagicSoftPadSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psDeepMagicSoftPadSharc' :: PadSharcSpec -> SharcInstr -> Patch2
psDeepMagicSoftPadSharc' PadSharcSpec
spec SharcInstr
sh = ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio)
-> (D -> SE (DryWetRatio, DryWetRatio))
-> Patch2
genPsPad (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
magicCave2 ResonFilter -> CsdNote D -> DryWetRatio -> DryWetRatio
psSoftPadFilter (PadSharcSpec -> SharcInstr -> D -> SE (DryWetRatio, DryWetRatio)
psDeepOsc PadSharcSpec
spec SharcInstr
sh)
vedicPad :: SharcInstr -> PadsynthBandwidth -> Patch2
vedicPad :: SharcInstr -> PadsynthBandwidth -> Patch2
vedicPad SharcInstr
instr PadsynthBandwidth
bandwidth = DryWetRatio -> Patch2 -> Patch2
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.8 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$
DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> SE a) -> Patch a -> Patch a
addPreFx DryWetRatio
0.45 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio
-> DryWetRatio
-> DryWetRatio
-> (DryWetRatio, DryWetRatio)
-> (DryWetRatio, DryWetRatio)
pingPong DryWetRatio
0.25 DryWetRatio
0.65 DryWetRatio
0.5) (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$
PadSharcSpec -> SharcInstr -> Patch2
psDeepSoftPadSharc' (PadSharcSpec
forall a. Default a => a
def { padSharcBandwidth = bandwidth, padSharcSize = 15 }) SharcInstr
instr
vedicPadCfd :: Sig -> SharcInstr -> SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadCfd :: DryWetRatio
-> SharcInstr -> SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadCfd DryWetRatio
k SharcInstr
instr1 SharcInstr
instr2 PadsynthBandwidth
bandwidth = DryWetRatio -> Patch2 -> Patch2
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.8 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$
DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> SE a) -> Patch a -> Patch a
addPreFx DryWetRatio
0.45 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio
-> DryWetRatio
-> DryWetRatio
-> (DryWetRatio, DryWetRatio)
-> (DryWetRatio, DryWetRatio)
pingPong DryWetRatio
0.25 DryWetRatio
0.65 DryWetRatio
0.5) (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$
DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psDeepSoftPadSharcCfd' DryWetRatio
k (PadSharcSpec
forall a. Default a => a
def { padSharcBandwidth = bandwidth, padSharcSize = 15 }, SharcInstr
instr1) (PadSharcSpec
forall a. Default a => a
def { padSharcBandwidth = bandwidth, padSharcSize = 15 }, SharcInstr
instr2)
vedicPadCfd4 :: Sig -> Sig -> SharcInstr -> SharcInstr -> SharcInstr -> SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadCfd4 :: DryWetRatio
-> DryWetRatio
-> SharcInstr
-> SharcInstr
-> SharcInstr
-> SharcInstr
-> PadsynthBandwidth
-> Patch2
vedicPadCfd4 DryWetRatio
kX DryWetRatio
kY SharcInstr
instr1 SharcInstr
instr2 SharcInstr
instr3 SharcInstr
instr4 PadsynthBandwidth
bandwidth = DryWetRatio -> Patch2 -> Patch2
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.8 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$
DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> SE a) -> Patch a -> Patch a
addPreFx DryWetRatio
0.45 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio
-> DryWetRatio
-> DryWetRatio
-> (DryWetRatio, DryWetRatio)
-> (DryWetRatio, DryWetRatio)
pingPong DryWetRatio
0.25 DryWetRatio
0.65 DryWetRatio
0.5) (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$
DryWetRatio
-> DryWetRatio
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> (PadSharcSpec, SharcInstr)
-> Patch2
psDeepSoftPadSharcCfd4' DryWetRatio
kX DryWetRatio
kY
(PadSharcSpec
forall a. Default a => a
def { padSharcBandwidth = bandwidth, padSharcSize = 15 }, SharcInstr
instr1) (PadSharcSpec
forall a. Default a => a
def { padSharcBandwidth = bandwidth, padSharcSize = 15 }, SharcInstr
instr2)
(PadSharcSpec
forall a. Default a => a
def { padSharcBandwidth = bandwidth, padSharcSize = 15 }, SharcInstr
instr3) (PadSharcSpec
forall a. Default a => a
def { padSharcBandwidth = bandwidth, padSharcSize = 15 }, SharcInstr
instr4)
vedicPadHifi :: SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadHifi :: SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadHifi SharcInstr
instr PadsynthBandwidth
bandwidth = DryWetRatio -> Patch2 -> Patch2
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.8 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$
DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> SE a) -> Patch a -> Patch a
addPreFx DryWetRatio
0.45 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio
-> DryWetRatio
-> DryWetRatio
-> (DryWetRatio, DryWetRatio)
-> (DryWetRatio, DryWetRatio)
pingPong DryWetRatio
0.25 DryWetRatio
0.65 DryWetRatio
0.5) (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$
Patch2 -> Patch2
forall b. (SigSpace b, Sigs b) => Patch b -> Patch b
deepPad (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$
PadSharcSpec -> SharcInstr -> Patch2
psSoftPadSharc' (PadSharcSpec
forall a. Default a => a
def { padSharcBandwidth = bandwidth, padSharcSize = 32 }) SharcInstr
instr
vedicPadLofi :: SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadLofi :: SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadLofi SharcInstr
instr PadsynthBandwidth
bandwidth = DryWetRatio -> Patch2 -> Patch2
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.8 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$
DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Patch2
-> Patch2
forall a. DryWetRatio -> (a -> SE a) -> Patch a -> Patch a
addPreFx DryWetRatio
0.45 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio
-> DryWetRatio
-> DryWetRatio
-> (DryWetRatio, DryWetRatio)
-> (DryWetRatio, DryWetRatio)
pingPong DryWetRatio
0.25 DryWetRatio
0.65 DryWetRatio
0.5) (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$
Patch2 -> Patch2
forall b. (SigSpace b, Sigs b) => Patch b -> Patch b
deepPad (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$
PadSharcSpec -> SharcInstr -> Patch2
psSoftPadSharc' (PadSharcSpec
forall a. Default a => a
def { padSharcBandwidth = bandwidth, padSharcSize = 4 }) SharcInstr
instr
vibhu :: PadsynthBandwidth -> Patch2
vibhu :: PadsynthBandwidth -> Patch2
vibhu = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPad SharcInstr
shVibhu
shVibhu :: SharcInstr
shVibhu = SharcInstr
shAltoFlute
rishi :: PadsynthBandwidth -> Patch2
rishi :: PadsynthBandwidth -> Patch2
rishi = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPad SharcInstr
shRishi
shRishi :: SharcInstr
shRishi = SharcInstr
shFlute
agni :: PadsynthBandwidth -> Patch2
agni :: PadsynthBandwidth -> Patch2
agni = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPad SharcInstr
shAgni
shAgni :: SharcInstr
shAgni = SharcInstr
shCello
prakriti :: PadsynthBandwidth -> Patch2
prakriti :: PadsynthBandwidth -> Patch2
prakriti = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPad SharcInstr
shPrakriti
shPrakriti :: SharcInstr
shPrakriti = SharcInstr
shClarinet
rajas :: PadsynthBandwidth -> Patch2
rajas :: PadsynthBandwidth -> Patch2
rajas = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPad SharcInstr
shRajas
shRajas :: SharcInstr
shRajas = SharcInstr
shViolin
avatara :: PadsynthBandwidth -> Patch2
avatara :: PadsynthBandwidth -> Patch2
avatara = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPad SharcInstr
shAvatara
shAvatara :: SharcInstr
shAvatara = SharcInstr
shFrenchHorn
bhumi :: PadsynthBandwidth -> Patch2
bhumi :: PadsynthBandwidth -> Patch2
bhumi = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPad SharcInstr
shBhumi
shBhumi :: SharcInstr
shBhumi = SharcInstr
shViolinsEnsemble
vibhuHifi :: PadsynthBandwidth -> Patch2
vibhuHifi :: PadsynthBandwidth -> Patch2
vibhuHifi = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadHifi SharcInstr
shAltoFlute
rishiHifi :: PadsynthBandwidth -> Patch2
rishiHifi :: PadsynthBandwidth -> Patch2
rishiHifi = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadHifi SharcInstr
shFlute
agniHifi :: PadsynthBandwidth -> Patch2
agniHifi :: PadsynthBandwidth -> Patch2
agniHifi = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadHifi SharcInstr
shCello
prakritiHifi :: PadsynthBandwidth -> Patch2
prakritiHifi :: PadsynthBandwidth -> Patch2
prakritiHifi = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadHifi SharcInstr
shClarinet
rajasHifi :: PadsynthBandwidth -> Patch2
rajasHifi :: PadsynthBandwidth -> Patch2
rajasHifi = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadHifi SharcInstr
shViolin
avataraHifi :: PadsynthBandwidth -> Patch2
avataraHifi :: PadsynthBandwidth -> Patch2
avataraHifi = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadHifi SharcInstr
shFrenchHorn
bhumiHifi :: PadsynthBandwidth -> Patch2
bhumiHifi :: PadsynthBandwidth -> Patch2
bhumiHifi = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadHifi SharcInstr
shViolinsEnsemble
vibhuLofi :: PadsynthBandwidth -> Patch2
vibhuLofi :: PadsynthBandwidth -> Patch2
vibhuLofi = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadLofi SharcInstr
shAltoFlute
rishiLofi :: PadsynthBandwidth -> Patch2
rishiLofi :: PadsynthBandwidth -> Patch2
rishiLofi = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadLofi SharcInstr
shFlute
agniLofi :: PadsynthBandwidth -> Patch2
agniLofi :: PadsynthBandwidth -> Patch2
agniLofi = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadLofi SharcInstr
shCello
prakritiLofi :: PadsynthBandwidth -> Patch2
prakritiLofi :: PadsynthBandwidth -> Patch2
prakritiLofi = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadLofi SharcInstr
shClarinet
rajasLofi :: PadsynthBandwidth -> Patch2
rajasLofi :: PadsynthBandwidth -> Patch2
rajasLofi = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadLofi SharcInstr
shViolin
avataraLofi :: PadsynthBandwidth -> Patch2
avataraLofi :: PadsynthBandwidth -> Patch2
avataraLofi = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadLofi SharcInstr
shFrenchHorn
bhumiLofi :: PadsynthBandwidth -> Patch2
bhumiLofi :: PadsynthBandwidth -> Patch2
bhumiLofi = SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadLofi SharcInstr
shViolinsEnsemble
vedicCfd :: SharcInstr -> SharcInstr -> PadsynthBandwidth -> Sig -> Patch2
vedicCfd :: SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
inst1 SharcInstr
instr2 PadsynthBandwidth
bandwidth DryWetRatio
cfdLevel = DryWetRatio
-> SharcInstr -> SharcInstr -> PadsynthBandwidth -> Patch2
vedicPadCfd DryWetRatio
cfdLevel SharcInstr
inst1 SharcInstr
instr2 PadsynthBandwidth
bandwidth
vibhuRishi :: PadsynthBandwidth -> Sig -> Patch2
vibhuRishi :: PadsynthBandwidth -> DryWetRatio -> Patch2
vibhuRishi = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shVibhu SharcInstr
shRishi
vibhuAgni :: PadsynthBandwidth -> Sig -> Patch2
vibhuAgni :: PadsynthBandwidth -> DryWetRatio -> Patch2
vibhuAgni = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shVibhu SharcInstr
shAgni
vibhuPrakriti :: PadsynthBandwidth -> Sig -> Patch2
vibhuPrakriti :: PadsynthBandwidth -> DryWetRatio -> Patch2
vibhuPrakriti = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shVibhu SharcInstr
shPrakriti
vibhuRajas :: PadsynthBandwidth -> Sig -> Patch2
vibhuRajas :: PadsynthBandwidth -> DryWetRatio -> Patch2
vibhuRajas = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shVibhu SharcInstr
shRajas
vibhuAvatara :: PadsynthBandwidth -> Sig -> Patch2
vibhuAvatara :: PadsynthBandwidth -> DryWetRatio -> Patch2
vibhuAvatara = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shVibhu SharcInstr
shAvatara
vibhuBhumi :: PadsynthBandwidth -> Sig -> Patch2
vibhuBhumi :: PadsynthBandwidth -> DryWetRatio -> Patch2
vibhuBhumi = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shVibhu SharcInstr
shBhumi
rishiAgni :: PadsynthBandwidth -> Sig -> Patch2
rishiAgni :: PadsynthBandwidth -> DryWetRatio -> Patch2
rishiAgni = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shRishi SharcInstr
shAgni
rishiPrakriti :: PadsynthBandwidth -> Sig -> Patch2
rishiPrakriti :: PadsynthBandwidth -> DryWetRatio -> Patch2
rishiPrakriti = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shRishi SharcInstr
shPrakriti
rishiRajas :: PadsynthBandwidth -> Sig -> Patch2
rishiRajas :: PadsynthBandwidth -> DryWetRatio -> Patch2
rishiRajas = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shRishi SharcInstr
shRajas
rishiAvatara :: PadsynthBandwidth -> Sig -> Patch2
rishiAvatara :: PadsynthBandwidth -> DryWetRatio -> Patch2
rishiAvatara = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shRishi SharcInstr
shAvatara
rishiBhumi :: PadsynthBandwidth -> Sig -> Patch2
rishiBhumi :: PadsynthBandwidth -> DryWetRatio -> Patch2
rishiBhumi = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shRishi SharcInstr
shRajas
agniPrakriti :: PadsynthBandwidth -> Sig -> Patch2
agniPrakriti :: PadsynthBandwidth -> DryWetRatio -> Patch2
agniPrakriti = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shAgni SharcInstr
shPrakriti
agniRajas :: PadsynthBandwidth -> Sig -> Patch2
agniRajas :: PadsynthBandwidth -> DryWetRatio -> Patch2
agniRajas = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shAgni SharcInstr
shRajas
agniAvatara :: PadsynthBandwidth -> Sig -> Patch2
agniAvatara :: PadsynthBandwidth -> DryWetRatio -> Patch2
agniAvatara = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shAgni SharcInstr
shAvatara
agniBhumi :: PadsynthBandwidth -> Sig -> Patch2
agniBhumi :: PadsynthBandwidth -> DryWetRatio -> Patch2
agniBhumi = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shAgni SharcInstr
shBhumi
prakritiRajas :: PadsynthBandwidth -> Sig -> Patch2
prakritiRajas :: PadsynthBandwidth -> DryWetRatio -> Patch2
prakritiRajas = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shPrakriti SharcInstr
shRajas
prakritiAvatara :: PadsynthBandwidth -> Sig -> Patch2
prakritiAvatara :: PadsynthBandwidth -> DryWetRatio -> Patch2
prakritiAvatara = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shPrakriti SharcInstr
shAvatara
prakritiBhumi :: PadsynthBandwidth -> Sig -> Patch2
prakritiBhumi :: PadsynthBandwidth -> DryWetRatio -> Patch2
prakritiBhumi = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shPrakriti SharcInstr
shBhumi
rajasAvatara :: PadsynthBandwidth -> Sig -> Patch2
rajasAvatara :: PadsynthBandwidth -> DryWetRatio -> Patch2
rajasAvatara = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shRajas SharcInstr
shAvatara
rajasBhumi :: PadsynthBandwidth -> Sig -> Patch2
rajasBhumi :: PadsynthBandwidth -> DryWetRatio -> Patch2
rajasBhumi = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shRajas SharcInstr
shBhumi
avataraBhumi :: PadsynthBandwidth -> Sig -> Patch2
avataraBhumi :: PadsynthBandwidth -> DryWetRatio -> Patch2
avataraBhumi = SharcInstr
-> SharcInstr -> PadsynthBandwidth -> DryWetRatio -> Patch2
vedicCfd SharcInstr
shAvatara SharcInstr
shBhumi
noisyRise :: Patch2
noisyRise :: Patch2
noisyRise = Patch2 -> Patch2
fxs (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (DryWetRatio -> SE (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps ((DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (DryWetRatio -> SE (DryWetRatio, DryWetRatio))))
-> (DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (DryWetRatio -> SE (DryWetRatio, DryWetRatio)))
forall a b. (a -> b) -> a -> b
$ \DryWetRatio
cps -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.24 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> SE (DryWetRatio, DryWetRatio)
wave DryWetRatio
cps
where
fxs :: Patch2 -> Patch2
fxs = [GenFxSpec (DryWetRatio, DryWetRatio)] -> Patch2 -> Patch2
forall a. [GenFxSpec a] -> Patch a -> Patch a
FxChain [DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.35 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
largeHall2), DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.5 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ D -> DryWetRatio -> DryWetRatio -> DryWetRatio
echo D
0.25 DryWetRatio
0.85))]
wave :: DryWetRatio -> SE (DryWetRatio, DryWetRatio)
wave DryWetRatio
x = DryWetRatio -> SE (DryWetRatio, DryWetRatio)
noisy DryWetRatio
x SE (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. Num a => a -> a -> a
+ DryWetRatio -> SE (DryWetRatio, DryWetRatio)
pad DryWetRatio
x
noisy :: DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
noisy DryWetRatio
x = (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at (DryWetRatio
-> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.3 ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> DryWetRatio
-> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> DryWetRatio)
-> DryWetRatio
-> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> DryWetRatio -> AtOut DryWetRatio DryWetRatio DryWetRatio
forall a b.
At DryWetRatio a b =>
(DryWetRatio -> a) -> b -> AtOut DryWetRatio a b
bat (ResonFilter
bp (DryWetRatio
x DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
5) DryWetRatio
23) (DryWetRatio -> DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ResonFilter
lp (DryWetRatio
300 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ DryWetRatio
2500 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* [D] -> DryWetRatio
linseg [D
0, D
0.73, D
0, D
8, D
3]) DryWetRatio
14) SE DryWetRatio
white
pad :: DryWetRatio -> SE (DryWetRatio, DryWetRatio)
pad DryWetRatio
x = SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall {a}. SigSpace a => a -> a
envelope (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
filter DryWetRatio
x (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ PadsynthSpec -> DryWetRatio -> SE (DryWetRatio, DryWetRatio)
padsynthOsc2 PadsynthSpec
spec DryWetRatio
x SE (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. Num a => a -> a -> a
+ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.15 (PadsynthSpec -> DryWetRatio -> SE (DryWetRatio, DryWetRatio)
padsynthOsc2 PadsynthSpec
spec (DryWetRatio
x DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
5)) SE (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. Num a => a -> a -> a
+ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.5 (PadsynthSpec -> DryWetRatio -> SE (DryWetRatio, DryWetRatio)
padsynthOsc2 PadsynthSpec
spec (DryWetRatio
x DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Fractional a => a -> a -> a
/ DryWetRatio
2))
envelope :: a -> a
envelope a
asig = DryWetRatio -> a -> a
forall a. SigSpace a => DryWetRatio -> a -> a
mul (D -> D -> DryWetRatio
fades D
0.5 D
0.7) a
asig
filter :: DryWetRatio -> c -> AtOut DryWetRatio DryWetRatio c
filter DryWetRatio
cps c
asig = (DryWetRatio -> DryWetRatio)
-> c -> AtOut DryWetRatio DryWetRatio c
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at (DryWetRatio -> DryWetRatio -> DryWetRatio
bhp DryWetRatio
30) (c -> AtOut DryWetRatio DryWetRatio c)
-> c -> AtOut DryWetRatio DryWetRatio c
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> DryWetRatio)
-> c -> AtOut DryWetRatio DryWetRatio c
forall a b.
At DryWetRatio a b =>
(DryWetRatio -> a) -> b -> AtOut DryWetRatio a b
bat (ResonFilter
lp (DryWetRatio
200 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ (DryWetRatio
cps DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ DryWetRatio
3000)) DryWetRatio
45) (c -> AtOut DryWetRatio DryWetRatio c)
-> c -> AtOut DryWetRatio DryWetRatio c
forall a b. (a -> b) -> a -> b
$ c
asig
spec :: PadsynthSpec
spec = PadsynthSpec
noisySpec
noisySpiral :: Patch2
noisySpiral :: Patch2
noisySpiral = D -> Patch2
noisySpiral' D
8
noisySpiral' :: D -> Patch2
noisySpiral' :: D -> Patch2
noisySpiral' D
spiralSpeed = Patch2 -> Patch2
fxs (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (DryWetRatio -> SE (DryWetRatio, DryWetRatio)))
forall a. CpsInstr a => a -> CsdNote D -> SE (CpsInstrOut a)
onCps ((DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (DryWetRatio -> SE (DryWetRatio, DryWetRatio))))
-> (DryWetRatio -> SE (DryWetRatio, DryWetRatio))
-> CsdNote D
-> SE (CpsInstrOut (DryWetRatio -> SE (DryWetRatio, DryWetRatio)))
forall a b. (a -> b) -> a -> b
$ \DryWetRatio
cps -> DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.24 (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> SE (DryWetRatio, DryWetRatio)
wave DryWetRatio
cps
where
fxs :: Patch2 -> Patch2
fxs = [GenFxSpec (DryWetRatio, DryWetRatio)] -> Patch2 -> Patch2
forall a. [GenFxSpec a] -> Patch a -> Patch a
FxChain [DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.15 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
magicCave2), DryWetRatio
-> ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> GenFxSpec (DryWetRatio, DryWetRatio)
forall a. DryWetRatio -> Fx a -> GenFxSpec a
fxSpec DryWetRatio
0.43 ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at ((DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ D -> DryWetRatio -> DryWetRatio -> DryWetRatio
echo D
0.35 DryWetRatio
0.85))]
wave :: DryWetRatio -> SE (DryWetRatio, DryWetRatio)
wave DryWetRatio
x = DryWetRatio -> SE (DryWetRatio, DryWetRatio)
noisy DryWetRatio
x SE (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. Num a => a -> a -> a
+ DryWetRatio -> SE (DryWetRatio, DryWetRatio)
pad DryWetRatio
x
noisy :: DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
noisy DryWetRatio
x = (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at (DryWetRatio
-> (DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.3 ((DryWetRatio, DryWetRatio) -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> DryWetRatio
-> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> (DryWetRatio -> DryWetRatio)
-> DryWetRatio
-> (DryWetRatio, DryWetRatio)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DryWetRatio -> DryWetRatio)
-> DryWetRatio -> AtOut DryWetRatio DryWetRatio DryWetRatio
forall a b.
At DryWetRatio a b =>
(DryWetRatio -> a) -> b -> AtOut DryWetRatio a b
bat (ResonFilter
bp (DryWetRatio
x DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
5) DryWetRatio
23) (DryWetRatio -> DryWetRatio)
-> (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ResonFilter
lp (DryWetRatio
300 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ DryWetRatio
2500 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* [D] -> DryWetRatio
linseg [D
0, D
0.73, D
0, D
8, D
3] DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio -> DryWetRatio
uosc ([D] -> DryWetRatio
expseg [D
0.25, D
5, D
spiralSpeed])) DryWetRatio
14) SE DryWetRatio
white
pad :: DryWetRatio -> SE (DryWetRatio, DryWetRatio)
pad DryWetRatio
x = SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall {a}. SigSpace a => a -> a
envelope (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
filter DryWetRatio
x (SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ PadsynthSpec -> DryWetRatio -> SE (DryWetRatio, DryWetRatio)
padsynthOsc2 PadsynthSpec
spec DryWetRatio
x SE (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. Num a => a -> a -> a
+ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.15 (PadsynthSpec -> DryWetRatio -> SE (DryWetRatio, DryWetRatio)
padsynthOsc2 PadsynthSpec
spec (DryWetRatio
x DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
5)) SE (DryWetRatio, DryWetRatio)
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. Num a => a -> a -> a
+ DryWetRatio
-> SE (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. SigSpace a => DryWetRatio -> a -> a
mul DryWetRatio
0.5 (PadsynthSpec -> DryWetRatio -> SE (DryWetRatio, DryWetRatio)
padsynthOsc2 PadsynthSpec
spec (DryWetRatio
x DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Fractional a => a -> a -> a
/ DryWetRatio
2))
envelope :: a -> a
envelope a
asig = DryWetRatio -> a -> a
forall a. SigSpace a => DryWetRatio -> a -> a
mul (D -> D -> DryWetRatio
fades D
0.5 D
0.7) a
asig
filter :: DryWetRatio -> c -> AtOut DryWetRatio DryWetRatio c
filter DryWetRatio
cps c
asig = (DryWetRatio -> DryWetRatio)
-> c -> AtOut DryWetRatio DryWetRatio c
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at (DryWetRatio -> DryWetRatio -> DryWetRatio
bhp DryWetRatio
30) (c -> AtOut DryWetRatio DryWetRatio c)
-> c -> AtOut DryWetRatio DryWetRatio c
forall a b. (a -> b) -> a -> b
$ (DryWetRatio -> DryWetRatio)
-> c -> AtOut DryWetRatio DryWetRatio c
forall a b.
At DryWetRatio a b =>
(DryWetRatio -> a) -> b -> AtOut DryWetRatio a b
bat (ResonFilter
lp (DryWetRatio
200 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ (DryWetRatio
cps DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ DryWetRatio
3000)) DryWetRatio
45) (c -> AtOut DryWetRatio DryWetRatio c)
-> c -> AtOut DryWetRatio DryWetRatio c
forall a b. (a -> b) -> a -> b
$ c
asig
spec :: PadsynthSpec
spec = PadsynthSpec
noisySpec
noisyHarms :: [PadsynthBandwidth]
noisyHarms = [ PadsynthBandwidth
1, PadsynthBandwidth
1, PadsynthBandwidth
0.7600046992, PadsynthBandwidth
0.6199994683, PadsynthBandwidth
0.9399998784, PadsynthBandwidth
0.4400023818, PadsynthBandwidth
0.0600003302, PadsynthBandwidth
0.8499968648, PadsynthBandwidth
0.0899999291, PadsynthBandwidth
0.8199964762, PadsynthBandwidth
0.3199984133, PadsynthBandwidth
0.9400014281, PadsynthBandwidth
0.3000001907, PadsynthBandwidth
0.120003365, PadsynthBandwidth
0.1799997687, PadsynthBandwidth
0.5200006366]
noisySpec :: PadsynthSpec
noisySpec = PadsynthBandwidth -> [PadsynthBandwidth] -> PadsynthSpec
defPadsynthSpec PadsynthBandwidth
82.2 [PadsynthBandwidth]
noisyHarms
dafunkWave :: DryWetRatio
-> (t -> t -> t -> t -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> AtOut DryWetRatio DryWetRatio DryWetRatio
dafunkWave DryWetRatio
cfq t -> t -> t -> t -> DryWetRatio
adsrFun (DryWetRatio
amp, DryWetRatio
cps) = (DryWetRatio -> DryWetRatio)
-> DryWetRatio -> AtOut DryWetRatio DryWetRatio DryWetRatio
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at (DryWetRatio -> DryWetRatio -> DryWetRatio
bhp DryWetRatio
30) (DryWetRatio -> AtOut DryWetRatio DryWetRatio DryWetRatio)
-> DryWetRatio -> AtOut DryWetRatio DryWetRatio DryWetRatio
forall a b. (a -> b) -> a -> b
$ D -> ResonFilter
diode D
1.2 (DryWetRatio
550 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ DryWetRatio
4500 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
cfq) (DryWetRatio
0.52 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ DryWetRatio
0.4 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
cfq) (DryWetRatio -> DryWetRatio) -> DryWetRatio -> DryWetRatio
forall a b. (a -> b) -> a -> b
$ DryWetRatio
amp DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
env DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* (\DryWetRatio
x -> DryWetRatio -> DryWetRatio
saw DryWetRatio
x DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ DryWetRatio
0.5 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio -> DryWetRatio
saw (DryWetRatio
x DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
0.503) DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
+ DryWetRatio
0.25 DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* (DryWetRatio -> DryWetRatio
sqr (DryWetRatio
x DryWetRatio -> DryWetRatio -> DryWetRatio
forall a. Num a => a -> a -> a
* DryWetRatio
0.253))) (DryWetRatio -> D -> DryWetRatio
port DryWetRatio
cps D
0.001)
where
env :: DryWetRatio
env = t -> t -> t -> t -> DryWetRatio
adsrFun t
0.019 t
8.5 t
0.2 t
0.07
dafunkLead :: Patch2
dafunkLead = (MonoAdsr
-> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> Patch2
forall a. (MonoAdsr -> Instr DryWetRatio a) -> Patch a
adsrMono (\MonoAdsr
env (DryWetRatio
amp, DryWetRatio
cps) -> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a. a -> SE a
forall (m :: * -> *) a. Monad m => a -> m a
return ((DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio))
-> (DryWetRatio, DryWetRatio) -> SE (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> DryWetRatio -> (DryWetRatio, DryWetRatio)
forall a b. (a -> b) -> a -> b
$ DryWetRatio
-> MonoAdsr -> (DryWetRatio, DryWetRatio) -> DryWetRatio
forall {t} {t} {t} {t}.
(Fractional t, Fractional t, Fractional t, Fractional t) =>
DryWetRatio
-> (t -> t -> t -> t -> DryWetRatio)
-> (DryWetRatio, DryWetRatio)
-> DryWetRatio
dafunkWave DryWetRatio
cfq MonoAdsr
env (DryWetRatio
amp, DryWetRatio
cps))
where cfq :: DryWetRatio
cfq = Tab -> DryWetRatio -> DryWetRatio
uoscBy ([PadsynthBandwidth] -> Tab
sines [PadsynthBandwidth
1, PadsynthBandwidth
0, PadsynthBandwidth
0, PadsynthBandwidth
0, PadsynthBandwidth
0.05]) DryWetRatio
0.5
celloSynt :: Patch2
celloSynt :: Patch2
celloSynt = DryWetRatio -> Patch2 -> Patch2
withSmallHall' DryWetRatio
0.25 (Patch2 -> Patch2) -> Patch2 -> Patch2
forall a b. (a -> b) -> a -> b
$ Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a. Instr D a -> Patch a
polySynt (Instr D (DryWetRatio, DryWetRatio) -> Patch2)
-> Instr D (DryWetRatio, DryWetRatio) -> Patch2
forall a b. (a -> b) -> a -> b
$ \(D
amp, D
cps) -> (DryWetRatio -> (DryWetRatio, DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b c. At a b c => (a -> b) -> c -> AtOut a b c
at DryWetRatio -> (DryWetRatio, DryWetRatio)
fromMono (SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio))
-> SE DryWetRatio
-> AtOut DryWetRatio (DryWetRatio, DryWetRatio) (SE DryWetRatio)
forall a b. (a -> b) -> a -> b
$ (D, DryWetRatio) -> SE DryWetRatio
C.celloWave (D
amp, D -> DryWetRatio
sig D
cps)