algorithmic-composition-complex 0.1.1.0 → 0.2.0.0
raw patch · 6 files changed
+39/−33 lines, 6 filesdep +ukrainian-phonetics-basic-arraydep −bytestringdep −ukrainian-phonetics-basic-array-bytestringdep ~algorithmic-composition-basicdep ~directorydep ~foldable-ixPVP ok
version bump matches the API change (PVP)
Dependencies added: ukrainian-phonetics-basic-array
Dependencies removed: bytestring, ukrainian-phonetics-basic-array-bytestring
Dependency ranges changed: algorithmic-composition-basic, directory, foldable-ix, mmsyn2-array, mmsyn3, mmsyn7l, mmsyn7ukr-common, phonetic-languages-simplified-base, process
API changes (from Hackage documentation)
- Composition.Sound.Complex: soundGen3GMN :: Int64 -> Int64 -> FilePath -> Float -> String -> ((Float, Float) -> Float -> (Float -> OvertonesO) -> OvertonesO) -> ((Float, Float) -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (Float -> OvertonesO) -> IO ()
+ Composition.Sound.Complex: soundGen3GMN :: Int -> Int -> FilePath -> Float -> String -> ((Float, Float) -> Float -> (Float -> OvertonesO) -> OvertonesO) -> ((Float, Float) -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (Float -> OvertonesO) -> IO ()
- Composition.Sound.Complex: soundGen3G_O2GMN :: Int64 -> Int64 -> (([Float -> OvertonesO], [Int -> Float -> OvertonesO], [Int -> Float -> OvertonesO]) -> [(Int, Int)] -> [(Float, Float -> OvertonesO)]) -> [Float -> OvertonesO] -> [Int -> Float -> OvertonesO] -> [Int -> Float -> OvertonesO] -> Int -> Int -> Float -> FilePath -> Float -> String -> IO ()
+ Composition.Sound.Complex: soundGen3G_O2GMN :: Int -> Int -> (([Float -> OvertonesO], [Int -> Float -> OvertonesO], [Int -> Float -> OvertonesO]) -> [(Int, Int)] -> [(Float, Float -> OvertonesO)]) -> [Float -> OvertonesO] -> [Int -> Float -> OvertonesO] -> [Int -> Float -> OvertonesO] -> Int -> Int -> Float -> FilePath -> Float -> String -> IO ()
- Composition.Sound.Complex: soundGen3G_O2GMNPar :: Int64 -> Int64 -> (([Float -> OvertonesO], [Int -> Float -> OvertonesO], [Int -> Float -> OvertonesO]) -> [(Int, Int)] -> [(Float, Float -> OvertonesO)]) -> [Float -> OvertonesO] -> [Int -> Float -> OvertonesO] -> [Int -> Float -> OvertonesO] -> Params -> Float -> FilePath -> Float -> String -> IO ()
+ Composition.Sound.Complex: soundGen3G_O2GMNPar :: Int -> Int -> (([Float -> OvertonesO], [Int -> Float -> OvertonesO], [Int -> Float -> OvertonesO]) -> [(Int, Int)] -> [(Float, Float -> OvertonesO)]) -> [Float -> OvertonesO] -> [Int -> Float -> OvertonesO] -> [Int -> Float -> OvertonesO] -> Params -> Float -> FilePath -> Float -> String -> IO ()
- Composition.Sound.Complex: soundGen3G_O2MN :: Int64 -> Int64 -> ((Float -> OvertonesO, Int -> Float -> OvertonesO, Int -> Float -> OvertonesO) -> [(Int, Int)] -> [(Float, Float -> OvertonesO)]) -> Int -> Int -> Float -> FilePath -> Float -> String -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (Int -> OvertonesO) -> (OvertonesO -> OvertonesO) -> (Float -> OvertonesO) -> IO ()
+ Composition.Sound.Complex: soundGen3G_O2MN :: Int -> Int -> ((Float -> OvertonesO, Int -> Float -> OvertonesO, Int -> Float -> OvertonesO) -> [(Int, Int)] -> [(Float, Float -> OvertonesO)]) -> Int -> Int -> Float -> FilePath -> Float -> String -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (Int -> OvertonesO) -> (OvertonesO -> OvertonesO) -> (Float -> OvertonesO) -> IO ()
- Composition.Sound.Complex: soundGen3G_O2MNPar :: Int64 -> Int64 -> ((Float -> OvertonesO, Int -> Float -> OvertonesO, Int -> Float -> OvertonesO) -> [(Int, Int)] -> [(Float, Float -> OvertonesO)]) -> Params -> Float -> FilePath -> Float -> String -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (Int -> OvertonesO) -> (OvertonesO -> OvertonesO) -> (Float -> OvertonesO) -> IO ()
+ Composition.Sound.Complex: soundGen3G_O2MNPar :: Int -> Int -> ((Float -> OvertonesO, Int -> Float -> OvertonesO, Int -> Float -> OvertonesO) -> [(Int, Int)] -> [(Float, Float -> OvertonesO)]) -> Params -> Float -> FilePath -> Float -> String -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (Int -> OvertonesO) -> (OvertonesO -> OvertonesO) -> (Float -> OvertonesO) -> IO ()
- Composition.Sound.Complex: soundGen3G_OMN :: Int64 -> Int64 -> Int -> Int -> Float -> FilePath -> Float -> String -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (Int -> OvertonesO) -> (OvertonesO -> OvertonesO) -> (Float -> OvertonesO) -> IO ()
+ Composition.Sound.Complex: soundGen3G_OMN :: Int -> Int -> Int -> Int -> Float -> FilePath -> Float -> String -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (Int -> OvertonesO) -> (OvertonesO -> OvertonesO) -> (Float -> OvertonesO) -> IO ()
- Composition.Sound.Complex: soundGen3G_OMNPar :: Int64 -> Int64 -> Params -> Float -> FilePath -> Float -> String -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (Int -> OvertonesO) -> (OvertonesO -> OvertonesO) -> (Float -> OvertonesO) -> IO ()
+ Composition.Sound.Complex: soundGen3G_OMNPar :: Int -> Int -> Params -> Float -> FilePath -> Float -> String -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (Int -> OvertonesO) -> (OvertonesO -> OvertonesO) -> (Float -> OvertonesO) -> IO ()
- Composition.Sound.Complex: testSoundGen2GMN :: Int64 -> Int64 -> FilePath -> Float -> String -> IO ()
+ Composition.Sound.Complex: testSoundGen2GMN :: Int -> Int -> FilePath -> Float -> String -> IO ()
Files
- CHANGELOG.md +6/−0
- Composition/Sound/Complex.hs +14/−14
- LICENSE +1/−1
- README.markdown +0/−15
- README.md +15/−0
- algorithmic-composition-complex.cabal +3/−3
CHANGELOG.md view
@@ -8,3 +8,9 @@ ## 0.1.1.0 -- 2022-02-19 * First version revised A. Updated the dependencies. No code revision is made.++## 0.2.0.0 -- 2022-08-17++* Second version. Removed the bytestring as a dependency. Updated the dependencies boundaries to support the newer +GHC-9* series.+
Composition/Sound/Complex.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Composition.Sound.Complex--- Copyright : (c) OleksandrZhabenko 2020-2021+-- Copyright : (c) OleksandrZhabenko 2020-2022 -- License : MIT -- Stability : Experimental -- Maintainer : olexandr543@yahoo.com@@ -41,7 +41,7 @@ import System.Process import EndOfExe import System.Directory-import GHC.Int (Int64)+--import GHC.Int (Int64) import Composition.Sound.Keyboard import Composition.Sound.Functional.Params import Composition.Sound.Functional.Basics@@ -53,7 +53,7 @@ {-# INLINE testSoundGen2G #-} -- | Tesing variant of the 'soundGen3GMN' with predefined last functional arguments.-testSoundGen2GMN :: Int64 -> Int64 -> FilePath -> Float -> String -> IO ()+testSoundGen2GMN :: Int -> Int -> FilePath -> Float -> String -> IO () testSoundGen2GMN m n1 file y zs = do vecA0 <- fmap (map (`quotRem` 108)) ((if m == (-1) && n1 == (-1) then readFileDoubles else readFileDoublesMN m n1) file) -- >>= print let n = length vecA0@@ -84,9 +84,9 @@ {-# INLINE soundGen3G #-} -- | Generates a sequence of sounds with changing timbre. Uses several functions as parameters. To specify how many sounds the resulting files --- will provide, you use first two 'Int64' arguments, the first of which is a number of dropped elements for 'readFileDoubles' and the second one +-- will provide, you use first two 'Int' arguments, the first of which is a number of dropped elements for 'readFileDoubles' and the second one -- is a number of produced sounds (and, respectively, number of taken elements).-soundGen3GMN :: Int64 -> Int64 -> FilePath -> Float -> String -> ((Float,Float) -> Float -> (Float -> OvertonesO) -> OvertonesO) +soundGen3GMN :: Int -> Int -> FilePath -> Float -> String -> ((Float,Float) -> Float -> (Float -> OvertonesO) -> OvertonesO) -> ((Float,Float) -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (Float -> OvertonesO) -> IO () soundGen3GMN m n1 file y zs gAdd gRem f0 = do vecA0 <- fmap (map (`quotRem` 108)) ((if m == (-1) && n1 == (-1) then readFileDoubles else readFileDoublesMN m n1) file) -- >>= print@@ -131,9 +131,9 @@ {-# INLINE soundGen3G_OPar #-} -- | Generates a sequence of sounds with changing timbre. Uses several functions as parameters. To specify how many sounds the resulting files --- will provide, you use first two 'Int64' arguments, the first of which is a number of dropped elements for 'readFileDoubles' and the second one +-- will provide, you use first two 'Int' arguments, the first of which is a number of dropped elements for 'readFileDoubles' and the second one -- is a number of produced sounds (and, respectively, number of taken elements).-soundGen3G_OMN :: Int64 -> Int64 -> Int -> Int -> Float -> FilePath -> Float -> String -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) +soundGen3G_OMN :: Int -> Int -> Int -> Int -> Float -> FilePath -> Float -> String -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (Int -> OvertonesO) -> (OvertonesO -> OvertonesO) -> (Float -> OvertonesO) -> IO () soundGen3G_OMN m1 n1 m ku freq1 file y zs gAdds gRems freq0 proj f0 = do@@ -159,7 +159,7 @@ -- | Generalized version of the 'soundGen3G_OMN' where 'liftInParams' is used instead of lifting with the 'liftInEnku'. This allows e. g. to -- use some tonality. For more information, please, refer to 'filterInParams'.-soundGen3G_OMNPar :: Int64 -> Int64 -> Params -> Float -> FilePath -> Float -> String -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) +soundGen3G_OMNPar :: Int -> Int -> Params -> Float -> FilePath -> Float -> String -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (Int -> OvertonesO) -> (OvertonesO -> OvertonesO) -> (Float -> OvertonesO) -> IO () soundGen3G_OMNPar m1 n1 params freq1 file y zs gAdds gRems freq0 proj f0 = do@@ -223,9 +223,9 @@ {-# INLINE soundGen3G_O2Par #-} -- | Generates a sequence of sounds with changing timbre. Is a generalized version of the 'soundGen3G_O2'. To specify how many sounds the resulting files --- will provide, you use first two 'Int64' arguments, the first of which is a number of dropped elements for 'readFileDoubles' and the second one +-- will provide, you use first two 'Int' arguments, the first of which is a number of dropped elements for 'readFileDoubles' and the second one -- is a number of produced sounds (and, respectively, number of taken elements).-soundGen3G_O2MN :: Int64 -> Int64 -> ((Float -> OvertonesO,Int -> Float -> OvertonesO,Int -> Float -> OvertonesO) -> [(Int,Int)] -> +soundGen3G_O2MN :: Int -> Int -> ((Float -> OvertonesO,Int -> Float -> OvertonesO,Int -> Float -> OvertonesO) -> [(Int,Int)] -> [(Float,Float -> OvertonesO)]) -> Int -> Int -> Float -> FilePath -> Float -> String -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (Int -> OvertonesO) -> (OvertonesO -> OvertonesO) -> (Float -> OvertonesO) -> IO ()@@ -245,7 +245,7 @@ -- | Generalized version of the 'soundGen3G_O2MN' where 'liftInParams' is used instead of lifting with the 'liftInEnku'. This allows e. g. to -- use some tonality. For more information, please, refer to 'filterInParams'.-soundGen3G_O2MNPar :: Int64 -> Int64 -> ((Float -> OvertonesO,Int -> Float -> OvertonesO,Int -> Float -> OvertonesO) -> [(Int,Int)] -> [(Float,Float -> OvertonesO)]) -> Params -> Float -> FilePath -> Float -> String -> +soundGen3G_O2MNPar :: Int -> Int -> ((Float -> OvertonesO,Int -> Float -> OvertonesO,Int -> Float -> OvertonesO) -> [(Int,Int)] -> [(Float,Float -> OvertonesO)]) -> Params -> Float -> FilePath -> Float -> String -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (OvertonesO -> Float -> (Float -> OvertonesO) -> OvertonesO) -> (Int -> OvertonesO) -> (OvertonesO -> OvertonesO) -> (Float -> OvertonesO) -> IO () soundGen3G_O2MNPar m1 n1 conversionFII params freq1 file y zs gAdds gRems freq0 proj f0 = do@@ -285,9 +285,9 @@ {-# INLINE soundGen3G_O2GPar #-} -- | Generates a sequence of sounds with changing timbre. Is a generalized version of the 'soundGen3G_O2G'. To specify how many sounds the resulting files --- will provide, you use first two 'Int64' arguments, the first of which is a number of dropped elements for 'readFileDoubles' and the second one +-- will provide, you use first two 'Int' arguments, the first of which is a number of dropped elements for 'readFileDoubles' and the second one -- is a number of produced sounds (and, respectively, number of taken elements).-soundGen3G_O2GMN :: Int64 -> Int64 -> (([(Float -> OvertonesO)],[(Int -> Float -> OvertonesO)],[(Int -> Float -> OvertonesO)]) -> [(Int,Int)] -> +soundGen3G_O2GMN :: Int -> Int -> (([(Float -> OvertonesO)],[(Int -> Float -> OvertonesO)],[(Int -> Float -> OvertonesO)]) -> [(Int,Int)] -> [(Float,Float -> OvertonesO)]) -> [(Float -> OvertonesO)] -> [(Int -> Float -> OvertonesO)] -> [(Int -> Float -> OvertonesO)] -> Int -> Int -> Float -> FilePath -> Float -> String -> IO () soundGen3G_O2GMN m1 n1 conversionFII vf vfA vfR m ku freq1 file y zs = do@@ -303,7 +303,7 @@ -- | Generalized version of the 'soundGen3G_O2GMN' where 'liftInParams' is used instead of lifting with the 'liftInEnku'. This allows e. g. to -- use some tonality. For more information, please, refer to 'filterInParams'.-soundGen3G_O2GMNPar :: Int64 -> Int64 -> (([(Float -> OvertonesO)],[(Int -> Float -> OvertonesO)],[(Int -> Float -> OvertonesO)]) -> [(Int,Int)] -> +soundGen3G_O2GMNPar :: Int -> Int -> (([(Float -> OvertonesO)],[(Int -> Float -> OvertonesO)],[(Int -> Float -> OvertonesO)]) -> [(Int,Int)] -> [(Float,Float -> OvertonesO)]) -> [(Float -> OvertonesO)] -> [(Int -> Float -> OvertonesO)] -> [(Int -> Float -> OvertonesO)] -> Params -> Float -> FilePath -> Float -> String -> IO () soundGen3G_O2GMNPar m1 n1 conversionFII vf vfA vfR params freq1 file y zs = do
LICENSE view
@@ -1,4 +1,4 @@-Copyright (c) 2020-2021 OleksandrZhabenko+Copyright (c) 2020-2022 Oleksandr Zhabenko Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the
− README.markdown
@@ -1,15 +0,0 @@- ***** Basic Info *****- ======================--Is rewritten from the dobutokO3 package on Hackage (https://hackage.haskell.org/package/dobutokO3) using arrays and list instead of vector-related functionality. --Helps to create (in a more complicated manner compared to algorithmic-composition-basic package) -experimental music from a file (or its part). Can be used to generate sounds -with changing timbre.--Is more complicated than algorithmic-composition-basic and uses its functionality. Uses SoX inside.--The functions are taken and fixed some issues from the package algorithmic-composition-basic-https://hackage.haskell.org/package/algorithmic-composition-basic--
+ README.md view
@@ -0,0 +1,15 @@+ ***** Basic Info *****+ ======================++Is rewritten from the dobutokO3 package on Hackage (https://hackage.haskell.org/package/dobutokO3) using arrays and list instead of vector-related functionality. ++Helps to create (in a more complicated manner compared to algorithmic-composition-basic package) +experimental music from a file (or its part). Can be used to generate sounds +with changing timbre.++Is more complicated than algorithmic-composition-basic and uses its functionality. Uses SoX inside.++The functions are taken and fixed some issues from the package algorithmic-composition-basic+https://hackage.haskell.org/package/algorithmic-composition-basic++
algorithmic-composition-complex.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: algorithmic-composition-complex-version: 0.1.1.0+version: 0.2.0.0 synopsis: Helps to create more complex experimental music from a file (especially timbre). description: Uses SoX inside. homepage: https://hackage.haskell.org/package/algorithmic-composition-complex@@ -13,13 +13,13 @@ copyright: Oleksandr Zhabenko category: Sound, Music build-type: Simple-extra-source-files: CHANGELOG.md, README.markdown+extra-source-files: CHANGELOG.md, README.md cabal-version: >=1.10 library exposed-modules: Composition.Sound.Complex -- other-modules: -- other-extensions:- build-depends: base >=4.8 && <5, bytestring >= 0.10.6 && <1, process >=1.4 && <1.9, mmsyn3 >=0.1.5 && <1, directory >=1.2.7 && <1.7, mmsyn7ukr-common >=0.1.1 && <1, mmsyn2-array >=0.1.1 && <1, ukrainian-phonetics-basic-array-bytestring >=0.1 && <1, mmsyn7l >=0.9 && <1, phonetic-languages-simplified-base >=0.2 && <1, foldable-ix >=0.2 && <1, algorithmic-composition-basic >=0.1.1 && <1+ build-depends: base >=4.8 && <5, process >=1.4 && <2, mmsyn3 ==0.1.6.0, directory >=1.2.7 && <2, mmsyn7ukr-common ==0.2.0.0, mmsyn2-array ==0.3.0.0, ukrainian-phonetics-basic-array ==0.6.0.0, mmsyn7l ==0.9.1.0, phonetic-languages-simplified-base ==0.6.0.0, foldable-ix ==0.2.1.0, algorithmic-composition-basic ==0.6.0.0 -- hs-source-dirs: default-language: Haskell2010