csound-catalog 0.5.0 → 0.6.0
raw patch · 3 files changed
+160/−374 lines, 3 filesdep ~csound-expressiondep ~csound-samplerPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: csound-expression, csound-sampler
API changes (from Hackage documentation)
- Csound.Patch: limRel :: SigSpace b => D -> Patch a b -> Patch a b
- Csound.Patch: accordeon :: Patch D Sig2
+ Csound.Patch: accordeon :: Patch Sig2
- Csound.Patch: accordeon' :: Accordeon -> Patch D Sig2
+ Csound.Patch: accordeon' :: Accordeon -> Patch Sig2
- Csound.Patch: accordeonBright1 :: Patch D Sig2
+ Csound.Patch: accordeonBright1 :: Patch Sig2
- Csound.Patch: accordeonBright2 :: Patch D Sig2
+ Csound.Patch: accordeonBright2 :: Patch Sig2
- Csound.Patch: alienIsAngry :: Patch D Sig2
+ Csound.Patch: alienIsAngry :: Patch Sig2
- Csound.Patch: amPiano :: Patch D Sig
+ Csound.Patch: amPiano :: Patch Sig
- Csound.Patch: bassClarinet :: Patch D (Sig, Sig)
+ Csound.Patch: bassClarinet :: Patch2
- Csound.Patch: bassClarinetVibrato :: Patch D (Sig, Sig)
+ Csound.Patch: bassClarinetVibrato :: Patch2
- Csound.Patch: black :: Patch D Sig2
+ Csound.Patch: black :: Patch Sig2
- Csound.Patch: blue :: Patch D Sig2
+ Csound.Patch: blue :: Patch Sig2
- Csound.Patch: brightBassClarinet :: Patch D (Sig, Sig)
+ Csound.Patch: brightBassClarinet :: Patch2
- Csound.Patch: brightDizi :: Patch D (Sig, Sig)
+ Csound.Patch: brightDizi :: Patch2
- Csound.Patch: brightFlute :: Patch D (Sig, Sig)
+ Csound.Patch: brightFlute :: Patch2
- Csound.Patch: brightFrenchHorn :: Patch D (Sig, Sig)
+ Csound.Patch: brightFrenchHorn :: Patch2
- Csound.Patch: brightHulusi :: Patch D (Sig, Sig)
+ Csound.Patch: brightHulusi :: Patch2
- Csound.Patch: brightSheng :: Patch D (Sig, Sig)
+ Csound.Patch: brightSheng :: Patch2
- Csound.Patch: brokenAccordeon :: Patch D Sig2
+ Csound.Patch: brokenAccordeon :: Patch Sig2
- Csound.Patch: cathedralOrgan :: Patch D Sig2
+ Csound.Patch: cathedralOrgan :: Patch2
- Csound.Patch: caveOvertonePad :: Patch D Sig2
+ Csound.Patch: caveOvertonePad :: Patch Sig2
- Csound.Patch: caveOvertonePadm :: Patch Sig (Sig, Sig)
+ Csound.Patch: caveOvertonePadm :: Patch Sig2
- Csound.Patch: choirA :: Patch D Sig2
+ Csound.Patch: choirA :: Patch2
- Csound.Patch: choirA' :: Choir -> Patch D Sig2
+ Csound.Patch: choirA' :: Choir -> Patch2
- Csound.Patch: choirE :: Patch D Sig2
+ Csound.Patch: choirE :: Patch2
- Csound.Patch: choirE' :: Choir -> Patch D Sig2
+ Csound.Patch: choirE' :: Choir -> Patch2
- Csound.Patch: choirO :: Patch D Sig2
+ Csound.Patch: choirO :: Patch2
- Csound.Patch: choirO' :: Choir -> Patch D Sig2
+ Csound.Patch: choirO' :: Choir -> Patch2
- Csound.Patch: choirU :: Patch D Sig2
+ Csound.Patch: choirU :: Patch2
- Csound.Patch: choirU' :: Choir -> Patch D Sig2
+ Csound.Patch: choirU' :: Choir -> Patch2
- Csound.Patch: chorusel :: Patch D Sig2
+ Csound.Patch: chorusel :: Patch Sig2
- Csound.Patch: choruselm :: Patch Sig Sig2
+ Csound.Patch: choruselm :: Patch Sig2
- Csound.Patch: deepBass :: Patch D Sig2
+ Csound.Patch: deepBass :: Patch2
- Csound.Patch: dizi :: Patch D (Sig, Sig)
+ Csound.Patch: dizi :: Patch2
- Csound.Patch: diziVibrato :: Patch D (Sig, Sig)
+ Csound.Patch: diziVibrato :: Patch2
- Csound.Patch: dreamPadBym :: (Sig -> SE Sig) -> PatchSig2
+ Csound.Patch: dreamPadBym :: (Sig -> SE Sig) -> Patch2
- Csound.Patch: dreamPadBym' :: Sig -> (Sig -> SE Sig) -> PatchSig2
+ Csound.Patch: dreamPadBym' :: Sig -> (Sig -> SE Sig) -> Patch2
- Csound.Patch: dreamPadm :: PatchSig2
+ Csound.Patch: dreamPadm :: Patch2
- Csound.Patch: dreamPadm' :: Sig -> PatchSig2
+ Csound.Patch: dreamPadm' :: Sig -> Patch2
- Csound.Patch: epiano1 :: Patch D (Sig, Sig)
+ Csound.Patch: epiano1 :: Patch2
- Csound.Patch: epiano1' :: Epiano1 -> Patch D (Sig, Sig)
+ Csound.Patch: epiano1' :: Epiano1 -> Patch2
- Csound.Patch: flute :: Patch D (Sig, Sig)
+ Csound.Patch: flute :: Patch2
- Csound.Patch: fluteVibrato :: Patch D (Sig, Sig)
+ Csound.Patch: fluteVibrato :: Patch2
- Csound.Patch: fmDroneFast :: Patch D Sig2
+ Csound.Patch: fmDroneFast :: Patch Sig2
- Csound.Patch: fmDroneFastm :: Patch Sig Sig2
+ Csound.Patch: fmDroneFastm :: Patch Sig2
- Csound.Patch: fmDroneMedium :: Patch D Sig2
+ Csound.Patch: fmDroneMedium :: Patch Sig2
- Csound.Patch: fmDroneMediumm :: Patch Sig Sig2
+ Csound.Patch: fmDroneMediumm :: Patch Sig2
- Csound.Patch: fmDroneSlow :: Patch D Sig2
+ Csound.Patch: fmDroneSlow :: Patch Sig2
- Csound.Patch: fmDroneSlowm :: Patch Sig Sig2
+ Csound.Patch: fmDroneSlowm :: Patch Sig2
- Csound.Patch: fmPiano :: Patch D Sig2
+ Csound.Patch: fmPiano :: Patch2
- Csound.Patch: frenchHorn :: Patch D (Sig, Sig)
+ Csound.Patch: frenchHorn :: Patch2
- Csound.Patch: frenchHornVibrato :: Patch D (Sig, Sig)
+ Csound.Patch: frenchHornVibrato :: Patch2
- Csound.Patch: guitar :: Patch D Sig2
+ Csound.Patch: guitar :: Patch2
- Csound.Patch: hammondOrgan :: Patch D Sig2
+ Csound.Patch: hammondOrgan :: Patch Sig2
- Csound.Patch: hammondOrgan' :: HammondOrgan -> Patch D Sig2
+ Csound.Patch: hammondOrgan' :: HammondOrgan -> Patch Sig2
- Csound.Patch: hammondOrganm :: Patch Sig Sig2
+ Csound.Patch: hammondOrganm :: Patch Sig2
- Csound.Patch: hammondOrganm' :: HammondOrgan -> Patch Sig Sig2
+ Csound.Patch: hammondOrganm' :: HammondOrgan -> Patch Sig2
- Csound.Patch: harpsichord :: Patch D Sig2
+ Csound.Patch: harpsichord :: Patch2
- Csound.Patch: hulusi :: Patch D (Sig, Sig)
+ Csound.Patch: hulusi :: Patch2
- Csound.Patch: hulusiVibrato :: Patch D (Sig, Sig)
+ Csound.Patch: hulusiVibrato :: Patch2
- Csound.Patch: impulseMarimba1 :: Patch D Sig2
+ Csound.Patch: impulseMarimba1 :: Patch Sig2
- Csound.Patch: impulseMarimba2 :: Patch D Sig2
+ Csound.Patch: impulseMarimba2 :: Patch Sig2
- Csound.Patch: lightIsTooBrightPadm :: PatchSig2
+ Csound.Patch: lightIsTooBrightPadm :: Patch2
- Csound.Patch: lightIsTooBrightPadm' :: Sig -> PatchSig2
+ Csound.Patch: lightIsTooBrightPadm' :: Sig -> Patch2
- Csound.Patch: longNoisyChoir :: Patch D Sig2
+ Csound.Patch: longNoisyChoir :: Patch Sig2
- Csound.Patch: longNoisyChoir' :: NoisyChoir -> Patch D Sig2
+ Csound.Patch: longNoisyChoir' :: NoisyChoir -> Patch Sig2
- Csound.Patch: mildWind :: Patch D Sig2
+ Csound.Patch: mildWind :: Patch2
- Csound.Patch: mutedBassClarinet :: Patch D (Sig, Sig)
+ Csound.Patch: mutedBassClarinet :: Patch2
- Csound.Patch: mutedDizi :: Patch D (Sig, Sig)
+ Csound.Patch: mutedDizi :: Patch2
- Csound.Patch: mutedFlute :: Patch D (Sig, Sig)
+ Csound.Patch: mutedFlute :: Patch2
- Csound.Patch: mutedFrenchHorn :: Patch D (Sig, Sig)
+ Csound.Patch: mutedFrenchHorn :: Patch2
- Csound.Patch: mutedHulusi :: Patch D (Sig, Sig)
+ Csound.Patch: mutedHulusi :: Patch2
- Csound.Patch: mutedPiano :: Patch D (Sig, Sig)
+ Csound.Patch: mutedPiano :: Patch Sig2
- Csound.Patch: mutedPiano' :: MutedPiano -> Patch D (Sig, Sig)
+ Csound.Patch: mutedPiano' :: MutedPiano -> Patch Sig2
- Csound.Patch: mutedSheng :: Patch D (Sig, Sig)
+ Csound.Patch: mutedSheng :: Patch2
- Csound.Patch: nightPad :: Patch D Sig2
+ Csound.Patch: nightPad :: Patch2
- Csound.Patch: nightPadm :: Patch Sig (Sig, Sig)
+ Csound.Patch: nightPadm :: Patch2
- Csound.Patch: noiseBell :: Patch D Sig2
+ Csound.Patch: noiseBell :: Patch Sig2
- Csound.Patch: noisyChoir :: Patch D Sig2
+ Csound.Patch: noisyChoir :: Patch Sig2
- Csound.Patch: noisyChoir' :: NoisyChoir -> Patch D Sig2
+ Csound.Patch: noisyChoir' :: NoisyChoir -> Patch Sig2
- Csound.Patch: noiz :: Patch D Sig2
+ Csound.Patch: noiz :: Patch Sig2
- Csound.Patch: okComputer :: Patch D Sig2
+ Csound.Patch: okComputer :: Patch Sig2
- Csound.Patch: overtonePad :: Patch D Sig2
+ Csound.Patch: overtonePad :: Patch Sig2
- Csound.Patch: overtonePadm :: Patch Sig (Sig, Sig)
+ Csound.Patch: overtonePadm :: Patch Sig2
- Csound.Patch: phasingLead :: Patch D Sig2
+ Csound.Patch: phasingLead :: Patch2
- Csound.Patch: polySynth :: Patch D (Sig, Sig)
+ Csound.Patch: polySynth :: Patch Sig2
- Csound.Patch: polySynthm :: Patch Sig (Sig, Sig)
+ Csound.Patch: polySynthm :: Patch Sig2
- Csound.Patch: pulseWidth :: Patch D Sig2
+ Csound.Patch: pulseWidth :: Patch Sig2
- Csound.Patch: pwBass :: Patch D Sig2
+ Csound.Patch: pwBass :: Patch2
- Csound.Patch: pwEnsemble :: Patch D Sig2
+ Csound.Patch: pwEnsemble :: Patch2
- Csound.Patch: pwEnsemblem :: Patch Sig Sig2
+ Csound.Patch: pwEnsemblem :: Patch2
- Csound.Patch: pwOrganm :: Sig -> PatchSig2
+ Csound.Patch: pwOrganm :: Sig -> Patch2
- Csound.Patch: pwPad :: Patch D Sig2
+ Csound.Patch: pwPad :: Patch2
- Csound.Patch: pwPadm :: Patch Sig Sig2
+ Csound.Patch: pwPadm :: Patch2
- Csound.Patch: razorLead :: Patch D Sig2
+ Csound.Patch: razorLead :: Patch Sig2
- Csound.Patch: razorLead' :: RazorLead -> Patch D Sig2
+ Csound.Patch: razorLead' :: RazorLead -> Patch Sig2
- Csound.Patch: razorLeadFast :: Patch D Sig2
+ Csound.Patch: razorLeadFast :: Patch Sig2
- Csound.Patch: razorLeadSlow :: Patch D Sig2
+ Csound.Patch: razorLeadSlow :: Patch Sig2
- Csound.Patch: razorLeadTremolo :: Patch D Sig2
+ Csound.Patch: razorLeadTremolo :: Patch Sig2
- Csound.Patch: razorPad :: Patch D Sig2
+ Csound.Patch: razorPad :: Patch Sig2
- Csound.Patch: razorPad' :: RazorPad -> Patch D Sig2
+ Csound.Patch: razorPad' :: RazorPad -> Patch Sig2
- Csound.Patch: razorPadFast :: Patch D Sig2
+ Csound.Patch: razorPadFast :: Patch Sig2
- Csound.Patch: razorPadFastm :: Patch Sig Sig2
+ Csound.Patch: razorPadFastm :: Patch Sig2
- Csound.Patch: razorPadSlow :: Patch D Sig2
+ Csound.Patch: razorPadSlow :: Patch Sig2
- Csound.Patch: razorPadSlowm :: Patch Sig Sig2
+ Csound.Patch: razorPadSlowm :: Patch Sig2
- Csound.Patch: razorPadTremolo :: Patch D Sig2
+ Csound.Patch: razorPadTremolo :: Patch Sig2
- Csound.Patch: razorPadTremolom :: Patch Sig Sig2
+ Csound.Patch: razorPadTremolom :: Patch Sig2
- Csound.Patch: razorPadm :: Patch Sig Sig2
+ Csound.Patch: razorPadm :: Patch Sig2
- Csound.Patch: razorPadm' :: RazorPad -> Patch Sig Sig2
+ Csound.Patch: razorPadm' :: RazorPad -> Patch Sig2
- Csound.Patch: robotLoopVowels :: Sig -> [(Vowel, D)] -> Patch D Sig2
+ Csound.Patch: robotLoopVowels :: Sig -> [(Vowel, D)] -> Patch Sig2
- Csound.Patch: robotVowel :: Vowel -> Patch D Sig2
+ Csound.Patch: robotVowel :: Vowel -> Patch Sig2
- Csound.Patch: robotVowels :: [(Vowel, D)] -> Vowel -> Patch D Sig2
+ Csound.Patch: robotVowels :: [(Vowel, D)] -> Vowel -> Patch Sig2
- Csound.Patch: sawOrganm :: PatchSig2
+ Csound.Patch: sawOrganm :: Patch2
- Csound.Patch: scrapeAlbertClockBellBelfast :: Patch D Sig2
+ Csound.Patch: scrapeAlbertClockBellBelfast :: Patch Sig2
- Csound.Patch: scrapeAlbertClockBellBelfastm :: Patch Sig Sig2
+ Csound.Patch: scrapeAlbertClockBellBelfastm :: Patch Sig2
- Csound.Patch: scrapeBanyan :: Patch D Sig2
+ Csound.Patch: scrapeBanyan :: Patch Sig2
- Csound.Patch: scrapeBanyanm :: Patch Sig Sig2
+ Csound.Patch: scrapeBanyanm :: Patch Sig2
- Csound.Patch: scrapeChalandiPlates :: Patch D Sig2
+ Csound.Patch: scrapeChalandiPlates :: Patch Sig2
- Csound.Patch: scrapeChalandiPlatesm :: Patch Sig Sig2
+ Csound.Patch: scrapeChalandiPlatesm :: Patch Sig2
- Csound.Patch: scrapeDahina :: Patch D Sig2
+ Csound.Patch: scrapeDahina :: Patch Sig2
- Csound.Patch: scrapeDahinam :: Patch Sig Sig2
+ Csound.Patch: scrapeDahinam :: Patch Sig2
- Csound.Patch: scrapeDouglasFirWoodPlate :: Patch D Sig2
+ Csound.Patch: scrapeDouglasFirWoodPlate :: Patch Sig2
- Csound.Patch: scrapeDouglasFirWoodPlatem :: Patch Sig Sig2
+ Csound.Patch: scrapeDouglasFirWoodPlatem :: Patch Sig2
- Csound.Patch: scrapeFastAlbertClockBellBelfast :: Patch D Sig2
+ Csound.Patch: scrapeFastAlbertClockBellBelfast :: Patch Sig2
- Csound.Patch: scrapeFastBanyan :: Patch D Sig2
+ Csound.Patch: scrapeFastBanyan :: Patch Sig2
- Csound.Patch: scrapeFastChalandiPlates :: Patch D Sig2
+ Csound.Patch: scrapeFastChalandiPlates :: Patch Sig2
- Csound.Patch: scrapeFastDahina :: Patch D Sig2
+ Csound.Patch: scrapeFastDahina :: Patch Sig2
- Csound.Patch: scrapeFastDouglasFirWoodPlate :: Patch D Sig2
+ Csound.Patch: scrapeFastDouglasFirWoodPlate :: Patch Sig2
- Csound.Patch: scrapeFastPotLid :: Patch D Sig2
+ Csound.Patch: scrapeFastPotLid :: Patch Sig2
- Csound.Patch: scrapeFastRedCedarWoodPlate :: Patch D Sig2
+ Csound.Patch: scrapeFastRedCedarWoodPlate :: Patch Sig2
- Csound.Patch: scrapeFastRedwoodPlate :: Patch D Sig2
+ Csound.Patch: scrapeFastRedwoodPlate :: Patch Sig2
- Csound.Patch: scrapeFastSmallHandbell :: Patch D Sig2
+ Csound.Patch: scrapeFastSmallHandbell :: Patch Sig2
- Csound.Patch: scrapeFastSpinelSphere :: Patch D Sig2
+ Csound.Patch: scrapeFastSpinelSphere :: Patch Sig2
- Csound.Patch: scrapeFastTibetanBowl140 :: Patch D Sig2
+ Csound.Patch: scrapeFastTibetanBowl140 :: Patch Sig2
- Csound.Patch: scrapeFastTibetanBowl152 :: Patch D Sig2
+ Csound.Patch: scrapeFastTibetanBowl152 :: Patch Sig2
- Csound.Patch: scrapeFastTibetanBowl180 :: Patch D Sig2
+ Csound.Patch: scrapeFastTibetanBowl180 :: Patch Sig2
- Csound.Patch: scrapeFastTubularBell :: Patch D Sig2
+ Csound.Patch: scrapeFastTubularBell :: Patch Sig2
- Csound.Patch: scrapeFastUniformAluminumBar :: Patch D Sig2
+ Csound.Patch: scrapeFastUniformAluminumBar :: Patch Sig2
- Csound.Patch: scrapeFastUniformWoodenBar :: Patch D Sig2
+ Csound.Patch: scrapeFastUniformWoodenBar :: Patch Sig2
- Csound.Patch: scrapeFastVibraphone1 :: Patch D Sig2
+ Csound.Patch: scrapeFastVibraphone1 :: Patch Sig2
- Csound.Patch: scrapeFastVibraphone2 :: Patch D Sig2
+ Csound.Patch: scrapeFastVibraphone2 :: Patch Sig2
- Csound.Patch: scrapeFastWineGlass :: Patch D Sig2
+ Csound.Patch: scrapeFastWineGlass :: Patch Sig2
- Csound.Patch: scrapeFastWoodBlock :: Patch D Sig2
+ Csound.Patch: scrapeFastWoodBlock :: Patch Sig2
- Csound.Patch: scrapeFastXylophone :: Patch D Sig2
+ Csound.Patch: scrapeFastXylophone :: Patch Sig2
- Csound.Patch: scrapePadAlbertClockBellBelfast :: Patch D Sig2
+ Csound.Patch: scrapePadAlbertClockBellBelfast :: Patch Sig2
- Csound.Patch: scrapePadAlbertClockBellBelfastm :: Patch Sig Sig2
+ Csound.Patch: scrapePadAlbertClockBellBelfastm :: Patch Sig2
- Csound.Patch: scrapePadBanyan :: Patch D Sig2
+ Csound.Patch: scrapePadBanyan :: Patch Sig2
- Csound.Patch: scrapePadBanyanm :: Patch Sig Sig2
+ Csound.Patch: scrapePadBanyanm :: Patch Sig2
- Csound.Patch: scrapePadChalandiPlates :: Patch D Sig2
+ Csound.Patch: scrapePadChalandiPlates :: Patch Sig2
- Csound.Patch: scrapePadChalandiPlatesm :: Patch Sig Sig2
+ Csound.Patch: scrapePadChalandiPlatesm :: Patch Sig2
- Csound.Patch: scrapePadDahina :: Patch D Sig2
+ Csound.Patch: scrapePadDahina :: Patch Sig2
- Csound.Patch: scrapePadDahinam :: Patch Sig Sig2
+ Csound.Patch: scrapePadDahinam :: Patch Sig2
- Csound.Patch: scrapePadDouglasFirWoodPlate :: Patch D Sig2
+ Csound.Patch: scrapePadDouglasFirWoodPlate :: Patch Sig2
- Csound.Patch: scrapePadDouglasFirWoodPlatem :: Patch Sig Sig2
+ Csound.Patch: scrapePadDouglasFirWoodPlatem :: Patch Sig2
- Csound.Patch: scrapePadPotLid :: Patch D Sig2
+ Csound.Patch: scrapePadPotLid :: Patch Sig2
- Csound.Patch: scrapePadPotLidm :: Patch Sig Sig2
+ Csound.Patch: scrapePadPotLidm :: Patch Sig2
- Csound.Patch: scrapePadRedCedarWoodPlate :: Patch D Sig2
+ Csound.Patch: scrapePadRedCedarWoodPlate :: Patch Sig2
- Csound.Patch: scrapePadRedCedarWoodPlatem :: Patch Sig Sig2
+ Csound.Patch: scrapePadRedCedarWoodPlatem :: Patch Sig2
- Csound.Patch: scrapePadRedwoodPlate :: Patch D Sig2
+ Csound.Patch: scrapePadRedwoodPlate :: Patch Sig2
- Csound.Patch: scrapePadRedwoodPlatem :: Patch Sig Sig2
+ Csound.Patch: scrapePadRedwoodPlatem :: Patch Sig2
- Csound.Patch: scrapePadSmallHandbell :: Patch D Sig2
+ Csound.Patch: scrapePadSmallHandbell :: Patch Sig2
- Csound.Patch: scrapePadSmallHandbellm :: Patch Sig Sig2
+ Csound.Patch: scrapePadSmallHandbellm :: Patch Sig2
- Csound.Patch: scrapePadSpinelSphere :: Patch D Sig2
+ Csound.Patch: scrapePadSpinelSphere :: Patch Sig2
- Csound.Patch: scrapePadSpinelSpherem :: Patch Sig Sig2
+ Csound.Patch: scrapePadSpinelSpherem :: Patch Sig2
- Csound.Patch: scrapePadTibetanBowl140 :: Patch D Sig2
+ Csound.Patch: scrapePadTibetanBowl140 :: Patch Sig2
- Csound.Patch: scrapePadTibetanBowl140m :: Patch Sig Sig2
+ Csound.Patch: scrapePadTibetanBowl140m :: Patch Sig2
- Csound.Patch: scrapePadTibetanBowl152 :: Patch D Sig2
+ Csound.Patch: scrapePadTibetanBowl152 :: Patch Sig2
- Csound.Patch: scrapePadTibetanBowl152m :: Patch Sig Sig2
+ Csound.Patch: scrapePadTibetanBowl152m :: Patch Sig2
- Csound.Patch: scrapePadTibetanBowl180 :: Patch D Sig2
+ Csound.Patch: scrapePadTibetanBowl180 :: Patch Sig2
- Csound.Patch: scrapePadTibetanBowl180m :: Patch Sig Sig2
+ Csound.Patch: scrapePadTibetanBowl180m :: Patch Sig2
- Csound.Patch: scrapePadTubularBell :: Patch D Sig2
+ Csound.Patch: scrapePadTubularBell :: Patch Sig2
- Csound.Patch: scrapePadTubularBellm :: Patch Sig Sig2
+ Csound.Patch: scrapePadTubularBellm :: Patch Sig2
- Csound.Patch: scrapePadUniformAluminumBar :: Patch D Sig2
+ Csound.Patch: scrapePadUniformAluminumBar :: Patch Sig2
- Csound.Patch: scrapePadUniformAluminumBarm :: Patch Sig Sig2
+ Csound.Patch: scrapePadUniformAluminumBarm :: Patch Sig2
- Csound.Patch: scrapePadUniformWoodenBar :: Patch D Sig2
+ Csound.Patch: scrapePadUniformWoodenBar :: Patch Sig2
- Csound.Patch: scrapePadUniformWoodenBarm :: Patch Sig Sig2
+ Csound.Patch: scrapePadUniformWoodenBarm :: Patch Sig2
- Csound.Patch: scrapePadVibraphone1 :: Patch D Sig2
+ Csound.Patch: scrapePadVibraphone1 :: Patch Sig2
- Csound.Patch: scrapePadVibraphone1m :: Patch Sig Sig2
+ Csound.Patch: scrapePadVibraphone1m :: Patch Sig2
- Csound.Patch: scrapePadVibraphone2 :: Patch D Sig2
+ Csound.Patch: scrapePadVibraphone2 :: Patch Sig2
- Csound.Patch: scrapePadVibraphone2m :: Patch Sig Sig2
+ Csound.Patch: scrapePadVibraphone2m :: Patch Sig2
- Csound.Patch: scrapePadWineGlass :: Patch D Sig2
+ Csound.Patch: scrapePadWineGlass :: Patch Sig2
- Csound.Patch: scrapePadWineGlassm :: Patch Sig Sig2
+ Csound.Patch: scrapePadWineGlassm :: Patch Sig2
- Csound.Patch: scrapePadWoodBlock :: Patch D Sig2
+ Csound.Patch: scrapePadWoodBlock :: Patch Sig2
- Csound.Patch: scrapePadWoodBlockm :: Patch Sig Sig2
+ Csound.Patch: scrapePadWoodBlockm :: Patch Sig2
- Csound.Patch: scrapePadXylophone :: Patch D Sig2
+ Csound.Patch: scrapePadXylophone :: Patch Sig2
- Csound.Patch: scrapePadXylophonem :: Patch Sig Sig2
+ Csound.Patch: scrapePadXylophonem :: Patch Sig2
- Csound.Patch: scrapePotLid :: Patch D Sig2
+ Csound.Patch: scrapePotLid :: Patch Sig2
- Csound.Patch: scrapePotLidm :: Patch D Sig2
+ Csound.Patch: scrapePotLidm :: Patch Sig2
- Csound.Patch: scrapeRedCedarWoodPlate :: Patch D Sig2
+ Csound.Patch: scrapeRedCedarWoodPlate :: Patch Sig2
- Csound.Patch: scrapeRedCedarWoodPlatem :: Patch Sig Sig2
+ Csound.Patch: scrapeRedCedarWoodPlatem :: Patch Sig2
- Csound.Patch: scrapeRedwoodPlate :: Patch D Sig2
+ Csound.Patch: scrapeRedwoodPlate :: Patch Sig2
- Csound.Patch: scrapeRedwoodPlatem :: Patch Sig Sig2
+ Csound.Patch: scrapeRedwoodPlatem :: Patch Sig2
- Csound.Patch: scrapeSmallHandbell :: Patch D Sig2
+ Csound.Patch: scrapeSmallHandbell :: Patch Sig2
- Csound.Patch: scrapeSmallHandbellm :: Patch Sig Sig2
+ Csound.Patch: scrapeSmallHandbellm :: Patch Sig2
- Csound.Patch: scrapeSpinelSphere :: Patch D Sig2
+ Csound.Patch: scrapeSpinelSphere :: Patch Sig2
- Csound.Patch: scrapeSpinelSpherem :: Patch Sig Sig2
+ Csound.Patch: scrapeSpinelSpherem :: Patch Sig2
- Csound.Patch: scrapeTibetanBowl140 :: Patch D Sig2
+ Csound.Patch: scrapeTibetanBowl140 :: Patch Sig2
- Csound.Patch: scrapeTibetanBowl140m :: Patch Sig Sig2
+ Csound.Patch: scrapeTibetanBowl140m :: Patch Sig2
- Csound.Patch: scrapeTibetanBowl152 :: Patch D Sig2
+ Csound.Patch: scrapeTibetanBowl152 :: Patch Sig2
- Csound.Patch: scrapeTibetanBowl152m :: Patch Sig Sig2
+ Csound.Patch: scrapeTibetanBowl152m :: Patch Sig2
- Csound.Patch: scrapeTibetanBowl180 :: Patch D Sig2
+ Csound.Patch: scrapeTibetanBowl180 :: Patch Sig2
- Csound.Patch: scrapeTibetanBowl180m :: Patch Sig Sig2
+ Csound.Patch: scrapeTibetanBowl180m :: Patch Sig2
- Csound.Patch: scrapeTubularBell :: Patch D Sig2
+ Csound.Patch: scrapeTubularBell :: Patch Sig2
- Csound.Patch: scrapeTubularBellm :: Patch Sig Sig2
+ Csound.Patch: scrapeTubularBellm :: Patch Sig2
- Csound.Patch: scrapeUniformAluminumBar :: Patch D Sig2
+ Csound.Patch: scrapeUniformAluminumBar :: Patch Sig2
- Csound.Patch: scrapeUniformAluminumBarm :: Patch Sig Sig2
+ Csound.Patch: scrapeUniformAluminumBarm :: Patch Sig2
- Csound.Patch: scrapeUniformWoodenBar :: Patch D Sig2
+ Csound.Patch: scrapeUniformWoodenBar :: Patch Sig2
- Csound.Patch: scrapeUniformWoodenBarm :: Patch Sig Sig2
+ Csound.Patch: scrapeUniformWoodenBarm :: Patch Sig2
- Csound.Patch: scrapeVibraphone1 :: Patch D Sig2
+ Csound.Patch: scrapeVibraphone1 :: Patch Sig2
- Csound.Patch: scrapeVibraphone1m :: Patch Sig Sig2
+ Csound.Patch: scrapeVibraphone1m :: Patch Sig2
- Csound.Patch: scrapeVibraphone2 :: Patch D Sig2
+ Csound.Patch: scrapeVibraphone2 :: Patch Sig2
- Csound.Patch: scrapeVibraphone2m :: Patch Sig Sig2
+ Csound.Patch: scrapeVibraphone2m :: Patch Sig2
- Csound.Patch: scrapeWineGlass :: Patch D Sig2
+ Csound.Patch: scrapeWineGlass :: Patch Sig2
- Csound.Patch: scrapeWineGlassm :: Patch Sig Sig2
+ Csound.Patch: scrapeWineGlassm :: Patch Sig2
- Csound.Patch: scrapeWoodBlock :: Patch D Sig2
+ Csound.Patch: scrapeWoodBlock :: Patch Sig2
- Csound.Patch: scrapeWoodBlockm :: Patch Sig Sig2
+ Csound.Patch: scrapeWoodBlockm :: Patch Sig2
- Csound.Patch: scrapeXylophone :: Patch D Sig2
+ Csound.Patch: scrapeXylophone :: Patch Sig2
- Csound.Patch: scrapeXylophonem :: Patch Sig Sig2
+ Csound.Patch: scrapeXylophonem :: Patch Sig2
- Csound.Patch: sheng :: Patch D (Sig, Sig)
+ Csound.Patch: sheng :: Patch2
- Csound.Patch: shengVibrato :: Patch D (Sig, Sig)
+ Csound.Patch: shengVibrato :: Patch2
- Csound.Patch: shortBassClarinet :: Patch D (Sig, Sig)
+ Csound.Patch: shortBassClarinet :: Patch2
- Csound.Patch: shortDizi :: Patch D (Sig, Sig)
+ Csound.Patch: shortDizi :: Patch2
- Csound.Patch: shortFlute :: Patch D (Sig, Sig)
+ Csound.Patch: shortFlute :: Patch2
- Csound.Patch: shortFrenchHorn :: Patch D (Sig, Sig)
+ Csound.Patch: shortFrenchHorn :: Patch2
- Csound.Patch: shortHulusi :: Patch D (Sig, Sig)
+ Csound.Patch: shortHulusi :: Patch2
- Csound.Patch: shortSheng :: Patch D (Sig, Sig)
+ Csound.Patch: shortSheng :: Patch2
- Csound.Patch: simpleBass :: Patch D Sig2
+ Csound.Patch: simpleBass :: Patch2
- Csound.Patch: simpleMarimba :: Patch D Sig2
+ Csound.Patch: simpleMarimba :: Patch Sig2
- Csound.Patch: singleFx :: Sig -> (a -> a) -> [FxSpec a]
+ Csound.Patch: singleFx :: Sig -> (a -> a) -> Patch a -> Patch a
- Csound.Patch: singleFx' :: Sig -> (a -> SE a) -> [FxSpec a]
+ Csound.Patch: singleFx' :: Sig -> (a -> SE a) -> Patch a -> Patch a
- Csound.Patch: snowCrackle :: Patch D (Sig, Sig)
+ Csound.Patch: snowCrackle :: Patch (Sig, Sig)
- Csound.Patch: sqrOrganm :: PatchSig2
+ Csound.Patch: sqrOrganm :: Patch2
- Csound.Patch: toneWheelOrgan :: Patch D Sig2
+ Csound.Patch: toneWheelOrgan :: Patch2
- Csound.Patch: triOrganm :: PatchSig2
+ Csound.Patch: triOrganm :: Patch2
- Csound.Patch: triPad :: Patch D (Sig, Sig)
+ Csound.Patch: triPad :: Patch Sig2
- Csound.Patch: triPadm :: Patch Sig (Sig, Sig)
+ Csound.Patch: triPadm :: Patch Sig2
- Csound.Patch: underwaterPadm :: PatchSig2
+ Csound.Patch: underwaterPadm :: Patch2
- Csound.Patch: underwaterPadm' :: Sig -> PatchSig2
+ Csound.Patch: underwaterPadm' :: Sig -> Patch2
- Csound.Patch: vibrophonePad :: Patch D Sig2
+ Csound.Patch: vibrophonePad :: Patch Sig2
- Csound.Patch: waveOrganm :: (Sig -> SE Sig) -> PatchSig2
+ Csound.Patch: waveOrganm :: (Sig -> SE Sig) -> Patch2
- Csound.Patch: whaleSongPadm :: PatchSig2
+ Csound.Patch: whaleSongPadm :: Patch2
- Csound.Patch: whaleSongPadm' :: Sig -> PatchSig2
+ Csound.Patch: whaleSongPadm' :: Sig -> Patch2
- Csound.Patch: wind :: Patch D Sig2
+ Csound.Patch: wind :: Patch2
- Csound.Patch: windSings :: Patch D Sig2
+ Csound.Patch: windSings :: Patch Sig2
- Csound.Patch: windWall :: Patch D Sig2
+ Csound.Patch: windWall :: Patch2
- Csound.Patch: woodWind' :: (Num t, SigOrD t) => Wind -> (t -> D -> D -> D -> D -> D -> D -> Sig) -> Patch D (Sig, Sig)
+ Csound.Patch: woodWind' :: (Num t, SigOrD t) => Wind -> (t -> D -> D -> D -> D -> D -> D -> Sig) -> Patch2
- Csound.Patch: xanadu :: Patch D Sig2
+ Csound.Patch: xanadu :: Patch Sig2
Files
- csound-catalog.cabal +2/−2
- src/Csound/Catalog/Wave/Sharc.hs +15/−0
- src/Csound/Patch.hs +143/−372
csound-catalog.cabal view
@@ -1,5 +1,5 @@ Name: csound-catalog-Version: 0.5.0+Version: 0.6.0 Cabal-Version: >= 1.6 License: BSD3 License-file: LICENSE@@ -27,7 +27,7 @@ Library Ghc-Options: -Wall Build-Depends:- base >= 4, base < 5, transformers >= 0.3, csound-expression >= 5.0.0, csound-sampler >=0.0.6.5, sharc-timbre+ base >= 4, base < 5, transformers >= 0.3, csound-expression >= 5.1.0, csound-sampler >=0.0.7.0, sharc-timbre Hs-Source-Dirs: src/ Exposed-Modules: Csound.Catalog
src/Csound/Catalog/Wave/Sharc.hs view
@@ -7,6 +7,9 @@ PadSharcSpec(..), padsynthSharcOsc, padsynthSharcOsc2, padsynthSharcOsc', padsynthSharcOsc2', + -- * Padsynth and granular+ morphsynthSharcOsc, morphsynthSharcOsc', quadMorphsynthSharcOsc, quadMorphsynthSharcOsc',+ -- * Instriments SharcInstr(..), shViolin, shViolinPizzicato, shViolinMuted, shViolinMarteleBowing, shViolinsEnsemble, shViola, shViolaPizzicato, shViolaMuted,@@ -122,6 +125,18 @@ padsynthSharcOsc' :: PadSharcSpec -> SharcInstr -> D -> SE Sig padsynthSharcOsc' spec instr freq = padsynthOscMultiCps (getSpecIntervals spec instr) freq++morphsynthSharcOsc :: MorphSpec -> SharcInstr -> D -> SE Sig2+morphsynthSharcOsc = morphsynthSharcOsc' def++morphsynthSharcOsc' :: PadSharcSpec -> MorphSpec -> SharcInstr -> D -> SE Sig2+morphsynthSharcOsc' spec morphSpec instr freq = morphsynthOscMultiCps morphSpec (getSpecIntervals spec instr) freq++quadMorphsynthSharcOsc :: MorphSpec -> [SharcInstr] -> (Sig, Sig) -> D -> SE Sig2+quadMorphsynthSharcOsc = quadMorphsynthSharcOsc' def++quadMorphsynthSharcOsc' :: PadSharcSpec -> MorphSpec -> [SharcInstr] -> (Sig, Sig) -> D -> SE Sig2+quadMorphsynthSharcOsc' spec morphSpec instr (x, y) freq = quadMorphsynthOscMultiCps morphSpec (fmap (getSpecIntervals spec) instr) (x, y) freq getSpecIntervals spec (SharcInstr instr) = zip borderFreqs specs where
src/Csound/Patch.hs view
@@ -214,7 +214,8 @@ windWall, mildWind, wind, snowCrackle, -- * Misc - limRel, singleFx, singleFx'+ -- limRel, + singleFx, singleFx' ) where import Control.Monad@@ -242,25 +243,25 @@ onSig1 :: SigSpace a => (Sig -> a) -> Sig2 -> a onSig1 f (amp, cps) = mul amp $ f cps -fx1 :: Sig -> (a -> a) -> [FxSpec a]-fx1 dw f = [FxSpec dw (return . f)]+fx1 :: Sig -> (a -> a) -> Patch a -> Patch a+fx1 dw f = FxChain [FxSpec dw (return . f)] -fx1' :: Sig -> (a -> SE a) -> [FxSpec a]-fx1' dw f = [FxSpec dw f]+fx1' :: Sig -> (a -> SE a) -> Patch a -> Patch a+fx1' dw f = FxChain [FxSpec dw f] -- | Creates a simple FX-xhain, that contains a single pure effect. -- The first argument is the dry/wet-value.-singleFx :: Sig -> (a -> a) -> [FxSpec a]+singleFx :: Sig -> (a -> a) -> Patch a -> Patch a singleFx = fx1 -- | Creates a simple FX-xhain, that contains a single effect. -- The first argument is the dry/wet-value.-singleFx' :: Sig -> (a -> SE a) -> [FxSpec a]+singleFx' :: Sig -> (a -> SE a) -> Patch a -> Patch a singleFx' = fx1' -- | Limits the release section of the note.-limRel :: SigSpace b => D -> Patch a b -> Patch a b-limRel rel p = p { patchInstr = fmap (mul (fadeOut rel)) . patchInstr p }+limRel :: SigSpace a => D -> Patch a -> Patch a+limRel rel p = mapPatchInstr (\instr -> fmap (mul (fadeOut rel)) . instr) p ---------------------------------------------- -- electric pianos@@ -273,9 +274,7 @@ epiano1 = epiano1' def -epiano1' (Epiano1 rel) = Patch - { patchInstr = \a -> mul 0.4 $ C.simpleFading rel a- , patchFx = fx1 0.25 largeHall2 }+epiano1' (Epiano1 rel) = withLargeHall $ polySynt $ \a -> mul 0.4 $ C.simpleFading rel a data MutedPiano = MutedPiano { mutedPianoMute :: Sig@@ -286,36 +285,30 @@ mutedPiano = mutedPiano' def -mutedPiano' (MutedPiano mute rel) = Patch - { patchInstr = \a -> mul 0.7 $ C.simpleSust rel a- , patchFx = fx1 0.25 (largeHall2 . at (mlp3 (250 + 7000 * mute) 0.2)) }+mutedPiano' (MutedPiano mute rel) = fx1 0.25 (largeHall2 . at (mlp3 (250 + 7000 * mute) 0.2)) $ + polySynt $ \a -> mul 0.7 $ C.simpleSust rel a -amPiano = Patch- { patchInstr = mul 1.4 . onCps C.amPiano- , patchFx = fx1 0.25 id }+amPiano = fx1 0.25 id $ polySynt $ mul 1.4 . onCps C.amPiano -fmPiano = Patch- { patchInstr = at fromMono . mul 0.75 . onCps (C.fmFlavio 6 3)- , patchFx = fx1 0.15 smallHall2 }+fmPiano = withSmallHall $ polySynt $ at fromMono . mul 0.75 . onCps (C.fmFlavio 6 3) epianoReleaseTime :: ReleaseTime epianoReleaseTime = 0.25 -epiano2 = addHammer 0.15 $ Patch - { patchInstr = mul 1.125 . at fromMono . (onCps $ C.epiano epianoReleaseTime [C.EpianoOsc 4 5 1 1, C.EpianoOsc 8 10 2.01 1])- , patchFx = fx1 0.25 smallHall2 }+epiano2 = addHammer 0.15 $ fx1 0.25 smallHall2 $ + polySynt $ mul 1.125 . at fromMono . (onCps $ C.epiano epianoReleaseTime [C.EpianoOsc 4 5 1 1, C.EpianoOsc 8 10 2.01 1]) -epianoHeavy = addHammer 0.15 $ Patch - { patchInstr = mul 1.125 . at fromMono . (onCps $ C.epiano epianoReleaseTime [C.EpianoOsc 4 5 1 1, C.EpianoOsc 8 10 2.01 1, C.EpianoOsc 8 15 0.5 0.5])- , patchFx = fx1 0.2 smallHall2 }+epianoHeavy = addHammer 0.15 $ fx1 0.2 smallHall2 $ + polySynt $ mul 1.125 . at fromMono . (onCps $ C.epiano epianoReleaseTime [C.EpianoOsc 4 5 1 1, C.EpianoOsc 8 10 2.01 1, C.EpianoOsc 8 15 0.5 0.5]) -epianoBright = addHammer 0.15 $ Patch - { patchInstr = mul 1.12 . at fromMono . (onCps $ C.epiano epianoReleaseTime [C.EpianoOsc 4 5 1 1, C.EpianoOsc 8 10 3.01 1, C.EpianoOsc 8 15 5 0.5, C.EpianoOsc 8 4 7 0.3])- , patchFx = fx1 0.2 smallHall2 }+epianoBright = addHammer 0.15 $ fx1 0.2 smallHall2 $ + polySynt $ mul 1.12 . at fromMono . (onCps $ C.epiano epianoReleaseTime [C.EpianoOsc 4 5 1 1, C.EpianoOsc 8 10 3.01 1, C.EpianoOsc 8 15 5 0.5, C.EpianoOsc 8 4 7 0.3]) -vibraphonePiano1 = addHammer 0.15 $ smallVibraphone1 { patchInstr = mul (1.5 * fadeOut 0.25) . at (mlp 6500 0.1). patchInstr smallVibraphone1 }-vibraphonePiano2 = addHammer 0.15 $ smallVibraphone2 { patchInstr = mul (1.5 * fadeOut 0.25) . at (mlp 6500 0.1). patchInstr smallVibraphone2 }+vibraphonePiano1 = vibraphoneToPiano smallVibraphone1+vibraphonePiano2 = vibraphoneToPiano smallVibraphone2 +vibraphoneToPiano patch = addHammer 0.15 $ mapPatchInstr (\instr -> mul (1.5 * fadeOut 0.25) . at (mlp 6500 0.1) . instr) patch+ -- | Adds a hammer strike sound. The first argument is the amount of hammer sound. addHammer :: Sig -> Patch2 -> Patch2 addHammer amt = mixInstr amt impulseMarimba2@@ -323,9 +316,7 @@ ---------------------------------------------- -- organs -cathedralOrgan = Patch- { patchInstr = at fromMono . mul 0.7 . onCps C.cathedralOrgan- , patchFx = fx1 0.27 largeHall2 }+cathedralOrgan = withLargeHall $ polySynt $ at fromMono . mul 0.7 . onCps C.cathedralOrgan -- [0, 30] data HammondOrgan = HammondOrgan @@ -338,17 +329,11 @@ hammondOrganm = hammondOrganm' def -hammondOrgan' (HammondOrgan detune) = Patch- { patchInstr = mul 0.4 . at fromMono . onCps (C.hammondOrgan detune)- , patchFx = fx1 0.15 smallRoom2 }+hammondOrgan' (HammondOrgan detune) = fx1 0.15 smallRoom2 $ polySynt $ mul 0.4 . at fromMono . onCps (C.hammondOrgan detune) -hammondOrganm' (HammondOrgan detune) = Patch- { patchInstr = mul 0.4 . at fromMono . onSig1 (C.hammondOrgan detune)- , patchFx = fx1 0.15 smallRoom2 }+hammondOrganm' (HammondOrgan detune) = fx1 0.15 smallRoom2 $ MonoSynt def $ mul 0.4 . at fromMono . onSig1 (C.hammondOrgan detune) -toneWheelOrgan = Patch- { patchInstr = at fromMono . mul (0.6 * fadeOut 0.05) . onCps C.toneWheel- , patchFx = fx1 0.3 smallHall2 }+toneWheelOrgan = withSmallHall $ polySynt $ at fromMono . mul (0.6 * fadeOut 0.05) . onCps C.toneWheel sawOrgan = mul 0.45 $ waveOrgan rndSaw triOrgan = mul 0.5 $ waveOrgan rndTri@@ -361,16 +346,10 @@ pwOrganm k = mul 0.45 $ waveOrganm (rndPw k) waveOrgan :: (Sig -> SE Sig) -> Patch2 -waveOrgan wave = Patch - { patchInstr = onCps $ at fromMono . mul (fades 0.01 0.01) . at (mlp 3500 0.1) . wave- , patchFx = fx1 0.25 smallHall2 - }+waveOrgan wave = withSmallHall $ polySynt $ onCps $ at fromMono . mul (fades 0.01 0.01) . at (mlp 3500 0.1) . wave -waveOrganm :: (Sig -> SE Sig) -> PatchSig2 -waveOrganm wave = Patch - { patchInstr = onSig1 $ at fromMono . mul (fades 0.01 0.01) . at (mlp 3500 0.1) . wave- , patchFx = fx1 0.25 smallHall2 - }+waveOrganm :: (Sig -> SE Sig) -> Patch2 +waveOrganm wave = withSmallHall $ MonoSynt def $ onSig1 $ at fromMono . mul (fades 0.01 0.01) . at (mlp 3500 0.1) . wave ---------------------------------------------- -- accordeons@@ -383,9 +362,7 @@ accordeonHeavy = accordeon' (C.Accordeon 1 0.501 2 1.005) brokenAccordeon = accordeon' (C.Accordeon 1 1.07 2.02 0.5) -accordeon' spec = Patch- { patchInstr = mul 0.63 . onCps (C.accordeon spec)- , patchFx = fx1' 0.25 C.accordeonFx }+accordeon' spec = fx1' 0.25 C.accordeonFx $ polySynt $ mul 0.63 . onCps (C.accordeon spec) ---------------------------------------------- -- choir@@ -395,22 +372,10 @@ instance Default Choir where def = Choir 7 -tenor' filt (Choir vib) = Patch - { patchInstr = at fromMono . mul 0.15 . onCps (C.tenorOsc filt vib)- , patchFx = fx1 0.25 smallHall2 }--soprano' filt (Choir vib) = Patch - { patchInstr = at fromMono . mul 0.15 . onCps (C.sopranoOsc filt vib)- , patchFx = fx1 0.25 smallHall2 }+tenor' filt (Choir vib) = withSmallHall $ polySynt $ at fromMono . mul 0.15 . onCps (C.tenorOsc filt vib)+soprano' filt (Choir vib) = withSmallHall $ polySynt $ at fromMono . mul 0.15 . onCps (C.sopranoOsc filt vib) -choir' filt vib = Patch- { patchInstr = \(amp, cps) -> do- ref <- newRef (0 :: Sig2)- when1 (sig cps <=* 220) $ writeRef ref =<< (patchInstr (tenor' filt vib) (amp, cps))- when1 (sig cps >* 220) $ writeRef ref =<< (patchInstr (soprano' filt vib) (amp, cps))- readRef ref- , patchFx = fx1 0.25 smallHall2 - }+choir' filt vib = withSmallHall $ SplitPatch (dryPatch $ tenor' filt vib) 220 (dryPatch $ soprano' filt vib) choirA = choirA' def choirO = choirO' def@@ -436,11 +401,11 @@ noisyChoir = noisyChoir' def -longNoisyChoir' (NoisyChoir n bw) = Patch- { patchInstr = at fromMono . mul 0.45 . onCps (C.noisyChoir n bw)- , patchFx = fx1 0.15 magicCave2 }+dryNoisyChoir (NoisyChoir n bw) = polySynt $ at fromMono . mul 0.45 . onCps (C.noisyChoir n bw) -noisyChoir' ch = (longNoisyChoir' ch) { patchFx = fx1 0.15 largeHall2 }+longNoisyChoir' ch = fx1 0.15 magicCave2 $ dryNoisyChoir ch+ +noisyChoir' ch = fx1 0.15 largeHall2 $ dryNoisyChoir ch -- modes (wth delay or not delay) --@@ -449,83 +414,37 @@ ---------------------------------------------- -- pads -pwPad = Patch- { patchInstr = mul 0.6 . at fromMono . onCps C.pwPad- , patchFx = fx1 0.25 smallHall2 }--pwPadm = Patch- { patchInstr = mul 0.6 . at fromMono . onSig1 C.pwPad- , patchFx = fx1 0.25 smallHall2 }--triPad = Patch - { patchInstr = fmap fromMono . mul 0.7 . onCps C.triPad- , patchFx = fx1' 0.25 C.triPadFx }--triPadm = Patch - { patchInstr = fmap fromMono . mul 0.7 . onSig1 C.triPad- , patchFx = fx1' 0.25 C.triPadFx }--nightPad = Patch- { patchInstr = mul 0.48 . at fromMono . onCps (mul (fadeOut 1) . C.nightPad 0.5)- , patchFx = fx1 0.25 largeHall2 }--nightPadm = Patch- { patchInstr = mul 0.48 . return . fromMono . onSig1 ((fadeOut 1 * ) . C.nightPad 0.5)- , patchFx = fx1 0.25 largeHall2 }--overtonePad = Patch- { patchInstr = mul 0.65 . at fromMono . mixAt 0.25 (mlp 1500 0.1) . onCps (\cps -> mul (fades 0.25 1.2) (C.tibetan 11 0.012 cps) + mul (fades 0.25 1) (C.tibetan 13 0.015 (cps * 0.5)))- , patchFx = fx1 0.35 smallHall2 }--overtonePadm = Patch- { patchInstr = mul 0.65 . return . fromMono . mixAt 0.25 (mlp 1500 0.1) . onSig1 (\cps -> mul (fades 0.25 1.2) (C.tibetan 11 0.012 cps) + mul (fades 0.25 1) (C.tibetan 13 0.015 (cps * 0.5)))- , patchFx = fx1 0.35 smallHall2 }--caveOvertonePad = overtonePad { patchFx = fx1 0.2 (magicCave2 . mul 0.8) }--caveOvertonePadm = overtonePadm { patchFx = fx1 0.2 (magicCave2 . mul 0.8) }--chorusel = Patch- { patchInstr = mul 0.9 . at (mlp (3500 + 2000 * uosc 0.1) 0.1) . onCps (mul (fades 0.65 1) . C.chorusel 13 0.5 10)- , patchFx = fx1 0.35 smallHall2 }+pwPad = withSmallHall $ polySynt $ mul 0.6 . at fromMono . onCps C.pwPad+pwPadm = withSmallHall $ MonoSynt def $ mul 0.6 . at fromMono . onSig1 C.pwPad -choruselm = Patch- { patchInstr = mul 0.9 . return . at (mlp (3500 + 2000 * uosc 0.1) 0.1) . onSig1 (mul (fades 0.65 1) . C.chorusel 13 0.5 10)- , patchFx = fx1 0.35 smallHall2 }+triPad = fx1' 0.25 C.triPadFx $ polySynt $ fmap fromMono . mul 0.7 . onCps C.triPad+triPadm = fx1' 0.25 C.triPadFx $ MonoSynt def $ fmap fromMono . mul 0.7 . onSig1 C.triPad -pwEnsemble = Patch- { patchInstr = at fromMono . mul 0.55 . onCps C.pwEnsemble- , patchFx = fx1 0.25 smallHall2 }+nightPad = withLargeHall $ polySynt $ mul 0.48 . at fromMono . onCps (mul (fadeOut 1) . C.nightPad 0.5)+nightPadm = withLargeHall $ MonoSynt def $ mul 0.48 . return . fromMono . onSig1 ((fadeOut 1 * ) . C.nightPad 0.5) -pwEnsemblem = Patch- { patchInstr = at fromMono . mul 0.55 . onSig1 C.pwEnsemble- , patchFx = fx1 0.25 smallHall2 }+overtonePad = fx1 0.35 smallHall2 $ polySynt $ mul 0.65 . at fromMono . mixAt 0.25 (mlp 1500 0.1) . onCps (\cps -> mul (fades 0.25 1.2) (C.tibetan 11 0.012 cps) + mul (fades 0.25 1) (C.tibetan 13 0.015 (cps * 0.5)))+overtonePadm = fx1 0.35 smallHall2 $ MonoSynt def $ mul 0.65 . return . fromMono . mixAt 0.25 (mlp 1500 0.1) . onSig1 (\cps -> mul (fades 0.25 1.2) (C.tibetan 11 0.012 cps) + mul (fades 0.25 1) (C.tibetan 13 0.015 (cps * 0.5))) -fmDroneSlow = Patch- { patchInstr = at fromMono . mul 0.5 . onCps (C.fmDrone 3 (10, 5))- , patchFx = fx1 0.35 largeHall2 }+caveOvertonePad = fx1 0.2 (magicCave2 . mul 0.8) $ dryPatch overtonePad+caveOvertonePadm = fx1 0.2 (magicCave2 . mul 0.8) $ dryPatch overtonePadm -fmDroneSlowm = Patch- { patchInstr = return . at fromMono . mul 0.5 . onSig1 (C.fmDrone 3 (10, 5))- , patchFx = fx1 0.35 largeHall2 }+chorusel = fx1 0.35 smallHall2 $ polySynt $ mul 0.9 . at (mlp (3500 + 2000 * uosc 0.1) 0.1) . onCps (mul (fades 0.65 1) . C.chorusel 13 0.5 10)+choruselm = fx1 0.35 smallHall2 $ MonoSynt def $ mul 0.9 . return . at (mlp (3500 + 2000 * uosc 0.1) 0.1) . onSig1 (mul (fades 0.65 1) . C.chorusel 13 0.5 10) -fmDroneMedium = Patch- { patchInstr = at fromMono . mul 0.5 . onCps (C.fmDrone 3 (5, 3))- , patchFx = fx1 0.25 smallHall2 }+pwEnsemble = withSmallHall $ polySynt $ at fromMono . mul 0.55 . onCps C.pwEnsemble+pwEnsemblem = withSmallHall $ MonoSynt def $ at fromMono . mul 0.55 . onSig1 C.pwEnsemble -fmDroneMediumm = Patch- { patchInstr = return . at fromMono . mul 0.5 . onSig1 (C.fmDrone 3 (5, 3))- , patchFx = fx1 0.25 smallHall2 }+fmDroneSlow = fx1 0.35 largeHall2 $ polySynt $ at fromMono . mul 0.5 . onCps (C.fmDrone 3 (10, 5))+fmDroneSlowm = fx1 0.35 largeHall2 $ MonoSynt def $ return . at fromMono . mul 0.5 . onSig1 (C.fmDrone 3 (10, 5)) -fmDroneFast = Patch- { patchInstr = at fromMono . mul 0.5 . onCps (C.fmDrone 3 (0.5, 1))- , patchFx = fx1 0.25 smallHall2 } +fmDroneMedium = fx1 0.35 largeHall2 $ polySynt $ at fromMono . mul 0.5 . onCps (C.fmDrone 3 (5, 3))+fmDroneMediumm = fx1 0.35 largeHall2 $ MonoSynt def $ return . at fromMono . mul 0.5 . onSig1 (C.fmDrone 3 (5, 3)) -fmDroneFastm = Patch- { patchInstr = return . at fromMono . mul 0.5 . onSig1 (C.fmDrone 3 (0.5, 1))- , patchFx = fx1 0.25 smallHall2 } +fmDroneFast = fx1 0.25 smallHall2 $ polySynt $ at fromMono . mul 0.5 . onCps (C.fmDrone 3 (0.5, 1))+fmDroneFastm = fx1 0.25 smallHall2 $ MonoSynt def $ return . at fromMono . mul 0.5 . onSig1 (C.fmDrone 3 (0.5, 1)) -vibrophonePad = largeVibraphone1 { patchInstr = mul (1.5 * fades 0.5 0.25) . at (mlp 2500 0.1). patchInstr largeVibraphone1 }+vibrophonePad = mapPatchInstr (\instr -> mul (1.5 * fades 0.5 0.25) . at (mlp 2500 0.1). instr) largeVibraphone1 data RazorPad = RazorPad { razorPadSpeed :: Sig } @@ -544,16 +463,10 @@ razorPadm = razorPadm' def -razorPad' (RazorPad speed) = Patch- { patchInstr = at fromMono . mul 0.6 . onCps (uncurry $ C.razorPad speed)- , patchFx = fx1 0.35 largeHall2 }---razorPadm' (RazorPad speed) = Patch- { patchInstr = at fromMono . mul 0.6 . (uncurry $ C.razorPad speed)- , patchFx = fx1 0.35 largeHall2 }+razorPad' (RazorPad speed) = fx1 0.35 largeHall2 $ polySynt $ at fromMono . mul 0.6 . onCps (uncurry $ C.razorPad speed)+razorPadm' (RazorPad speed) = fx1 0.35 largeHall2 $ MonoSynt def $ at fromMono . mul 0.6 . (uncurry $ C.razorPad speed) -dreamPadFx = [FxSpec 0.35 (return . largeHall2), FxSpec 0.25 (at $ echo 0.25 0.65), FxSpec 0.25 (at $ chorus 0.07 1.25 1)]+dreamPadFx = FxChain [FxSpec 0.35 (return . largeHall2), FxSpec 0.25 (at $ echo 0.25 0.65), FxSpec 0.25 (at $ chorus 0.07 1.25 1)] dreamPad = dreamPad' 0.35 underwaterPad = underwaterPad' 0.35@@ -571,88 +484,52 @@ -- | The first argument is brightness (0 to 1) dreamPad' :: Sig -> Patch2-dreamPad' bright = Patch - { patchInstr = fmap fromMono . onCps (C.dreamPad bright) - , patchFx = dreamPadFx- }+dreamPad' bright = dreamPadFx $ polySynt $ fmap fromMono . onCps (C.dreamPad bright) -- | The first argument is brightness. The second argument is a wave shape function. dreamPadBy' :: Sig -> (Sig -> SE Sig) -> Patch2-dreamPadBy' bright wave = Patch - { patchInstr = fmap fromMono . onCps (C.dreamPadBy wave bright) - , patchFx = dreamPadFx- }+dreamPadBy' bright wave = dreamPadFx $ polySynt $ fmap fromMono . onCps (C.dreamPadBy wave bright) -- | The first argument is brightness (0 to 1)-dreamPadm' :: Sig -> PatchSig2-dreamPadm' bright = Patch - { patchInstr = fmap fromMono . onSig1 (C.dreamPad bright) - , patchFx = dreamPadFx- }+dreamPadm' :: Sig -> Patch2+dreamPadm' bright = dreamPadFx $ MonoSynt def $ fmap fromMono . onSig1 (C.dreamPad bright) -- | The first argument is brightness (0 to 1). The second argument is a wave function.-dreamPadBym' :: Sig -> (Sig -> SE Sig) -> PatchSig2-dreamPadBym' bright wave = Patch - { patchInstr = fmap fromMono . onSig1 (C.dreamPadBy wave bright)- , patchFx = dreamPadFx- }+dreamPadBym' :: Sig -> (Sig -> SE Sig) -> Patch2+dreamPadBym' bright wave = dreamPadFx $ MonoSynt def $ fmap fromMono . onSig1 (C.dreamPadBy wave bright) -- | The first argument is brightness (0 to 1) underwaterPad' :: Sig -> Patch2-underwaterPad' bright = Patch - { patchInstr = fmap fromMono . onCps (C.underwaterPad bright) - , patchFx = dreamPadFx- }+underwaterPad' bright = dreamPadFx $ polySynt $ fmap fromMono . onCps (C.underwaterPad bright) -- | The first argument is brightness (0 to 1)-underwaterPadm' :: Sig -> PatchSig2-underwaterPadm' bright = Patch - { patchInstr = fmap fromMono . onSig1 (C.underwaterPad bright) - , patchFx = dreamPadFx- }+underwaterPadm' :: Sig -> Patch2+underwaterPadm' bright = dreamPadFx $ MonoSynt def $ fmap fromMono . onSig1 (C.underwaterPad bright) -- | The first argument is brightness (0 to 1) lightIsTooBrightPad' :: Sig -> Patch2-lightIsTooBrightPad' bright = Patch - { patchInstr = fmap fromMono . onCps (C.lightIsTooBrightPad bright) - , patchFx = dreamPadFx- }+lightIsTooBrightPad' bright = dreamPadFx $ polySynt $ fmap fromMono . onCps (C.lightIsTooBrightPad bright) -lightIsTooBrightPadm' :: Sig -> PatchSig2-lightIsTooBrightPadm' bright = Patch - { patchInstr = fmap fromMono . onSig1 (C.lightIsTooBrightPad bright) - , patchFx = dreamPadFx- }+lightIsTooBrightPadm' :: Sig -> Patch2+lightIsTooBrightPadm' bright = dreamPadFx $ MonoSynt def $ fmap fromMono . onSig1 (C.lightIsTooBrightPad bright) -- | The first argument is brightness (0 to 1) whaleSongPad' :: Sig -> Patch2-whaleSongPad' bright = Patch - { patchInstr = fmap fromMono . onCps (C.whaleSongPad bright) - , patchFx = dreamPadFx- }+whaleSongPad' bright = dreamPadFx $ polySynt $ fmap fromMono . onCps (C.whaleSongPad bright) -whaleSongPadm' :: Sig -> PatchSig2-whaleSongPadm' bright = Patch - { patchInstr = fmap fromMono . onSig1 (C.whaleSongPad bright) - , patchFx = dreamPadFx- }+whaleSongPadm' :: Sig -> Patch2+whaleSongPadm' bright = dreamPadFx $ MonoSynt def $ fmap fromMono . onSig1 (C.whaleSongPad bright) ------------------------------------ -- leads -polySynth = Patch - { patchInstr = fmap fromMono . onCps C.polySynth - , patchFx = [FxSpec 0.25 (return . largeHall2), FxSpec 0.25 (at $ echo 0.25 0.65), FxSpec 0.25 (at $ chorus 0.07 1.25 1)]- }+polySynth = fxs $ polySynt $ fmap fromMono . onCps C.polySynth + where fxs = FxChain [FxSpec 0.25 (return . largeHall2), FxSpec 0.25 (at $ echo 0.25 0.65), FxSpec 0.25 (at $ chorus 0.07 1.25 1)] -polySynthm = Patch - { patchInstr = fmap fromMono . onSig1 C.polySynth - , patchFx = [FxSpec 0.25 (return . largeHall2), FxSpec 0.25 (at $ echo 0.25 0.65), FxSpec 0.25 (at $ chorus 0.07 1.25 1)]- }+polySynthm = fxs $ MonoSynt def $ fmap fromMono . onSig1 C.polySynth + where fxs = FxChain [FxSpec 0.25 (return . largeHall2), FxSpec 0.25 (at $ echo 0.25 0.65), FxSpec 0.25 (at $ chorus 0.07 1.25 1)] -phasingLead = Patch- { patchInstr = at fromMono . mul (0.7 * fadeOut 0.05) . onCps (uncurry C.phasingSynth)- , patchFx = fx1 0.25 smallHall2 }+phasingLead = withSmallHall $ polySynt $ at fromMono . mul (0.7 * fadeOut 0.05) . onCps (uncurry C.phasingSynth) data RazorLead = RazorLead { razorLeadBright :: Sig @@ -667,32 +544,22 @@ razorLead = razorLead' def -razorLead' (RazorLead bright speed) = Patch- { patchInstr = at fromMono . (\(amp, cps) -> mul (fadeOut (0.05 + amp * 0.3)) $ C.razorLead (bright * sig amp) (speed * sig amp) (sig amp) (sig cps))- , patchFx = fx1 0.35 smallHall2 }+razorLead' (RazorLead bright speed) = fx1 0.35 smallHall2 $ polySynt $ at fromMono . (\(amp, cps) -> mul (fadeOut (0.05 + amp * 0.3)) $ C.razorLead (bright * sig amp) (speed * sig amp) (sig amp) (sig cps)) overtoneLeadFx :: Sig2 -> SE Sig2 overtoneLeadFx x = fmap magicCave2 $ mixAt 0.2 (echo 0.25 0.45) x overtoneLead :: Patch2-overtoneLead = Patch- { patchInstr = mul 0.4 . at fromMono . onCps (mul (fades 0.01 1) . C.tibetan 13 0.012)- , patchFx = fx1' 0.15 overtoneLeadFx }+overtoneLead = fx1' 0.15 overtoneLeadFx $ polySynt $ mul 0.4 . at fromMono . onCps (mul (fades 0.01 1) . C.tibetan 13 0.012) ------------------------------------ -- bass -simpleBass = Patch - { patchInstr = at fromMono . mul 0.32 . onCps C.simpleBass- , patchFx = fx1 0.25 smallRoom2 }+simpleBass = withSmallRoom $ polySynt $ at fromMono . mul 0.32 . onCps C.simpleBass -pwBass = Patch - { patchInstr = at fromMono . mul 0.4 . onCps C.pwBass- , patchFx = fx1 0.25 smallHall2 }+pwBass = withSmallHall $ polySynt $ at fromMono . mul 0.4 . onCps C.pwBass -deepBass = Patch- { patchInstr = at fromMono . mul 0.4 . onCps C.deepBass- , patchFx = fx1 0.25 smallHall2 }+deepBass = withSmallHall $ polySynt $ at fromMono . mul 0.4 . onCps C.deepBass -- | The first argument is the amount of deepBass to mix into the original patch. withDeepBass :: Sig -> Patch2 -> Patch2@@ -701,15 +568,9 @@ ------------------------------------ -- plucked -guitar = Patch- { patchInstr = onCps $ fromMono . mul (0.6 * fades 0.01 0.25) . C.plainString- , patchFx = fx1 0.25 smallHall2 }--harpsichord = Patch- { patchInstr = onCps $ fromMono . mul (0.65 * fades 0.01 0.13) . C.harpsichord- , patchFx = fx1 0.25 smallHall2 }+guitar = withSmallHall $ polySynt $ onCps $ fromMono . mul (0.6 * fades 0.01 0.25) . C.plainString --- guita+harpsichord = withSmallHall $ polySynt $ onCps $ fromMono . mul (0.65 * fades 0.01 0.13) . C.harpsichord ------------------------------------ -- strike@@ -731,12 +592,9 @@ def = Strike 1.5 True smallHall2 strike' :: Strike -> (Sig -> Sig) -> Patch2-strike' spec instr = Patch - { patchInstr = \x@(amp, cps) -> return $ fromMono $ mul (0.75 * sig amp * fadeOut (rel x)) $ instr (sig cps)- , patchFx = fx1' 0.25 (strikeFx spec) }+strike' spec instr = fx1' 0.25 (strikeFx spec) $ polySynt $ \x@(amp, cps) -> return $ fromMono $ mul (0.75 * sig amp * fadeOut (rel x)) $ instr (sig cps) where rel a = strikeRelease a spec - data Size = Small | Medium | Large | Huge nextSize x = case x of@@ -818,7 +676,7 @@ magicStrike size = mediumStrike' (nextSize $ nextSize size) size mediumStrike' :: Size -> Size -> (Sig -> Sig) -> Patch2-mediumStrike' revSize size f = p { patchInstr = mul (toGain size) . patchInstr p }+mediumStrike' revSize size f = mapPatchInstr (\instr -> mul (toGain size) . instr) p where p = strike' (toStrikeSpec revSize size) f @@ -940,25 +798,15 @@ scrapeRelease :: (D, D) -> D -> D scrapeRelease (amp, cps) rel = (0.85 * rel * amp) * amp + rel - (cps / 10000) -scrapeFast k m = Patch - { patchInstr = \x@(amp, cps) -> (mul (0.75 * sig amp * k * fades 0.02 (scrapeRelease x 0.25)) . at fromMono . C.scrapeModes m) (sig cps)- , patchFx = fx1 0.15 largeHall2 }+scrapeFast k m = fx1 0.15 largeHall2 $ polySynt $ \x@(amp, cps) -> (mul (0.75 * sig amp * k * fades 0.02 (scrapeRelease x 0.25)) . at fromMono . C.scrapeModes m) (sig cps) -scrape k m = Patch - { patchInstr = \x@(amp, cps) -> (mul (0.75 * sig amp * k * fades 0.5 (scrapeRelease x 0.97)) . at fromMono . C.scrapeModes m) (sig cps)- , patchFx = fx1 0.15 largeHall2 }+scrape k m = fx1 0.15 largeHall2 $ polySynt $ \x@(amp, cps) -> (mul (0.75 * sig amp * k * fades 0.5 (scrapeRelease x 0.97)) . at fromMono . C.scrapeModes m) (sig cps) -scrapem k m = Patch - { patchInstr = \(amp, cps) -> (mul (0.75 * amp * k * fades 0.5 1.97) . at fromMono . C.scrapeModes m) cps- , patchFx = fx1 0.15 largeHall2 }+scrapem k m = fx1 0.15 largeHall2 $ MonoSynt def $ \(amp, cps) -> (mul (0.75 * amp * k * fades 0.5 1.97) . at fromMono . C.scrapeModes m) cps -scrapePad k m = Patch - { patchInstr = \x@(amp, cps) -> (mul (0.75 * sig amp * k * fades 0.5 (scrapeRelease x 2.27 )) . at fromMono . C.scrapeModes m) (sig cps)- , patchFx = fx1 0.15 largeHall2 }+scrapePad k m = fx1 0.15 largeHall2 $ polySynt $ \x@(amp, cps) -> (mul (0.75 * sig amp * k * fades 0.5 (scrapeRelease x 2.27 )) . at fromMono . C.scrapeModes m) (sig cps) -scrapePadm k m = Patch - { patchInstr = \(amp, cps) -> (mul (0.75 * amp * k * fades 0.5 2.27) . at fromMono . C.scrapeModes m) cps- , patchFx = fx1 0.15 largeHall2 } +scrapePadm k m = fx1 0.15 largeHall2 $ MonoSynt def $ \(amp, cps) -> (mul (0.75 * amp * k * fades 0.5 2.27) . at fromMono . C.scrapeModes m) cps scaleScrapeDahina = 1.32 scaleScrapeBanyan = 0.95@@ -1103,13 +951,11 @@ , windVib :: D , windBright :: D } -woodWind' spec instr = Patch - { patchInstr = \(amp, cps) -> mul 1.3 $ do +woodWind' spec instr = withSmallHall $ polySynt $ \(amp, cps) -> mul 1.3 $ do seed <- rnd 1 vibDisp <- rnd (0.1 * amp) let dispVib vib = vib * (0.9 + vibDisp) return $ fromMono $ mul (0.8 * sig amp * fadeOut (windDec spec)) $ instr seed (dispVib $ windVib spec) (windAtt spec) (windSus spec) (windDec spec) (0.4 + 0.75 * windBright spec * amp) cps- , patchFx = fx1 0.25 smallHall2 } -- flute @@ -1361,83 +1207,47 @@ ------------------------------------ -- x-rays -pulseWidth = Patch- { patchInstr = mul (0.75 * 0.6) . at fromMono . mul (fades 0.07 0.1). onCps (uncurry C.pulseWidth)- , patchFx = fx1 0.15 smallHall2 } +pulseWidth = fx1 0.15 smallHall2 $ polySynt $ mul (0.75 * 0.6) . at fromMono . mul (fades 0.07 0.1). onCps (uncurry C.pulseWidth) -xanadu = Patch- { patchInstr = mul (1.2 * 0.6) . at fromMono . mul (fades 0.01 2.2). onCps C.xanadu1- , patchFx = fx1 0.27 largeHall2 }+xanadu = fx1 0.27 largeHall2 $polySynt $ mul (1.2 * 0.6) . at fromMono . mul (fades 0.01 2.2). onCps C.xanadu1 -alienIsAngry = Patch- { patchInstr = at fromMono . mul (0.5 * fades 0.01 2.3). onCps (C.fmMod 5)- , patchFx = fx1 0.15 smallRoom2 }+alienIsAngry = fx1 0.15 smallRoom2 $ polySynt $ at fromMono . mul (0.5 * fades 0.01 2.3). onCps (C.fmMod 5) -noiz = Patch- { patchInstr = at fromMono . mul (1.5 * fades 0.01 0.5). onCps C.noiz- , patchFx = fx1 0.15 smallHall2 }+noiz = fx1 0.15 smallHall2 $ polySynt $ at fromMono . mul (1.5 * fades 0.01 0.5). onCps C.noiz -blue = Patch- { patchInstr = at fromMono . mul (1.5 * fades 0.01 0.5). onCps (C.blue 5 7 0.24 12)- , patchFx = fx1 0.25 smallHall2 } +blue = fx1 0.25 smallHall2 $ polySynt $ at fromMono . mul (1.5 * fades 0.01 0.5). onCps (C.blue 5 7 0.24 12) -black = Patch- { patchInstr = at fromMono . mul (2 * fades 0.01 0.5). onCps (\cps -> C.black 3 (cps / 2) (cps * 2) 12 (sig cps))- , patchFx = fx1 0.25 smallHall2 }+black = fx1 0.25 smallHall2 $ polySynt $ at fromMono . mul (2 * fades 0.01 0.5). onCps (\cps -> C.black 3 (cps / 2) (cps * 2) 12 (sig cps)) -simpleMarimba = Patch- { patchInstr = at fromMono . mul (0.8 * fades 0.01 0.5). onCps (C.simpleMarimba 5)- , patchFx = fx1 0.25 smallHall2 }+simpleMarimba = fx1 0.25 smallHall2 $ polySynt $ at fromMono . mul (0.8 * fades 0.01 0.5). onCps (C.simpleMarimba 5) -impulseMarimba1 = Patch- { patchInstr = at fromMono . mul (0.8 * fadeOut 0.75). onCps C.impulseMarimba1- , patchFx = fx1 0.3 smallHall2 }+impulseMarimba1 = fx1 0.3 smallHall2 $ polySynt $ at fromMono . mul (0.8 * fadeOut 0.75). onCps C.impulseMarimba1 -impulseMarimba2 = Patch- { patchInstr = at fromMono . mul (0.8 * fadeOut 0.75). onCps C.impulseMarimba2- , patchFx = fx1 0.3 smallHall2 }+impulseMarimba2 = fx1 0.3 smallHall2 $ polySynt $ at fromMono . mul (0.8 * fadeOut 0.75). onCps C.impulseMarimba2 -okComputer = Patch- { patchInstr = \(amp, cps) -> (at fromMono . mul (0.75 * sig amp * fades 0.01 0.01) . at (mlp (1500 + sig amp * 8500) 0.1) . (C.okComputer . (/ 25))) (sig cps)- , patchFx = fx1 0.25 id }+okComputer = polySynt $ \(amp, cps) -> (at fromMono . mul (0.75 * sig amp * fades 0.01 0.01) . at (mlp (1500 + sig amp * 8500) 0.1) . (C.okComputer . (/ 25))) (sig cps) -snowCrackle = Patch- { patchInstr = \(amp, cps) -> (return . fromMono . mul (0.8 * sig amp * fades 0.001 0.001) . (C.snowCrackle . (/ 25))) (sig cps)- , patchFx = fx1 0.25 id }+snowCrackle = polySynt $ \(amp, cps) -> (return . fromMono . mul (0.8 * sig amp * fades 0.001 0.001) . (C.snowCrackle . (/ 25))) (sig cps) -noiseBell = Patch - { patchInstr = at fromMono . mul 0.75 . onCps (C.noiseBell (31, 125) 2.3 0.2 . ( * 8))- , patchFx = fx1 0.25 smallHall2 }+noiseBell = fx1 0.25 smallHall2 $ polySynt $ at fromMono . mul 0.75 . onCps (C.noiseBell (31, 125) 2.3 0.2 . ( * 8)) ------------------------------------ -- vowels -robotVowels vows latVow = Patch- { patchInstr = at fromMono . mul (1.1 * fades 0.1 0.1). onCps (C.vowels 25 vows latVow)- , patchFx = fx1 0.15 smallHall2 }+robotVowels vows latVow = fx1 0.15 smallHall2 $ polySynt $ at fromMono . mul (1.1 * fades 0.1 0.1). onCps (C.vowels 25 vows latVow) -robotLoopVowels loopDur vows = Patch- { patchInstr = at fromMono . mul (1.1 * fades 0.1 0.1). onCps (C.loopVowels 25 loopDur vows)- , patchFx = fx1 0.15 smallHall2 }+robotLoopVowels loopDur vows = fx1 0.15 smallHall2 $ polySynt $ at fromMono . mul (1.1 * fades 0.1 0.1). onCps (C.loopVowels 25 loopDur vows) -robotVowel vow = Patch- { patchInstr = at fromMono . mul (1.1 * fades 0.1 0.1). onCps (C.oneVowel 25 vow)- , patchFx = fx1 0.15 smallHall2 }+robotVowel vow = fx1 0.15 smallHall2 $ polySynt $ at fromMono . mul (1.1 * fades 0.1 0.1). onCps (C.oneVowel 25 vow) ------------------------------------ -- nature / effects -windWall = Patch- { patchInstr = at fromMono . mul (1.25 * fades 0.1 5). onCps C.windWall- , patchFx = fx1 0.25 largeHall2 }+windWall = withLargeHall $ polySynt $ at fromMono . mul (1.25 * fades 0.1 5). onCps C.windWall -mildWind = Patch- { patchInstr = at fromMono . mul (1.25 * fades 0.1 1.5). onCps C.mildWind- , patchFx = fx1 0.25 largeHall2 }+mildWind = withLargeHall $ polySynt $ at fromMono . mul (1.25 * fades 0.1 1.5). onCps C.mildWind -wind = Patch- { patchInstr = at fromMono . mul (0.8 * fades 0.1 1.5). onCps (\cps -> C.thorWind (cps * 2) 150 (0.3, 1))- , patchFx = fx1 0.25 largeHall2 }+wind = withLargeHall $ polySynt $ at fromMono . mul (0.8 * fades 0.1 1.5). onCps (\cps -> C.thorWind (cps * 2) 150 (0.3, 1)) ------------------------------------ -- drums@@ -1447,31 +1257,19 @@ -- | Solo instrument. soloSharc :: SharcInstr -> Patch2-soloSharc instr = Patch - { patchInstr = fmap fromMono . onCps (C.soloSharcOsc instr)- , patchFx = fx1 0.25 smallHall2- }+soloSharc instr = withSmallHall $ polySynt $ fmap fromMono . onCps (C.soloSharcOsc instr) -- | Instrumet played in ensemble (with chorus). orcSharc :: SharcInstr -> Patch2-orcSharc instr = Patch - { patchInstr = fmap fromMono . onCps (C.orcSharcOsc instr)- , patchFx = fx1 0.25 largeHall2- }+orcSharc instr = withLargeHall $ polySynt $ fmap fromMono . onCps (C.orcSharcOsc instr) -- | Pad orchestra instrument. padSharc :: SharcInstr -> Patch2-padSharc instr = Patch - { patchInstr = fmap fromMono . onCps (C.padSharcOsc instr)- , patchFx = fx1 0.35 largeHall2- }+padSharc instr = withLargeHall $ polySynt $ fmap fromMono . onCps (C.padSharcOsc instr) -- | Pad solo instrument.` purePadSharc :: SharcInstr -> Patch2-purePadSharc instr = Patch - { patchInstr = fmap fromMono . onCps (C.purePadSharcOsc instr)- , patchFx = fx1 0.35 largeHall2- }+purePadSharc instr = fx1 0.35 largeHall2 $ polySynt $ fmap fromMono . onCps (C.purePadSharcOsc instr) -- | Dream Pad patch made with SHARC oscillators. dreamSharc :: SharcInstr -> Patch2@@ -1481,7 +1279,6 @@ dreamSharc' :: SharcInstr -> Sig -> Patch2 dreamSharc' instr brightness = dreamPadBy' brightness (\cps -> C.rndSigSharcOsc instr (ir cps) cps) - type PadsynthBandwidth = Double -- | Padsynth instrument with organ-like amplitude envelope.@@ -1496,10 +1293,8 @@ -- | Padsynth instrument with organ-like amplitude envelope. We can specify aux parameters. psOrganSharc' :: PadSharcSpec -> SharcInstr -> Patch2-psOrganSharc' spec sh = Patch - { patchInstr = mul (0.5 * fades 0.01 0.1) . onCps (C.padsynthSharcOsc2' spec sh)- , patchFx = [FxSpec 0.25 (return . smallHall2), FxSpec 1 (return . (at $ mul 1.4 . saturator 0.75))]- }+psOrganSharc' spec sh = fxs $ polySynt $ mul (0.5 * fades 0.01 0.1) . onCps (C.padsynthSharcOsc2' spec sh)+ where fxs = FxChain [FxSpec 0.25 (return . smallHall2), FxSpec 1 (return . (at $ mul 1.4 . saturator 0.75))] -- | Padsynth instrument with organ-like amplitude envelope and huge reverb. psLargeOrganSharc :: SharcInstr -> Patch2@@ -1511,10 +1306,8 @@ -- | Padsynth instrument with organ-like amplitude envelope and huge reverb. psLargeOrganSharc' :: PadSharcSpec -> SharcInstr -> Patch2-psLargeOrganSharc' spec sh = Patch - { patchInstr = mul (0.65 * fades 0.01 0.1) . onCps (C.padsynthSharcOsc2' spec sh)- , patchFx = [FxSpec 0.35 (return . largeHall2), FxSpec 1 (return . (at $ mul 1.4 . saturator 0.75))]- }+psLargeOrganSharc' spec sh = fxs $ polySynt $ mul (0.65 * fades 0.01 0.1) . onCps (C.padsynthSharcOsc2' spec sh)+ where fxs = FxChain [FxSpec 0.35 (return . largeHall2), FxSpec 1 (return . (at $ mul 1.4 . saturator 0.75))] -- | Padsynth instrument with piano-like amplitude envelope. psPianoSharc :: ReleaseTime -> SharcInstr -> Patch2@@ -1526,11 +1319,8 @@ -- | Padsynth instrument with piano-like amplitude envelope. We can specify aux parameters. psPianoSharc' :: PadSharcSpec -> ReleaseTime -> SharcInstr -> Patch2-psPianoSharc' spec releaseTime sh = Patch - { patchInstr = \ampCps -> mul (0.75 * C.pianoEnv releaseTime ampCps) $ onCps (C.padsynthSharcOsc2' spec sh) ampCps- , patchFx = [FxSpec 0.15 (return . smallHall2), FxSpec 1 (return . (at $ mul 1.4 . saturator 0.75))]- }-+psPianoSharc' spec releaseTime sh = fxs $ polySynt $ \ampCps -> mul (0.75 * C.pianoEnv releaseTime ampCps) $ onCps (C.padsynthSharcOsc2' spec sh) ampCps+ where fxs = FxChain [FxSpec 0.15 (return . smallHall2), FxSpec 1 (return . (at $ mul 1.4 . saturator 0.75))] -- | Padsynth instrument with piano-like amplitude envelope. xpsPianoSharc :: ReleaseTime -> SharcInstr -> Patch2@@ -1542,11 +1332,8 @@ -- | Padsynth instrument with piano-like amplitude envelope. We can specify aux parameters. xpsPianoSharc' :: PadSharcSpec -> ReleaseTime -> SharcInstr -> Patch2-xpsPianoSharc' spec releaseTime sh = addHammer 0.12 $ Patch - { patchInstr = \ampCps -> mul (0.75 * C.xpianoEnv releaseTime ampCps) $ onCps (C.padsynthSharcOsc2' spec sh) ampCps- , patchFx = [FxSpec 0.15 (return . smallHall2), FxSpec 1 (return . (at $ mul 1.4 . saturator 0.75))]- }-+xpsPianoSharc' spec releaseTime sh = addHammer 0.12 $ fxs $ polySynt $ \ampCps -> mul (0.75 * C.xpianoEnv releaseTime ampCps) $ onCps (C.padsynthSharcOsc2' spec sh) ampCps+ where fxs = FxChain [FxSpec 0.15 (return . smallHall2), FxSpec 1 (return . (at $ mul 1.4 . saturator 0.75))] -- | Padsynth instrument with piano-like amplitude envelope. psLargePianoSharc :: ReleaseTime -> SharcInstr -> Patch2@@ -1558,10 +1345,8 @@ -- | Padsynth instrument with piano-like amplitude envelope. We can specify aux parameters. psLargePianoSharc' :: PadSharcSpec -> ReleaseTime -> SharcInstr -> Patch2-psLargePianoSharc' spec releaseTime sh = Patch - { patchInstr = \ampCps -> mul (0.75 * C.pianoEnv releaseTime ampCps) $ onCps (C.padsynthSharcOsc2' spec sh) ampCps- , patchFx = [FxSpec 0.15 (return . largeHall2), FxSpec 1 (return . (at $ mul 1.4 . saturator 0.75))]- }+psLargePianoSharc' spec releaseTime sh = fxs $ polySynt $ \ampCps -> mul (0.75 * C.pianoEnv releaseTime ampCps) $ onCps (C.padsynthSharcOsc2' spec sh) ampCps+ where fxs = FxChain [FxSpec 0.15 (return . largeHall2), FxSpec 1 (return . (at $ mul 1.4 . saturator 0.75))] -- | Padsynth instrument with piano-like amplitude envelope. xpsLargePianoSharc :: ReleaseTime -> SharcInstr -> Patch2@@ -1573,10 +1358,8 @@ -- | Padsynth instrument with piano-like amplitude envelope. We can specify aux parameters. xpsLargePianoSharc' :: PadSharcSpec -> ReleaseTime -> SharcInstr -> Patch2-xpsLargePianoSharc' spec releaseTime sh = Patch - { patchInstr = \ampCps -> mul (0.75 * C.xpianoEnv releaseTime ampCps) $ onCps (C.padsynthSharcOsc2' spec sh) ampCps- , patchFx = [FxSpec 0.15 (return . largeHall2), FxSpec 1 (return . (at $ mul 1.4 . saturator 0.75))]- }+xpsLargePianoSharc' spec releaseTime sh = fxs $ polySynt $ \ampCps -> mul (0.75 * C.xpianoEnv releaseTime ampCps) $ onCps (C.padsynthSharcOsc2' spec sh) ampCps+ where fxs = FxChain [FxSpec 0.15 (return . largeHall2), FxSpec 1 (return . (at $ mul 1.4 . saturator 0.75))] psPadFilterBy :: Sig -> Sig -> (Sig -> Sig -> Sig -> Sig) -> (D, D) -> Sig -> Sig psPadFilterBy rippleLevel q resonFilter ampCps = resonFilter (0.3 * (sig $ snd ampCps) + 2500 + 2000 * fades 0.15 (0.6 + rel ampCps) + rippleLevel * slope 0.75 0.5 * osc 8) q@@ -1598,11 +1381,10 @@ psDeepOscCfd4 koeffX koeffY (spec1, sh1) (spec2, sh2) (spec3, sh3) (spec4, sh4) = deepOsc (psOscCfd4 koeffX koeffY (spec1, sh1) (spec2, sh2) (spec3, sh3) (spec4, sh4)) genPsPad :: (Sig2 -> Sig2) -> ((D, D) -> Sig -> Sig) -> (D -> SE Sig2) -> Patch2-genPsPad effect filter wave = Patch - { patchInstr = \ampCps -> mul (0.45 * fades 0.5 (0.6 + rel ampCps)) $ onCps (at (filter ampCps) . wave) ampCps- , patchFx = [FxSpec 0.25 (return . effect), FxSpec 0.5 (return . (at $ mul 1.6 . saturator 0.75)), FxSpec 0.3 (at $ echo 0.125 0.65)]- }- where rel (amp, cps) = amp - cps / 3500+genPsPad effect filter wave = fxs $ polySynt $ \ampCps -> mul (1.2 * fades 0.5 (0.6 + rel ampCps)) $ onCps (at (filter ampCps) . wave) ampCps+ where + fxs = FxChain [FxSpec 0.25 (return . effect), FxSpec 0.5 (return . (at $ mul 2.1 . saturator 0.75)), FxSpec 0.3 (at $ echo 0.125 0.65)]+ rel (amp, cps) = amp - cps / 3500 -- | Padsynth instrument with pad-like amplitude envelope. psPadSharc :: SharcInstr -> Patch2@@ -1976,11 +1758,9 @@ -- noisy padsynth pads noisyRise :: Patch2-noisyRise = Patch {- patchInstr = onCps $ \cps -> mul 0.24 $ wave cps,- patchFx = [FxSpec 0.35 (return . largeHall2), FxSpec 0.5 (at $ echo 0.25 0.85)]- }- where +noisyRise = fxs $ polySynt $ onCps $ \cps -> mul 0.24 $ wave cps+ where+ fxs = FxChain [FxSpec 0.35 (return . largeHall2), FxSpec 0.5 (at $ echo 0.25 0.85)] wave x = noisy x + pad x noisy x = at (mul 0.3 . fromMono . bat (bp (x * 5) 23) . lp (300 + 2500 * linseg [0, 0.73, 0, 8, 3]) 14) white pad x = envelope $ filter x $ padsynthOsc2 spec x + mul 0.15 (padsynthOsc2 spec (x * 5)) + mul 0.5 (padsynthOsc2 spec (x / 2))@@ -1997,11 +1777,10 @@ -- -- > noisySpiral' finalSpeedOfOscillation noisySpiral' :: D -> Patch2-noisySpiral' spiralSpeed = Patch {- patchInstr = onCps $ \cps -> mul 0.24 $ wave cps,- patchFx = [FxSpec 0.15 (return . magicCave2), FxSpec 0.43 (at $ echo 0.35 0.85)] - }+noisySpiral' spiralSpeed = fxs $ polySynt $ onCps $ \cps -> mul 0.24 $ wave cps where+ fxs = FxChain [FxSpec 0.15 (return . magicCave2), FxSpec 0.43 (at $ echo 0.35 0.85)] + wave x = noisy x + pad x noisy x = at (mul 0.3 . fromMono . bat (bp (x * 5) 23) . lp (300 + 2500 * linseg [0, 0.73, 0, 8, 3] * uosc (expseg [0.25, 5, spiralSpeed])) 14) white pad x = envelope $ filter x $ padsynthOsc2 spec x + mul 0.15 (padsynthOsc2 spec (x * 5)) + mul 0.5 (padsynthOsc2 spec (x / 2))@@ -2010,7 +1789,6 @@ spec = noisySpec - noisyHarms = [ 1, 1, 0.7600046992, 0.6199994683, 0.9399998784, 0.4400023818, 0.0600003302, 0.8499968648, 0.0899999291, 0.8199964762, 0.3199984133, 0.9400014281, 0.3000001907, 0.120003365, 0.1799997687, 0.5200006366] noisySpec = defPadsynthSpec 82.2 noisyHarms @@ -2018,10 +1796,3 @@ -- dac $ mul 0.24 $ at (bhp 30) $ mixAt 0.15 magicCave2 $ mixAt 0.43 (echo 0.35 0.85) $ midi $ onMsg $ (\cps -> (bat (lp (200 + (cps + 3000)) 45) . mul (fades 0.5 0.7) . (\x -> (at (mul 0.3 . fromMono . bat (bp (x * 11) 23) . lp (300 + 2500 * linseg [0, 0.73, 0, 8, 3] * uosc (expseg [0.25, 5, 8])) 14) white) + padsynthOsc2 spec x + mul 0.15 (padsynthOsc2 spec (x * 5)) + mul 0.5 (padsynthOsc2 spec (x / 2)))) cps) -- dac $ mul 0.24 $ at (bhp 30) $ mixAt 0.35 largeHall2 $ mixAt 0.5 (echo 0.25 0.85) $ midi $ onMsg $ (\cps -> (bat (lp (200 + (cps + 3000)) 45) . mul (fades 0.5 0.7) . (\x -> (at (mul 0.3 . fromMono . bat (bp (x * 5) 23) . lp (300 + 2500 * linseg [0, 0.73, 0, 8, 3]) 14) white) + padsynthOsc2 spec x + mul 0.15 (padsynthOsc2 spec (x * 5)) + mul 0.5 (padsynthOsc2 spec (x / 2)))) cps)----- --