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