module Synthesizer.Modifiers.Ceiling
where
import Synthesizer.Structure
ceiling :: Double -> SoundEvent -> SoundEvent
ceiling :: Double -> SoundEvent -> SoundEvent
ceiling Double
max SoundEvent
event = SoundEvent
event {samples :: SamplingRate -> [Double]
samples = SamplingRate -> [Double]
newSamples}
where
oldSamples :: SamplingRate -> [Double]
oldSamples = SoundEvent -> SamplingRate -> [Double]
samples SoundEvent
event
newSamples :: SamplingRate -> [Double]
newSamples SamplingRate
samplingRate = (Double -> Double) -> [Double] -> [Double]
forall a b. (a -> b) -> [a] -> [b]
map (Double -> Double -> Double
forall a. Ord a => a -> a -> a
`min` Double
max) (SamplingRate -> [Double]
oldSamples SamplingRate
samplingRate)
floor :: Double -> SoundEvent -> SoundEvent
floor :: Double -> SoundEvent -> SoundEvent
floor Double
min SoundEvent
event = SoundEvent
event {samples :: SamplingRate -> [Double]
samples = SamplingRate -> [Double]
newSamples}
where
oldSamples :: SamplingRate -> [Double]
oldSamples = SoundEvent -> SamplingRate -> [Double]
samples SoundEvent
event
newSamples :: SamplingRate -> [Double]
newSamples SamplingRate
samplingRate = (Double -> Double) -> [Double] -> [Double]
forall a b. (a -> b) -> [a] -> [b]
map (Double -> Double -> Double
forall a. Ord a => a -> a -> a
`max` Double
min) (SamplingRate -> [Double]
oldSamples SamplingRate
samplingRate)