lambdasound 1.2.0 → 1.2.1
raw patch · 2 files changed
+12/−12 lines, 2 filesdep ~ansi-terminaldep ~bytestringdep ~filepathPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: ansi-terminal, bytestring, filepath, hashable, hashtables, random, tasty, tasty-bench, zlib
API changes (from Hackage documentation)
- LambdaSound.Convolution: [$sel:coefficients:Kernel] :: Kernel p -> p -> Float
- LambdaSound.Convolution: [$sel:offset:Kernel] :: Kernel p -> p
- LambdaSound.Convolution: [$sel:size:Kernel] :: Kernel p -> p
- LambdaSound.Effect: [$sel:attack:Envelope] :: Envelope -> !Duration
- LambdaSound.Effect: [$sel:decay:Envelope] :: Envelope -> !Duration
- LambdaSound.Effect: [$sel:release:Envelope] :: Envelope -> !Duration
- LambdaSound.Effect: [$sel:sustain:Envelope] :: Envelope -> !Float
- LambdaSound.Effect: instance GHC.Show.Show LambdaSound.Effect.Envelope
- LambdaSound.Filter: [$sel:feedback:IIRParams] :: IIRParams -> !Vector S Float
- LambdaSound.Filter: [$sel:feedforward:IIRParams] :: IIRParams -> !Vector S Float
- LambdaSound.Filter: instance GHC.Show.Show LambdaSound.Filter.IIRParams
- LambdaSound.Note: instance GHC.Enum.Enum LambdaSound.Note.Semitone
- LambdaSound.Note: instance GHC.Num.Num LambdaSound.Note.Semitone
- LambdaSound.Note: instance GHC.Show.Show LambdaSound.Note.Semitone
- LambdaSound.Sound: [$sel:period:SamplingInfo] :: SamplingInfo -> !Float
- LambdaSound.Sound: [$sel:sampleRate:SamplingInfo] :: SamplingInfo -> Hz
- LambdaSound.Sound: [$sel:samples:SamplingInfo] :: SamplingInfo -> Int
- LambdaSound.Sound: instance GHC.Base.Applicative (LambdaSound.Sound.Sound 'LambdaSound.Sound.I)
- LambdaSound.Sound: instance GHC.Base.Functor (LambdaSound.Sound.Sound d)
- LambdaSound.Sound: instance GHC.Base.Monoid (LambdaSound.Sound.Sound 'LambdaSound.Sound.I LambdaSound.Sound.Types.Pulse)
- LambdaSound.Sound: instance GHC.Base.Monoid (LambdaSound.Sound.Sound 'LambdaSound.Sound.T LambdaSound.Sound.Types.Pulse)
- LambdaSound.Sound: instance GHC.Base.Semigroup (LambdaSound.Sound.Sound d LambdaSound.Sound.Types.Pulse)
- LambdaSound.Sound: instance GHC.Num.Num a => GHC.Num.Num (LambdaSound.Sound.Sound 'LambdaSound.Sound.I a)
- LambdaSound.Sound: instance GHC.Show.Show (LambdaSound.Sound.Sound d LambdaSound.Sound.Types.Pulse)
+ LambdaSound.Convolution: [coefficients] :: Kernel p -> p -> Float
+ LambdaSound.Convolution: [offset] :: Kernel p -> p
+ LambdaSound.Convolution: [size] :: Kernel p -> p
+ LambdaSound.Effect: [attack] :: Envelope -> !Duration
+ LambdaSound.Effect: [decay] :: Envelope -> !Duration
+ LambdaSound.Effect: [release] :: Envelope -> !Duration
+ LambdaSound.Effect: [sustain] :: Envelope -> !Float
+ LambdaSound.Effect: instance GHC.Internal.Show.Show LambdaSound.Effect.Envelope
+ LambdaSound.Filter: [feedback] :: IIRParams -> !Vector S Float
+ LambdaSound.Filter: [feedforward] :: IIRParams -> !Vector S Float
+ LambdaSound.Filter: instance GHC.Internal.Show.Show LambdaSound.Filter.IIRParams
+ LambdaSound.Note: instance GHC.Internal.Enum.Enum LambdaSound.Note.Semitone
+ LambdaSound.Note: instance GHC.Internal.Num.Num LambdaSound.Note.Semitone
+ LambdaSound.Note: instance GHC.Internal.Show.Show LambdaSound.Note.Semitone
+ LambdaSound.Sound: [period] :: SamplingInfo -> !Float
+ LambdaSound.Sound: [sampleRate] :: SamplingInfo -> Hz
+ LambdaSound.Sound: [samples] :: SamplingInfo -> Int
+ LambdaSound.Sound: instance GHC.Internal.Base.Applicative (LambdaSound.Sound.Sound 'LambdaSound.Sound.I)
+ LambdaSound.Sound: instance GHC.Internal.Base.Functor (LambdaSound.Sound.Sound d)
+ LambdaSound.Sound: instance GHC.Internal.Base.Monoid (LambdaSound.Sound.Sound 'LambdaSound.Sound.I LambdaSound.Sound.Types.Pulse)
+ LambdaSound.Sound: instance GHC.Internal.Base.Monoid (LambdaSound.Sound.Sound 'LambdaSound.Sound.T LambdaSound.Sound.Types.Pulse)
+ LambdaSound.Sound: instance GHC.Internal.Base.Semigroup (LambdaSound.Sound.Sound d LambdaSound.Sound.Types.Pulse)
+ LambdaSound.Sound: instance GHC.Internal.Num.Num a => GHC.Internal.Num.Num (LambdaSound.Sound.Sound 'LambdaSound.Sound.I a)
+ LambdaSound.Sound: instance GHC.Internal.Show.Show (LambdaSound.Sound.Sound d LambdaSound.Sound.Types.Pulse)
- LambdaSound.Cache: cache :: Sound d Pulse -> Sound d Pulse
+ LambdaSound.Cache: cache :: forall (d :: SoundDuration). Sound d Pulse -> Sound d Pulse
- LambdaSound.Convolution: convolveDuration :: Kernel Duration -> Sound T Pulse -> Sound T Pulse
+ LambdaSound.Convolution: convolveDuration :: Kernel Duration -> Sound 'T Pulse -> Sound 'T Pulse
- LambdaSound.Convolution: convolvePercentage :: Kernel Percentage -> Sound d Pulse -> Sound d Pulse
+ LambdaSound.Convolution: convolvePercentage :: forall (d :: SoundDuration). Kernel Percentage -> Sound d Pulse -> Sound d Pulse
- LambdaSound.Convolution: convolveSamples :: Kernel Int -> Sound T Pulse -> Sound T Pulse
+ LambdaSound.Convolution: convolveSamples :: Kernel Int -> Sound 'T Pulse -> Sound 'T Pulse
- LambdaSound.Create: constant :: a -> Sound I a
+ LambdaSound.Create: constant :: a -> Sound 'I a
- LambdaSound.Create: iUnfoldlSound :: (Int -> s -> (s, a)) -> s -> Sound I a
+ LambdaSound.Create: iUnfoldlSound :: (Int -> s -> (s, a)) -> s -> Sound 'I a
- LambdaSound.Create: iUnfoldlSoundPulse :: (Int -> s -> (s, Pulse)) -> s -> Sound I Pulse
+ LambdaSound.Create: iUnfoldlSoundPulse :: (Int -> s -> (s, Pulse)) -> s -> Sound 'I Pulse
- LambdaSound.Create: iUnfoldrSound :: (s -> Int -> (a, s)) -> s -> Sound I a
+ LambdaSound.Create: iUnfoldrSound :: (s -> Int -> (a, s)) -> s -> Sound 'I a
- LambdaSound.Create: iUnfoldrSoundPulse :: (s -> Int -> (Pulse, s)) -> s -> Sound I Pulse
+ LambdaSound.Create: iUnfoldrSoundPulse :: (s -> Int -> (Pulse, s)) -> s -> Sound 'I Pulse
- LambdaSound.Create: iterateSound :: (a -> a) -> a -> Sound I a
+ LambdaSound.Create: iterateSound :: (a -> a) -> a -> Sound 'I a
- LambdaSound.Create: iterateSoundPulse :: (Pulse -> Pulse) -> Pulse -> Sound I Pulse
+ LambdaSound.Create: iterateSoundPulse :: (Pulse -> Pulse) -> Pulse -> Sound 'I Pulse
- LambdaSound.Create: progress :: Sound I Progress
+ LambdaSound.Create: progress :: Sound 'I Progress
- LambdaSound.Create: sampleIndex :: Sound I Int
+ LambdaSound.Create: sampleIndex :: Sound 'I Int
- LambdaSound.Create: silence :: Sound I Pulse
+ LambdaSound.Create: silence :: Sound 'I Pulse
- LambdaSound.Create: time :: Sound I Time
+ LambdaSound.Create: time :: Sound 'I Time
- LambdaSound.Create: unfoldlSound :: (s -> (s, a)) -> s -> Sound I a
+ LambdaSound.Create: unfoldlSound :: (s -> (s, a)) -> s -> Sound 'I a
- LambdaSound.Create: unfoldlSoundPulse :: (s -> (s, Pulse)) -> s -> Sound I Pulse
+ LambdaSound.Create: unfoldlSoundPulse :: (s -> (s, Pulse)) -> s -> Sound 'I Pulse
- LambdaSound.Create: unfoldrSound :: (s -> (a, s)) -> s -> Sound I a
+ LambdaSound.Create: unfoldrSound :: (s -> (a, s)) -> s -> Sound 'I a
- LambdaSound.Create: unfoldrSoundPulse :: (s -> (Pulse, s)) -> s -> Sound I Pulse
+ LambdaSound.Create: unfoldrSoundPulse :: (s -> (Pulse, s)) -> s -> Sound 'I Pulse
- LambdaSound.Effect: applyEnvelope :: Envelope -> Sound T Pulse -> Sound T Pulse
+ LambdaSound.Effect: applyEnvelope :: Envelope -> Sound 'T Pulse -> Sound 'T Pulse
- LambdaSound.Effect: easeInOut :: Int -> Sound d Pulse -> Sound d Pulse
+ LambdaSound.Effect: easeInOut :: forall (d :: SoundDuration). Int -> Sound d Pulse -> Sound d Pulse
- LambdaSound.Effect: harmonic :: (Hz -> Sound I Pulse) -> Hz -> Sound I Pulse
+ LambdaSound.Effect: harmonic :: (Hz -> Sound 'I Pulse) -> Hz -> Sound 'I Pulse
- LambdaSound.Effect: repeatSound :: Int -> Sound T Pulse -> Sound T Pulse
+ LambdaSound.Effect: repeatSound :: Int -> Sound 'T Pulse -> Sound 'T Pulse
- LambdaSound.Effect: simpleReverb :: Duration -> Sound T Pulse -> Sound T Pulse
+ LambdaSound.Effect: simpleReverb :: Duration -> Sound 'T Pulse -> Sound 'T Pulse
- LambdaSound.Filter: applyIIRFilter :: (SamplingInfo -> IIRParams) -> Sound d Pulse -> Sound d Pulse
+ LambdaSound.Filter: applyIIRFilter :: forall (d :: SoundDuration). (SamplingInfo -> IIRParams) -> Sound d Pulse -> Sound d Pulse
- LambdaSound.Note: diminishSemitones :: Int -> Sound d Pulse -> Sound d Pulse
+ LambdaSound.Note: diminishSemitones :: forall (d :: SoundDuration). Int -> Sound d Pulse -> Sound d Pulse
- LambdaSound.Note: raiseSemitones :: Int -> Sound d Pulse -> Sound d Pulse
+ LambdaSound.Note: raiseSemitones :: forall (d :: SoundDuration). Int -> Sound d Pulse -> Sound d Pulse
- LambdaSound.Play: play :: Int -> Float -> Sound T Pulse -> IO ()
+ LambdaSound.Play: play :: Int -> Float -> Sound 'T Pulse -> IO ()
- LambdaSound.Plot: plot :: Sound T Pulse -> IO ()
+ LambdaSound.Plot: plot :: Sound 'T Pulse -> IO ()
- LambdaSound.Plot: plotPart :: (Duration, Duration) -> Sound T Pulse -> IO ()
+ LambdaSound.Plot: plotPart :: (Duration, Duration) -> Sound 'T Pulse -> IO ()
- LambdaSound.Samples: noise :: Int -> Sound I Pulse
+ LambdaSound.Samples: noise :: Int -> Sound 'I Pulse
- LambdaSound.Samples: sawWave :: Hz -> Sound I Pulse
+ LambdaSound.Samples: sawWave :: Hz -> Sound 'I Pulse
- LambdaSound.Samples: sineWave :: Hz -> Sound I Pulse
+ LambdaSound.Samples: sineWave :: Hz -> Sound 'I Pulse
- LambdaSound.Samples: squareWave :: Hz -> Sound I Pulse
+ LambdaSound.Samples: squareWave :: Hz -> Sound 'I Pulse
- LambdaSound.Samples: triangleWave :: Hz -> Sound I Pulse
+ LambdaSound.Samples: triangleWave :: Hz -> Sound 'I Pulse
- LambdaSound.Sampling: sampleSound :: Hz -> Sound T Pulse -> IO (Vector S Pulse)
+ LambdaSound.Sampling: sampleSound :: Hz -> Sound 'T Pulse -> IO (Vector S Pulse)
- LambdaSound.Sampling: sampleSoundRaw :: Hz -> Sound T Pulse -> IO (Vector S Pulse)
+ LambdaSound.Sampling: sampleSoundRaw :: Hz -> Sound 'T Pulse -> IO (Vector S Pulse)
- LambdaSound.Sampling: unsampleSound :: Source r Pulse => Vector r Pulse -> Sound I Pulse
+ LambdaSound.Sampling: unsampleSound :: Source r Pulse => Vector r Pulse -> Sound 'I Pulse
- LambdaSound.Sampling: unsampleSoundWithHz :: Source r Pulse => Hz -> Vector r Pulse -> Sound T Pulse
+ LambdaSound.Sampling: unsampleSoundWithHz :: Source r Pulse => Hz -> Vector r Pulse -> Sound 'T Pulse
- LambdaSound.SaveAndLoad: loadRaw :: FilePath -> IO (Sound I Pulse)
+ LambdaSound.SaveAndLoad: loadRaw :: FilePath -> IO (Sound 'I Pulse)
- LambdaSound.SaveAndLoad: loadRawCompressed :: FilePath -> IO (Sound I Pulse)
+ LambdaSound.SaveAndLoad: loadRawCompressed :: FilePath -> IO (Sound 'I Pulse)
- LambdaSound.SaveAndLoad: loadWav :: FilePath -> IO (Sound T Pulse)
+ LambdaSound.SaveAndLoad: loadWav :: FilePath -> IO (Sound 'T Pulse)
- LambdaSound.SaveAndLoad: saveRaw :: FilePath -> Hz -> Sound T Pulse -> IO ()
+ LambdaSound.SaveAndLoad: saveRaw :: FilePath -> Hz -> Sound 'T Pulse -> IO ()
- LambdaSound.SaveAndLoad: saveRawCompressed :: FilePath -> Hz -> Sound T Pulse -> IO ()
+ LambdaSound.SaveAndLoad: saveRawCompressed :: FilePath -> Hz -> Sound 'T Pulse -> IO ()
- LambdaSound.SaveAndLoad: saveWav :: FilePath -> Hz -> Sound T Pulse -> IO ()
+ LambdaSound.SaveAndLoad: saveWav :: FilePath -> Hz -> Sound 'T Pulse -> IO ()
- LambdaSound.Sound: (>>>) :: Sound T Pulse -> Sound T Pulse -> Sound T Pulse
+ LambdaSound.Sound: (>>>) :: Sound 'T Pulse -> Sound 'T Pulse -> Sound 'T Pulse
- LambdaSound.Sound: (|->) :: Duration -> Sound d a -> Sound 'T a
+ LambdaSound.Sound: (|->) :: forall (d :: SoundDuration) a. Duration -> Sound d a -> Sound 'T a
- LambdaSound.Sound: [InfiniteSound] :: ComputeSound a -> Sound I a
+ LambdaSound.Sound: [InfiniteSound] :: forall a. ComputeSound a -> Sound 'I a
- LambdaSound.Sound: [TimedSound] :: !Duration -> ComputeSound a -> Sound T a
+ LambdaSound.Sound: [TimedSound] :: forall a. !Duration -> ComputeSound a -> Sound 'T a
- LambdaSound.Sound: adoptDuration :: Sound d a -> Sound x b -> Sound d b
+ LambdaSound.Sound: adoptDuration :: forall (d :: SoundDuration) a (x :: SoundDuration) b. Sound d a -> Sound x b -> Sound d b
- LambdaSound.Sound: amplify :: Float -> Sound d Pulse -> Sound d Pulse
+ LambdaSound.Sound: amplify :: forall (d :: SoundDuration). Float -> Sound d Pulse -> Sound d Pulse
- LambdaSound.Sound: changeTempo :: (Progress -> Progress) -> Sound d a -> Sound d a
+ LambdaSound.Sound: changeTempo :: forall (d :: SoundDuration) a. (Progress -> Progress) -> Sound d a -> Sound d a
- LambdaSound.Sound: changeTempoM :: Sound I (Progress -> Progress) -> Sound d a -> Sound d a
+ LambdaSound.Sound: changeTempoM :: forall (d :: SoundDuration) a. Sound 'I (Progress -> Progress) -> Sound d a -> Sound d a
- LambdaSound.Sound: computeOnce :: (SamplingInfo -> a) -> Sound d (a -> b) -> Sound d b
+ LambdaSound.Sound: computeOnce :: forall a (d :: SoundDuration) b. (SamplingInfo -> a) -> Sound d (a -> b) -> Sound d b
- LambdaSound.Sound: diminish :: Float -> Sound d Pulse -> Sound d Pulse
+ LambdaSound.Sound: diminish :: forall (d :: SoundDuration). Float -> Sound d Pulse -> Sound d Pulse
- LambdaSound.Sound: dropDuration :: Sound d a -> Sound I a
+ LambdaSound.Sound: dropDuration :: forall (d :: SoundDuration) a. Sound d a -> Sound 'I a
- LambdaSound.Sound: dropSound :: Duration -> Sound T a -> Sound T a
+ LambdaSound.Sound: dropSound :: Duration -> Sound 'T a -> Sound 'T a
- LambdaSound.Sound: embedIO :: IO (Sound d a) -> Sound I a
+ LambdaSound.Sound: embedIO :: forall (d :: SoundDuration) a. IO (Sound d a) -> Sound 'I a
- LambdaSound.Sound: embedIOLazily :: IO (Sound d a) -> Sound I a
+ LambdaSound.Sound: embedIOLazily :: forall (d :: SoundDuration) a. IO (Sound d a) -> Sound 'I a
- LambdaSound.Sound: fillWholeSound :: Load r Ix1 Pulse => (SamplingInfo -> Vector r Pulse) -> Sound I Pulse
+ LambdaSound.Sound: fillWholeSound :: Load r Ix1 Pulse => (SamplingInfo -> Vector r Pulse) -> Sound 'I Pulse
- LambdaSound.Sound: fillWholeSoundST :: (SamplingInfo -> MVector RealWorld S Pulse -> ST RealWorld ()) -> Sound I Pulse
+ LambdaSound.Sound: fillWholeSoundST :: (SamplingInfo -> MVector RealWorld S Pulse -> ST RealWorld ()) -> Sound 'I Pulse
- LambdaSound.Sound: getDuration :: Sound T a -> Duration
+ LambdaSound.Sound: getDuration :: Sound 'T a -> Duration
- LambdaSound.Sound: infiniteSequentially :: Percentage -> Sound I Pulse -> Sound I Pulse -> Sound I Pulse
+ LambdaSound.Sound: infiniteSequentially :: Percentage -> Sound 'I Pulse -> Sound 'I Pulse -> Sound 'I Pulse
- LambdaSound.Sound: makeSound :: (SamplingInfo -> Int -> a) -> Sound I a
+ LambdaSound.Sound: makeSound :: (SamplingInfo -> Int -> a) -> Sound 'I a
- LambdaSound.Sound: makeSoundVector :: (SamplingInfo -> Vector D a) -> Sound I a
+ LambdaSound.Sound: makeSoundVector :: (SamplingInfo -> Vector D a) -> Sound 'I a
- LambdaSound.Sound: modifyWholeSound :: Load r Ix1 Pulse => (Vector S Pulse -> Vector r Pulse) -> Sound d Pulse -> Sound d Pulse
+ LambdaSound.Sound: modifyWholeSound :: forall r (d :: SoundDuration). Load r Ix1 Pulse => (Vector S Pulse -> Vector r Pulse) -> Sound d Pulse -> Sound d Pulse
- LambdaSound.Sound: modifyWholeSoundST :: (Vector S Pulse -> MVector RealWorld S Pulse -> ST RealWorld ()) -> Sound d Pulse -> Sound d Pulse
+ LambdaSound.Sound: modifyWholeSoundST :: forall (d :: SoundDuration). (Vector S Pulse -> MVector RealWorld S Pulse -> ST RealWorld ()) -> Sound d Pulse -> Sound d Pulse
- LambdaSound.Sound: parallel :: Monoid (Sound d Pulse) => [Sound d Pulse] -> Sound d Pulse
+ LambdaSound.Sound: parallel :: forall (d :: SoundDuration). Monoid (Sound d Pulse) => [Sound d Pulse] -> Sound d Pulse
- LambdaSound.Sound: parallel2 :: Sound d Pulse -> Sound d Pulse -> Sound d Pulse
+ LambdaSound.Sound: parallel2 :: forall (d :: SoundDuration). Sound d Pulse -> Sound d Pulse -> Sound d Pulse
- LambdaSound.Sound: raise :: Float -> Sound d Pulse -> Sound d Pulse
+ LambdaSound.Sound: raise :: forall (d :: SoundDuration). Float -> Sound d Pulse -> Sound d Pulse
- LambdaSound.Sound: reduce :: Float -> Sound d Pulse -> Sound d Pulse
+ LambdaSound.Sound: reduce :: forall (d :: SoundDuration). Float -> Sound d Pulse -> Sound d Pulse
- LambdaSound.Sound: reverseSound :: Sound d a -> Sound d a
+ LambdaSound.Sound: reverseSound :: forall (d :: SoundDuration) a. Sound d a -> Sound d a
- LambdaSound.Sound: scaleDuration :: Float -> Sound T a -> Sound T a
+ LambdaSound.Sound: scaleDuration :: Float -> Sound 'T a -> Sound 'T a
- LambdaSound.Sound: sequentially :: [Sound T Pulse] -> Sound T Pulse
+ LambdaSound.Sound: sequentially :: [Sound 'T Pulse] -> Sound 'T Pulse
- LambdaSound.Sound: setDuration :: Duration -> Sound d a -> Sound T a
+ LambdaSound.Sound: setDuration :: forall (d :: SoundDuration) a. Duration -> Sound d a -> Sound 'T a
- LambdaSound.Sound: takeSound :: Duration -> Sound T a -> Sound T a
+ LambdaSound.Sound: takeSound :: Duration -> Sound 'T a -> Sound 'T a
- LambdaSound.Sound: timedSequentially :: Sound T Pulse -> Sound T Pulse -> Sound T Pulse
+ LambdaSound.Sound: timedSequentially :: Sound 'T Pulse -> Sound 'T Pulse -> Sound 'T Pulse
- LambdaSound.Sound: type family DetermineDuration (d1 :: SoundDuration) (d2 :: SoundDuration)
+ LambdaSound.Sound: type family DetermineDuration (d1 :: SoundDuration) (d2 :: SoundDuration) :: SoundDuration
- LambdaSound.Sound: withSampledSound :: Sound T a -> (Vector D a -> Sound I b) -> Sound I b
+ LambdaSound.Sound: withSampledSound :: Sound 'T a -> (Vector D a -> Sound 'I b) -> Sound 'I b
- LambdaSound.Sound: withSampledSoundPulse :: Sound T Pulse -> (Vector S Pulse -> Sound I a) -> Sound I a
+ LambdaSound.Sound: withSampledSoundPulse :: Sound 'T Pulse -> (Vector S Pulse -> Sound 'I a) -> Sound 'I a
- LambdaSound.Sound: withSamplingInfo :: (SamplingInfo -> Sound d a) -> Sound I a
+ LambdaSound.Sound: withSamplingInfo :: forall (d :: SoundDuration) a. (SamplingInfo -> Sound d a) -> Sound 'I a
- LambdaSound.Sound: zipSound :: Sound d1 (a -> b) -> Sound d2 a -> Sound (DetermineDuration d1 d2) b
+ LambdaSound.Sound: zipSound :: forall (d1 :: SoundDuration) a b (d2 :: SoundDuration). Sound d1 (a -> b) -> Sound d2 a -> Sound (DetermineDuration d1 d2) b
- LambdaSound.Sound: zipSoundWith :: (a -> b -> c) -> Sound d1 a -> Sound d2 b -> Sound (DetermineDuration d1 d2) c
+ LambdaSound.Sound: zipSoundWith :: forall a b c (d1 :: SoundDuration) (d2 :: SoundDuration). (a -> b -> c) -> Sound d1 a -> Sound d2 b -> Sound (DetermineDuration d1 d2) c
Files
- CHANGELOG.md +1/−1
- lambdasound.cabal +11/−11
CHANGELOG.md view
@@ -1,6 +1,6 @@ # Revision history for lambdasound -## 1.2.0 -- 2023-10-16+## 1.2.0 -- 2023-12-03 * Switch to proteaaudio version which uses RTAudio * Update to GHC 9.6
lambdasound.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: lambdasound-version: 1.2.0+version: 1.2.1 synopsis: A libary for generating low-level sounds with high-level combinators description: 'lambdasound' can generate all kinds of sounds, play them and save them as wav or pcm data. Sound can be manipulated in both a low and high-level way. It is possible to @@ -16,7 +16,7 @@ extra-doc-files: CHANGELOG.md homepage: https://github.com/Simre1/lambdasound bug-reports: https://github.com/Simre1/lambdasound/issues-tested-with: GHC==9.6.3, GHC==9.4.7+tested-with: GHC==9.6.7, GHC==9.4.8, GHC==9.10.1 extra-source-files: README.md@@ -48,22 +48,22 @@ Data.SomeStableName build-depends: base >= 4.17.0.0 && < 5,- ansi-terminal >= 1.0 && < 1.1,- bytestring >= 0.11.4 && < 0.12,+ ansi-terminal >= 1.0 && < 1.2,+ bytestring >= 0.11.4 && < 0.13, deepseq >= 1.4.8 && < 1.6, bytestring-to-vector >= 0.3.0 && < 0.4, vector >= 0.13.0 && < 0.14, transformers >= 0.5.6 && < 0.7, directory >= 1.3.7 && < 1.4,- filepath >= 1.4.2 && < 1.5,- hashable >= 1.4.3 && < 1.5,+ filepath >= 1.4.2 && < 1.6,+ hashable >= 1.4.3 && < 1.6, text >= 2.0.2 && < 2.2,- hashtables >= 1.3.1 && < 1.4,+ hashtables >= 1.3.1 && < 1.5, massiv >= 1.0.4 && < 1.1,- random >= 1.2.1 && < 1.3,+ random >= 1.2.1 && < 1.4, proteaaudio >= 0.9.3 && < 1.1, wave >= 0.2.0 && < 0.3,- zlib >= 0.6.3 && < 0.7,+ zlib >= 0.6.3 && < 0.8, dsp >= 0.2.5.2 && < 0.3 hs-source-dirs: src default-extensions:@@ -131,7 +131,7 @@ build-depends: base >= 4.17.0.0 && < 5, lambdasound,- tasty >= 1.4 && < 1.5,+ tasty >= 1.4 && < 1.6, tasty-hunit >= 0.10.1 && < 0.11, falsify >= 0.1.1 && < 0.3, massiv >= 1.0.4 && < 1.1@@ -148,7 +148,7 @@ base >= 4.17.0.0 && < 5, lambdasound, tasty >= 1.4 && < 1.5,- tasty-bench >= 0.3.5 && < 0.4,+ tasty-bench >= 0.3.5 && < 0.5, massiv ghc-options: -O2