synthesizer-alsa 0.5.0.6 → 0.6
raw patch · 5 files changed
+28/−27 lines, 5 filesdep ~storablevectordep ~synthesizer-coredep ~synthesizer-dimensional
Dependency ranges changed: storablevector, synthesizer-core, synthesizer-dimensional, synthesizer-midi, utility-ht
Files
- server/Synthesizer/ALSA/Dimensional/Server/Common.hs +2/−1
- server/Synthesizer/ALSA/Dimensional/Server/Run.hs +9/−8
- server/Synthesizer/ALSA/Storable/Server/Common.hs +0/−6
- server/Synthesizer/ALSA/Storable/Server/Run.hs +8/−3
- synthesizer-alsa.cabal +9/−9
server/Synthesizer/ALSA/Dimensional/Server/Common.hs view
@@ -12,6 +12,7 @@ import qualified Synthesizer.ALSA.Storable.Play as PlaySt import qualified Synthesizer.Dimensional.Rate.Filter as FiltR+import qualified Synthesizer.Dimensional.Duration as Dur import qualified Synthesizer.Dimensional.Process as Proc import Synthesizer.Dimensional.Process (($:), )@@ -98,4 +99,4 @@ IO () play period rate sig = Play.renderTimeVoltageStorable device period rate- (FiltR.delay latency $: sig)+ (FiltR.delayStorable $: Dur.fromTime latency $: sig)
server/Synthesizer/ALSA/Dimensional/Server/Run.hs view
@@ -48,9 +48,8 @@ \evs -> liftA3 (\env osci vol ->- Causal.apply- (Causal.applySnd env osci) $- MIDI.piecewiseConstant $ vol)+ Causal.apply (Causal.applySnd env osci) $+ CtrlA.piecewiseConstantStorable vol) Filt.envelopeScalarDimension (OsciR.static (DN.voltage 1 &*~ Wave.sine) zero (DN.frequency (880::Real))) (MIDI.runFilter evs (MIDI.controllerLinear channel channelVolume@@ -62,7 +61,7 @@ \evs -> liftA2 Causal.apply (Osci.freqMod (DN.voltage (1::Real) &*~ Wave.sine) zero)- (MIDI.piecewiseConstant <$>+ (CtrlA.piecewiseConstantStorable <$> MIDI.runFilter evs (MIDI.pitchBend channel 2 (DN.frequency (880::Real)))) @@ -76,7 +75,7 @@ (\osci env (freq,vol) -> Causal.apply (Causal.applySnd env (osci $ SigA.restore freq)) $- MIDI.piecewiseConstant vol)+ CtrlA.piecewiseConstantStorable vol) (OsciR.freqMod (DN.voltage 1 &*~ Wave.sine) zero) Filt.envelopeScalarDimension (MIDI.runFilter evs $ liftA2 (,)@@ -94,7 +93,7 @@ (\osci env (freq,vol) -> Causal.apply (Causal.applyFst env (SigA.restore vol) <<< osci) $- MIDI.piecewiseConstant freq)+ CtrlA.piecewiseConstantStorable freq) (Osci.freqMod (DN.voltage 1 &*~ Wave.sine) zero) Filt.envelopeScalarDimension (MIDI.runFilter evs $ liftA2 (,)@@ -129,7 +128,8 @@ FiltA.amplify 0.3 <$> (MIDI.runFilter evs (MIDI.sequenceModulated PlaySt.defaultChunkSize (DN.voltage 1) channel Instr.pingReleaseFM $:- MIDI.bendWheelPressure channel 2 (DN.frequency 10) 0.04 0.03))+ MIDI.bendWheelPressureStorable channel 2+ (DN.frequency 10) 0.04 0.03)) -- MIDI.pitchBend channel (2 ** recip 12) (DN.scalar one))) @@ -153,7 +153,8 @@ (MIDI.runFilter evs (MIDI.sequenceMultiModulated PlaySt.defaultChunkSize (DN.voltage 1) channel Instr.pingStereoDetuneFM ((MIDI.applyModulation <$>- MIDI.bendWheelPressure channel 2 (DN.frequency 10) 0.04 0.03)+ MIDI.bendWheelPressureStorable channel 2+ (DN.frequency 10) 0.04 0.03) .: (MIDI.applyModulation <$> MIDI.controllerLinear channel extraController (0, 0.005) 0))
server/Synthesizer/ALSA/Storable/Server/Common.hs view
@@ -7,7 +7,6 @@ import qualified Synthesizer.ALSA.EventList as MIDIEv import Synthesizer.ALSA.EventList (StrictTime, ) -import qualified Synthesizer.Generic.Signal as SigG import qualified Synthesizer.Storable.Signal as SigSt import qualified Data.StorableVector.Lazy as SVL @@ -46,11 +45,6 @@ chunkSize :: SVL.ChunkSize chunkSize = Play.defaultChunkSize--lazySize :: SigG.LazySize-lazySize =- let (SVL.ChunkSize size) = chunkSize- in SigG.LazySize size periodTime :: Field.C t => t periodTime =
server/Synthesizer/ALSA/Storable/Server/Run.hs view
@@ -3,7 +3,7 @@ import qualified Synthesizer.MIDI.Example.Instrument as Instr import Synthesizer.ALSA.Storable.Server.Common (Real, withMIDIEvents, play, device, clientName,- sampleRate, lazySize, chunkSize, periodTime, channel, )+ sampleRate, chunkSize, periodTime, channel, ) import qualified Synthesizer.MIDI.CausalIO.Process as MIO import qualified Synthesizer.MIDI.Storable as MidiSt@@ -22,6 +22,7 @@ import qualified Synthesizer.Storable.Oscillator as OsciSt import qualified Synthesizer.Storable.Signal as SigSt+import qualified Data.StorableVector.Lazy.Typed as SVT import qualified Data.StorableVector.Lazy as SVL import qualified Data.StorableVector as SV import Foreign.Storable (Storable, )@@ -38,6 +39,7 @@ import Control.Category ((.), ) import Control.Arrow (arr, second, (&&&), ) +import Data.Function.HT (Id, ) import Data.Tuple.HT (mapSnd, ) import NumericPrelude.Numeric@@ -64,7 +66,7 @@ {-# INLINE storableChunk #-} storableChunk ::- (SigG.Read sig a, Storable a) =>+ (SigG.Consume sig a, Storable a) => sig a -> SV.Vector a storableChunk chunk = SigS.toStrictStorableSignal (SigG.length chunk) $@@ -204,7 +206,10 @@ makeLoop :: LoopG.TimeControl Real -> Real -> Real -> (Real, SigSt.T Real) -> (Real, SigSt.T Real)-makeLoop = LoopG.timeReverse lazySize Ip.linear Ip.linear+makeLoop timeCtrlWave loopLen loopStart =+ mapSnd SVT.toVectorLazy .+ LoopG.timeReverse Ip.linear Ip.linear timeCtrlWave loopLen loopStart .+ mapSnd ((id :: Id (SVT.DefaultVector a)) . SVT.fromVectorLazy) keyboardSample :: IO () keyboardSample =
synthesizer-alsa.cabal view
@@ -1,6 +1,6 @@ Cabal-Version: 2.2 Name: synthesizer-alsa-Version: 0.5.0.6+Version: 0.6 License: GPL-3.0-only License-File: LICENSE Author: Henning Thielemann <haskell@henning-thielemann.de>@@ -19,7 +19,7 @@ Build-Type: Simple Source-Repository this- Tag: 0.5.0.6+ Tag: 0.6 Type: darcs Location: http://code.haskell.org/synthesizer/alsa/ @@ -37,22 +37,22 @@ Library Build-Depends:- synthesizer-midi >=0.6 && <0.7,- synthesizer-dimensional >=0.7 && <0.9,- synthesizer-core >=0.6 && <0.9,+ synthesizer-midi >=0.7 && <0.8,+ synthesizer-dimensional >=0.9 && <0.10,+ synthesizer-core >=0.9 && <0.10, midi-alsa >=0.2 && <0.3, midi >=0.2 && <0.3, sox >=0.2.1 && <0.3, alsa-seq >=0.6 && <0.7, alsa-pcm >=0.6 && <0.7, alsa-core >=0.5 && <0.6,- storablevector >=0.2.5 && <0.3,+ storablevector >=0.2.12 && <0.3, numeric-prelude >=0.3 && <0.5, non-negative >=0.1 && <0.2, event-list >=0.1 && <0.2,- transformers >=0.2 && <0.6,- utility-ht >=0.0.1 && <0.1,- random >=1.0 && < 1.3,+ transformers >=0.2 && <0.7,+ utility-ht >=0.0.13 && <0.1,+ random >=1.0 && <1.4, old-time >=1.0 && < 1.2, base >=4.5 && <5