synthesizer-midi 0.6.0.4 → 0.6.1
raw patch · 4 files changed
+19/−10 lines, 4 filesdep +semigroupsdep ~event-list
Dependencies added: semigroups
Dependency ranges changed: event-list
Files
- src/Synthesizer/MIDI/CausalIO/Process.hs +4/−0
- src/Synthesizer/MIDI/Example/Instrument.hs +3/−3
- src/Synthesizer/MIDI/PiecewiseConstant/ControllerSet.hs +7/−3
- synthesizer-midi.cabal +5/−4
src/Synthesizer/MIDI/CausalIO/Process.hs view
@@ -88,6 +88,7 @@ import qualified Data.List.HT as ListHT import qualified Data.Maybe as Maybe import Data.Monoid (Monoid, mempty, mappend, )+import Data.Semigroup (Semigroup, (<>), ) import Data.Maybe (maybeToList, ) import Data.Tuple.HT (mapFst, mapPair, ) @@ -289,6 +290,9 @@ evaluateHead = EventListMT.switchTimeL (\t _ -> rnf (NonNegW.toNumber t)) . unwrapNoteOffList++instance Semigroup NoteOffList where+ NoteOffList xs <> NoteOffList ys = NoteOffList (xs <> ys) instance Monoid NoteOffList where mempty = NoteOffList (EventListTT.pause mempty)
src/Synthesizer/MIDI/Example/Instrument.hs view
@@ -318,14 +318,14 @@ sampledSound :: (Real, SigSt.T Real) -> Instrument Real Real sampledSound sound vel freq dur = SigS.toStorableSignalVary (chunkSizesFromLazyTime dur) $- SigS.map ((amplitudeFromVelocity vel) *) $+ SigS.map (amplitudeFromVelocity vel *) $ sampledSoundGenerator sound freq sampledSoundDetuneStereo :: Real -> (Real, SigSt.T Real) -> Instrument Real (Stereo.T Real) sampledSoundDetuneStereo detune sound vel freq dur = SigS.toStorableSignalVary (chunkSizesFromLazyTime dur) $- SigS.map ((amplitudeFromVelocity vel) *>) $+ SigS.map (amplitudeFromVelocity vel *>) $ SigS.zipWith Stereo.cons (sampledSoundGenerator sound (freq*(1-detune))) (sampledSoundGenerator sound (freq*(1+detune)))@@ -485,7 +485,7 @@ toneFromFilteredNoise resonanceMod cutoffMod speedMod freqMod vel freq dur = let period = 100 filtNoise =- ((((amplitudeFromVelocity vel) *) . UniFilter.lowpass) ^<<+ (((amplitudeFromVelocity vel *) . UniFilter.lowpass) ^<< UniFilter.causal <<< Causal.feedSnd NoiseS.white <<^ (\(r,f) -> UniFilter.parameter $ FiltR.Pole r (f/period)))
src/Synthesizer/MIDI/PiecewiseConstant/ControllerSet.hs view
@@ -60,6 +60,7 @@ import Data.Traversable (traverse, ) import Data.Foldable (traverse_, ) import Data.Monoid (Monoid, mempty, mappend, )+import Data.Semigroup (Semigroup, (<>), ) import Data.Maybe.HT (toMaybe, ) import Data.Tuple.HT (mapFst, mapPair, )@@ -129,12 +130,15 @@ fromIntegral . P.toInteger . P.sum . EventListTT.getTimes . stream -instance Monoid (T key y) where- mempty = Cons Map.empty (EventListTT.pause mempty)- mappend x y =+instance Semigroup (T key y) where+ x <> y = Cons (initial x) (EventListTT.append (stream x) (flatten y))++instance Monoid (T key y) where+ mempty = Cons Map.empty (EventListTT.pause mempty)+ mappend = (<>) instance (NFData key, NFData a) => CutG.NormalForm (T key a) where evaluateHead xs = rnf (initial xs)
synthesizer-midi.cabal view
@@ -1,5 +1,5 @@ Name: synthesizer-midi-Version: 0.6.0.4+Version: 0.6.1 License: GPL License-File: LICENSE Author: Henning Thielemann <haskell@henning-thielemann.de>@@ -15,11 +15,11 @@ Stability: Experimental Tested-With: GHC==6.12.3 Tested-With: GHC==7.2.1-Cabal-Version: >=1.14+Cabal-Version: 1.14 Build-Type: Simple Source-Repository this- Tag: 0.6.0.4+ Tag: 0.6.1 Type: darcs Location: http://code.haskell.org/synthesizer/midi/ @@ -45,12 +45,13 @@ deepseq >=1.1 && <1.5, numeric-prelude >=0.3 && <0.5, non-negative >=0.1 && <0.2,- event-list >=0.1 && <0.2,+ event-list >=0.1.2 && <0.2, data-accessor-transformers >=0.2.1 && <0.3, data-accessor >=0.2.1 && <0.3, containers >=0.1 && <0.6, array >=0.1 && <0.6, transformers >=0.2 && <0.6,+ semigroups >=0.1 && <1.0, utility-ht >=0.0.1 && <0.1 If flag(splitBase)