{-# LANGUAGE BangPatterns #-}
{-# OPTIONS_GHC -threaded #-}
module Composition.Sound.Functional (
overSoXSynth2FDN
, overSoXSynth2FDN_B
, overSoXSynthGen2FDN
, overSoXSynthGen2FDN_B
, overSoXSynth2FDN1G
, overSoXSynth2FDN_B1G
, overSoXSynth2FDN_S1G
, overSoXSynth2FDN_Sf1G
, overSoXSynth2FDN_Sf31G
, overSoXSynth2FDN2G
, overSoXSynth2FDN_B2G
, overSoXSynth2FDN_S2G
, overSoXSynth2FDN_Sf2G
, overSoXSynth2FDN_Sf32G
, overSoXSynthGen2FDN_SG2G
, overSoXSynthGen2FDN_Sf3G2G
, overSoXSynthGen2FDN_SG
, overSoXSynthGen2FDN_Sf3G
, soundGenF31G
, overSoXSynthGen2FDN4G
, overSoXSynthGen2FDN_SG4G
, overSoXSynthGen2FDN_SG4GS
, overSoXSynth2FDN5G
, overSoXSynth2FDN_B5G
, overSoXSynth2FDN_S5G
, overSoXSynth2FDN_Sf35G
, overSoXSynth2FDN6G
, overSoXSynth2FDN6GS
, overSoXSynth2FDN_B6G
, overSoXSynth2FDN_B6GS
, overSoXSynth2FDN_S6G
, overSoXSynth2FDN_S6GS
, overSoXSynth2FDN_Sf36G
, overSoXSynth2FDN_Sf36GS
, overSoXSynthGen2FDN_SG6G
, overSoXSynthGen2FDN_SG6GS
, overSoXSynthGen2FDN_SG6GSu
, help11
, help12
, help13
) where
import Numeric
import Data.List (nubBy)
import Data.Maybe (isNothing,fromJust,fromMaybe,maybe)
import GHC.Arr
import qualified Data.Foldable as F
import System.Process
import EndOfExe
import System.Directory
import Melodics.ByteString.Ukrainian.Arr (convertToProperUkrainianS)
import Composition.Sound.IntermediateF
import Composition.Sound.Functional.Basics
import Composition.Sound.Functional.Params
import Composition.Sound.DIS5G6G (intervalsFromStringG,str2Durations,str2Vol1,str2Volume)
overSoXSynth2FDN :: (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()
overSoXSynth2FDN :: (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()
overSoXSynth2FDN Float -> OvertonesO
f (Float
x, Float
y) Int
j String
zs = (Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> Array Int Float -> IO ()
overSoXSynth2FDN1G Float -> OvertonesO
f (Float
x, Float
y) Int
j String
zs ((\[Float]
rs -> (Int, Int) -> [Float] -> Array Int Float
forall i e. Ix i => (i, i) -> [e] -> Array i e
listArray (Int
0, Int
l Int -> Int -> Int
forall a. Num a => a -> a -> a
- Int
1) [Float]
rs) ([Float] -> Array Int Float)
-> (Float -> [Float]) -> Float -> Array Int Float
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Float -> [Float]
forall a. Int -> a -> [a]
replicate Int
l (Float -> Array Int Float) -> Float -> Array Int Float
forall a b. (a -> b) -> a -> b
$ Float
0.0)
where !l :: Int
l = OvertonesO -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length (OvertonesO -> Int) -> (Float -> OvertonesO) -> Float -> Int
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Float -> OvertonesO
f (Float -> OvertonesO) -> (Float -> Float) -> Float -> OvertonesO
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Float -> Float
closestNote (Float -> Int) -> Float -> Int
forall a b. (a -> b) -> a -> b
$ if Float
x Float -> Float -> Bool
forall a. Eq a => a -> a -> Bool
/= Float
0.0 then Float -> Float
forall a. Num a => a -> a
abs Float
x else Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
notes Int
0
{-# INLINE overSoXSynth2FDN #-}
overSoXSynth2FDN1G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> Array Int Float -> IO ()
overSoXSynth2FDN1G :: (Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> Array Int Float -> IO ()
overSoXSynth2FDN1G Float -> OvertonesO
f (Float
x, Float
y) Int
j String
zs Array Int Float
vdB = (Float -> OvertonesO)
-> (Float, Float)
-> Int
-> String
-> Array Int Float
-> String
-> IO ()
overSoXSynth2FDN2G Float -> OvertonesO
f (Float
x, Float
y) Int
j String
zs Array Int Float
vdB []
{-# INLINE overSoXSynth2FDN1G #-}
overSoXSynth2FDN2G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> Array Int Float -> String -> IO ()
overSoXSynth2FDN2G :: (Float -> OvertonesO)
-> (Float, Float)
-> Int
-> String
-> Array Int Float
-> String
-> IO ()
overSoXSynth2FDN2G Float -> OvertonesO
f (Float
x, Float
y) Int
j String
zs Array Int Float
vdB String
ys
| String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (String -> Bool) -> (String -> String) -> String -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> String
convertToProperUkrainianS (String -> Bool) -> String -> Bool
forall a b. (a -> b) -> a -> b
$ String
zs = (Float -> OvertonesO) -> Float -> IO ()
overSoXSynthG Float -> OvertonesO
f Float
x
| Bool
otherwise = do
let note0 :: Float
note0 = Float -> Float
closestNote (if Float
x Float -> Float -> Bool
forall a. Eq a => a -> a -> Bool
/= Float
0.0 then Float -> Float
forall a. Num a => a -> a
abs Float
x else Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
notes Int
0)
l0 :: Int
l0 = String -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length String
zs
note1 :: Maybe Float
note1 = Int -> Float -> Maybe Float
dNote (Array Int Int -> Int -> Int
forall i e. Array i e -> Int -> e
unsafeAt (String -> Array Int Int
intervalsFromString String
zs) (Int -> Int
forall a. Num a => a -> a
abs (Int
j Int -> Int -> Int
forall a. Integral a => a -> a -> a
`rem` Int
l0))) Float
note0
(Float -> OvertonesO)
-> (Float, Float)
-> Int
-> Array Int Float
-> String
-> Int
-> Maybe Float
-> Float
-> IO ()
help11 Float -> OvertonesO
f (Float
x, Float
y) Int
j Array Int Float
vdB String
ys Int
l0 Maybe Float
note1 Float
note0
overSoXSynth2FDN5G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> Intervals -> Array Int Float -> String -> IO ()
overSoXSynth2FDN5G :: (Float -> OvertonesO)
-> (Float, Float)
-> Int
-> Array Int Int
-> Array Int Float
-> String
-> IO ()
overSoXSynth2FDN5G Float -> OvertonesO
f (Float
x, Float
y) Int
j Array Int Int
v5 Array Int Float
vdB String
ys
| Array Int Int -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
F.null Array Int Int
v5 = (Float -> OvertonesO) -> Float -> IO ()
overSoXSynthG Float -> OvertonesO
f Float
x
| Bool
otherwise = do
let note0 :: Float
note0 = Float -> Float
closestNote (if Float
x Float -> Float -> Bool
forall a. Eq a => a -> a -> Bool
/= Float
0.0 then Float -> Float
forall a. Num a => a -> a
abs Float
x else Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
notes Int
0)
l0 :: Int
l0 = Array Int Int -> Int
forall i e. Array i e -> Int
numElements Array Int Int
v5
note1 :: Maybe Float
note1 = Int -> Float -> Maybe Float
dNote (Array Int Int -> Int -> Int
forall i e. Array i e -> Int -> e
unsafeAt Array Int Int
v5 (Int -> Int
forall a. Num a => a -> a
abs (Int
j Int -> Int -> Int
forall a. Integral a => a -> a -> a
`rem` Int
l0))) Float
note0
(Float -> OvertonesO)
-> (Float, Float)
-> Int
-> Array Int Float
-> String
-> Int
-> Maybe Float
-> Float
-> IO ()
help11 Float -> OvertonesO
f (Float
x, Float
y) Int
j Array Int Float
vdB String
ys Int
l0 Maybe Float
note1 Float
note0
help11 :: (Float -> OvertonesO) -> (Float, Float) -> Int -> Array Int Float -> String -> Int -> Maybe Float -> Float -> IO ()
help11 :: (Float -> OvertonesO)
-> (Float, Float)
-> Int
-> Array Int Float
-> String
-> Int
-> Maybe Float
-> Float
-> IO ()
help11 Float -> OvertonesO
f (Float
x, Float
y) Int
j Array Int Float
vdB String
ys Int
l0 Maybe Float
note1 Float
note0 = do
let g0 :: Float -> OvertonesO
g0 = ((Float, Float) -> (Float, Float) -> Bool)
-> OvertonesO -> OvertonesO
forall a. (a -> a -> Bool) -> [a] -> [a]
nubBy (\(!Float
x1,Float
_) (!Float
x2,Float
_) -> Float
x1 Float -> Float -> Bool
forall a. Eq a => a -> a -> Bool
== Float
x2) (OvertonesO -> OvertonesO)
-> (Float -> OvertonesO) -> Float -> OvertonesO
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Float, Float) -> (Float, Float)) -> OvertonesO -> OvertonesO
forall a b. (a -> b) -> [a] -> [b]
map (\(Float
noteX, !Float
amplX) ->
if Float
noteX Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
<= Float
0.0 then (Float
2 Float -> Float -> Float
forall a. Num a => a -> a -> a
* Float
note0, Float -> Float
forall a. Num a => a -> a
abs (Float
amplX Float -> Float -> Float
forall a. Num a => a -> a -> a
- (Integer -> Float
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Integer -> Float) -> (Float -> Integer) -> Float -> Float
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Float -> Integer
forall a b. (RealFrac a, Integral b) => a -> b
truncate (Float -> Float) -> Float -> Float
forall a b. (a -> b) -> a -> b
$ Float
amplX))) else (Float -> Float
closestNote Float
noteX,
Float -> Float
forall a. Num a => a -> a
abs (Float
amplX Float -> Float -> Float
forall a. Num a => a -> a -> a
- (Integer -> Float
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Integer -> Float) -> (Float -> Integer) -> Float -> Float
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Float -> Integer
forall a b. (RealFrac a, Integral b) => a -> b
truncate (Float -> Float) -> Float -> Float
forall a b. (a -> b) -> a -> b
$ Float
amplX)))) (OvertonesO -> OvertonesO)
-> (Float -> OvertonesO) -> Float -> OvertonesO
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Float -> OvertonesO
f
g :: Float -> OvertonesO
g Float
k = ((Float, Float) -> Bool) -> OvertonesO -> OvertonesO
forall a. (a -> Bool) -> [a] -> [a]
takeWhile (\(!Float
w,!Float
z) -> Float
w Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
<= Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
notes Int
107 Bool -> Bool -> Bool
&& Float -> Float
forall a. Num a => a -> a
abs Float
z Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0.001) (OvertonesO -> OvertonesO)
-> (Float -> OvertonesO) -> Float -> OvertonesO
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
((Integer, (Float, Float)) -> (Float, Float))
-> [(Integer, (Float, Float))] -> OvertonesO
forall a b. (a -> b) -> [a] -> [b]
map (\(Integer
i, (Float
_,!Float
z0)) -> (Integer -> Float
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Integer
i Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
+ Integer
1) Float -> Float -> Float
forall a. Num a => a -> a -> a
* ((Float, Float) -> Float
forall a b. (a, b) -> a
fst ((Float, Float) -> Float)
-> (Float -> (Float, Float)) -> Float -> Float
forall b c a. (b -> c) -> (a -> b) -> a -> c
. OvertonesO -> (Float, Float)
forall a. [a] -> a
head (OvertonesO -> (Float, Float))
-> (Float -> OvertonesO) -> Float -> (Float, Float)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Float -> OvertonesO
g0 (Float -> Float) -> Float -> Float
forall a b. (a -> b) -> a -> b
$ Float
k), Float
z0)) ([(Integer, (Float, Float))] -> OvertonesO)
-> (Float -> [(Integer, (Float, Float))]) -> Float -> OvertonesO
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Integer] -> OvertonesO -> [(Integer, (Float, Float))]
forall a b. [a] -> [b] -> [(a, b)]
zip [Integer
0..] (OvertonesO -> [(Integer, (Float, Float))])
-> (Float -> OvertonesO) -> Float -> [(Integer, (Float, Float))]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Float -> OvertonesO
g0 (Float -> OvertonesO) -> Float -> OvertonesO
forall a b. (a -> b) -> a -> b
$ Float
k
v0 :: OvertonesO
v0 = Float -> OvertonesO
g Float
note0
v1 :: OvertonesO
v1 = OvertonesO -> (Float -> OvertonesO) -> Maybe Float -> OvertonesO
forall b a. b -> (a -> b) -> Maybe a -> b
maybe [] Float -> OvertonesO
g Maybe Float
note1
ts :: String
ts = Maybe Int -> Float -> String -> String
forall a. RealFloat a => Maybe Int -> a -> String -> String
showFFloat (Int -> Maybe Int
forall a. a -> Maybe a
Just Int
4) (Float -> Float
forall a. Num a => a -> a
abs Float
y) String
""
overSoXSynthHelp :: OvertonesO -> IO ()
overSoXSynthHelp = ((Integer, (Float, Float)) -> IO (ExitCode, String, String))
-> [(Integer, (Float, Float))] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (\(Integer
i, (Float
noteN, !Float
amplN)) -> String -> [String] -> String -> IO (ExitCode, String, String)
readProcessWithExitCode (Maybe String -> String
forall a. HasCallStack => Maybe a -> a
fromJust (String -> Maybe String
showE String
"sox"))
((if String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null String
ys then [String] -> [String]
forall a. a -> a
id else String -> [String] -> [String]
soxBasicParams String
ys) [String
"-r22050", String
"-n", String
"test0" String -> String -> String
forall a. [a] -> [a] -> [a]
++ Integer -> String
forall a. Show a => a -> String
show (Integer
i Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
+ Integer
2) String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
".wav", String
"synth", String
ts,String
"sine",
Maybe Int -> Float -> String -> String
forall a. RealFloat a => Maybe Int -> a -> String -> String
showFFloat Maybe Int
forall a. Maybe a
Nothing Float
noteN String
"", String
"vol", if Float
y Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0.0 then Maybe Int -> Float -> String -> String
forall a. RealFloat a => Maybe Int -> a -> String -> String
showFFloat Maybe Int
forall a. Maybe a
Nothing Float
amplN String
"" else String
"0"]) String
"") ([(Integer, (Float, Float))] -> IO ())
-> (OvertonesO -> [(Integer, (Float, Float))])
-> OvertonesO
-> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Integer] -> OvertonesO -> [(Integer, (Float, Float))]
forall a b. [a] -> [b] -> [(a, b)]
zip [Integer
0..]
overSoXSynthHelp2 :: [(a, a)] -> Array i Float -> IO ()
overSoXSynthHelp2 [(a, a)]
vec Array i Float
vdB = ((Int, (a, a)) -> IO (ExitCode, String, String))
-> [(Int, (a, a))] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (\(Int
i, (a
noteN, !a
amplN)) -> String -> [String] -> String -> IO (ExitCode, String, String)
readProcessWithExitCode (Maybe String -> String
forall a. HasCallStack => Maybe a -> a
fromJust (String -> Maybe String
showE String
"sox"))
((if String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null String
ys then [String] -> [String]
forall a. a -> a
id else String -> [String] -> [String]
soxBasicParams String
ys) ([String] -> Float -> [String]
adjust_dbVol [String
"-r22050", String
"-n", String
"test1" String -> String -> String
forall a. [a] -> [a] -> [a]
++ Int -> String
forall a. Show a => a -> String
show (Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
2) String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
".wav", String
"synth", String
ts,String
"sine",
Maybe Int -> a -> String -> String
forall a. RealFloat a => Maybe Int -> a -> String -> String
showFFloat Maybe Int
forall a. Maybe a
Nothing a
noteN String
"",String
"vol", if Float
y Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0.0 then Maybe Int -> a -> String -> String
forall a. RealFloat a => Maybe Int -> a -> String -> String
showFFloat Maybe Int
forall a. Maybe a
Nothing a
amplN String
"" else String
"0"] (Array i Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array i Float
vdB Int
i))) String
"") ([(Int, (a, a))] -> IO ())
-> ([(a, a)] -> [(Int, (a, a))]) -> [(a, a)] -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Int] -> [(a, a)] -> [(Int, (a, a))]
forall a b. [a] -> [b] -> [(a, b)]
zip [Int
0..] ([(a, a)] -> IO ()) -> [(a, a)] -> IO ()
forall a b. (a -> b) -> a -> b
$ [(a, a)]
vec
(ExitCode, String, String)
_ <- String -> [String] -> String -> IO (ExitCode, String, String)
readProcessWithExitCode (Maybe String -> String
forall a. HasCallStack => Maybe a -> a
fromJust (String -> Maybe String
showE String
"sox")) ((if String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null String
ys then [String] -> [String]
forall a. a -> a
id else String -> [String] -> [String]
soxBasicParams String
ys) [String
"-r22050", String
"-n", String
"testA.wav", String
"synth", String
ts,
String
"sine", Maybe Int -> Float -> String -> String
forall a. RealFloat a => Maybe Int -> a -> String -> String
showFFloat Maybe Int
forall a. Maybe a
Nothing Float
note0 String
"",String
"vol", if Float
y Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0.0 then String
"1.0" else String
"0"]) String
""
if Maybe Float -> Bool
forall a. Maybe a -> Bool
isNothing Maybe Float
note1 then OvertonesO -> IO ()
overSoXSynthHelp OvertonesO
v0
else do
(ExitCode, String, String)
_ <- String -> [String] -> String -> IO (ExitCode, String, String)
readProcessWithExitCode (Maybe String -> String
forall a. HasCallStack => Maybe a -> a
fromJust (String -> Maybe String
showE String
"sox")) ((if String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null String
ys then [String] -> [String]
forall a. a -> a
id else String -> [String] -> [String]
soxBasicParams String
ys) [String
"-r22050", String
"-n", String
"testB.wav", String
"synth", String
ts,
String
"sine", Maybe Int -> Float -> String -> String
forall a. RealFloat a => Maybe Int -> a -> String -> String
showFFloat Maybe Int
forall a. Maybe a
Nothing (Maybe Float -> Float
forall a. HasCallStack => Maybe a -> a
fromJust Maybe Float
note1) String
"",String
"vol", if Float
y Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0.0 then String
"1.0" else String
"0"]) String
""
OvertonesO -> IO ()
overSoXSynthHelp OvertonesO
v0
OvertonesO -> Array Int Float -> IO ()
forall a a i.
(RealFloat a, RealFloat a) =>
[(a, a)] -> Array i Float -> IO ()
overSoXSynthHelp2 OvertonesO
v1 Array Int Float
vdB
if String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null String
ys then IO ()
mixTest else String -> IO ()
mixTest2G String
ys
{-# INLINE help11 #-}
overSoXSynth2FDN6G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> Intervals -> Array Int Float -> String -> Float -> IO ()
overSoXSynth2FDN6G :: (Float -> OvertonesO)
-> (Float, Float)
-> Int
-> Array Int Int
-> Array Int Float
-> String
-> Float
-> IO ()
overSoXSynth2FDN6G Float -> OvertonesO
f (Float
x, Float
y) Int
j Array Int Int
v5 Array Int Float
vdB String
ys Float
vol
| Array Int Int -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
F.null Array Int Int
v5 = (Float -> OvertonesO) -> Float -> IO ()
overSoXSynthG Float -> OvertonesO
f Float
x
| Bool
otherwise = do
let note0 :: Float
note0 = Float -> Float
closestNote (if Float
x Float -> Float -> Bool
forall a. Eq a => a -> a -> Bool
/= Float
0.0 then Float -> Float
forall a. Num a => a -> a
abs Float
x else Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
notes Int
0)
l0 :: Int
l0 = Array Int Int -> Int
forall i e. Array i e -> Int
numElements Array Int Int
v5
note1 :: Maybe Float
note1 = Int -> Float -> Maybe Float
dNote (Array Int Int -> Int -> Int
forall i e. Array i e -> Int -> e
unsafeAt Array Int Int
v5 (Int -> Int
forall a. Num a => a -> a
abs (Int
j Int -> Int -> Int
forall a. Integral a => a -> a -> a
`rem` Int
l0))) Float
note0
(Float -> OvertonesO)
-> (Float, Float)
-> Int
-> Array Int Float
-> String
-> Int
-> Maybe Float
-> Float
-> IO ()
help11 Float -> OvertonesO
f (Float
x, Float
y) Int
j Array Int Float
vdB String
ys Int
l0 Maybe Float
note1 Float
note0
if Float
y Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0.0 then Float -> String -> IO ()
apply6Gf Float
vol (String
"result." String -> String -> String
forall a. [a] -> [a] -> [a]
++ if Int -> String -> String
forall a. Int -> [a] -> [a]
drop Int
3 String
ys String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
"f" then String
"flac" else String
"wav") else String -> IO ()
putStr String
""
overSoXSynth2FDN6GS :: (Float -> OvertonesO) -> (Float, Float) -> Int -> Intervals -> String -> Array Int Float -> String -> String -> IO ()
overSoXSynth2FDN6GS :: (Float -> OvertonesO)
-> (Float, Float)
-> Int
-> Array Int Int
-> String
-> Array Int Float
-> String
-> String
-> IO ()
overSoXSynth2FDN6GS Float -> OvertonesO
f (Float
x, Float
y) Int
j Array Int Int
v5 String
xs Array Int Float
vdB String
ys String
xxs
| String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (String -> Bool) -> (String -> String) -> String -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> String
convertToProperUkrainianS (String -> Bool) -> String -> Bool
forall a b. (a -> b) -> a -> b
$ String
xxs = String -> IO ()
putStrLn String
"Composition.Sound.Functional.overSoXSynth2FDN6GS: You provided no information to obtain volume adjustment! "
| Bool
otherwise = (Float -> OvertonesO)
-> (Float, Float)
-> Int
-> Array Int Int
-> Array Int Float
-> String
-> Float
-> IO ()
overSoXSynth2FDN6G Float -> OvertonesO
f (Float
x, Float
y) Int
j (Array Int Int -> String -> Array Int Int
intervalsFromStringG Array Int Int
v5 String
xs) Array Int Float
vdB String
ys (String -> Float
str2Vol1 String
xxs)
{-# INLINE overSoXSynth2FDN6GS #-}
overSoXSynthGen2FDN :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> String -> String -> IO ()
overSoXSynthGen2FDN :: String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Float
-> String
-> String
-> IO ()
overSoXSynthGen2FDN String
file Int
m Int
ku Float -> OvertonesO
f Float
y String
zs String
wws = String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Float
-> String
-> String
-> ((Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> IO ())
-> IO ()
overSoXSynthGen2FDN_SG String
file Int
m Int
ku Float -> OvertonesO
f Float
y String
zs String
wws (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()
overSoXSynth2FDN
{-# INLINE overSoXSynthGen2FDN #-}
overSoXSynthGen2FDN4G :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Durations -> String -> IO ()
overSoXSynthGen2FDN4G :: String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Array Int Float
-> String
-> IO ()
overSoXSynthGen2FDN4G String
file Int
m Int
ku Float -> OvertonesO
f Array Int Float
v2 String
wws = String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Array Int Float
-> String
-> ((Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> IO ())
-> IO ()
overSoXSynthGen2FDN_SG4G String
file Int
m Int
ku Float -> OvertonesO
f Array Int Float
v2 String
wws (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()
overSoXSynth2FDN
{-# INLINE overSoXSynthGen2FDN4G #-}
overSoXSynth2FDN_B :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> String -> IO ()
overSoXSynth2FDN_B :: (Float -> OvertonesO)
-> (Float, Float, Float) -> Int -> String -> IO ()
overSoXSynth2FDN_B Float -> OvertonesO
f (Float
x, Float
y, Float
limB) Int
j String
zs = (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> String
-> Array Int Float
-> IO ()
overSoXSynth2FDN_B1G Float -> OvertonesO
f (Float
x, Float
y, Float
limB) Int
j String
zs ((\[Float]
rs -> (Int, Int) -> [Float] -> Array Int Float
forall i e. Ix i => (i, i) -> [e] -> Array i e
listArray (Int
0,Int
l Int -> Int -> Int
forall a. Num a => a -> a -> a
- Int
1) [Float]
rs) ([Float] -> Array Int Float)
-> (Float -> [Float]) -> Float -> Array Int Float
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Float -> [Float]
forall a. Int -> a -> [a]
replicate Int
l (Float -> Array Int Float) -> Float -> Array Int Float
forall a b. (a -> b) -> a -> b
$ Float
0.0)
where !l :: Int
l = OvertonesO -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length (OvertonesO -> Int) -> (Float -> OvertonesO) -> Float -> Int
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Float -> OvertonesO
f (Float -> OvertonesO) -> (Float -> Float) -> Float -> OvertonesO
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Float -> Float
closestNote (Float -> Int) -> Float -> Int
forall a b. (a -> b) -> a -> b
$ if Float
x Float -> Float -> Bool
forall a. Eq a => a -> a -> Bool
/= Float
0.0 then Float -> Float
forall a. Num a => a -> a
abs Float
x else Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
notes Int
0
{-# INLINE overSoXSynth2FDN_B #-}
overSoXSynth2FDN_B1G :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> String -> Array Int Float -> IO ()
overSoXSynth2FDN_B1G :: (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> String
-> Array Int Float
-> IO ()
overSoXSynth2FDN_B1G Float -> OvertonesO
f (Float
x, Float
y, Float
limB) Int
j String
zs Array Int Float
vdB = (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> String
-> Array Int Float
-> String
-> IO ()
overSoXSynth2FDN_B2G Float -> OvertonesO
f (Float
x, Float
y, Float
limB) Int
j String
zs Array Int Float
vdB []
{-# INLINE overSoXSynth2FDN_B1G #-}
overSoXSynth2FDN_B2G :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> String -> Array Int Float -> String -> IO ()
overSoXSynth2FDN_B2G :: (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> String
-> Array Int Float
-> String
-> IO ()
overSoXSynth2FDN_B2G Float -> OvertonesO
f (Float
x, Float
y, Float
limB) Int
j String
zs Array Int Float
vdB String
ys
| String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (String -> Bool) -> (String -> String) -> String -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> String
convertToProperUkrainianS (String -> Bool) -> String -> Bool
forall a b. (a -> b) -> a -> b
$ String
zs = (Float -> OvertonesO) -> Float -> IO ()
overSoXSynthG Float -> OvertonesO
f Float
x
| Bool
otherwise = do
let l0 :: Int
l0 = String -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length String
zs
note0 :: Float
note0 = Float -> Float
closestNote (if Float
x Float -> Float -> Bool
forall a. Eq a => a -> a -> Bool
/= Float
0.0 then Float -> Float
forall a. Num a => a -> a
abs Float
x else Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
notes Int
0)
note1 :: Maybe Float
note1 = Int -> Float -> Maybe Float
dNote (Array Int Int -> Int -> Int
forall i e. Array i e -> Int -> e
unsafeAt (String -> Array Int Int
intervalsFromString String
zs) (Int -> Int
forall a. Num a => a -> a
abs (Int
j Int -> Int -> Int
forall a. Integral a => a -> a -> a
`rem` Int
l0))) Float
note0
(Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> Array Int Float
-> String
-> Int
-> Maybe Float
-> Float
-> IO ()
help12 Float -> OvertonesO
f (Float
x, Float
y, Float
limB) Int
j Array Int Float
vdB String
ys Int
l0 Maybe Float
note1 Float
note0
overSoXSynth2FDN_B5G :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> Intervals -> Array Int Float -> String -> IO ()
overSoXSynth2FDN_B5G :: (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> Array Int Int
-> Array Int Float
-> String
-> IO ()
overSoXSynth2FDN_B5G Float -> OvertonesO
f (Float
x, Float
y, Float
limB) Int
j Array Int Int
v5 Array Int Float
vdB String
ys
| Array Int Int -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
F.null Array Int Int
v5 = (Float -> OvertonesO) -> Float -> IO ()
overSoXSynthG Float -> OvertonesO
f Float
x
| Bool
otherwise = do
let l0 :: Int
l0 = Array Int Int -> Int
forall i e. Array i e -> Int
numElements Array Int Int
v5
note0 :: Float
note0 = Float -> Float
closestNote (if Float
x Float -> Float -> Bool
forall a. Eq a => a -> a -> Bool
/= Float
0.0 then Float -> Float
forall a. Num a => a -> a
abs Float
x else Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
notes Int
0)
note1 :: Maybe Float
note1 = Int -> Float -> Maybe Float
dNote (Array Int Int -> Int -> Int
forall i e. Array i e -> Int -> e
unsafeAt Array Int Int
v5 (Int -> Int
forall a. Num a => a -> a
abs (Int
j Int -> Int -> Int
forall a. Integral a => a -> a -> a
`rem` Int
l0))) Float
note0
(Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> Array Int Float
-> String
-> Int
-> Maybe Float
-> Float
-> IO ()
help12 Float -> OvertonesO
f (Float
x, Float
y, Float
limB) Int
j Array Int Float
vdB String
ys Int
l0 Maybe Float
note1 Float
note0
help12 :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> Array Int Float -> String -> Int -> Maybe Float -> Float -> IO ()
help12 :: (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> Array Int Float
-> String
-> Int
-> Maybe Float
-> Float
-> IO ()
help12 Float -> OvertonesO
f (Float
x, Float
y, Float
limB) Int
j Array Int Float
vdB String
ys Int
l0 Maybe Float
note1 Float
note0 = do
let limA0 :: Float
limA0 = Float -> Float
forall a. Num a => a -> a
abs ((Float
limB Float -> Float -> Float
forall a. Fractional a => a -> a -> a
/ Float
10) Float -> Float -> Float
forall a. Num a => a -> a -> a
- (Integer -> Float
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Integer -> Float) -> (Float -> Integer) -> Float -> Float
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Float -> Integer
forall a b. (RealFrac a, Integral b) => a -> b
truncate (Float -> Float) -> Float -> Float
forall a b. (a -> b) -> a -> b
$ (Float
limB Float -> Float -> Float
forall a. Fractional a => a -> a -> a
/ Float
10))) Float -> Float -> Float
forall a. Num a => a -> a -> a
* Float
10
limA :: Float
limA = if Float
limA0 Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
< Float
0.1 then Float
0.1 else Float
limA0
g0 :: Float -> OvertonesO
g0 = ((Float, Float) -> (Float, Float) -> Bool)
-> OvertonesO -> OvertonesO
forall a. (a -> a -> Bool) -> [a] -> [a]
nubBy (\(!Float
x1,Float
_) (!Float
x2,Float
_) -> Float -> Float
forall a. Num a => a -> a
abs (Float
x1 Float -> Float -> Float
forall a. Num a => a -> a -> a
- Float
x2) Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
< Float
limA) (OvertonesO -> OvertonesO)
-> (Float -> OvertonesO) -> Float -> OvertonesO
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Float, Float) -> (Float, Float)) -> OvertonesO -> OvertonesO
forall a b. (a -> b) -> [a] -> [b]
map (\(Float
noteX, !Float
amplX) ->
if Float
noteX Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
<= Float
0.0 then (Float
2 Float -> Float -> Float
forall a. Num a => a -> a -> a
* Float
note0, Float -> Float
forall a. Num a => a -> a
abs (Float
amplX Float -> Float -> Float
forall a. Num a => a -> a -> a
- (Integer -> Float
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Integer -> Float) -> (Float -> Integer) -> Float -> Float
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Float -> Integer
forall a b. (RealFrac a, Integral b) => a -> b
truncate (Float -> Float) -> Float -> Float
forall a b. (a -> b) -> a -> b
$ Float
amplX))) else (Float -> Float
closestNote Float
noteX,
Float -> Float
forall a. Num a => a -> a
abs (Float
amplX Float -> Float -> Float
forall a. Num a => a -> a -> a
- (Integer -> Float
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Integer -> Float) -> (Float -> Integer) -> Float -> Float
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Float -> Integer
forall a b. (RealFrac a, Integral b) => a -> b
truncate (Float -> Float) -> Float -> Float
forall a b. (a -> b) -> a -> b
$ Float
amplX)))) (OvertonesO -> OvertonesO)
-> (Float -> OvertonesO) -> Float -> OvertonesO
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Float -> OvertonesO
f
v0 :: OvertonesO
v0 = ((Float, Float) -> Bool) -> OvertonesO -> OvertonesO
forall a. (a -> Bool) -> [a] -> [a]
takeWhile (\(!Float
w,!Float
z) -> Float
w Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
<= Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
notes Int
107 Bool -> Bool -> Bool
&& Float -> Float
forall a. Num a => a -> a
abs Float
z Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0.001) (OvertonesO -> OvertonesO)
-> (Float -> OvertonesO) -> Float -> OvertonesO
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
((Integer, (Float, Float)) -> (Float, Float))
-> [(Integer, (Float, Float))] -> OvertonesO
forall a b. (a -> b) -> [a] -> [b]
map (\(Integer
i, (Float
_,!Float
z0)) -> (Integer -> Float
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Integer
i Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
+ Integer
1) Float -> Float -> Float
forall a. Num a => a -> a -> a
* ((Float, Float) -> Float
forall a b. (a, b) -> a
fst ((Float, Float) -> Float)
-> (Float -> (Float, Float)) -> Float -> Float
forall b c a. (b -> c) -> (a -> b) -> a -> c
. OvertonesO -> (Float, Float)
forall a. [a] -> a
head (OvertonesO -> (Float, Float))
-> (Float -> OvertonesO) -> Float -> (Float, Float)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Float -> OvertonesO
g0 (Float -> Float) -> Float -> Float
forall a b. (a -> b) -> a -> b
$ Float
note0), Float
z0)) ([(Integer, (Float, Float))] -> OvertonesO)
-> (Float -> [(Integer, (Float, Float))]) -> Float -> OvertonesO
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Integer] -> OvertonesO -> [(Integer, (Float, Float))]
forall a b. [a] -> [b] -> [(a, b)]
zip [Integer
0..] (OvertonesO -> [(Integer, (Float, Float))])
-> (Float -> OvertonesO) -> Float -> [(Integer, (Float, Float))]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Float -> OvertonesO
g0 (Float -> OvertonesO) -> Float -> OvertonesO
forall a b. (a -> b) -> a -> b
$ Float
note0
v1 :: OvertonesO
v1 = if Maybe Float -> Bool
forall a. Maybe a -> Bool
isNothing Maybe Float
note1 then []
else ((Float, Float) -> Bool) -> OvertonesO -> OvertonesO
forall a. (a -> Bool) -> [a] -> [a]
takeWhile (\(!Float
w,!Float
z) -> Float
w Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
<= Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
notes Int
107 Bool -> Bool -> Bool
&& Float -> Float
forall a. Num a => a -> a
abs Float
z Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0.001) (OvertonesO -> OvertonesO)
-> (Maybe Float -> OvertonesO) -> Maybe Float -> OvertonesO
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
((Integer, (Float, Float)) -> (Float, Float))
-> [(Integer, (Float, Float))] -> OvertonesO
forall a b. (a -> b) -> [a] -> [b]
map (\(Integer
i, (Float
_,!Float
z0)) -> (Integer -> Float
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Integer
i Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
+ Integer
1) Float -> Float -> Float
forall a. Num a => a -> a -> a
* ((Float, Float) -> Float
forall a b. (a, b) -> a
fst ((Float, Float) -> Float)
-> (Maybe Float -> (Float, Float)) -> Maybe Float -> Float
forall b c a. (b -> c) -> (a -> b) -> a -> c
. OvertonesO -> (Float, Float)
forall a. [a] -> a
head (OvertonesO -> (Float, Float))
-> (Maybe Float -> OvertonesO) -> Maybe Float -> (Float, Float)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Float -> OvertonesO
g0 (Float -> OvertonesO)
-> (Maybe Float -> Float) -> Maybe Float -> OvertonesO
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Maybe Float -> Float
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe Float -> Float) -> Maybe Float -> Float
forall a b. (a -> b) -> a -> b
$ Maybe Float
note1), Float
z0)) ([(Integer, (Float, Float))] -> OvertonesO)
-> (Maybe Float -> [(Integer, (Float, Float))])
-> Maybe Float
-> OvertonesO
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Integer] -> OvertonesO -> [(Integer, (Float, Float))]
forall a b. [a] -> [b] -> [(a, b)]
zip [Integer
0..] (OvertonesO -> [(Integer, (Float, Float))])
-> (Maybe Float -> OvertonesO)
-> Maybe Float
-> [(Integer, (Float, Float))]
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
Float -> OvertonesO
g0 (Float -> OvertonesO)
-> (Maybe Float -> Float) -> Maybe Float -> OvertonesO
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Maybe Float -> Float
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe Float -> OvertonesO) -> Maybe Float -> OvertonesO
forall a b. (a -> b) -> a -> b
$ Maybe Float
note1
ts :: String
ts = Maybe Int -> Float -> String -> String
forall a. RealFloat a => Maybe Int -> a -> String -> String
showFFloat (Int -> Maybe Int
forall a. a -> Maybe a
Just Int
4) (Float -> Float
forall a. Num a => a -> a
abs Float
y) String
""
overSoXSynthHelp :: OvertonesO -> IO ()
overSoXSynthHelp = ((Integer, (Float, Float)) -> IO (ExitCode, String, String))
-> [(Integer, (Float, Float))] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (\(Integer
i, (Float
noteN, !Float
amplN)) -> String -> [String] -> String -> IO (ExitCode, String, String)
readProcessWithExitCode (Maybe String -> String
forall a. HasCallStack => Maybe a -> a
fromJust (String -> Maybe String
showE String
"sox"))
((if String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null String
ys then [String] -> [String]
forall a. a -> a
id else String -> [String] -> [String]
soxBasicParams String
ys) [String
"-r22050", String
"-n", String
"test0" String -> String -> String
forall a. [a] -> [a] -> [a]
++ Integer -> String
forall a. Show a => a -> String
show (Integer
i Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
+ Integer
2) String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
".wav", String
"synth", String
ts,String
"sine",
Maybe Int -> Float -> String -> String
forall a. RealFloat a => Maybe Int -> a -> String -> String
showFFloat Maybe Int
forall a. Maybe a
Nothing Float
noteN String
"", String
"vol", if Float
y Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0.0 then Maybe Int -> Float -> String -> String
forall a. RealFloat a => Maybe Int -> a -> String -> String
showFFloat Maybe Int
forall a. Maybe a
Nothing Float
amplN String
"" else String
"0"]) String
"") ([(Integer, (Float, Float))] -> IO ())
-> (OvertonesO -> [(Integer, (Float, Float))])
-> OvertonesO
-> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Integer] -> OvertonesO -> [(Integer, (Float, Float))]
forall a b. [a] -> [b] -> [(a, b)]
zip [Integer
0..]
overSoXSynthHelp2 :: [(a, a)] -> Array i Float -> IO ()
overSoXSynthHelp2 [(a, a)]
vec Array i Float
vdB = ((Int, (a, a)) -> IO (ExitCode, String, String))
-> [(Int, (a, a))] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (\(Int
i, (a
noteN, !a
amplN)) -> String -> [String] -> String -> IO (ExitCode, String, String)
readProcessWithExitCode (Maybe String -> String
forall a. HasCallStack => Maybe a -> a
fromJust (String -> Maybe String
showE String
"sox"))
((if String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null String
ys then [String] -> [String]
forall a. a -> a
id else String -> [String] -> [String]
soxBasicParams String
ys) ((if Array i Float -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
F.null Array i Float
vdB then [String] -> [String]
forall a. a -> a
id else (\[String]
wwws -> [String] -> Float -> [String]
adjust_dbVol [String]
wwws (Array i Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array i Float
vdB Int
i)))
[String
"-r22050", String
"-n", String
"test1" String -> String -> String
forall a. [a] -> [a] -> [a]
++ Int -> String
forall a. Show a => a -> String
show (Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
2) String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
".wav", String
"synth", String
ts,String
"sine", Maybe Int -> a -> String -> String
forall a. RealFloat a => Maybe Int -> a -> String -> String
showFFloat Maybe Int
forall a. Maybe a
Nothing a
noteN String
"", String
"vol",
if Float
y Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0.0 then Maybe Int -> a -> String -> String
forall a. RealFloat a => Maybe Int -> a -> String -> String
showFFloat Maybe Int
forall a. Maybe a
Nothing a
amplN String
"" else String
"0"])) String
"") ([(Int, (a, a))] -> IO ())
-> ([(a, a)] -> [(Int, (a, a))]) -> [(a, a)] -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Int] -> [(a, a)] -> [(Int, (a, a))]
forall a b. [a] -> [b] -> [(a, b)]
zip [Int
0..] ([(a, a)] -> IO ()) -> [(a, a)] -> IO ()
forall a b. (a -> b) -> a -> b
$ [(a, a)]
vec
(ExitCode, String, String)
_ <- String -> [String] -> String -> IO (ExitCode, String, String)
readProcessWithExitCode (Maybe String -> String
forall a. HasCallStack => Maybe a -> a
fromJust (String -> Maybe String
showE String
"sox")) ((if String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null String
ys then [String] -> [String]
forall a. a -> a
id else String -> [String] -> [String]
soxBasicParams String
ys) [String
"-r22050", String
"-n", String
"testA.wav", String
"synth", String
ts,String
"sine",
Maybe Int -> Float -> String -> String
forall a. RealFloat a => Maybe Int -> a -> String -> String
showFFloat Maybe Int
forall a. Maybe a
Nothing Float
note0 String
"",String
"vol", if Float
y Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0.0 then String
"1.0" else String
"0"]) String
""
if Maybe Float -> Bool
forall a. Maybe a -> Bool
isNothing Maybe Float
note1 then OvertonesO -> IO ()
overSoXSynthHelp OvertonesO
v0
else do
(ExitCode, String, String)
_ <- String -> [String] -> String -> IO (ExitCode, String, String)
readProcessWithExitCode (Maybe String -> String
forall a. HasCallStack => Maybe a -> a
fromJust (String -> Maybe String
showE String
"sox")) ((if String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null String
ys then [String] -> [String]
forall a. a -> a
id else String -> [String] -> [String]
soxBasicParams String
ys) [String
"-r22050", String
"-n", String
"testB.wav", String
"synth", String
ts,String
"sine",
Maybe Int -> Float -> String -> String
forall a. RealFloat a => Maybe Int -> a -> String -> String
showFFloat Maybe Int
forall a. Maybe a
Nothing (Maybe Float -> Float
forall a. HasCallStack => Maybe a -> a
fromJust Maybe Float
note1) String
"",String
"vol", if Float
y Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0.0 then String
"1.0" else String
"0"]) String
""
OvertonesO -> IO ()
overSoXSynthHelp OvertonesO
v0
OvertonesO -> Array Int Float -> IO ()
forall a a i.
(RealFloat a, RealFloat a) =>
[(a, a)] -> Array i Float -> IO ()
overSoXSynthHelp2 OvertonesO
v1 Array Int Float
vdB
if String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null String
ys then IO ()
mixTest else String -> IO ()
mixTest2G String
ys
{-# INLINE help12 #-}
overSoXSynth2FDN_B6G :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> Intervals -> Array Int Float -> String -> Float -> IO ()
overSoXSynth2FDN_B6G :: (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> Array Int Int
-> Array Int Float
-> String
-> Float
-> IO ()
overSoXSynth2FDN_B6G Float -> OvertonesO
f (Float
x, Float
y, Float
limB) Int
j Array Int Int
v5 Array Int Float
vdB String
ys Float
vol
| Array Int Int -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
F.null Array Int Int
v5 = (Float -> OvertonesO) -> Float -> IO ()
overSoXSynthG Float -> OvertonesO
f Float
x
| Bool
otherwise = do
let l0 :: Int
l0 = Array Int Int -> Int
forall i e. Array i e -> Int
numElements Array Int Int
v5
note0 :: Float
note0 = Float -> Float
closestNote (if Float
x Float -> Float -> Bool
forall a. Eq a => a -> a -> Bool
/= Float
0.0 then Float -> Float
forall a. Num a => a -> a
abs Float
x else Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
notes Int
0)
note1 :: Maybe Float
note1 = Int -> Float -> Maybe Float
dNote (Array Int Int -> Int -> Int
forall i e. Array i e -> Int -> e
unsafeAt Array Int Int
v5 (Int -> Int
forall a. Num a => a -> a
abs (Int
j Int -> Int -> Int
forall a. Integral a => a -> a -> a
`rem` Int
l0))) Float
note0
(Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> Array Int Float
-> String
-> Int
-> Maybe Float
-> Float
-> IO ()
help12 Float -> OvertonesO
f (Float
x, Float
y, Float
limB) Int
j Array Int Float
vdB String
ys Int
l0 Maybe Float
note1 Float
note0
if Float
y Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0.0 then Float -> String -> IO ()
apply6Gf Float
vol (String
"result." String -> String -> String
forall a. [a] -> [a] -> [a]
++ if Int -> String -> String
forall a. Int -> [a] -> [a]
drop Int
3 String
ys String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
"f" then String
"flac" else String
"wav") else String -> IO ()
putStr String
""
overSoXSynth2FDN_B6GS :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> Intervals -> String -> Array Int Float -> String -> String -> IO ()
overSoXSynth2FDN_B6GS :: (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> Array Int Int
-> String
-> Array Int Float
-> String
-> String
-> IO ()
overSoXSynth2FDN_B6GS Float -> OvertonesO
f (Float
x, Float
y, Float
limB) Int
j Array Int Int
v5 String
xs Array Int Float
vdB String
ys String
xxs
| String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (String -> Bool) -> (String -> String) -> String -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> String
convertToProperUkrainianS (String -> Bool) -> String -> Bool
forall a b. (a -> b) -> a -> b
$ String
xxs = String -> IO ()
putStrLn String
"Composition.Sound.Functional.overSoXSynth2FDN_B6GS: You provided no information to obtain volume adjustment! "
| Bool
otherwise = (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> Array Int Int
-> Array Int Float
-> String
-> Float
-> IO ()
overSoXSynth2FDN_B6G Float -> OvertonesO
f (Float
x, Float
y, Float
limB) Int
j (Array Int Int -> String -> Array Int Int
intervalsFromStringG Array Int Int
v5 String
xs) Array Int Float
vdB String
ys (String -> Float
str2Vol1 String
xxs)
{-# INLINE overSoXSynth2FDN_B6GS #-}
overSoXSynthGen2FDN_B :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> Float -> String -> String -> IO ()
overSoXSynthGen2FDN_B :: String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Float
-> Float
-> String
-> String
-> IO ()
overSoXSynthGen2FDN_B String
file Int
m Int
ku Float -> OvertonesO
f Float
y Float
limB String
zs String
wws = String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Float
-> Float
-> String
-> String
-> ((Float -> OvertonesO)
-> (Float, Float, Float) -> Int -> String -> IO ())
-> IO ()
overSoXSynthGen2FDN_Sf3G String
file Int
m Int
ku Float -> OvertonesO
f Float
y Float
limB String
zs String
wws (Float -> OvertonesO)
-> (Float, Float, Float) -> Int -> String -> IO ()
overSoXSynth2FDN_B
{-# INLINE overSoXSynthGen2FDN_B #-}
overSoXSynth2FDN_S1G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> Array Int Float -> IO ()
overSoXSynth2FDN_S1G :: (Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> Array Int Float -> IO ()
overSoXSynth2FDN_S1G Float -> OvertonesO
f (Float
x, Float
y) Int
j String
zs Array Int Float
vdB = (Float -> OvertonesO)
-> (Float, Float)
-> Int
-> String
-> Array Int Float
-> String
-> IO ()
overSoXSynth2FDN_S2G Float -> OvertonesO
f (Float
x, Float
y) Int
j String
zs Array Int Float
vdB []
{-# INLINE overSoXSynth2FDN_S1G #-}
overSoXSynth2FDN_S2G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> Array Int Float -> String -> IO ()
overSoXSynth2FDN_S2G :: (Float -> OvertonesO)
-> (Float, Float)
-> Int
-> String
-> Array Int Float
-> String
-> IO ()
overSoXSynth2FDN_S2G Float -> OvertonesO
f (Float
x, Float
y) Int
j String
zs Array Int Float
vdB String
ys
| String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (String -> Bool) -> (String -> String) -> String -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> String
convertToProperUkrainianS (String -> Bool) -> String -> Bool
forall a b. (a -> b) -> a -> b
$ String
zs = (Float -> OvertonesO) -> Float -> IO ()
overSoXSynthG Float -> OvertonesO
f Float
x
| Bool
otherwise = do
let note0 :: Float
note0 = Float -> Float
closestNote (if Float
x Float -> Float -> Bool
forall a. Eq a => a -> a -> Bool
/= Float
0.0 then Float -> Float
forall a. Num a => a -> a
abs Float
x else Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
notes Int
0)
l0 :: Int
l0 = String -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length String
zs
note1 :: Maybe Float
note1 = Int -> Float -> Maybe Float
dNote (Array Int Int -> Int -> Int
forall i e. Array i e -> Int -> e
unsafeAt (String -> Array Int Int
intervalsFromString String
zs) (Int -> Int
forall a. Num a => a -> a
abs (Int
j Int -> Int -> Int
forall a. Integral a => a -> a -> a
`rem` Int
l0))) Float
note0
(Float -> OvertonesO)
-> (Float, Float)
-> Int
-> Array Int Float
-> String
-> Int
-> Maybe Float
-> Float
-> IO ()
help13 Float -> OvertonesO
f (Float
x, Float
y) Int
j Array Int Float
vdB String
ys Int
l0 Maybe Float
note1 Float
note0
help13 :: (Float -> OvertonesO) -> (Float, Float) -> Int -> Array Int Float -> String -> Int -> Maybe Float -> Float -> IO ()
help13 :: (Float -> OvertonesO)
-> (Float, Float)
-> Int
-> Array Int Float
-> String
-> Int
-> Maybe Float
-> Float
-> IO ()
help13 Float -> OvertonesO
f (Float
x, Float
y) Int
j Array Int Float
vdB String
ys Int
l0 Maybe Float
note1 Float
note0 = do
let v0 :: OvertonesO
v0 = Float -> OvertonesO
f Float
note0
v1 :: OvertonesO
v1 = OvertonesO -> (Float -> OvertonesO) -> Maybe Float -> OvertonesO
forall b a. b -> (a -> b) -> Maybe a -> b
maybe [] Float -> OvertonesO
f Maybe Float
note1
ts :: String
ts = Maybe Int -> Float -> String -> String
forall a. RealFloat a => Maybe Int -> a -> String -> String
showFFloat (Int -> Maybe Int
forall a. a -> Maybe a
Just Int
4) (Float -> Float
forall a. Num a => a -> a
abs Float
y) String
""
(ExitCode, String, String)
_ <- String -> [String] -> String -> IO (ExitCode, String, String)
readProcessWithExitCode (Maybe String -> String
forall a. HasCallStack => Maybe a -> a
fromJust (String -> Maybe String
showE String
"sox")) ((if String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null String
ys then [String] -> [String]
forall a. a -> a
id else String -> [String] -> [String]
soxBasicParams String
ys) [String
"-r22050", String
"-n", String
"testA.wav", String
"synth", String
ts,String
"sine",
Maybe Int -> Float -> String -> String
forall a. RealFloat a => Maybe Int -> a -> String -> String
showFFloat Maybe Int
forall a. Maybe a
Nothing Float
note0 String
"",String
"vol", if Float
y Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0.0 then String
"1.0" else String
"0"]) String
""
if Maybe Float -> Bool
forall a. Maybe a -> Bool
isNothing Maybe Float
note1 then OvertonesO -> Int -> String -> Array Int Float -> String -> IO ()
partialTest_k2G OvertonesO
v0 Int
0 String
ts Array Int Float
vdB String
ys
else do
(ExitCode, String, String)
_ <- String -> [String] -> String -> IO (ExitCode, String, String)
readProcessWithExitCode (Maybe String -> String
forall a. HasCallStack => Maybe a -> a
fromJust (String -> Maybe String
showE String
"sox")) ((if String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null String
ys then [String] -> [String]
forall a. a -> a
id else String -> [String] -> [String]
soxBasicParams String
ys) [String
"-r22050", String
"-n", String
"testB.wav", String
"synth", String
ts,String
"sine",
Maybe Int -> Float -> String -> String
forall a. RealFloat a => Maybe Int -> a -> String -> String
showFFloat Maybe Int
forall a. Maybe a
Nothing (Maybe Float -> Float
forall a. HasCallStack => Maybe a -> a
fromJust Maybe Float
note1) String
"",String
"vol", if Float
y Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0.0 then String
"1.0" else String
"0"]) String
""
OvertonesO -> Int -> String -> Array Int Float -> String -> IO ()
partialTest_k2G OvertonesO
v0 Int
0 String
ts Array Int Float
vdB String
ys
OvertonesO -> Int -> String -> Array Int Float -> String -> IO ()
partialTest_k2G OvertonesO
v1 Int
1 String
ts Array Int Float
vdB String
ys
if String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null String
ys then IO ()
mixTest else String -> IO ()
mixTest2G String
ys
overSoXSynth2FDN_S5G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> Intervals -> Array Int Float -> String -> IO ()
overSoXSynth2FDN_S5G :: (Float -> OvertonesO)
-> (Float, Float)
-> Int
-> Array Int Int
-> Array Int Float
-> String
-> IO ()
overSoXSynth2FDN_S5G Float -> OvertonesO
f (Float
x, Float
y) Int
j Array Int Int
v5 Array Int Float
vdB String
ys
| Array Int Int -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
F.null Array Int Int
v5 = (Float -> OvertonesO) -> Float -> IO ()
overSoXSynthG Float -> OvertonesO
f Float
x
| Bool
otherwise = do
let note0 :: Float
note0 = Float -> Float
closestNote (if Float
x Float -> Float -> Bool
forall a. Eq a => a -> a -> Bool
/= Float
0.0 then Float -> Float
forall a. Num a => a -> a
abs Float
x else Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
notes Int
0)
l0 :: Int
l0 = Array Int Int -> Int
forall i e. Array i e -> Int
numElements Array Int Int
v5
note1 :: Maybe Float
note1 = Int -> Float -> Maybe Float
dNote (Array Int Int -> Int -> Int
forall i e. Array i e -> Int -> e
unsafeAt Array Int Int
v5 (Int -> Int
forall a. Num a => a -> a
abs (Int
j Int -> Int -> Int
forall a. Integral a => a -> a -> a
`rem` Int
l0))) Float
note0
(Float -> OvertonesO)
-> (Float, Float)
-> Int
-> Array Int Float
-> String
-> Int
-> Maybe Float
-> Float
-> IO ()
help13 Float -> OvertonesO
f (Float
x, Float
y) Int
j Array Int Float
vdB String
ys Int
l0 Maybe Float
note1 Float
note0
overSoXSynth2FDN_S6G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> Intervals -> Array Int Float -> String -> Float -> IO ()
overSoXSynth2FDN_S6G :: (Float -> OvertonesO)
-> (Float, Float)
-> Int
-> Array Int Int
-> Array Int Float
-> String
-> Float
-> IO ()
overSoXSynth2FDN_S6G Float -> OvertonesO
f (Float
x, Float
y) Int
j Array Int Int
v5 Array Int Float
vdB String
ys Float
vol
| Array Int Int -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
F.null Array Int Int
v5 = (Float -> OvertonesO) -> Float -> IO ()
overSoXSynthG Float -> OvertonesO
f Float
x
| Bool
otherwise = do
let note0 :: Float
note0 = Float -> Float
closestNote (if Float
x Float -> Float -> Bool
forall a. Eq a => a -> a -> Bool
/= Float
0.0 then Float -> Float
forall a. Num a => a -> a
abs Float
x else Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
notes Int
0)
l0 :: Int
l0 = Array Int Int -> Int
forall i e. Array i e -> Int
numElements Array Int Int
v5
note1 :: Maybe Float
note1 = Int -> Float -> Maybe Float
dNote (Array Int Int -> Int -> Int
forall i e. Array i e -> Int -> e
unsafeAt Array Int Int
v5 (Int -> Int
forall a. Num a => a -> a
abs (Int
j Int -> Int -> Int
forall a. Integral a => a -> a -> a
`rem` Int
l0))) Float
note0
(Float -> OvertonesO)
-> (Float, Float)
-> Int
-> Array Int Float
-> String
-> Int
-> Maybe Float
-> Float
-> IO ()
help13 Float -> OvertonesO
f (Float
x, Float
y) Int
j Array Int Float
vdB String
ys Int
l0 Maybe Float
note1 Float
note0
if Float
y Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0.0 then Float -> String -> IO ()
apply6Gf Float
vol (String
"result." String -> String -> String
forall a. [a] -> [a] -> [a]
++ if Int -> String -> String
forall a. Int -> [a] -> [a]
drop Int
3 String
ys String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
"f" then String
"flac" else String
"wav") else String -> IO ()
putStr String
""
overSoXSynth2FDN_S6GS :: (Float -> OvertonesO) -> (Float, Float) -> Int -> Intervals -> String -> Array Int Float -> String -> String -> IO ()
overSoXSynth2FDN_S6GS :: (Float -> OvertonesO)
-> (Float, Float)
-> Int
-> Array Int Int
-> String
-> Array Int Float
-> String
-> String
-> IO ()
overSoXSynth2FDN_S6GS Float -> OvertonesO
f (Float
x, Float
y) Int
j Array Int Int
v5 String
xs Array Int Float
vdB String
ys String
xxs
| String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (String -> Bool) -> (String -> String) -> String -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> String
convertToProperUkrainianS (String -> Bool) -> String -> Bool
forall a b. (a -> b) -> a -> b
$ String
xxs = String -> IO ()
putStrLn String
"Composition.Sound.Functional.overSoXSynth2FDN_S6GS: You provided no information to obtain volume adjustment! "
| Bool
otherwise = (Float -> OvertonesO)
-> (Float, Float)
-> Int
-> Array Int Int
-> Array Int Float
-> String
-> Float
-> IO ()
overSoXSynth2FDN_S6G Float -> OvertonesO
f (Float
x, Float
y) Int
j (Array Int Int -> String -> Array Int Int
intervalsFromStringG Array Int Int
v5 String
xs) Array Int Float
vdB String
ys (String -> Float
str2Vol1 String
xxs)
{-# INLINE overSoXSynth2FDN_S6GS #-}
overSoXSynthGen2FDN_SG :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> String -> String ->
((Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()) -> IO ()
overSoXSynthGen2FDN_SG :: String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Float
-> String
-> String
-> ((Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> IO ())
-> IO ()
overSoXSynthGen2FDN_SG String
file Int
m Int
ku Float -> OvertonesO
f Float
y String
zs String
wws (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()
h = do
Int
n <- String -> IO Int
duration1000 String
file
String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Array Int Float
-> String
-> ((Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> IO ())
-> IO ()
overSoXSynthGen2FDN_SG4G String
file Int
m Int
ku Float -> OvertonesO
f (Int -> String -> Float -> Array Int Float
str2DurationsDef Int
n String
zs Float
y) String
wws (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()
h
{-# INLINE overSoXSynthGen2FDN_SG #-}
overSoXSynthGen2FDN_SG4G :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Durations -> String ->
((Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()) -> IO ()
overSoXSynthGen2FDN_SG4G :: String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Array Int Float
-> String
-> ((Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> IO ())
-> IO ()
overSoXSynthGen2FDN_SG4G String
file Int
m Int
ku Float -> OvertonesO
f Array Int Float
v2 String
wws (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()
h = do
Int
n <- String -> IO Int
duration1000 String
file
[Int]
vecA <- String -> Int -> IO [Int]
freqsFromFile String
file Int
n
let vecB :: [Float]
vecB = Int -> Int -> [Float] -> [Float]
liftInEnkuV Int
m Int
ku ([Float] -> [Float]) -> ([Int] -> [Float]) -> [Int] -> [Float]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Int -> Float) -> [Int] -> [Float]
forall a b. (a -> b) -> [a] -> [b]
map Int -> Float
forall a b. (Integral a, Num b) => a -> b
fromIntegral ([Int] -> [Float]) -> ([Int] -> [Int]) -> [Int] -> [Float]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Int -> Bool) -> [Int] -> [Int]
forall a. (a -> Bool) -> [a] -> [a]
filter (Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
/= (Int
11440::Int)) ([Int] -> [Float]) -> [Int] -> [Float]
forall a b. (a -> b) -> a -> b
$ [Int]
vecA
zeroN :: Int
zeroN = [Float] -> Int
forall a. [a] -> Int
numVZeroesPre [Float]
vecB
!l :: Int
l = Array Int Float -> Int
forall i e. Array i e -> Int
numElements Array Int Float
v2 in ((Int, Float) -> IO ()) -> [(Int, Float)] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (\(Int
j, Float
x) -> do
(Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()
h Float -> OvertonesO
f (Float
x, (Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
v2 (Int
j Int -> Int -> Int
forall a. Integral a => a -> a -> a
`rem` Int
l))) Int
j String
wws
String -> String -> IO ()
renameFile String
"result.wav" (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"result0" String -> String -> String
forall a. [a] -> [a] -> [a]
++ Int -> String -> String
prependZeroes Int
zeroN (Int -> String
forall a. Show a => a -> String
show (Int
j Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
1)) String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
".wav") ([(Int, Float)] -> IO ())
-> ([Float] -> [(Int, Float)]) -> [Float] -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Int] -> [Float] -> [(Int, Float)]
forall a b. [a] -> [b] -> [(a, b)]
zip [Int
0..] ([Float] -> IO ()) -> [Float] -> IO ()
forall a b. (a -> b) -> a -> b
$ [Float]
vecB
IO ()
endFromResult
overSoXSynthGen2FDN_SG4GS :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> String -> String ->
((Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()) -> IO ()
overSoXSynthGen2FDN_SG4GS :: String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Float
-> String
-> String
-> ((Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> IO ())
-> IO ()
overSoXSynthGen2FDN_SG4GS String
file Int
m Int
ku Float -> OvertonesO
f Float
y String
zs = String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Array Int Float
-> String
-> ((Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> IO ())
-> IO ()
overSoXSynthGen2FDN_SG4G String
file Int
m Int
ku Float -> OvertonesO
f (String -> Float -> Array Int Float
str2Durations String
zs Float
y)
{-# INLINE overSoXSynthGen2FDN_SG4GS #-}
overSoXSynthGen2FDN_SG6G :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Durations -> String ->
((Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()) -> Strengths -> Float -> IO ()
overSoXSynthGen2FDN_SG6G :: String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Array Int Float
-> String
-> ((Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> IO ())
-> Array Int Float
-> Float
-> IO ()
overSoXSynthGen2FDN_SG6G String
file Int
m Int
ku Float -> OvertonesO
f Array Int Float
v2 String
wws (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()
h Array Int Float
v6 Float
limV
| Array Int Float -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
F.null Array Int Float
v6 = String -> IO ()
putStrLn String
"Composition.Sound.Functional.overSoXSynthGen2FDN_SG6G: You did not provide a volume adjustments array! "
| Bool
otherwise = do
Int
n <- String -> IO Int
duration1000 String
file
[Int]
vecA <- String -> Int -> IO [Int]
freqsFromFile String
file Int
n
let vecB :: [Float]
vecB = Int -> Int -> [Float] -> [Float]
liftInEnkuV Int
m Int
ku ([Float] -> [Float]) -> ([Int] -> [Float]) -> [Int] -> [Float]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Int -> Float) -> [Int] -> [Float]
forall a b. (a -> b) -> [a] -> [b]
map Int -> Float
forall a b. (Integral a, Num b) => a -> b
fromIntegral ([Int] -> [Float]) -> ([Int] -> [Int]) -> [Int] -> [Float]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Int -> Bool) -> [Int] -> [Int]
forall a. (a -> Bool) -> [a] -> [a]
filter (Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
/= (Int
11440::Int)) ([Int] -> [Float]) -> [Int] -> [Float]
forall a b. (a -> b) -> a -> b
$ [Int]
vecA
zeroN :: Int
zeroN = [Float] -> Int
forall a. [a] -> Int
numVZeroesPre [Float]
vecB
!l2 :: Int
l2 = Array Int Float -> Int
forall i e. Array i e -> Int
numElements Array Int Float
v2
!l6 :: Int
l6 = Array Int Float -> Int
forall i e. Array i e -> Int
numElements Array Int Float
v6 in ((Int, Float) -> IO ()) -> [(Int, Float)] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (\(Int
j, Float
x) -> do
(Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()
h Float -> OvertonesO
f (Float
x, (Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
v2 (Int
j Int -> Int -> Int
forall a. Integral a => a -> a -> a
`rem` Int
l2))) Int
j String
wws
String -> String -> IO ()
renameFile String
"result.wav" (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"result0" String -> String -> String
forall a. [a] -> [a] -> [a]
++ Int -> String -> String
prependZeroes Int
zeroN (Int -> String
forall a. Show a => a -> String
show (Int
j Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
1)) String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
".wav"
String -> Float -> Float -> IO ()
apply6GSilentFile (String
"result0" String -> String -> String
forall a. [a] -> [a] -> [a]
++ Int -> String -> String
prependZeroes Int
zeroN (Int -> String
forall a. Show a => a -> String
show (Int
j Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
1)) String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
".wav") Float
limV (Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
v6 (Int
j Int -> Int -> Int
forall a. Integral a => a -> a -> a
`rem` Int
l6))) ([(Int, Float)] -> IO ())
-> ([Float] -> [(Int, Float)]) -> [Float] -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
[Int] -> [Float] -> [(Int, Float)]
forall a b. [a] -> [b] -> [(a, b)]
zip [Int
0..] ([Float] -> IO ()) -> [Float] -> IO ()
forall a b. (a -> b) -> a -> b
$ [Float]
vecB
IO ()
endFromResult
overSoXSynthGen2FDN_SG6GS :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> String -> String ->
((Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()) -> String -> Float -> IO ()
overSoXSynthGen2FDN_SG6GS :: String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Float
-> String
-> String
-> ((Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> IO ())
-> String
-> Float
-> IO ()
overSoXSynthGen2FDN_SG6GS String
file Int
m Int
ku Float -> OvertonesO
f Float
y String
zs String
wws (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()
h String
zzs = String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Array Int Float
-> String
-> ((Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> IO ())
-> Array Int Float
-> Float
-> IO ()
overSoXSynthGen2FDN_SG6G String
file Int
m Int
ku Float -> OvertonesO
f (String -> Float -> Array Int Float
str2Durations String
zs Float
y) String
wws (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()
h (String -> Array Int Float
str2Volume String
zzs)
{-# INLINE overSoXSynthGen2FDN_SG6GS #-}
overSoXSynthGen2FDN_SG6GSu :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> String -> String ->
((Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()) -> Float -> IO ()
overSoXSynthGen2FDN_SG6GSu :: String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Float
-> String
-> String
-> ((Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> IO ())
-> Float
-> IO ()
overSoXSynthGen2FDN_SG6GSu String
file Int
m Int
ku Float -> OvertonesO
f Float
y String
zs String
wws (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()
h = String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Array Int Float
-> String
-> ((Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> IO ())
-> Array Int Float
-> Float
-> IO ()
overSoXSynthGen2FDN_SG6G String
file Int
m Int
ku Float -> OvertonesO
f (String -> Float -> Array Int Float
str2Durations String
zs Float
y) String
wws (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()
h (String -> Array Int Float
str2Volume String
zs)
{-# INLINE overSoXSynthGen2FDN_SG6GSu #-}
overSoXSynthGen2FDN_SG2G :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> String -> String -> ((Float -> OvertonesO) ->
(Float, Float) -> Int -> String -> String -> IO ()) -> String -> IO ()
overSoXSynthGen2FDN_SG2G :: String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Float
-> String
-> String
-> ((Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> String -> IO ())
-> String
-> IO ()
overSoXSynthGen2FDN_SG2G String
file Int
m Int
ku Float -> OvertonesO
f Float
y String
zs String
wws (Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> String -> IO ()
h String
ys = do
Int
n <- String -> IO Int
duration1000 String
file
[Int]
vecA <- String -> Int -> IO [Int]
freqsFromFile String
file Int
n
let vecB :: [Float]
vecB = Int -> Int -> [Float] -> [Float]
liftInEnkuV Int
m Int
ku ([Float] -> [Float]) -> ([Int] -> [Float]) -> [Int] -> [Float]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Int -> Float) -> [Int] -> [Float]
forall a b. (a -> b) -> [a] -> [b]
map Int -> Float
forall a b. (Integral a, Num b) => a -> b
fromIntegral ([Int] -> [Float]) -> ([Int] -> [Int]) -> [Int] -> [Float]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Int -> Bool) -> [Int] -> [Int]
forall a. (a -> Bool) -> [a] -> [a]
filter (Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
/= (Int
11440::Int)) ([Int] -> [Float]) -> [Int] -> [Float]
forall a b. (a -> b) -> a -> b
$ [Int]
vecA
zeroN :: Int
zeroN = [Float] -> Int
forall a. [a] -> Int
numVZeroesPre [Float]
vecB
v2 :: Array Int Float
v2 = Int -> String -> Float -> Array Int Float
str2DurationsDef Int
n String
zs Float
y
!l2 :: Int
l2 = Int
n in ((Int, Float) -> IO ()) -> [(Int, Float)] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (\(Int
j, Float
x) -> do
(Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> String -> IO ()
h Float -> OvertonesO
f (Float
x, (Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
v2 (Int
j Int -> Int -> Int
forall a. Integral a => a -> a -> a
`rem` Int
l2))) Int
j String
wws String
ys
String -> String -> IO ()
renameFile (String
"result." String -> String -> String
forall a. [a] -> [a] -> [a]
++ if Int -> String -> String
forall a. Int -> [a] -> [a]
drop Int
3 String
ys String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
"f" then String
"flac" else String
"wav") (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"result0" String -> String -> String
forall a. [a] -> [a] -> [a]
++ Int -> String -> String
prependZeroes Int
zeroN (Int -> String
forall a. Show a => a -> String
show (Int
j Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
1)) String -> String -> String
forall a. [a] -> [a] -> [a]
++
if Int -> String -> String
forall a. Int -> [a] -> [a]
drop Int
3 String
ys String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
"f" then String
".flac" else String
".wav") ([(Int, Float)] -> IO ())
-> ([Float] -> [(Int, Float)]) -> [Float] -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Int] -> [Float] -> [(Int, Float)]
forall a b. [a] -> [b] -> [(a, b)]
zip [Int
0..] ([Float] -> IO ()) -> [Float] -> IO ()
forall a b. (a -> b) -> a -> b
$ [Float]
vecB
String -> IO ()
endFromResult2G String
ys
overSoXSynth2FDN_Sf1G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> Array Int Float -> IO ()
overSoXSynth2FDN_Sf1G :: (Float -> OvertonesO)
-> (Float, Float) -> Int -> String -> Array Int Float -> IO ()
overSoXSynth2FDN_Sf1G Float -> OvertonesO
f (Float
x, Float
y) = (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> String
-> Array Int Float
-> IO ()
overSoXSynth2FDN_Sf31G Float -> OvertonesO
f (Float
x, Float
y, Float
0.001)
{-# INLINE overSoXSynth2FDN_Sf1G #-}
overSoXSynth2FDN_Sf2G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> Array Int Float -> String -> IO ()
overSoXSynth2FDN_Sf2G :: (Float -> OvertonesO)
-> (Float, Float)
-> Int
-> String
-> Array Int Float
-> String
-> IO ()
overSoXSynth2FDN_Sf2G Float -> OvertonesO
f (Float
x, Float
y) = (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> String
-> Array Int Float
-> String
-> IO ()
overSoXSynth2FDN_Sf32G Float -> OvertonesO
f (Float
x, Float
y, Float
0.001)
{-# INLINE overSoXSynth2FDN_Sf2G #-}
overSoXSynth2FDN_Sf31G :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> String -> Array Int Float -> IO ()
overSoXSynth2FDN_Sf31G :: (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> String
-> Array Int Float
-> IO ()
overSoXSynth2FDN_Sf31G Float -> OvertonesO
f (Float
x, Float
y, Float
t0) Int
j String
zs Array Int Float
vdB = (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> String
-> Array Int Float
-> String
-> IO ()
overSoXSynth2FDN_Sf32G Float -> OvertonesO
f (Float
x, Float
y, Float
t0) Int
j String
zs Array Int Float
vdB []
{-# INLINE overSoXSynth2FDN_Sf31G #-}
overSoXSynth2FDN_Sf35G :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> Intervals -> Array Int Float -> String -> IO ()
overSoXSynth2FDN_Sf35G :: (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> Array Int Int
-> Array Int Float
-> String
-> IO ()
overSoXSynth2FDN_Sf35G Float -> OvertonesO
f (Float
x, Float
y, Float
t0) Int
j Array Int Int
v5 Array Int Float
vdB String
ys
| Array Int Int -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
F.null Array Int Int
v5 = (Float -> OvertonesO) -> Float -> IO ()
overSoXSynthG Float -> OvertonesO
f Float
x
| Bool
otherwise = do
let !l0 :: Int
l0 = Array Int Int -> Int
forall i e. Array i e -> Int
numElements Array Int Int
v5
[Float -> Float]
-> [Float]
-> [Int]
-> (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> Array Int Float
-> String
-> IO ()
soundGenF32G ([\Float
x -> Float -> Float
closestNote (if Float
x Float -> Float -> Bool
forall a. Eq a => a -> a -> Bool
/= Float
0.0 then Float -> Float
forall a. Num a => a -> a
abs Float
x else Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
notes Int
0),\Float
x -> Float -> Maybe Float -> Float
forall a. a -> Maybe a -> a
fromMaybe (Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
notes Int
0)
(Int -> Float -> Maybe Float
dNote (Array Int Int -> Int -> Int
forall i e. Array i e -> Int -> e
unsafeAt Array Int Int
v5 (Int -> Int
forall a. Num a => a -> a
abs (Int
j Int -> Int -> Int
forall a. Integral a => a -> a -> a
`rem` Int
l0))) (Float -> Float
closestNote (if Float
x Float -> Float -> Bool
forall a. Eq a => a -> a -> Bool
/= Float
0.0 then Float -> Float
forall a. Num a => a -> a
abs Float
x else Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
notes Int
0)))])
(Int -> Float -> [Float]
forall a. Int -> a -> [a]
replicate Int
2 Float
x) ([Int
1,Array Int Int -> Int -> Int
forall i e. Array i e -> Int -> e
unsafeAt Array Int Int
v5 (Int -> Int
forall a. Num a => a -> a
abs (Int
j Int -> Int -> Int
forall a. Integral a => a -> a -> a
`rem` Int
l0))]) Float -> OvertonesO
f (Float
x, Float
y, Float
t0) Int
j Array Int Float
vdB String
ys
if String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null String
ys then IO ()
mixTest else String -> IO ()
mixTest2G String
ys
overSoXSynth2FDN_Sf36G :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> Intervals -> Array Int Float -> String -> Float -> IO ()
overSoXSynth2FDN_Sf36G :: (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> Array Int Int
-> Array Int Float
-> String
-> Float
-> IO ()
overSoXSynth2FDN_Sf36G Float -> OvertonesO
f (Float
x, Float
y, Float
t0) Int
j Array Int Int
v5 Array Int Float
vdB String
ys Float
vol
| Array Int Int -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
F.null Array Int Int
v5 = (Float -> OvertonesO) -> Float -> IO ()
overSoXSynthG Float -> OvertonesO
f Float
x
| Bool
otherwise = (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> Array Int Int
-> Array Int Float
-> String
-> IO ()
overSoXSynth2FDN_Sf35G Float -> OvertonesO
f (Float
x, Float
y, Float
t0) Int
j Array Int Int
v5 Array Int Float
vdB String
ys IO () -> IO () -> IO ()
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
if Float
y Float -> Float -> Bool
forall a. Ord a => a -> a -> Bool
> Float
0.0 then Float -> String -> IO ()
apply6Gf Float
vol (String
"result." String -> String -> String
forall a. [a] -> [a] -> [a]
++ if Int -> String -> String
forall a. Int -> [a] -> [a]
drop Int
3 String
ys String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
"f" then String
"flac" else String
"wav") else String -> IO ()
putStr String
""
overSoXSynth2FDN_Sf36GS :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> Intervals -> String -> Array Int Float -> String -> String -> IO ()
overSoXSynth2FDN_Sf36GS :: (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> Array Int Int
-> String
-> Array Int Float
-> String
-> String
-> IO ()
overSoXSynth2FDN_Sf36GS Float -> OvertonesO
f (Float
x, Float
y, Float
t0) Int
j Array Int Int
v5 String
xs Array Int Float
vdB String
ys String
xxs
| String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (String -> Bool) -> (String -> String) -> String -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> String
convertToProperUkrainianS (String -> Bool) -> String -> Bool
forall a b. (a -> b) -> a -> b
$ String
xxs = String -> IO ()
putStrLn String
"Composition.Sound.Functional.overSoXSynth2FDN_Sf36GS: You provided no information to obtain volume adjustment! "
| Bool
otherwise = (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> Array Int Int
-> Array Int Float
-> String
-> Float
-> IO ()
overSoXSynth2FDN_Sf36G Float -> OvertonesO
f (Float
x, Float
y, Float
t0) Int
j (Array Int Int -> String -> Array Int Int
intervalsFromStringG Array Int Int
v5 String
xs) Array Int Float
vdB String
ys (String -> Float
str2Vol1 String
xxs)
{-# INLINE overSoXSynth2FDN_Sf36GS #-}
soundGenF31G :: [(Float -> Float)] -> [Float] -> [Int] -> (Float -> OvertonesO) -> (Float, Float, Float) -> Int ->
Array Int Float -> IO ()
soundGenF31G :: [Float -> Float]
-> [Float]
-> [Int]
-> (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> Array Int Float
-> IO ()
soundGenF31G [Float -> Float]
vf [Float]
vd [Int]
vi Float -> OvertonesO
f (Float
x, Float
y, Float
t0) Int
j Array Int Float
vdB = [Float -> Float]
-> [Float]
-> [Int]
-> (Float -> OvertonesO)
-> (Float, Float, Float)
-> Int
-> Array Int Float
-> String
-> IO ()
soundGenF32G [Float -> Float]
vf [Float]
vd [Int]
vi Float -> OvertonesO
f (Float
x, Float
y, Float
t0) Int
j Array Int Float
vdB []
{-# INLINE soundGenF31G #-}
overSoXSynthGen2FDN_Sf3G :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> Float -> String -> String ->
((Float -> OvertonesO) -> (Float, Float, Float) -> Int -> String -> IO ()) -> IO ()
overSoXSynthGen2FDN_Sf3G :: String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Float
-> Float
-> String
-> String
-> ((Float -> OvertonesO)
-> (Float, Float, Float) -> Int -> String -> IO ())
-> IO ()
overSoXSynthGen2FDN_Sf3G String
file Int
m Int
ku Float -> OvertonesO
f Float
y Float
t0 String
zs String
wws (Float -> OvertonesO)
-> (Float, Float, Float) -> Int -> String -> IO ()
h = do
Int
n <- String -> IO Int
duration1000 String
file
[Int]
vecA <- String -> Int -> IO [Int]
freqsFromFile String
file Int
n
let vecB :: [Float]
vecB = Int -> Int -> [Float] -> [Float]
liftInEnkuV Int
m Int
ku ([Float] -> [Float]) -> ([Int] -> [Float]) -> [Int] -> [Float]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Int -> Float) -> [Int] -> [Float]
forall a b. (a -> b) -> [a] -> [b]
map Int -> Float
forall a b. (Integral a, Num b) => a -> b
fromIntegral ([Int] -> [Float]) -> ([Int] -> [Int]) -> [Int] -> [Float]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Int -> Bool) -> [Int] -> [Int]
forall a. (a -> Bool) -> [a] -> [a]
filter (Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
/= (Int
11440::Int)) ([Int] -> [Float]) -> [Int] -> [Float]
forall a b. (a -> b) -> a -> b
$ [Int]
vecA
zeroN :: Int
zeroN = [Float] -> Int
forall a. [a] -> Int
numVZeroesPre [Float]
vecB
v2 :: Array Int Float
v2 = Int -> String -> Float -> Array Int Float
str2DurationsDef Int
n String
zs Float
y
!l2 :: Int
l2 = Array Int Float -> Int
forall i e. Array i e -> Int
numElements Array Int Float
v2 in ((Int, Float) -> IO ()) -> [(Int, Float)] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (\(Int
j, Float
x) -> do
(Float -> OvertonesO)
-> (Float, Float, Float) -> Int -> String -> IO ()
h Float -> OvertonesO
f (Float
x, (Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
v2 (Int
j Int -> Int -> Int
forall a. Integral a => a -> a -> a
`rem` Int
l2)), Float
t0) Int
j String
wws
String -> String -> IO ()
renameFile String
"result.wav" (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"result0" String -> String -> String
forall a. [a] -> [a] -> [a]
++ Int -> String -> String
prependZeroes Int
zeroN (Int -> String
forall a. Show a => a -> String
show (Int
j Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
1)) String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
".wav") ([(Int, Float)] -> IO ())
-> ([Float] -> [(Int, Float)]) -> [Float] -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Int] -> [Float] -> [(Int, Float)]
forall a b. [a] -> [b] -> [(a, b)]
zip [Int
0..] ([Float] -> IO ()) -> [Float] -> IO ()
forall a b. (a -> b) -> a -> b
$ [Float]
vecB
IO ()
endFromResult
overSoXSynthGen2FDN_Sf3G2G :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> Float -> String -> String ->
((Float -> OvertonesO) -> (Float, Float, Float) -> Int -> String -> String -> IO ()) -> String -> IO ()
overSoXSynthGen2FDN_Sf3G2G :: String
-> Int
-> Int
-> (Float -> OvertonesO)
-> Float
-> Float
-> String
-> String
-> ((Float -> OvertonesO)
-> (Float, Float, Float) -> Int -> String -> String -> IO ())
-> String
-> IO ()
overSoXSynthGen2FDN_Sf3G2G String
file Int
m Int
ku Float -> OvertonesO
f Float
y Float
t0 String
zs String
wws (Float -> OvertonesO)
-> (Float, Float, Float) -> Int -> String -> String -> IO ()
h String
ys = do
Int
n <- String -> IO Int
duration1000 String
file
[Int]
vecA <- String -> Int -> IO [Int]
freqsFromFile String
file Int
n
let vecB :: [Float]
vecB = Int -> Int -> [Float] -> [Float]
liftInEnkuV Int
m Int
ku ([Float] -> [Float]) -> ([Int] -> [Float]) -> [Int] -> [Float]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Int -> Float) -> [Int] -> [Float]
forall a b. (a -> b) -> [a] -> [b]
map Int -> Float
forall a b. (Integral a, Num b) => a -> b
fromIntegral ([Int] -> [Float]) -> ([Int] -> [Int]) -> [Int] -> [Float]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Int -> Bool) -> [Int] -> [Int]
forall a. (a -> Bool) -> [a] -> [a]
filter (Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
/= (Int
11440::Int)) ([Int] -> [Float]) -> [Int] -> [Float]
forall a b. (a -> b) -> a -> b
$ [Int]
vecA
zeroN :: Int
zeroN = [Float] -> Int
forall a. [a] -> Int
numVZeroesPre [Float]
vecB
v2 :: Array Int Float
v2 = Int -> String -> Float -> Array Int Float
str2DurationsDef Int
n String
zs Float
y
!l2 :: Int
l2 = Array Int Float -> Int
forall i e. Array i e -> Int
numElements Array Int Float
v2 in ((Int, Float) -> IO ()) -> [(Int, Float)] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (\(Int
j, Float
x) -> do
(Float -> OvertonesO)
-> (Float, Float, Float) -> Int -> String -> String -> IO ()
h Float -> OvertonesO
f (Float
x, (Array Int Float -> Int -> Float
forall i e. Array i e -> Int -> e
unsafeAt Array Int Float
v2 (Int
j Int -> Int -> Int
forall a. Integral a => a -> a -> a
`rem` Int
l2)), Float
t0) Int
j String
wws String
ys
String -> String -> IO ()
renameFile (String
"result." String -> String -> String
forall a. [a] -> [a] -> [a]
++ if Int -> String -> String
forall a. Int -> [a] -> [a]
drop Int
3 String
ys String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
"f" then String
"flac" else String
"wav") (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"result0" String -> String -> String
forall a. [a] -> [a] -> [a]
++ Int -> String -> String
prependZeroes Int
zeroN (Int -> String
forall a. Show a => a -> String
show (Int
j Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
1)) String -> String -> String
forall a. [a] -> [a] -> [a]
++ if Int -> String -> String
forall a. Int -> [a] -> [a]
drop Int
3 String
ys String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
"f"
then String
".flac" else String
".wav") ([(Int, Float)] -> IO ())
-> ([Float] -> [(Int, Float)]) -> [Float] -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Int] -> [Float] -> [(Int, Float)]
forall a b. [a] -> [b] -> [(a, b)]
zip [Int
0..] ([Float] -> IO ()) -> [Float] -> IO ()
forall a b. (a -> b) -> a -> b
$ [Float]
vecB
String -> IO ()
endFromResult2G String
ys