packages feed

csound-catalog 0.3.0 → 0.4.0

raw patch · 6 files changed

+549/−25 lines, 6 filesdep +sharc-timbredep ~csound-expressiondep ~csound-samplerPVP ok

version bump matches the API change (PVP)

Dependencies added: sharc-timbre

Dependency ranges changed: csound-expression, csound-sampler

API changes (from Hackage documentation)

+ Csound.Catalog.Wave: SharcInstr :: Instr -> SharcInstr
+ Csound.Catalog.Wave: [unSharcInstr] :: SharcInstr -> Instr
+ Csound.Catalog.Wave: dreamPadBy :: (Sig -> SE Sig) -> Sig -> Sig -> SE Sig
+ Csound.Catalog.Wave: getInstrTab :: SharcInstr -> Int -> Tab
+ Csound.Catalog.Wave: impulseMarimba1 :: Sig -> Sig
+ Csound.Catalog.Wave: impulseMarimba2 :: Sig -> Sig
+ Csound.Catalog.Wave: newtype SharcInstr
+ Csound.Catalog.Wave: note2sig :: Note -> Sig
+ Csound.Catalog.Wave: note2tab :: Note -> Tab
+ Csound.Catalog.Wave: orcSharcOsc :: SharcInstr -> D -> SE Sig
+ Csound.Catalog.Wave: padSharcOsc :: SharcInstr -> D -> SE Sig
+ Csound.Catalog.Wave: purePadSharcOsc :: SharcInstr -> D -> SE Sig
+ Csound.Catalog.Wave: rndSharcOsc :: SharcInstr -> D -> SE Sig
+ Csound.Catalog.Wave: rndSigSharcOsc :: SharcInstr -> D -> Sig -> SE Sig
+ Csound.Catalog.Wave: shAltoFlute :: SharcInstr
+ Csound.Catalog.Wave: shAltoTrombone :: SharcInstr
+ Csound.Catalog.Wave: shBassClarinet :: SharcInstr
+ Csound.Catalog.Wave: shBassFlute :: SharcInstr
+ Csound.Catalog.Wave: shBassTrombone :: SharcInstr
+ Csound.Catalog.Wave: shBassoon :: SharcInstr
+ Csound.Catalog.Wave: shCello :: SharcInstr
+ Csound.Catalog.Wave: shCelloMarteleBowing :: SharcInstr
+ Csound.Catalog.Wave: shCelloMuted :: SharcInstr
+ Csound.Catalog.Wave: shCelloPizzicato :: SharcInstr
+ Csound.Catalog.Wave: shClarinet :: SharcInstr
+ Csound.Catalog.Wave: shClarinetEflat :: SharcInstr
+ Csound.Catalog.Wave: shContrabass :: SharcInstr
+ Csound.Catalog.Wave: shContrabassClarinet :: SharcInstr
+ Csound.Catalog.Wave: shContrabassMarteleBowing :: SharcInstr
+ Csound.Catalog.Wave: shContrabassMuted :: SharcInstr
+ Csound.Catalog.Wave: shContrabassPizzicato :: SharcInstr
+ Csound.Catalog.Wave: shContrabassoon :: SharcInstr
+ Csound.Catalog.Wave: shEnglishHorn :: SharcInstr
+ Csound.Catalog.Wave: shFlute :: SharcInstr
+ Csound.Catalog.Wave: shFrenchHorn :: SharcInstr
+ Csound.Catalog.Wave: shFrenchHornMuted :: SharcInstr
+ Csound.Catalog.Wave: shOboe :: SharcInstr
+ Csound.Catalog.Wave: shPiccolo :: SharcInstr
+ Csound.Catalog.Wave: shTrombone :: SharcInstr
+ Csound.Catalog.Wave: shTromboneMuted :: SharcInstr
+ Csound.Catalog.Wave: shTrumpetBach :: SharcInstr
+ Csound.Catalog.Wave: shTrumpetC :: SharcInstr
+ Csound.Catalog.Wave: shTrumpetMutedC :: SharcInstr
+ Csound.Catalog.Wave: shTuba :: SharcInstr
+ Csound.Catalog.Wave: shViola :: SharcInstr
+ Csound.Catalog.Wave: shViolaMarteleBowing :: SharcInstr
+ Csound.Catalog.Wave: shViolaMuted :: SharcInstr
+ Csound.Catalog.Wave: shViolaPizzicato :: SharcInstr
+ Csound.Catalog.Wave: shViolin :: SharcInstr
+ Csound.Catalog.Wave: shViolinMarteleBowing :: SharcInstr
+ Csound.Catalog.Wave: shViolinMuted :: SharcInstr
+ Csound.Catalog.Wave: shViolinPizzicato :: SharcInstr
+ Csound.Catalog.Wave: shViolinsEnsemble :: SharcInstr
+ Csound.Catalog.Wave: sharcOsc :: SharcInstr -> D -> Sig
+ Csound.Catalog.Wave: sigSharcOsc :: SharcInstr -> D -> Sig -> Sig
+ Csound.Catalog.Wave: soloSharcOsc :: SharcInstr -> D -> SE Sig
+ Csound.Patch: addHammer :: Sig -> Patch2 -> Patch2
+ Csound.Patch: caveOvertonePadm :: Patch Sig (Sig, Sig)
+ Csound.Patch: choruselm :: Patch Sig Sig2
+ Csound.Patch: data SharcInstr
+ Csound.Patch: dreamPadBy :: (Sig -> SE Sig) -> Patch2
+ Csound.Patch: dreamPadBy' :: Sig -> (Sig -> SE Sig) -> Patch2
+ Csound.Patch: dreamPadBym :: (Sig -> SE Sig) -> PatchSig2
+ Csound.Patch: dreamPadBym' :: Sig -> (Sig -> SE Sig) -> PatchSig2
+ Csound.Patch: dreamPadm :: PatchSig2
+ Csound.Patch: dreamPadm' :: Sig -> PatchSig2
+ Csound.Patch: dreamSharc :: SharcInstr -> Patch2
+ Csound.Patch: dreamSharc' :: SharcInstr -> Sig -> Patch2
+ Csound.Patch: fmDroneFastm :: Patch Sig Sig2
+ Csound.Patch: fmDroneMediumm :: Patch Sig Sig2
+ Csound.Patch: fmDroneSlowm :: Patch Sig Sig2
+ Csound.Patch: hammondOrganm :: Patch Sig Sig2
+ Csound.Patch: hammondOrganm' :: HammondOrgan -> Patch Sig Sig2
+ Csound.Patch: impulseMarimba1 :: Patch D Sig2
+ Csound.Patch: impulseMarimba2 :: Patch D Sig2
+ Csound.Patch: lightIsTooBrightPadm :: PatchSig2
+ Csound.Patch: lightIsTooBrightPadm' :: Sig -> PatchSig2
+ Csound.Patch: nightPadm :: Patch Sig (Sig, Sig)
+ Csound.Patch: orcSharc :: SharcInstr -> Patch2
+ Csound.Patch: overtonePadm :: Patch Sig (Sig, Sig)
+ Csound.Patch: padSharc :: SharcInstr -> Patch2
+ Csound.Patch: polySynthm :: Patch Sig (Sig, Sig)
+ Csound.Patch: purePadSharc :: SharcInstr -> Patch2
+ Csound.Patch: pwEnsemblem :: Patch Sig Sig2
+ Csound.Patch: pwOrganm :: Sig -> PatchSig2
+ Csound.Patch: pwPadm :: Patch Sig Sig2
+ Csound.Patch: razorPadFastm :: Patch Sig Sig2
+ Csound.Patch: razorPadSlowm :: Patch Sig Sig2
+ Csound.Patch: razorPadTremolom :: Patch Sig Sig2
+ Csound.Patch: razorPadm :: Patch Sig Sig2
+ Csound.Patch: razorPadm' :: RazorPad -> Patch Sig Sig2
+ Csound.Patch: sawOrganm :: PatchSig2
+ Csound.Patch: scrapeAlbertClockBellBelfastm :: Patch Sig Sig2
+ Csound.Patch: scrapeBanyanm :: Patch Sig Sig2
+ Csound.Patch: scrapeChalandiPlatesm :: Patch Sig Sig2
+ Csound.Patch: scrapeDahinam :: Patch Sig Sig2
+ Csound.Patch: scrapeDouglasFirWoodPlatem :: Patch Sig Sig2
+ Csound.Patch: scrapePadAlbertClockBellBelfastm :: Patch Sig Sig2
+ Csound.Patch: scrapePadBanyanm :: Patch Sig Sig2
+ Csound.Patch: scrapePadChalandiPlatesm :: Patch Sig Sig2
+ Csound.Patch: scrapePadDahinam :: Patch Sig Sig2
+ Csound.Patch: scrapePadDouglasFirWoodPlatem :: Patch Sig Sig2
+ Csound.Patch: scrapePadPotLidm :: Patch Sig Sig2
+ Csound.Patch: scrapePadRedCedarWoodPlatem :: Patch Sig Sig2
+ Csound.Patch: scrapePadRedwoodPlatem :: Patch Sig Sig2
+ Csound.Patch: scrapePadSmallHandbellm :: Patch Sig Sig2
+ Csound.Patch: scrapePadSpinelSpherem :: Patch Sig Sig2
+ Csound.Patch: scrapePadTibetanBowl140m :: Patch Sig Sig2
+ Csound.Patch: scrapePadTibetanBowl152m :: Patch Sig Sig2
+ Csound.Patch: scrapePadTibetanBowl180m :: Patch Sig Sig2
+ Csound.Patch: scrapePadTubularBellm :: Patch Sig Sig2
+ Csound.Patch: scrapePadUniformAluminumBarm :: Patch Sig Sig2
+ Csound.Patch: scrapePadUniformWoodenBarm :: Patch Sig Sig2
+ Csound.Patch: scrapePadVibraphone1m :: Patch Sig Sig2
+ Csound.Patch: scrapePadVibraphone2m :: Patch Sig Sig2
+ Csound.Patch: scrapePadWineGlassm :: Patch Sig Sig2
+ Csound.Patch: scrapePadWoodBlockm :: Patch Sig Sig2
+ Csound.Patch: scrapePadXylophonem :: Patch Sig Sig2
+ Csound.Patch: scrapePotLidm :: Patch D Sig2
+ Csound.Patch: scrapeRedCedarWoodPlatem :: Patch Sig Sig2
+ Csound.Patch: scrapeRedwoodPlatem :: Patch Sig Sig2
+ Csound.Patch: scrapeSmallHandbellm :: Patch Sig Sig2
+ Csound.Patch: scrapeSpinelSpherem :: Patch Sig Sig2
+ Csound.Patch: scrapeTibetanBowl140m :: Patch Sig Sig2
+ Csound.Patch: scrapeTibetanBowl152m :: Patch Sig Sig2
+ Csound.Patch: scrapeTibetanBowl180m :: Patch Sig Sig2
+ Csound.Patch: scrapeTubularBellm :: Patch Sig Sig2
+ Csound.Patch: scrapeUniformAluminumBarm :: Patch Sig Sig2
+ Csound.Patch: scrapeUniformWoodenBarm :: Patch Sig Sig2
+ Csound.Patch: scrapeVibraphone1m :: Patch Sig Sig2
+ Csound.Patch: scrapeVibraphone2m :: Patch Sig Sig2
+ Csound.Patch: scrapeWineGlassm :: Patch Sig Sig2
+ Csound.Patch: scrapeWoodBlockm :: Patch Sig Sig2
+ Csound.Patch: scrapeXylophonem :: Patch Sig Sig2
+ Csound.Patch: shAltoFlute :: SharcInstr
+ Csound.Patch: shAltoTrombone :: SharcInstr
+ Csound.Patch: shBassClarinet :: SharcInstr
+ Csound.Patch: shBassFlute :: SharcInstr
+ Csound.Patch: shBassTrombone :: SharcInstr
+ Csound.Patch: shBassoon :: SharcInstr
+ Csound.Patch: shCello :: SharcInstr
+ Csound.Patch: shCelloMarteleBowing :: SharcInstr
+ Csound.Patch: shCelloMuted :: SharcInstr
+ Csound.Patch: shCelloPizzicato :: SharcInstr
+ Csound.Patch: shClarinet :: SharcInstr
+ Csound.Patch: shClarinetEflat :: SharcInstr
+ Csound.Patch: shContrabass :: SharcInstr
+ Csound.Patch: shContrabassClarinet :: SharcInstr
+ Csound.Patch: shContrabassMarteleBowing :: SharcInstr
+ Csound.Patch: shContrabassMuted :: SharcInstr
+ Csound.Patch: shContrabassPizzicato :: SharcInstr
+ Csound.Patch: shContrabassoon :: SharcInstr
+ Csound.Patch: shEnglishHorn :: SharcInstr
+ Csound.Patch: shFlute :: SharcInstr
+ Csound.Patch: shFrenchHorn :: SharcInstr
+ Csound.Patch: shFrenchHornMuted :: SharcInstr
+ Csound.Patch: shOboe :: SharcInstr
+ Csound.Patch: shPiccolo :: SharcInstr
+ Csound.Patch: shTrombone :: SharcInstr
+ Csound.Patch: shTromboneMuted :: SharcInstr
+ Csound.Patch: shTrumpetBach :: SharcInstr
+ Csound.Patch: shTrumpetC :: SharcInstr
+ Csound.Patch: shTrumpetMutedC :: SharcInstr
+ Csound.Patch: shTuba :: SharcInstr
+ Csound.Patch: shViola :: SharcInstr
+ Csound.Patch: shViolaMarteleBowing :: SharcInstr
+ Csound.Patch: shViolaMuted :: SharcInstr
+ Csound.Patch: shViolaPizzicato :: SharcInstr
+ Csound.Patch: shViolin :: SharcInstr
+ Csound.Patch: shViolinMarteleBowing :: SharcInstr
+ Csound.Patch: shViolinMuted :: SharcInstr
+ Csound.Patch: shViolinPizzicato :: SharcInstr
+ Csound.Patch: shViolinsEnsemble :: SharcInstr
+ Csound.Patch: soloSharc :: SharcInstr -> Patch2
+ Csound.Patch: sqrOrganm :: PatchSig2
+ Csound.Patch: triOrganm :: PatchSig2
+ Csound.Patch: triPadm :: Patch Sig (Sig, Sig)
+ Csound.Patch: underwaterPadm :: PatchSig2
+ Csound.Patch: underwaterPadm' :: Sig -> PatchSig2
+ Csound.Patch: waveOrganm :: (Sig -> SE Sig) -> PatchSig2
+ Csound.Patch: whaleSongPadm :: PatchSig2
+ Csound.Patch: whaleSongPadm' :: Sig -> PatchSig2
- Csound.Catalog.Wave: tibetan :: Int -> Sig -> D -> Sig
+ Csound.Catalog.Wave: tibetan :: Int -> Sig -> Sig -> Sig
- Csound.Patch: accordeon :: Patch Sig2
+ Csound.Patch: accordeon :: Patch D Sig2
- Csound.Patch: accordeon' :: Accordeon -> Patch Sig2
+ Csound.Patch: accordeon' :: Accordeon -> Patch D Sig2
- Csound.Patch: accordeonBright1 :: Patch Sig2
+ Csound.Patch: accordeonBright1 :: Patch D Sig2
- Csound.Patch: accordeonBright2 :: Patch Sig2
+ Csound.Patch: accordeonBright2 :: Patch D Sig2
- Csound.Patch: alienIsAngry :: Patch Sig2
+ Csound.Patch: alienIsAngry :: Patch D Sig2
- Csound.Patch: amPiano :: Patch Sig
+ Csound.Patch: amPiano :: Patch D Sig
- Csound.Patch: bassClarinet :: Patch (Sig, Sig)
+ Csound.Patch: bassClarinet :: Patch D (Sig, Sig)
- Csound.Patch: bassClarinetVibrato :: Patch (Sig, Sig)
+ Csound.Patch: bassClarinetVibrato :: Patch D (Sig, Sig)
- Csound.Patch: black :: Patch Sig2
+ Csound.Patch: black :: Patch D Sig2
- Csound.Patch: blue :: Patch Sig2
+ Csound.Patch: blue :: Patch D Sig2
- Csound.Patch: brightBassClarinet :: Patch (Sig, Sig)
+ Csound.Patch: brightBassClarinet :: Patch D (Sig, Sig)
- Csound.Patch: brightDizi :: Patch (Sig, Sig)
+ Csound.Patch: brightDizi :: Patch D (Sig, Sig)
- Csound.Patch: brightFlute :: Patch (Sig, Sig)
+ Csound.Patch: brightFlute :: Patch D (Sig, Sig)
- Csound.Patch: brightFrenchHorn :: Patch (Sig, Sig)
+ Csound.Patch: brightFrenchHorn :: Patch D (Sig, Sig)
- Csound.Patch: brightHulusi :: Patch (Sig, Sig)
+ Csound.Patch: brightHulusi :: Patch D (Sig, Sig)
- Csound.Patch: brightSheng :: Patch (Sig, Sig)
+ Csound.Patch: brightSheng :: Patch D (Sig, Sig)
- Csound.Patch: brokenAccordeon :: Patch Sig2
+ Csound.Patch: brokenAccordeon :: Patch D Sig2
- Csound.Patch: cathedralOrgan :: Patch Sig2
+ Csound.Patch: cathedralOrgan :: Patch D Sig2
- Csound.Patch: caveOvertonePad :: Patch Sig2
+ Csound.Patch: caveOvertonePad :: Patch D Sig2
- Csound.Patch: choirA :: Patch Sig2
+ Csound.Patch: choirA :: Patch D Sig2
- Csound.Patch: choirA' :: Choir -> Patch Sig2
+ Csound.Patch: choirA' :: Choir -> Patch D Sig2
- Csound.Patch: choirE :: Patch Sig2
+ Csound.Patch: choirE :: Patch D Sig2
- Csound.Patch: choirE' :: Choir -> Patch Sig2
+ Csound.Patch: choirE' :: Choir -> Patch D Sig2
- Csound.Patch: choirO :: Patch Sig2
+ Csound.Patch: choirO :: Patch D Sig2
- Csound.Patch: choirO' :: Choir -> Patch Sig2
+ Csound.Patch: choirO' :: Choir -> Patch D Sig2
- Csound.Patch: choirU :: Patch Sig2
+ Csound.Patch: choirU :: Patch D Sig2
- Csound.Patch: choirU' :: Choir -> Patch Sig2
+ Csound.Patch: choirU' :: Choir -> Patch D Sig2
- Csound.Patch: chorusel :: Patch Sig2
+ Csound.Patch: chorusel :: Patch D Sig2
- Csound.Patch: deepBass :: Patch Sig2
+ Csound.Patch: deepBass :: Patch D Sig2
- Csound.Patch: dizi :: Patch (Sig, Sig)
+ Csound.Patch: dizi :: Patch D (Sig, Sig)
- Csound.Patch: diziVibrato :: Patch (Sig, Sig)
+ Csound.Patch: diziVibrato :: Patch D (Sig, Sig)
- Csound.Patch: epiano1 :: Patch (Sig, Sig)
+ Csound.Patch: epiano1 :: Patch D (Sig, Sig)
- Csound.Patch: epiano1' :: Epiano1 -> Patch (Sig, Sig)
+ Csound.Patch: epiano1' :: Epiano1 -> Patch D (Sig, Sig)
- Csound.Patch: epiano2 :: Patch Sig2
+ Csound.Patch: epiano2 :: Patch2
- Csound.Patch: epianoBright :: Patch Sig2
+ Csound.Patch: epianoBright :: Patch2
- Csound.Patch: epianoHeavy :: Patch Sig2
+ Csound.Patch: epianoHeavy :: Patch2
- Csound.Patch: flute :: Patch (Sig, Sig)
+ Csound.Patch: flute :: Patch D (Sig, Sig)
- Csound.Patch: fluteVibrato :: Patch (Sig, Sig)
+ Csound.Patch: fluteVibrato :: Patch D (Sig, Sig)
- Csound.Patch: fmDroneFast :: Patch Sig2
+ Csound.Patch: fmDroneFast :: Patch D Sig2
- Csound.Patch: fmDroneMedium :: Patch Sig2
+ Csound.Patch: fmDroneMedium :: Patch D Sig2
- Csound.Patch: fmDroneSlow :: Patch Sig2
+ Csound.Patch: fmDroneSlow :: Patch D Sig2
- Csound.Patch: fmPiano :: Patch Sig2
+ Csound.Patch: fmPiano :: Patch D Sig2
- Csound.Patch: frenchHorn :: Patch (Sig, Sig)
+ Csound.Patch: frenchHorn :: Patch D (Sig, Sig)
- Csound.Patch: frenchHornVibrato :: Patch (Sig, Sig)
+ Csound.Patch: frenchHornVibrato :: Patch D (Sig, Sig)
- Csound.Patch: guitar :: Patch Sig2
+ Csound.Patch: guitar :: Patch D Sig2
- Csound.Patch: hammondOrgan :: Patch Sig2
+ Csound.Patch: hammondOrgan :: Patch D Sig2
- Csound.Patch: hammondOrgan' :: HammondOrgan -> Patch Sig2
+ Csound.Patch: hammondOrgan' :: HammondOrgan -> Patch D Sig2
- Csound.Patch: harpsichord :: Patch Sig2
+ Csound.Patch: harpsichord :: Patch D Sig2
- Csound.Patch: hulusi :: Patch (Sig, Sig)
+ Csound.Patch: hulusi :: Patch D (Sig, Sig)
- Csound.Patch: hulusiVibrato :: Patch (Sig, Sig)
+ Csound.Patch: hulusiVibrato :: Patch D (Sig, Sig)
- Csound.Patch: limRel :: SigSpace a => D -> Patch a -> Patch a
+ Csound.Patch: limRel :: SigSpace b => D -> Patch a b -> Patch a b
- Csound.Patch: longNoisyChoir :: Patch Sig2
+ Csound.Patch: longNoisyChoir :: Patch D Sig2
- Csound.Patch: longNoisyChoir' :: NoisyChoir -> Patch Sig2
+ Csound.Patch: longNoisyChoir' :: NoisyChoir -> Patch D Sig2
- Csound.Patch: mildWind :: Patch Sig2
+ Csound.Patch: mildWind :: Patch D Sig2
- Csound.Patch: mutedBassClarinet :: Patch (Sig, Sig)
+ Csound.Patch: mutedBassClarinet :: Patch D (Sig, Sig)
- Csound.Patch: mutedDizi :: Patch (Sig, Sig)
+ Csound.Patch: mutedDizi :: Patch D (Sig, Sig)
- Csound.Patch: mutedFlute :: Patch (Sig, Sig)
+ Csound.Patch: mutedFlute :: Patch D (Sig, Sig)
- Csound.Patch: mutedFrenchHorn :: Patch (Sig, Sig)
+ Csound.Patch: mutedFrenchHorn :: Patch D (Sig, Sig)
- Csound.Patch: mutedHulusi :: Patch (Sig, Sig)
+ Csound.Patch: mutedHulusi :: Patch D (Sig, Sig)
- Csound.Patch: mutedPiano :: Patch (Sig, Sig)
+ Csound.Patch: mutedPiano :: Patch D (Sig, Sig)
- Csound.Patch: mutedPiano' :: MutedPiano -> Patch (Sig, Sig)
+ Csound.Patch: mutedPiano' :: MutedPiano -> Patch D (Sig, Sig)
- Csound.Patch: mutedSheng :: Patch (Sig, Sig)
+ Csound.Patch: mutedSheng :: Patch D (Sig, Sig)
- Csound.Patch: nightPad :: Patch Sig2
+ Csound.Patch: nightPad :: Patch D Sig2
- Csound.Patch: noiseBell :: Patch Sig2
+ Csound.Patch: noiseBell :: Patch D Sig2
- Csound.Patch: noisyChoir :: Patch Sig2
+ Csound.Patch: noisyChoir :: Patch D Sig2
- Csound.Patch: noisyChoir' :: NoisyChoir -> Patch Sig2
+ Csound.Patch: noisyChoir' :: NoisyChoir -> Patch D Sig2
- Csound.Patch: noiz :: Patch Sig2
+ Csound.Patch: noiz :: Patch D Sig2
- Csound.Patch: okComputer :: Patch Sig2
+ Csound.Patch: okComputer :: Patch D Sig2
- Csound.Patch: overtonePad :: Patch Sig2
+ Csound.Patch: overtonePad :: Patch D Sig2
- Csound.Patch: phasingLead :: Patch Sig2
+ Csound.Patch: phasingLead :: Patch D Sig2
- Csound.Patch: polySynth :: Patch (Sig, Sig)
+ Csound.Patch: polySynth :: Patch D (Sig, Sig)
- Csound.Patch: pulseWidth :: Patch Sig2
+ Csound.Patch: pulseWidth :: Patch D Sig2
- Csound.Patch: pwBass :: Patch Sig2
+ Csound.Patch: pwBass :: Patch D Sig2
- Csound.Patch: pwEnsemble :: Patch Sig2
+ Csound.Patch: pwEnsemble :: Patch D Sig2
- Csound.Patch: pwPad :: Patch Sig2
+ Csound.Patch: pwPad :: Patch D Sig2
- Csound.Patch: razorLead :: Patch Sig2
+ Csound.Patch: razorLead :: Patch D Sig2
- Csound.Patch: razorLead' :: RazorLead -> Patch Sig2
+ Csound.Patch: razorLead' :: RazorLead -> Patch D Sig2
- Csound.Patch: razorLeadFast :: Patch Sig2
+ Csound.Patch: razorLeadFast :: Patch D Sig2
- Csound.Patch: razorLeadSlow :: Patch Sig2
+ Csound.Patch: razorLeadSlow :: Patch D Sig2
- Csound.Patch: razorLeadTremolo :: Patch Sig2
+ Csound.Patch: razorLeadTremolo :: Patch D Sig2
- Csound.Patch: razorPad :: Patch Sig2
+ Csound.Patch: razorPad :: Patch D Sig2
- Csound.Patch: razorPad' :: RazorPad -> Patch Sig2
+ Csound.Patch: razorPad' :: RazorPad -> Patch D Sig2
- Csound.Patch: razorPadFast :: Patch Sig2
+ Csound.Patch: razorPadFast :: Patch D Sig2
- Csound.Patch: razorPadSlow :: Patch Sig2
+ Csound.Patch: razorPadSlow :: Patch D Sig2
- Csound.Patch: razorPadTremolo :: Patch Sig2
+ Csound.Patch: razorPadTremolo :: Patch D Sig2
- Csound.Patch: robotLoopVowels :: Sig -> [(Vowel, D)] -> Patch Sig2
+ Csound.Patch: robotLoopVowels :: Sig -> [(Vowel, D)] -> Patch D Sig2
- Csound.Patch: robotVowel :: Vowel -> Patch Sig2
+ Csound.Patch: robotVowel :: Vowel -> Patch D Sig2
- Csound.Patch: robotVowels :: [(Vowel, D)] -> Vowel -> Patch Sig2
+ Csound.Patch: robotVowels :: [(Vowel, D)] -> Vowel -> Patch D Sig2
- Csound.Patch: scrapeAlbertClockBellBelfast :: Patch Sig2
+ Csound.Patch: scrapeAlbertClockBellBelfast :: Patch D Sig2
- Csound.Patch: scrapeBanyan :: Patch Sig2
+ Csound.Patch: scrapeBanyan :: Patch D Sig2
- Csound.Patch: scrapeChalandiPlates :: Patch Sig2
+ Csound.Patch: scrapeChalandiPlates :: Patch D Sig2
- Csound.Patch: scrapeDahina :: Patch Sig2
+ Csound.Patch: scrapeDahina :: Patch D Sig2
- Csound.Patch: scrapeDouglasFirWoodPlate :: Patch Sig2
+ Csound.Patch: scrapeDouglasFirWoodPlate :: Patch D Sig2
- Csound.Patch: scrapeFastAlbertClockBellBelfast :: Patch Sig2
+ Csound.Patch: scrapeFastAlbertClockBellBelfast :: Patch D Sig2
- Csound.Patch: scrapeFastBanyan :: Patch Sig2
+ Csound.Patch: scrapeFastBanyan :: Patch D Sig2
- Csound.Patch: scrapeFastChalandiPlates :: Patch Sig2
+ Csound.Patch: scrapeFastChalandiPlates :: Patch D Sig2
- Csound.Patch: scrapeFastDahina :: Patch Sig2
+ Csound.Patch: scrapeFastDahina :: Patch D Sig2
- Csound.Patch: scrapeFastDouglasFirWoodPlate :: Patch Sig2
+ Csound.Patch: scrapeFastDouglasFirWoodPlate :: Patch D Sig2
- Csound.Patch: scrapeFastPotLid :: Patch Sig2
+ Csound.Patch: scrapeFastPotLid :: Patch D Sig2
- Csound.Patch: scrapeFastRedCedarWoodPlate :: Patch Sig2
+ Csound.Patch: scrapeFastRedCedarWoodPlate :: Patch D Sig2
- Csound.Patch: scrapeFastRedwoodPlate :: Patch Sig2
+ Csound.Patch: scrapeFastRedwoodPlate :: Patch D Sig2
- Csound.Patch: scrapeFastSmallHandbell :: Patch Sig2
+ Csound.Patch: scrapeFastSmallHandbell :: Patch D Sig2
- Csound.Patch: scrapeFastSpinelSphere :: Patch Sig2
+ Csound.Patch: scrapeFastSpinelSphere :: Patch D Sig2
- Csound.Patch: scrapeFastTibetanBowl140 :: Patch Sig2
+ Csound.Patch: scrapeFastTibetanBowl140 :: Patch D Sig2
- Csound.Patch: scrapeFastTibetanBowl152 :: Patch Sig2
+ Csound.Patch: scrapeFastTibetanBowl152 :: Patch D Sig2
- Csound.Patch: scrapeFastTibetanBowl180 :: Patch Sig2
+ Csound.Patch: scrapeFastTibetanBowl180 :: Patch D Sig2
- Csound.Patch: scrapeFastTubularBell :: Patch Sig2
+ Csound.Patch: scrapeFastTubularBell :: Patch D Sig2
- Csound.Patch: scrapeFastUniformAluminumBar :: Patch Sig2
+ Csound.Patch: scrapeFastUniformAluminumBar :: Patch D Sig2
- Csound.Patch: scrapeFastUniformWoodenBar :: Patch Sig2
+ Csound.Patch: scrapeFastUniformWoodenBar :: Patch D Sig2
- Csound.Patch: scrapeFastVibraphone1 :: Patch Sig2
+ Csound.Patch: scrapeFastVibraphone1 :: Patch D Sig2
- Csound.Patch: scrapeFastVibraphone2 :: Patch Sig2
+ Csound.Patch: scrapeFastVibraphone2 :: Patch D Sig2
- Csound.Patch: scrapeFastWineGlass :: Patch Sig2
+ Csound.Patch: scrapeFastWineGlass :: Patch D Sig2
- Csound.Patch: scrapeFastWoodBlock :: Patch Sig2
+ Csound.Patch: scrapeFastWoodBlock :: Patch D Sig2
- Csound.Patch: scrapeFastXylophone :: Patch Sig2
+ Csound.Patch: scrapeFastXylophone :: Patch D Sig2
- Csound.Patch: scrapePadAlbertClockBellBelfast :: Patch Sig2
+ Csound.Patch: scrapePadAlbertClockBellBelfast :: Patch D Sig2
- Csound.Patch: scrapePadBanyan :: Patch Sig2
+ Csound.Patch: scrapePadBanyan :: Patch D Sig2
- Csound.Patch: scrapePadChalandiPlates :: Patch Sig2
+ Csound.Patch: scrapePadChalandiPlates :: Patch D Sig2
- Csound.Patch: scrapePadDahina :: Patch Sig2
+ Csound.Patch: scrapePadDahina :: Patch D Sig2
- Csound.Patch: scrapePadDouglasFirWoodPlate :: Patch Sig2
+ Csound.Patch: scrapePadDouglasFirWoodPlate :: Patch D Sig2
- Csound.Patch: scrapePadPotLid :: Patch Sig2
+ Csound.Patch: scrapePadPotLid :: Patch D Sig2
- Csound.Patch: scrapePadRedCedarWoodPlate :: Patch Sig2
+ Csound.Patch: scrapePadRedCedarWoodPlate :: Patch D Sig2
- Csound.Patch: scrapePadRedwoodPlate :: Patch Sig2
+ Csound.Patch: scrapePadRedwoodPlate :: Patch D Sig2
- Csound.Patch: scrapePadSmallHandbell :: Patch Sig2
+ Csound.Patch: scrapePadSmallHandbell :: Patch D Sig2
- Csound.Patch: scrapePadSpinelSphere :: Patch Sig2
+ Csound.Patch: scrapePadSpinelSphere :: Patch D Sig2
- Csound.Patch: scrapePadTibetanBowl140 :: Patch Sig2
+ Csound.Patch: scrapePadTibetanBowl140 :: Patch D Sig2
- Csound.Patch: scrapePadTibetanBowl152 :: Patch Sig2
+ Csound.Patch: scrapePadTibetanBowl152 :: Patch D Sig2
- Csound.Patch: scrapePadTibetanBowl180 :: Patch Sig2
+ Csound.Patch: scrapePadTibetanBowl180 :: Patch D Sig2
- Csound.Patch: scrapePadTubularBell :: Patch Sig2
+ Csound.Patch: scrapePadTubularBell :: Patch D Sig2
- Csound.Patch: scrapePadUniformAluminumBar :: Patch Sig2
+ Csound.Patch: scrapePadUniformAluminumBar :: Patch D Sig2
- Csound.Patch: scrapePadUniformWoodenBar :: Patch Sig2
+ Csound.Patch: scrapePadUniformWoodenBar :: Patch D Sig2
- Csound.Patch: scrapePadVibraphone1 :: Patch Sig2
+ Csound.Patch: scrapePadVibraphone1 :: Patch D Sig2
- Csound.Patch: scrapePadVibraphone2 :: Patch Sig2
+ Csound.Patch: scrapePadVibraphone2 :: Patch D Sig2
- Csound.Patch: scrapePadWineGlass :: Patch Sig2
+ Csound.Patch: scrapePadWineGlass :: Patch D Sig2
- Csound.Patch: scrapePadWoodBlock :: Patch Sig2
+ Csound.Patch: scrapePadWoodBlock :: Patch D Sig2
- Csound.Patch: scrapePadXylophone :: Patch Sig2
+ Csound.Patch: scrapePadXylophone :: Patch D Sig2
- Csound.Patch: scrapePotLid :: Patch Sig2
+ Csound.Patch: scrapePotLid :: Patch D Sig2
- Csound.Patch: scrapeRedCedarWoodPlate :: Patch Sig2
+ Csound.Patch: scrapeRedCedarWoodPlate :: Patch D Sig2
- Csound.Patch: scrapeRedwoodPlate :: Patch Sig2
+ Csound.Patch: scrapeRedwoodPlate :: Patch D Sig2
- Csound.Patch: scrapeSmallHandbell :: Patch Sig2
+ Csound.Patch: scrapeSmallHandbell :: Patch D Sig2
- Csound.Patch: scrapeSpinelSphere :: Patch Sig2
+ Csound.Patch: scrapeSpinelSphere :: Patch D Sig2
- Csound.Patch: scrapeTibetanBowl140 :: Patch Sig2
+ Csound.Patch: scrapeTibetanBowl140 :: Patch D Sig2
- Csound.Patch: scrapeTibetanBowl152 :: Patch Sig2
+ Csound.Patch: scrapeTibetanBowl152 :: Patch D Sig2
- Csound.Patch: scrapeTibetanBowl180 :: Patch Sig2
+ Csound.Patch: scrapeTibetanBowl180 :: Patch D Sig2
- Csound.Patch: scrapeTubularBell :: Patch Sig2
+ Csound.Patch: scrapeTubularBell :: Patch D Sig2
- Csound.Patch: scrapeUniformAluminumBar :: Patch Sig2
+ Csound.Patch: scrapeUniformAluminumBar :: Patch D Sig2
- Csound.Patch: scrapeUniformWoodenBar :: Patch Sig2
+ Csound.Patch: scrapeUniformWoodenBar :: Patch D Sig2
- Csound.Patch: scrapeVibraphone1 :: Patch Sig2
+ Csound.Patch: scrapeVibraphone1 :: Patch D Sig2
- Csound.Patch: scrapeVibraphone2 :: Patch Sig2
+ Csound.Patch: scrapeVibraphone2 :: Patch D Sig2
- Csound.Patch: scrapeWineGlass :: Patch Sig2
+ Csound.Patch: scrapeWineGlass :: Patch D Sig2
- Csound.Patch: scrapeWoodBlock :: Patch Sig2
+ Csound.Patch: scrapeWoodBlock :: Patch D Sig2
- Csound.Patch: scrapeXylophone :: Patch Sig2
+ Csound.Patch: scrapeXylophone :: Patch D Sig2
- Csound.Patch: sheng :: Patch (Sig, Sig)
+ Csound.Patch: sheng :: Patch D (Sig, Sig)
- Csound.Patch: shengVibrato :: Patch (Sig, Sig)
+ Csound.Patch: shengVibrato :: Patch D (Sig, Sig)
- Csound.Patch: shortBassClarinet :: Patch (Sig, Sig)
+ Csound.Patch: shortBassClarinet :: Patch D (Sig, Sig)
- Csound.Patch: shortDizi :: Patch (Sig, Sig)
+ Csound.Patch: shortDizi :: Patch D (Sig, Sig)
- Csound.Patch: shortFlute :: Patch (Sig, Sig)
+ Csound.Patch: shortFlute :: Patch D (Sig, Sig)
- Csound.Patch: shortFrenchHorn :: Patch (Sig, Sig)
+ Csound.Patch: shortFrenchHorn :: Patch D (Sig, Sig)
- Csound.Patch: shortHulusi :: Patch (Sig, Sig)
+ Csound.Patch: shortHulusi :: Patch D (Sig, Sig)
- Csound.Patch: shortSheng :: Patch (Sig, Sig)
+ Csound.Patch: shortSheng :: Patch D (Sig, Sig)
- Csound.Patch: simpleBass :: Patch Sig2
+ Csound.Patch: simpleBass :: Patch D Sig2
- Csound.Patch: simpleMarimba :: Patch Sig2
+ Csound.Patch: simpleMarimba :: Patch D Sig2
- Csound.Patch: snowCrackle :: Patch (Sig, Sig)
+ Csound.Patch: snowCrackle :: Patch D (Sig, Sig)
- Csound.Patch: toneWheelOrgan :: Patch Sig2
+ Csound.Patch: toneWheelOrgan :: Patch D Sig2
- Csound.Patch: triPad :: Patch (Sig, Sig)
+ Csound.Patch: triPad :: Patch D (Sig, Sig)
- Csound.Patch: vibraphonePiano1 :: Patch Sig2
+ Csound.Patch: vibraphonePiano1 :: Patch2
- Csound.Patch: vibraphonePiano2 :: Patch Sig2
+ Csound.Patch: vibraphonePiano2 :: Patch2
- Csound.Patch: vibrophonePad :: Patch Sig2
+ Csound.Patch: vibrophonePad :: Patch D Sig2
- Csound.Patch: wind :: Patch Sig2
+ Csound.Patch: wind :: Patch D Sig2
- Csound.Patch: windSings :: Patch Sig2
+ Csound.Patch: windSings :: Patch D Sig2
- Csound.Patch: windWall :: Patch Sig2
+ Csound.Patch: windWall :: Patch D Sig2
- Csound.Patch: woodWind' :: (Num t, SigOrD t) => Wind -> (t -> D -> D -> D -> D -> D -> D -> Sig) -> Patch (Sig, Sig)
+ Csound.Patch: woodWind' :: (Num t, SigOrD t) => Wind -> (t -> D -> D -> D -> D -> D -> D -> Sig) -> Patch D (Sig, Sig)
- Csound.Patch: xanadu :: Patch Sig2
+ Csound.Patch: xanadu :: Patch D Sig2

Files

csound-catalog.cabal view
@@ -1,5 +1,5 @@ Name:          csound-catalog-Version:       0.3.0+Version:       0.4.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 >= 4.8.3, csound-sampler >=0.0.6.3+        base >= 4, base < 5, transformers >= 0.3, csound-expression >= 4.9.0, csound-sampler >=0.0.6.4, sharc-timbre   Hs-Source-Dirs:      src/   Exposed-Modules:         Csound.Catalog@@ -55,4 +55,5 @@         Csound.Catalog.Wave.Flavio         Csound.Catalog.Wave.Thor         Csound.Catalog.Wave.Bitwig+        Csound.Catalog.Wave.Sharc       
src/Csound/Catalog/Wave.hs view
@@ -91,9 +91,30 @@     -- * Pads     polySynthFx, polySynth,     dreamPad, underwaterPad, lightIsTooBrightPad, whaleSongPad,+    dreamPadBy, +    -- * SHARC instruments+    -- | SHARC ported to Csound. SHARC is a database of musical timbre information by Gregory Sandell.+    -- It's a collection of sustain notes for real orchestra instruments.++    -- ** Oscillators+    sharcOsc, sigSharcOsc, rndSharcOsc, rndSigSharcOsc,+    soloSharcOsc, orcSharcOsc, purePadSharcOsc, padSharcOsc,++    -- ** Instriments+    SharcInstr(..),+    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,++    -- ** Low-level getters+    getInstrTab, note2sig, note2tab,+     -- * Other instruments-    okComputer, deepBass+    okComputer, deepBass,+    impulseMarimba1, impulseMarimba2  ) where @@ -116,6 +137,7 @@ import Csound.Catalog.Wave.Misc  import Csound.Catalog.Reson+import Csound.Catalog.Wave.Sharc  -- |  -- > nightPad fadeInTime cps
src/Csound/Catalog/Wave/Amsterdam.hs view
@@ -14,8 +14,8 @@ -- * off - frequency step of the harmonics ~ (0.01, 0.03) --  -- * cps - the frequency of the note-tibetan :: Int -> Sig -> D -> Sig-tibetan n off cps = chorusPitch n (2 * off * fromIntegral n) (oscBy wave) (sig cps)-    where wave = ifB (cps `lessThan` 230) (waveBy 5) (ifB (cps `lessThan` 350) (waveBy 3) (waveBy 1))+tibetan :: Int -> Sig -> Sig -> Sig+tibetan n off cps = chorusPitch n (2 * off * fromIntegral n) (oscBy wave) cps+    where wave = ifB ((ir cps) `lessThan` 230) (waveBy 5) (ifB ((ir cps) `lessThan` 350) (waveBy 3) (waveBy 1))           waveBy x = sines $ [0.3, 0, 0, 0] ++ replicate x 0.1 
src/Csound/Catalog/Wave/Misc.hs view
@@ -1,7 +1,10 @@ module Csound.Catalog.Wave.Misc (     okComputer, polySynthFx, polySynth,     dreamPad, underwaterPad, lightIsTooBrightPad, whaleSongPad,-    deepBass+    dreamPadBy,+    deepBass,++    impulseMarimba1, impulseMarimba2 ) where  import Csound.Base @@ -26,11 +29,8 @@  uni = multiHz 2 (cent 50) -dreamPad = genDreamPadInstr mkOsc -    where mkOsc vibLfo1 vibLfo2 x = uni rndSaw (vibLfo1 x) + uni rndSaw (vibLfo2 $ x * cent 14) --underwaterPad = genDreamPadInstr mkOsc -    where mkOsc vibLfo1 vibLfo2 x = uni rndTri (vibLfo1 x) + uni rndTri (vibLfo2 $ x * cent 14) +dreamPad = dreamPadBy rndSaw+underwaterPad = dreamPadBy rndTri  lightIsTooBrightPad = genDreamPadInstr mkOsc      where mkOsc vibLfo1 vibLfo2 x = uni rndSaw (vibLfo1 x) + uni rndSaw (vibLfo2 $ x * cent 14) + mul 0.3 (mul (uosc 0.25) (rndTri (vibLfo2 $ x * 7 * cent 4)) + mul (isawSeq [1, 0.5, 0.25] 6 * uosc 0.17) (rndTri (vibLfo2 $ x * 13)) + mul (sqrSeq [1, 0.5, 0.25, 0.1] 8 * uosc 0.28) (rndOsc (vibLfo2 $ x * 9 * cent 3)))@@ -38,6 +38,10 @@ whaleSongPad = genDreamPadInstr mkOsc      where mkOsc vibLfo1 vibLfo2 x = uni rndTri (vibLfo1 x) + uni rndTri (vibLfo2 $ x * cent 14) + uni rndTri (vibLfo2 $ 3 * x * cent 14) + mul 0.15 (uni rndTri (vibLfo2 $ 7 * x * cent 14)) + mul 0.15 (uni rndTri ((vibLfo2 $ 11 * x * cent 14) + 400 * uosc 0.2)) +dreamPadBy :: (Sig -> SE Sig) -> Sig -> Sig -> SE Sig+dreamPadBy wave = genDreamPadInstr mkOsc+    where mkOsc vibLfo1 vibLfo2 x = uni wave (vibLfo1 x) + uni wave (vibLfo2 $ x * cent 14) + genDreamPadInstr mkOsc brightness x = do     a1 <- oscs     a2 <- nois@@ -67,3 +71,12 @@         vibLfo2 = lfo2 0.007  deepBass x = mul 0.5 $ at (hp1 45) $ at (\x -> dam x 0.45 2 2 0.01 0.01) $  mul (xeg 0.005 0.6 1 0.05) $ sum [(filt 2 lp 275 0.25) (saw $ x * 0.5), osc (x * 0.5)]++impulseMarimba1 :: Sig -> Sig+impulseMarimba1 cps = mul 4 $ at (mlp cps 0.95) $ impulse 0++impulseMarimba2 :: Sig -> Sig+impulseMarimba2 cps = bat (bp  cps  120) $ impulse 0+++
+ src/Csound/Catalog/Wave/Sharc.hs view
@@ -0,0 +1,219 @@+module Csound.Catalog.Wave.Sharc(+    -- * Oscillators+    sharcOsc, sigSharcOsc, rndSharcOsc, rndSigSharcOsc,+    soloSharcOsc, orcSharcOsc, purePadSharcOsc, padSharcOsc,++    -- * Instriments+    SharcInstr(..),+    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,++    -- * Low-level getters+    getInstrTab, note2sig, note2tab+) where++import qualified Sharc.Types as Sh+import qualified Sharc.Data as Sh+import Csound.Base+import Sharc.Types++note2sig :: Sh.Note -> Sig+note2sig n = oscBy (harmonics2tab $ Sh.noteHarmonics n) (sig $ double $ Sh.pitchFund $ Sh.notePitch n)++note2tab :: Sh.Note -> Tab+note2tab n = (harmonics2tab $ Sh.noteHarmonics n)++deg x = 180 * x / pi++harmonics2tab harmonics = sines3 $ fmap (\h -> (fromIntegral $ Sh.harmonicId h, Sh.harmonicAmplitude h, deg $ Sh.harmonicPhase h)) harmonics++-- | Get instrument wae table by midi pitch number.+getInstrTab :: SharcInstr -> Int -> Tab+getInstrTab (SharcInstr instr) n = note2tab $ Sh.instrNotes instr !! idx+    where+        ns = Sh.instrNotes instr+        keys = fmap (Sh.pitchKeyNum . Sh.notePitch) ns+        keyMin = minimum keys+        keyMax = maximum keys+        idx = (min (max keyMin n) keyMax - keyMin)++---------------------------------------------------------------------------+-- oscilliators++-- | Sharc oscillator+sharcOsc :: SharcInstr -> D -> Sig+sharcOsc instr cpsTab = sigSharcOsc instr cpsTab (sig cpsTab)++-- | Sharc oscillator with continuous pitch.+-- The second argument picks upth table by frequency+-- and the third supplies the frequency.+sigSharcOsc :: SharcInstr -> D -> Sig -> Sig+sigSharcOsc = genSharcOsc' oscBy ++-- | Sharc oscillator with randomized phase.+rndSharcOsc :: SharcInstr -> D -> SE Sig+rndSharcOsc instr cpsTab = rndSigSharcOsc instr cpsTab (sig cpsTab)++-- | Sharc oscillator with continuous pitch and randomized phase.+rndSigSharcOsc :: SharcInstr -> D -> Sig -> SE Sig+rndSigSharcOsc = genSharcOsc' rndOscBy ++genSharcOsc' :: (Tab -> Sig -> a) -> SharcInstr -> D -> Sig -> a+genSharcOsc' wave (SharcInstr instr) cps cpsSig = wave t cpsSig+    where+        t = fromTabListD tabs (cps2pitch cps - int keyMin)        ++        tabs = tabList $ fmap note2tab ns++        ns = Sh.instrNotes instr+        keys = fmap (Sh.pitchKeyNum . Sh.notePitch) ns+        keyMin = minimum keys        ++cps2pitch :: Floating a => a -> a+cps2pitch x =  69 + 12 * logBase 2 (x / 440)++---------------------------------------------------------------------------+-- patches++uni = multiHz 4 (cent 40)++-- | Plays a solo instrument+soloSharcOsc :: SharcInstr -> D -> SE Sig+soloSharcOsc instr cps = mul (fades 0.001 0.05) $ rndSharcOsc instr cps++-- | Plays a orchestrated instrument (with pitch chorus)+orcSharcOsc :: SharcInstr -> D -> SE Sig+orcSharcOsc instr cps = mul (fades 0.01 0.42) $ uni (rndSharcOsc instr . ir) (sig cps)++-- | Plays a solo instrument with pad-like envelope+purePadSharcOsc :: SharcInstr -> D -> SE Sig+purePadSharcOsc instr cps = mul (fades 0.65 0.75) $ rndSharcOsc instr cps++-- | Plays orchestrated instrument with pad-like envelope+padSharcOsc :: SharcInstr -> D -> SE Sig+padSharcOsc instr cps = mul (fades 0.65 0.75) $ uni (rndSharcOsc instr . ir) (sig cps)++---------------------------------------------------------------------------+-- sharc instr++newtype SharcInstr = SharcInstr { unSharcInstr :: Sh.Instr }++shViolin :: SharcInstr+shViolin = SharcInstr Sh.violin++shViolinPizzicato :: SharcInstr+shViolinPizzicato = SharcInstr Sh.violinPizzicato++shViolinMuted :: SharcInstr+shViolinMuted = SharcInstr Sh.violinMuted++shViolinMarteleBowing :: SharcInstr+shViolinMarteleBowing = SharcInstr Sh.violinMarteleBowing++shViolinsEnsemble :: SharcInstr+shViolinsEnsemble = SharcInstr Sh.violinsEnsemble++shViola :: SharcInstr+shViola = SharcInstr Sh.viola++shViolaPizzicato :: SharcInstr+shViolaPizzicato = SharcInstr Sh.violaPizzicato++shViolaMuted :: SharcInstr+shViolaMuted = SharcInstr Sh.violaMuted++shViolaMarteleBowing :: SharcInstr+shViolaMarteleBowing = SharcInstr Sh.violaMarteleBowing++shTuba :: SharcInstr+shTuba = SharcInstr Sh.tuba++shTromboneMuted :: SharcInstr+shTromboneMuted = SharcInstr Sh.tromboneMuted++shTrombone :: SharcInstr+shTrombone = SharcInstr Sh.trombone++shPiccolo :: SharcInstr+shPiccolo = SharcInstr Sh.piccolo++shOboe :: SharcInstr+shOboe = SharcInstr Sh.oboe++shFrenchHornMuted :: SharcInstr+shFrenchHornMuted = SharcInstr Sh.frenchHornMuted++shFrenchHorn :: SharcInstr+shFrenchHorn = SharcInstr Sh.frenchHorn++shFlute :: SharcInstr+shFlute = SharcInstr Sh.flute++shEnglishHorn :: SharcInstr+shEnglishHorn = SharcInstr Sh.englishHorn++shClarinetEflat :: SharcInstr+shClarinetEflat = SharcInstr Sh.clarinetEflat++shTrumpetMutedC :: SharcInstr+shTrumpetMutedC = SharcInstr Sh.trumpetMutedC++shTrumpetC :: SharcInstr+shTrumpetC = SharcInstr Sh.trumpetC++shContrabassClarinet :: SharcInstr+shContrabassClarinet = SharcInstr Sh.contrabassClarinet++shContrabassoon :: SharcInstr+shContrabassoon = SharcInstr Sh.contrabassoon++shCello :: SharcInstr+shCello = SharcInstr Sh.cello++shCelloPizzicato :: SharcInstr+shCelloPizzicato = SharcInstr Sh.celloPizzicato++shCelloMuted :: SharcInstr+shCelloMuted = SharcInstr Sh.celloMuted++shCelloMarteleBowing :: SharcInstr+shCelloMarteleBowing = SharcInstr Sh.celloMarteleBowing++shContrabassPizzicato :: SharcInstr+shContrabassPizzicato = SharcInstr Sh.contrabassPizzicato++shContrabassMuted :: SharcInstr+shContrabassMuted = SharcInstr Sh.contrabassMuted++shContrabassMarteleBowing :: SharcInstr+shContrabassMarteleBowing = SharcInstr Sh.contrabassMarteleBowing++shContrabass :: SharcInstr+shContrabass = SharcInstr Sh.contrabass++shClarinet :: SharcInstr+shClarinet = SharcInstr Sh.clarinet++shBassTrombone :: SharcInstr+shBassTrombone = SharcInstr Sh.bassTrombone++shBassClarinet :: SharcInstr+shBassClarinet = SharcInstr Sh.bassClarinet++shBassoon :: SharcInstr+shBassoon = SharcInstr Sh.bassoon++shBassFlute :: SharcInstr+shBassFlute = SharcInstr Sh.bassFlute++shTrumpetBach :: SharcInstr+shTrumpetBach = SharcInstr Sh.trumpetBach++shAltoTrombone :: SharcInstr+shAltoTrombone = SharcInstr Sh.altoTrombone++shAltoFlute :: SharcInstr+shAltoFlute = SharcInstr Sh.altoFlute
src/Csound/Patch.hs view
@@ -15,12 +15,15 @@ 	amPiano, fmPiano,  	epiano2, epianoHeavy, epianoBright, 	vibraphonePiano1, vibraphonePiano2,+	addHammer,  	-- * Organ 	cathedralOrgan, toneWheelOrgan,  	HammondOrgan(..), hammondOrgan, hammondOrgan', 	sawOrgan, triOrgan, sqrOrgan, pwOrgan, waveOrgan, +	hammondOrganm, hammondOrganm', sawOrganm, triOrganm, sqrOrganm, pwOrganm, waveOrganm,+ 	-- * Accordeon 	accordeon, accordeonBright1, accordeonBright2, brokenAccordeon, 	accordeon', Accordeon(..),@@ -35,20 +38,30 @@ 	pwPad, triPad, nightPad, overtonePad, caveOvertonePad, 	chorusel, pwEnsemble, fmDroneSlow, fmDroneMedium, fmDroneFast, vibrophonePad, 	RazorPad(..), razorPadSlow, razorPadFast, razorPadTremolo, razorPad, razorPad',-	dreamPad, underwaterPad, lightIsTooBrightPad, whaleSongPad,-	dreamPad', underwaterPad', lightIsTooBrightPad', whaleSongPad',+	dreamPad, underwaterPad, lightIsTooBrightPad, whaleSongPad, dreamPadBy,+	dreamPad', underwaterPad', lightIsTooBrightPad', whaleSongPad', dreamPad', dreamPadBy', +	-- ** Pad Monosynth+	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',+ 	-- * Lead 	polySynth,  	phasingLead, RazorLead(..), razorLeadSlow, razorLeadFast, razorLeadTremolo, 	razorLead, razorLead', 	overtoneLead, +	-- ** Lead Monosynth+	polySynthm,+ 	-- * Bass 	simpleBass, pwBass, deepBass, withDeepBass,  	-- * Plucked-	guitar, harpsichord,+	guitar, harpsichord,	  	-- * Strike @@ -90,6 +103,19 @@ 	scrapePadUniformAluminumBar, scrapePadVibraphone1, scrapePadVibraphone2, scrapePadChalandiPlates, scrapePadTibetanBowl152, 	scrapePadTibetanBowl140, scrapePadWineGlass, scrapePadSmallHandbell, scrapePadAlbertClockBellBelfast, scrapePadWoodBlock, ++	-- ** Scrape monosynth+	-- | Unfortunately they don't work with @atMonoMidi@. Though @atNote@ works fine. +	scrapeDahinam, scrapeBanyanm, scrapeXylophonem, scrapeTibetanBowl180m, scrapeSpinelSpherem, scrapePotLidm, scrapeRedCedarWoodPlatem,+	scrapeTubularBellm, scrapeRedwoodPlatem, scrapeDouglasFirWoodPlatem, scrapeUniformWoodenBarm, scrapeUniformAluminumBarm,+	scrapeVibraphone1m, scrapeVibraphone2m, scrapeChalandiPlatesm, scrapeTibetanBowl152m, scrapeTibetanBowl140m, scrapeWineGlassm,+	scrapeSmallHandbellm, scrapeAlbertClockBellBelfastm, scrapeWoodBlockm, ++	scrapePadDahinam, scrapePadBanyanm, scrapePadXylophonem, scrapePadTibetanBowl180m, scrapePadSpinelSpherem, scrapePadPotLidm,+	scrapePadRedCedarWoodPlatem, scrapePadTubularBellm, scrapePadRedwoodPlatem, scrapePadDouglasFirWoodPlatem, scrapePadUniformWoodenBarm,+	scrapePadUniformAluminumBarm, scrapePadVibraphone1m, scrapePadVibraphone2m, scrapePadChalandiPlatesm, scrapePadTibetanBowl152m,+	scrapePadTibetanBowl140m, scrapePadWineGlassm, scrapePadSmallHandbellm, scrapePadAlbertClockBellBelfastm, scrapePadWoodBlockm,+ 	-- * Woodwind  	Wind(..), woodWind',@@ -112,8 +138,19 @@ 	diziSpec, shortDiziSpec,  	dizi, shortDizi, diziVibrato, mutedDizi, brightDizi, +	-- * SHARC instruments+	SharcInstr,+	soloSharc, orcSharc, padSharc, purePadSharc, dreamSharc, dreamSharc',++	-- ** concrete instruments+	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,+ 	-- * X-rays-	pulseWidth, xanadu, alienIsAngry, noiz, blue, black, simpleMarimba, okComputer, noiseBell,+	pulseWidth, xanadu, alienIsAngry, noiz, blue, black, simpleMarimba, impulseMarimba1, impulseMarimba2, okComputer, noiseBell,  	-- * Robotic vowels 	robotVowels, robotLoopVowels, robotVowel,@@ -139,10 +176,19 @@ import Csound.Catalog.Wave(maleA, maleE, maleIY, maleO, maleOO, maleU, maleER, maleUH,     femaleA, femaleE, femaleIY, femaleO, femaleOO) -import Csound.Catalog.Wave(Accordeon(..))+import Csound.Catalog.Wave(Accordeon(..),+	SharcInstr,+	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)  import Data.Char +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)] @@ -160,7 +206,7 @@ singleFx' = fx1'  -- | Limits the release section of the note.-limRel :: SigSpace a => D -> Patch a -> Patch a+limRel :: SigSpace b => D -> Patch a b -> Patch a b limRel rel p = p { patchInstr = fmap (mul (fadeOut rel)) . patchInstr p }  ----------------------------------------------@@ -199,21 +245,25 @@ 	{ patchInstr = at fromMono . mul 0.75 . onCps (C.fmFlavio 6 3) 	, patchFx    = fx1 0.15 smallHall2 } -epiano2 = Patch +epiano2 = addHammer 0.15 $ Patch  	{ patchInstr = mul 1.125 . at fromMono . (onCps $ C.epiano [C.EpianoOsc 4 5 1 1, C.EpianoOsc 8 10 2.01 1]) 	, patchFx    = fx1 0.25 smallHall2 } -epianoHeavy = Patch +epianoHeavy = addHammer 0.15 $ Patch  	{ patchInstr = mul 1.125 . at fromMono . (onCps $ C.epiano [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 } -epianoBright = Patch +epianoBright = addHammer 0.15 $ Patch  	{ patchInstr = mul 1.12 . at fromMono . (onCps $ C.epiano [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 } -vibraphonePiano1 = smallVibraphone1 { patchInstr = mul (1.5 * fadeOut 0.25) . at (mlp 6500 0.1). patchInstr smallVibraphone1 }-vibraphonePiano2 = smallVibraphone2 { patchInstr = mul (1.5 * fadeOut 0.25) . at (mlp 6500 0.1). patchInstr smallVibraphone2 }+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 } +-- | Adds a hammer strike sound. The first argument is the amount of hammer sound.+addHammer :: Sig -> Patch2 -> Patch2+addHammer amt = mixInstr amt impulseMarimba2+ ---------------------------------------------- -- organs @@ -230,12 +280,18 @@  hammondOrgan = hammondOrgan' def +hammondOrganm = hammondOrganm' def+ hammondOrgan' (HammondOrgan detune) = Patch 	{ patchInstr = mul 0.4 . at fromMono . onCps (C.hammondOrgan detune) 	, patchFx    = fx1 0.15 smallRoom2 } +hammondOrganm' (HammondOrgan detune) = Patch+	{ patchInstr = mul 0.4 . at fromMono . onSig1 (C.hammondOrgan detune)+	, patchFx    = fx1 0.15 smallRoom2 }+ toneWheelOrgan = Patch-	{ patchInstr = at fromMono  . mul 0.6 . onCps C.toneWheel+	{ patchInstr = at fromMono  . mul (0.6 * fadeOut 0.05) . onCps C.toneWheel 	, patchFx    = fx1 0.3 smallHall2 }  sawOrgan  = mul 0.45 $ waveOrgan rndSaw@@ -243,12 +299,23 @@ sqrOrgan  = mul 0.45 $ waveOrgan rndSqr pwOrgan k = mul 0.45 $ waveOrgan (rndPw k) +sawOrganm  = mul 0.45 $ waveOrganm rndSaw+triOrganm  = mul 0.5  $ waveOrganm rndTri+sqrOrganm  = mul 0.45 $ waveOrganm rndSqr+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	 	} +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	+	}+ ---------------------------------------------- -- accordeons @@ -330,40 +397,78 @@ 	{ 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 } +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 }+ pwEnsemble = Patch 	{ patchInstr = at fromMono . mul 0.55 . onCps C.pwEnsemble 	, patchFx    = fx1 0.25 smallHall2 } +pwEnsemblem = Patch+	{ patchInstr = at fromMono . mul 0.55 . onSig1 C.pwEnsemble+	, patchFx    = fx1 0.25 smallHall2 }+ fmDroneSlow = Patch 	{ patchInstr = at fromMono . mul 0.5 . onCps (C.fmDrone 3 (10, 5)) 	, patchFx    = fx1 0.35 largeHall2 } +fmDroneSlowm = Patch+	{ patchInstr = return . at fromMono . mul 0.5 . onSig1 (C.fmDrone 3 (10, 5))+	, patchFx    = fx1 0.35 largeHall2 }+ fmDroneMedium = Patch 	{ patchInstr = at fromMono . mul 0.5 . onCps (C.fmDrone 3 (5, 3)) 	, patchFx    = fx1 0.25 smallHall2 } +fmDroneMediumm = Patch+	{ patchInstr = return . at fromMono . mul 0.5 . onSig1 (C.fmDrone 3 (5, 3))+	, patchFx    = fx1 0.25 smallHall2 }+ fmDroneFast = Patch 	{ patchInstr = at fromMono . mul 0.5 . onCps (C.fmDrone 3 (0.5, 1)) 	, patchFx    = fx1 0.25 smallHall2 }  +fmDroneFastm = Patch+	{ patchInstr = return . at fromMono . mul 0.5 . onSig1 (C.fmDrone 3 (0.5, 1))+	, patchFx    = fx1 0.25 smallHall2 } + vibrophonePad = largeVibraphone1 { patchInstr = mul (1.5 * fades 0.5 0.25) . at (mlp 2500 0.1). patchInstr largeVibraphone1 }  data RazorPad = RazorPad { razorPadSpeed :: Sig }@@ -375,13 +480,23 @@ razorPadFast = razorPad' (def { razorPadSpeed = 1.7 }) razorPadTremolo = razorPad' (def { razorPadSpeed = 6.7 }) +razorPadSlowm = razorPadm' (def { razorPadSpeed = 0.1 })+razorPadFastm = razorPadm' (def { razorPadSpeed = 1.7 })+razorPadTremolom = razorPadm' (def { razorPadSpeed = 6.7 })+ razorPad = razorPad' def +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 }+ 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)]  dreamPad = dreamPad' 0.35@@ -389,6 +504,15 @@ lightIsTooBrightPad = lightIsTooBrightPad' 0.55 whaleSongPad = whaleSongPad' 0.35 +dreamPadBy = dreamPadBy' 0.35++dreamPadm = dreamPadm' 0.35+underwaterPadm = underwaterPadm' 0.35+lightIsTooBrightPadm = lightIsTooBrightPadm' 0.55+whaleSongPadm = whaleSongPadm' 0.35++dreamPadBym = dreamPadBym' 0.35+ -- | The first argument is brightness (0 to 1) dreamPad' :: Sig -> Patch2 dreamPad' bright = Patch @@ -396,7 +520,28 @@     , patchFx    = dreamPadFx     } +-- | 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+    }+ -- | The first argument is brightness (0 to 1)+dreamPadm' :: Sig -> PatchSig2+dreamPadm' bright = Patch +    { patchInstr = fmap fromMono . onSig1 (C.dreamPad bright)    +    , patchFx    = dreamPadFx+    }++-- | 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+    }++-- | The first argument is brightness (0 to 1) underwaterPad' :: Sig -> Patch2 underwaterPad' bright = Patch      { patchInstr = fmap fromMono . onCps (C.underwaterPad bright)    @@ -404,12 +549,25 @@     }  -- | The first argument is brightness (0 to 1)+underwaterPadm' :: Sig -> PatchSig2+underwaterPadm' bright = Patch +    { patchInstr = fmap fromMono . onSig1 (C.underwaterPad bright)    +    , patchFx    = dreamPadFx+    }++-- | The first argument is brightness (0 to 1) lightIsTooBrightPad' :: Sig -> Patch2 lightIsTooBrightPad' bright = Patch      { patchInstr = fmap fromMono . onCps (C.lightIsTooBrightPad bright)         , patchFx    = dreamPadFx     } +lightIsTooBrightPadm' :: Sig -> PatchSig2+lightIsTooBrightPadm' bright = Patch +    { patchInstr = fmap fromMono . onSig1 (C.lightIsTooBrightPad bright)    +    , patchFx    = dreamPadFx+    }+ -- | The first argument is brightness (0 to 1) whaleSongPad' :: Sig -> Patch2 whaleSongPad' bright = Patch @@ -417,6 +575,12 @@     , patchFx    = dreamPadFx     } +whaleSongPadm' :: Sig -> PatchSig2+whaleSongPadm' bright = Patch +    { patchInstr = fmap fromMono . onSig1 (C.whaleSongPad bright)    +    , patchFx    = dreamPadFx+    }+ ------------------------------------ -- leads @@ -425,6 +589,11 @@ 	, 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 = 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)]+	}+ phasingLead = Patch 	{ patchInstr = at fromMono . mul (0.7 * fadeOut 0.05) . onCps (uncurry C.phasingSynth) 	, patchFx    = fx1 0.25 smallHall2 }@@ -505,7 +674,7 @@ instance Default Strike where 	def = Strike 1.5 True smallHall2 -strike' :: Strike -> (Sig -> Sig) -> Patch Sig2+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) }@@ -723,8 +892,16 @@ 	{ 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 } +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 }+ 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 }++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 }	  scaleScrapeDahina = 1.32@@ -771,6 +948,28 @@ scrapeAlbertClockBellBelfast = scrape scaleScrapeAlbertClockBellBelfast C.albertClockBellBelfastModes scrapeWoodBlock = scrape scaleScrapeWoodBlock C.woodBlockModes +scrapeDahinam = scrapem scaleScrapeDahina C.dahinaModes+scrapeBanyanm = scrapem scaleScrapeBanyan C.banyanModes+scrapeXylophonem = scrapem scaleScrapeXylophone C.xylophoneModes+scrapeTibetanBowl180m = scrapem scaleScrapeTibetanBowl180 C.tibetanBowlModes180+scrapeSpinelSpherem = scrapem scaleScrapeSpinelSphere C.spinelSphereModes+scrapePotLidm = scrape scaleScrapePotLid C.potLidModes+scrapeRedCedarWoodPlatem = scrapem scaleScrapeRedCedarWoodPlate C.redCedarWoodPlateModes+scrapeTubularBellm = scrapem scaleScrapeTubularBell C.tubularBellModes+scrapeRedwoodPlatem = scrapem scaleScrapeRedwoodPlate C.redwoodPlateModes+scrapeDouglasFirWoodPlatem = scrapem scaleScrapeDouglasFirWoodPlate C.douglasFirWoodPlateModes+scrapeUniformWoodenBarm = scrapem scaleScrapeUniformWoodenBar C.uniformWoodenBarModes+scrapeUniformAluminumBarm = scrapem scaleScrapeUniformAluminumBar C.uniformAluminumBarModes+scrapeVibraphone1m = scrapem scaleScrapeVibraphone1 C.vibraphoneModes1+scrapeVibraphone2m = scrapem scaleScrapeVibraphone2 C.vibraphoneModes2+scrapeChalandiPlatesm = scrapem scaleScrapeChalandiPlates C.chalandiPlatesModes+scrapeTibetanBowl152m = scrapem scaleScrapeTibetanBowl152 C.tibetanBowlModes152+scrapeTibetanBowl140m = scrapem scaleScrapeTibetanBowl140 C.tibetanBowlModes140+scrapeWineGlassm = scrapem scaleScrapeWineGlass C.wineGlassModes+scrapeSmallHandbellm = scrapem scaleScrapeSmallHandbell C.smallHandbellModes+scrapeAlbertClockBellBelfastm = scrapem scaleScrapeAlbertClockBellBelfast C.albertClockBellBelfastModes+scrapeWoodBlockm = scrapem scaleScrapeWoodBlock C.woodBlockModes+ scrapeFastDahina = scrapeFast scaleScrapeDahina C.dahinaModes scrapeFastBanyan = scrapeFast scaleScrapeBanyan C.banyanModes scrapeFastXylophone = scrapeFast scaleScrapeXylophone C.xylophoneModes@@ -815,6 +1014,29 @@ scrapePadAlbertClockBellBelfast = scrapePad scaleScrapeAlbertClockBellBelfast C.albertClockBellBelfastModes scrapePadWoodBlock = scrapePad scaleScrapeWoodBlock C.woodBlockModes +scrapePadDahinam = scrapePadm scaleScrapeDahina C.dahinaModes+scrapePadBanyanm = scrapePadm scaleScrapeBanyan C.banyanModes+scrapePadXylophonem = scrapePadm scaleScrapeXylophone C.xylophoneModes+scrapePadTibetanBowl180m = scrapePadm scaleScrapeTibetanBowl180 C.tibetanBowlModes180+scrapePadSpinelSpherem = scrapePadm scaleScrapeSpinelSphere C.spinelSphereModes+scrapePadPotLidm = scrapePadm scaleScrapePotLid C.potLidModes+scrapePadRedCedarWoodPlatem = scrapePadm scaleScrapeRedCedarWoodPlate C.redCedarWoodPlateModes+scrapePadTubularBellm = scrapePadm scaleScrapeTubularBell C.tubularBellModes+scrapePadRedwoodPlatem = scrapePadm scaleScrapeRedwoodPlate C.redwoodPlateModes+scrapePadDouglasFirWoodPlatem = scrapePadm scaleScrapeDouglasFirWoodPlate C.douglasFirWoodPlateModes+scrapePadUniformWoodenBarm = scrapePadm scaleScrapeUniformWoodenBar C.uniformWoodenBarModes+scrapePadUniformAluminumBarm = scrapePadm scaleScrapeUniformAluminumBar C.uniformAluminumBarModes+scrapePadVibraphone1m = scrapePadm scaleScrapeVibraphone1 C.vibraphoneModes1+scrapePadVibraphone2m = scrapePadm scaleScrapeVibraphone2 C.vibraphoneModes2+scrapePadChalandiPlatesm = scrapePadm scaleScrapeChalandiPlates C.chalandiPlatesModes+scrapePadTibetanBowl152m = scrapePadm scaleScrapeTibetanBowl152 C.tibetanBowlModes152+scrapePadTibetanBowl140m = scrapePadm scaleScrapeTibetanBowl140 C.tibetanBowlModes140+scrapePadWineGlassm = scrapePadm scaleScrapeWineGlass C.wineGlassModes+scrapePadSmallHandbellm = scrapePadm scaleScrapeSmallHandbell C.smallHandbellModes+scrapePadAlbertClockBellBelfastm = scrapePadm scaleScrapeAlbertClockBellBelfast C.albertClockBellBelfastModes+scrapePadWoodBlockm = scrapePadm scaleScrapeWoodBlock C.woodBlockModes++ ------------------------------------ -- woodwind @@ -1111,6 +1333,14 @@ 	{ patchInstr = at fromMono . mul (0.8 * fades 0.01 0.5). onCps (C.simpleMarimba 5) 	, patchFx    = fx1 0.25 smallHall2 } 	+impulseMarimba1 = Patch+	{ patchInstr = at fromMono . mul (0.8 * fadeOut 0.75). onCps C.impulseMarimba1+	, patchFx    = fx1 0.3 smallHall2 }++impulseMarimba2 = Patch+	{ patchInstr = at fromMono . mul (0.8 * fadeOut 0.75). onCps C.impulseMarimba2+	, patchFx    = fx1 0.3 smallHall2 }+ 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 }@@ -1155,4 +1385,43 @@  ------------------------------------ -- drums++------------------------------------+-- SHARC patches++-- | Solo instrument.+soloSharc :: SharcInstr -> Patch2+soloSharc instr = Patch +    { patchInstr = fmap fromMono . onCps (C.soloSharcOsc instr)+    , patchFx    = fx1 0.25 smallHall2+    }++-- | Instrumet played in ensemble (with chorus).+orcSharc :: SharcInstr -> Patch2+orcSharc instr = Patch +    { patchInstr = fmap fromMono . onCps (C.orcSharcOsc instr)+    , patchFx    = fx1 0.25 largeHall2+    }++-- | Pad orchestra instrument.+padSharc :: SharcInstr -> Patch2+padSharc instr = Patch +    { patchInstr = fmap fromMono . onCps (C.padSharcOsc instr)+    , patchFx    = fx1 0.35 largeHall2+    }++-- | Pad solo instrument.`+purePadSharc :: SharcInstr -> Patch2+purePadSharc instr = Patch +    { patchInstr = fmap fromMono . onCps (C.purePadSharcOsc instr)+    , patchFx    = fx1 0.35 largeHall2+    }++-- | Dream Pad patch made with SHARC oscillators.+dreamSharc :: SharcInstr -> Patch2+dreamSharc instr = dreamPadBy (\cps -> C.rndSigSharcOsc instr (ir cps) cps)++-- | Dream Pad patch made with SHARC oscillators.+dreamSharc' :: SharcInstr -> Sig -> Patch2+dreamSharc' instr brightness = dreamPadBy' brightness (\cps -> C.rndSigSharcOsc instr (ir cps) cps)