packages feed

haskore-synthesizer 0.0.2 → 0.0.3

raw patch · 10 files changed

+78/−72 lines, 10 filesdep +utility-htdep ~basedep ~data-accessordep ~haskore

Dependencies added: utility-ht

Dependency ranges changed: base, data-accessor, haskore, numeric-prelude, synthesizer

Files

haskore-synthesizer.cabal view
@@ -1,15 +1,15 @@ Name:           haskore-synthesizer-Version:        0.0.2+Version:        0.0.3 License:        GPL License-File:   LICENSE Author:         Henning Thielemann <haskell@henning-thielemann.de> Maintainer:     Henning Thielemann <haskell@henning-thielemann.de> Homepage:       http://www.haskell.org/haskellwiki/Synthesizer Package-URL:    http://darcs.haskell.org/haskore-synthesizer/-Category:       Sound-Synopsis:       Audio signal processing coded in Haskell+Category:       Sound, Music+Synopsis:       Music rendering coded in Haskell Description:-  Use native Haskell Audio Signal Processing for Music rendering with Haskore+  Use native Haskell Audio Signal Processing for Music rendering with Haskore.   Contains several example songs. Stability:      Experimental Tested-With:    GHC==6.4.1, GHC==6.8.2@@ -25,18 +25,20 @@  Library   Build-Depends:-    synthesizer >= 0.0.3 && < 0.1,-    haskore >=0.0.5 && <0.1,+    synthesizer >= 0.2 && < 0.3,+    haskore >=0.1 && <0.2,     -- midi >=0.1.1 && <0.1,-    numeric-prelude >=0.0.3 && <0.1,+    numeric-prelude >=0.1 && <0.2,     -- dependency on non-negative for Haddock     non-negative >=0.0.1 && <0.1,     event-list >=0.0.6 && <0.1,-    data-accessor >=0.1 && <0.2+    data-accessor >=0.2 && <0.3,+    utility-ht >=0.0.1 && <0.1    If flag(splitBase)     Build-Depends:-      base >= 3, random >= 1.0 && < 1.1+      base >= 3 && <5,+      random >= 1.0 && < 1.1   Else     Build-Depends:       base >= 1.0 && < 2@@ -47,7 +49,7 @@     Haskore.Interface.Signal.InstrumentMap     Haskore.Interface.Signal.Note     Haskore.Interface.Signal.Write-    Haskore.Interface.Signal.Example.ChildSong6ToSignal+    Haskore.Interface.Signal.Example.ChildSong6     Haskore.Interface.Signal.Example.FMBassLine     Haskore.Interface.Signal.Example.FilterSaw     Haskore.Interface.Signal.Example.Guitar
+ src/Haskore/Interface/Signal/Example/ChildSong6.hs view
@@ -0,0 +1,44 @@+-- Partial Encoding of Chick Corea's ``Children's Song No. 6''++module Haskore.Interface.Signal.Example.ChildSong6 where++import qualified Haskore.Example.ChildSong6 as ChildSong6+import Synthesizer.Plain.Instrument (fastBell)+import qualified Synthesizer.Plain.Signal as Sig+import qualified Synthesizer.Plain.File as File++import qualified Haskore.Music.GeneralMIDI as Music+import Haskore.Interface.Signal.Write(Time, Volume)++import qualified Haskore.Performance.Fancy as FancyPf+import qualified Haskore.Interface.Signal.Write as MusicSignal++import System.Exit (ExitCode)++++-- Volume type arises from Haskore+songToSignalMono :: Time -> Time -> Music.T -> Sig.T Volume+songToSignalMono sampleRate dif song =+   MusicSignal.fromRhythmicMusic+      sampleRate+      (MusicSignal.detuneInstrs dif+          [(Music.AcousticGrandPiano,+            MusicSignal.amplify (0.1::Volume) fastBell)])+      FancyPf.map+      (MusicSignal.contextMetro 60 Music.qn)+      song++songSignal :: Time -> Time -> Sig.T Volume+songSignal sampleRate dif =+   songToSignalMono sampleRate dif (Music.transpose 12 ChildSong6.song)+++stereoSignal :: Time -> Sig.T (Volume,Volume)+stereoSignal sampleRate =+   zip (songSignal sampleRate 1.001)+       (songSignal sampleRate 0.999)++main :: IO ExitCode+main =+   File.renderStereoToInt16 "ChildSong6.aiff" 22050 stereoSignal
− src/Haskore/Interface/Signal/Example/ChildSong6ToSignal.hs
@@ -1,43 +0,0 @@--- Partial Encoding of Chick Corea's ``Children's Song No. 6''--module Haskore.Interface.Signal.Example.ChildSong6ToSignal where--import qualified Haskore.Example.ChildSong6 as ChildSong6-import Synthesizer.Plain.Instrument (fastBell)-import qualified Synthesizer.Plain.Signal as Sig-import qualified Sox.File--import qualified Haskore.Music.GeneralMIDI as Music-import Haskore.Interface.Signal.Write(Time, Volume)--import qualified Haskore.Performance.Fancy as FancyPf-import qualified Haskore.Interface.Signal.Write as MusicSignal--import System.Exit (ExitCode)------ Volume type arises from Haskore-songToSignalMono :: Time -> Time -> Music.T -> Sig.T Volume-songToSignalMono sampleRate dif song =-   MusicSignal.fromRhythmicMusic-      sampleRate-      (MusicSignal.detuneInstrs dif-          [(Music.AcousticGrandPiano,-            MusicSignal.amplify (0.1::Volume) fastBell)])-      FancyPf.map-      (MusicSignal.contextMetro 60 Music.qn)-      song--songSignal :: Time -> Time -> Sig.T Volume-songSignal sampleRate dif =-   songToSignalMono sampleRate dif (Music.transpose 12 ChildSong6.song)---stereoSignal :: Time -> Sig.T (Volume,Volume)-stereoSignal sampleRate =-   zip (songSignal sampleRate 1.001)-       (songSignal sampleRate 0.999)--main :: IO ExitCode-main = Sox.File.renderStereo "ChildSong6" 22050 stereoSignal
src/Haskore/Interface/Signal/Example/FMBassLine.hs view
@@ -5,7 +5,7 @@ import qualified Synthesizer.Plain.Oscillator as Osci import qualified Synthesizer.Plain.Signal as Sig import           Synthesizer.Plain.Instrument (fmBell)-import qualified Sox.File+import qualified Synthesizer.Plain.File as File  import qualified Haskore.Basic.Pitch as Pitch import qualified Haskore.Melody          as Melody@@ -142,5 +142,5 @@  main :: IO ExitCode main =-   Sox.File.renderStereo "FMBassLine" 44100+   File.renderStereoToInt16 "FMBassLine.aiff" 44100       (\sampleRate -> take (round (16*sampleRate)) (stereoSignal sampleRate))
src/Haskore/Interface/Signal/Example/FilterSaw.hs view
@@ -7,7 +7,7 @@ import qualified Synthesizer.Plain.Filter.Recursive.Allpass as Allpass import qualified Synthesizer.Plain.Signal as Sig import Synthesizer.Plain.Instrument (filterSaw, )-import qualified Sox.File+import qualified Synthesizer.Plain.File as File  import qualified Haskore.Basic.Pitch as Pitch import qualified Haskore.Melody          as Melody@@ -27,7 +27,7 @@ import System.Exit(ExitCode) import qualified Data.List as List -import PreludeBase+import PreludeBase hiding (take, ) import NumericPrelude  ------------ The song description -------------@@ -113,4 +113,5 @@        List.replicate (round (2*sampleRate)) zero)  main :: IO ExitCode-main = Sox.File.renderStereo "FilterSaw" 22050 reverbedSignal+main =+   File.renderStereoToInt16 "FilterSaw.aiff" 22050 reverbedSignal
src/Haskore/Interface/Signal/Example/Guitar.hs view
@@ -1,9 +1,9 @@ module Haskore.Interface.Signal.Example.Guitar where  -- the song-import Haskore.Example.Guitar(parallelSong, stringPitches)+import Haskore.Example.Guitar (parallelSong, stringPitches, ) -- the instrument-import Filter.Example(guitar)+import Synthesizer.Filter.Example (guitar, )  import qualified Haskore.Basic.Pitch as Pitch import           Haskore.Music.Standard  as StdMusic@@ -18,9 +18,9 @@ import qualified Synthesizer.Plain.Signal as Sig import           Synthesizer.Plain.Instrument           (fastBell, simpleSaw, moogGuitar, moogGuitarSoft, fmBell, )-import qualified Sox.File+import qualified Synthesizer.Plain.File as File -import           Synthesizer.Utility(mapSnd)+import           Data.Tuple.HT (mapSnd, )  import qualified Data.List as List @@ -80,7 +80,7 @@  readSamples :: IO [Sig.T Volume] readSamples =-   do sampledSounds <- mapM Sox.File.readAIFFMono+   do sampledSounds <- mapM File.readMonoFromInt16              (map (\chr -> "guitar/Zupf/Zupf"++chr:".aiff") ['0'..'5'])       return (zipWith FiltNR.amplifyVector                       [0.5,0.5,0.5,0.5,0.5,0.3::Volume]@@ -89,6 +89,6 @@ main :: IO ExitCode main =    do-     Sox.File.renderStereo "Guitar" 44100 . computeSignal sampleSong . sampleMap+     File.renderStereoToInt16 "Guitar.aiff" 44100 . computeSignal sampleSong . sampleMap         =<< readSamples-     Sox.File.renderStereo "GuitarSynth" 44100 (computeSignal synthSong synthMap)+     File.renderStereoToInt16 "GuitarSynth.aiff" 44100 (computeSignal synthSong synthMap)
src/Haskore/Interface/Signal/Example/SwanLake.hs view
@@ -7,7 +7,7 @@ import Synthesizer.Plain.Filter.Recursive (Pole(Pole)) import Synthesizer.Plain.Control(exponential2) import Synthesizer.Plain.Instrument (simpleSaw)-import qualified Sox.File+import qualified Synthesizer.Plain.File as File  import qualified Number.Ratio as Ratio import qualified Algebra.Transcendental      as Trans@@ -121,4 +121,5 @@                    (filteredSignal 0.998)  main :: IO ExitCode-main = Sox.File.writeStereo "SwanLake" defltSampleRate stereoSignal+main =+   File.writeStereoToInt16 "SwanLake.aiff" defltSampleRate stereoSignal
src/Haskore/Interface/Signal/Example/WinterAde.hs view
@@ -21,7 +21,7 @@ import Synthesizer.Plain.Displacement (mix) import Synthesizer.Plain.Filter.NonRecursive (fadeInOut) import Synthesizer.Plain.Instrument (bell, squareBell, fatSaw, filterSweep, )-import qualified Sox.File+import qualified Synthesizer.Plain.File as File  import System.Exit(ExitCode) @@ -283,4 +283,5 @@   main :: IO ExitCode-main = Sox.File.writeStereo "WinterAde" defltSampleRate songSignal+main =+   File.writeStereoToInt16 "WinterAde.aiff" defltSampleRate songSignal
src/Haskore/Interface/Signal/Write.hs view
@@ -32,7 +32,7 @@  import qualified Synthesizer.Plain.Signal as Sig import qualified Synthesizer.Plain.Cut as Cut-import           Synthesizer.Utility(mapSnd)+import           Data.Tuple.HT (mapSnd, )  import qualified Algebra.Module    as Module import qualified Algebra.RealField as RealField
src/RenderSong.hs view
@@ -1,6 +1,6 @@ module Main where -import qualified Sox.Play+import qualified Synthesizer.Plain.Play as Play import qualified Haskore.Interface.Signal.Example.WinterAde as Song -main = Sox.Play.stereo 11025 Song.songSignal+main = Play.stereoToInt16 11025 Song.songSignal