-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Helps to create experimental music from a file (or its part) and a Ukrainian text. -- -- It can also generate a timbre for the notes. Uses SoX inside. @package algorithmic-composition-additional @version 0.1.1.0 -- | Helps to create experimental music from a file (or its part) and a -- Ukrainian text. It can also generate a timbre for the notes. Uses SoX -- inside. module Composition.Sound.Decibel -- | Is used to represent a set of volumes in the dB scale for SoX "vol" -- effect. Usually, the zero value corresponds to the sound with volume -- level equal by absolute value to 1.0 (the extremum one). So for most -- cases, its elements are negative numbers not less than (-120). type StrengthsDb = Array Int Float -- | Returns the frequency for which its ratio with the second Float -- argument being under lg and being multiplied with 20 returns the first -- Float argument. For example, dBOmegaRatio 6 440 ~ 880 -- (actually, 877.9154185863069). dBOmegaRatio :: Float -> Float -> Float -- | Converts the absolute value of the argument to dB value compared to -- 1.0. Usually, is less than 0. The argument should not be equal to zero -- (0), otherwise, it is equal to -Infinity. strength2dB_Abs :: Float -> Float -- | Converts the absolute value of the argument from dB value to amplitude -- with 0 equivalent to amplitude of 1.0 (or -1.0 for inverted sound). -- Usually, is used for negative arguments (or at least not positive -- ones). strengthdB2ampl :: Float -> Float -- | Converts the Vector of the absolute values of the argument to -- the Vector of dB values compared to 1.0. Usually, its elements -- are less than 0. If some element in the argument is equal to zero (0), -- the corresponding resulting element is equal to -Infinity. strengths2dB :: Strengths -> StrengthsDb -- | Converts the Vector of dB values to the Vector of the -- amplitudes with 0 being equivalent to amplitude of 1.0 (or -1.0 for -- inverted sound). Usually, is used for negative elements of the first -- argument (or at least not positive ones). strengthsDb2ampl :: StrengthsDb -> Strengths -- | Helps to create experimental music from a file (or its part) and a -- Ukrainian text. It can also generate a timbre for the notes. Uses SoX -- inside. module Composition.Sound.DIS5G6G -- | Function is used to generate a rhythm of the resulting file 'end.wav' -- from the Ukrainian text and a number of sounds either in the syllables -- or in the words without vowels. syllableStr :: Int -> String -> [Int] -- | Function is used to get numbers of intervals from a Ukrainian -- String. It is used internally in the -- uniqOverSoXSynthN4 function. intervalsFromString :: String -> Intervals -- | The default way to get Intervals from a converted Ukrainian -- text. vStrToVInt :: String -> Intervals -- | The default way to get number of semi-tones between notes in a single -- element of Intervals. strToInt :: Char -> Int -- | Durations accounting the desired average duration. durationsAver :: Durations -> Float -> Durations -- | A conversion to the Float that is used inside -- str2Durations. str2Durat1 :: Char -> Float -- | A full conversion to the Durations from a Ukrainian text. The -- String must be not empty Ukrainian text and the Float -- must be greater than 0.0. str2Durations :: String -> Float -> Durations -- | A conversion to the Float that is used inside -- str2Volume. str2Vol1 :: String -> Float -- | A full conversion to the Strengths from a Ukrainian text. str2Volume :: String -> Strengths -- | Arithmetic average for the Array Int is used as a weight -- for a duration. doublesAveragedA :: Array Int Float -> Float -> Array Int Float -- | Geometric average for the Array Int is used as a weight -- for a strength. doublesAveragedG :: Array Int Float -> Float -> Array Int Float -- | Auxiliary function to make all lists in an Array Int -- equal by length (the minimum one). equalize2Vec :: Array Int [a] -> Array Int [a] -- | Generatlized version of the intervalsFromString with a -- possibility to specify your own Intervals. intervalsFromStringG :: Intervals -> String -> Intervals -- | For the given non-existing FilePath for a sound file supported -- by SoX generates a silence of the specified duration and quality (see, -- soxBasicParams). silentSound2G :: FilePath -> Float -> String -> IO () -- | Strengths accounting the desired average strength. strengthsAver :: Strengths -> Float -> Strengths -- | StrengthsDb accounting the desired average strength in dB. strengthsDbAver :: StrengthsDb -> Float -> StrengthsDb -- | After producing sounds as WAV or FLAC files you can apply to them -- volume adjustments using Strengths. The first String is -- used accordingly to soxBasicParams and the second one -- as a -- prefix of the filenames for the files that the function is applied to. -- The files must not be silent ones. Otherwise, it leads to likely noise -- sounding or errors. apply6G :: Strengths -> String -> String -> IO () -- | Variant of the apply6G function which can be applied also to -- the silent files. Whether a file is silent is defined using the -- Float argument so that if the maximum by absolute value -- amplitude is less by absolute value than the Float argument -- then the file is not changed. apply6G2 :: Strengths -> String -> String -> Float -> IO () -- | Variant of the apply6G where you use as a Strengths -- parameter that one obtained from a Ukrainian text provided as a first -- String argument. It uses str2Volume inside. The files -- must not be the silent ones. Otherwise, it leads to likely noise -- sounding or errors. apply6GS :: String -> String -> String -> IO () -- | Variant of the apply6G2 where you use as a Strengths -- parameter that one obtained from a Ukrainian text provided as the -- first String argument. It uses str2Volume inside. apply6GS2 :: String -> String -> String -> Float -> IO () -- | Helps to create experimental music from a file (or its part) and a -- Ukrainian text. It can also generate a timbre for the notes. Uses SoX -- inside. module Composition.Sound.Extended dviykyTA :: NotePairs triykyTA :: NotePairs chetvirkyTA :: NotePairs p'yatirkyTA :: NotePairs shistkyTA :: NotePairs simkyTA :: NotePairs visimkyTA :: NotePairs dev'yatkyTA :: NotePairs desyatkyTA :: NotePairs odynadtsyatkyTA :: NotePairs octavesTA :: NotePairs -- | Helps to create experimental music from a file (or its part) and a -- Ukrainian text. It can also generate a timbre for the notes. Uses SoX -- inside. module Composition.Sound.FunctionF -- | Gets a function f::Float -> OvertonesO that can be used -- further. Has two variants with usage of closestNote (Int -- argument is greater than 0)v and without it (Int argument is -- less than 0). For both cases String must be in a form list of -- tuples of pairs of Float to get somewhat reasonable result. The -- function f can be shown using a special printing function -- showFFromStrVec. It is a simplest multiplicative (somewhat -- acoustically and musically reasonable) form for the function that can -- provide such a result that fits into the given data. -- --
-- let (y,f1) = fromJust (maybeFFromStrVec 1 3583.9783 "[(25.368,0.2486356),(37.259,0.6464867),(486.153,0.374618646),(789.563,0.463486461)]") in (y,f1 3583.9783) -- -- (3520.0,[(25.829079975681818,0.2486356),(37.936206670369316,0.6464867),(494.9891484317899,0.374618646),(803.9138234326421,0.463486461)]) -- -- let (y,f1) = fromJust (maybeFFromStrVec (-1) 3583.9783 "[(25.368,0.2486356),(37.259,0.6464867),(486.153,0.374618646),(789.563,0.463486461)]") in (y,f1 3583.9783) -- -- (3583.9783,[(25.368,0.2486356),(37.259,0.6464867),(486.153,0.374618646),(789.563,0.463486461)]) --maybeFFromStrVec :: Int -> Float -> String -> Maybe (Float, Float -> [(Float, Float)]) -- | Gets multiplication coefficients for f::Float -> -- [(Float,Float)] from the maybeFFromStrVec with the same -- arguments. fVecCoefs :: Int -> Float -> String -> [Float] -- | Experimental show for f::Float -> [(Float,Float)] -- that is used only for visualisation. It is correct only with -- maybeFFromStrVec or equivalent function. Because the shape of -- the f is known the function can be defined. -- --
-- showFFromStrVec (-1) 440 "[(25.358,0.3598),(489.35,0.4588962),(795.35,0.6853)]" -- -- "(440.00,(\t -> [(0.05763181818181818 * t, 0.3598),(1.112159090909091 * t, 0.4588962),(1.8076136363636364 * t, 0.6853)]))" --showFFromStrVec :: Int -> Float -> String -> String -- | Helps to create experimental music from a file (or its part) and a -- Ukrainian text. It can also generate a timbre for the notes. Uses SoX -- inside. module Composition.Sound.Functional -- | Similar to overSoXSynth2DN but instead of overTones -- function, it uses volatile function f::Float -> [(Float, -- Float)] with somewhat sophisticated mechanism to normalize the -- resulting list elements (Float, Float). The last one is an -- experimental feature, so it is your responsibility to provide a -- function so that it does not lead to clipping. In such a case, the -- result of application of the convertToProperUkrainianS to the -- String parameter must not be []. Int argument is an -- index of the element to be taken from the intervalsFromString -- applied to the String argument. To obtain compatible with -- versions prior to 0.20.0.0 behaviour, use for the Int 0. -- -- Be aware that the result can be rather unpredictable (the program can -- even obtain segmentation fault) for not very suitable function. But -- for a lot of functions this works well. -- -- It is recommended to fully simplify the computation for "f" function -- before using it in the overSoXSynth2FDN. overSoXSynth2FDN :: (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO () -- | Similar to overSoXSynth2DN but instead of overTones -- function, it uses volatile function f::Float -> [(Float, -- Float)] with somewhat sophisticated mechanism to normalize the -- resulting list elements (Float, Float). The last one is -- experimental feature, so it is your responsibility to provide a -- function so that it does not lead to clipping. In such a case, the -- result of application of the convertToProperUkrainianS to the -- String parameter must not be []. The function also tries to -- perform filtering to avoid possible beating. The third Float -- parameter in the tuple is used as a limit for frequencies difference -- in Hz to be filtered out from the resulting sound. It is considered to -- be from the range [0.1..10.0]. An Int parameter is -- used to define the needed interval. To obtain compatible with versions -- prior to 0.20.0.0 behaviour, use for the Int 0. -- -- Be aware that the result can be rather unpredictable (the program can -- even obtain segmentation fault) for not very suitable function. But -- for a lot of functions this works well. -- -- It is recommended to fully simplify the computation for "f" function -- before using it in the overSoXSynth2FDN_B. overSoXSynth2FDN_B :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> String -> IO () -- | Uses additional Int parameters. The first one is a number of -- enka (see nkyT). The second one defines, to which n-th elements -- set (see nkyT) belongs the obtained higher notes in the -- intervals. To obtain reasonable results, please, use for the first one -- 2, 3, 4, 6, 9, or 12. The first String parameter is used to -- produce durations of the notes. The second one is used to define -- intervals. A Float parameter is a basic sound duration, it -- defines tempo of the melody in general. overSoXSynthGen2FDN :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> String -> String -> IO () -- | Uses additional Int parameters. The first one is a number of -- enka (see nkyT). The second one defines, to which n-th elements -- set (see nkyT) belongs the obtained higher notes in the -- intervals. To obtain reasonable results, please, use for the first one -- 2, 3, 4, 6, 9, or 12. The first String parameter is used to -- produce durations of the notes. The second one is used to define -- intervals. The first Float parameter is a basic sound duration, -- it defines tempo of the melody in general. The second one is a limit -- for frequencies difference in Hz to be filtered out from the resulting -- sound. It is considered to be from the range [0.1..10.0]. overSoXSynthGen2FDN_B :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> Float -> String -> String -> IO () -- | Array Int of Float is a vector of dB volume -- adjustments for the corresponding harmonices (overtones). overSoXSynth2FDN1G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> Array Int Float -> IO () -- | Array Int of Float is a vector of dB volume -- adjustments for the corresponding harmonices (overtones). overSoXSynth2FDN_B1G :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> String -> Array Int Float -> IO () -- | Similar to overSoXSynth2FDN with the additional volume -- adjustment in dB for overtones given by Array Int of -- Float, but it does not make any normalizing transformations. To -- be used properly, it is needed that every second element in the tuple -- in the list argument must be in the range [-1.0..1.0] and every first -- element must be in between 16.351597831287414 and 7902.132820097988 -- (Hz). An Int parameter is used to define an interval. To obtain -- compatible with versions prior to 0.20.0.0 behaviour, use for the -- Int 0. -- -- Be aware that the result can be rather unpredictable (the program can -- even obtain segmentation fault) for not very suitable function. But -- for a lot of functions this works well. -- -- It is recommended to fully simplify the computation for "f" function -- before using it in the overSoXSynth2FDN_S. overSoXSynth2FDN_S1G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> Array Int Float -> IO () -- | Generalized variant of the overSoXSynth2FDN_Sf with a -- possibility to adjust volume using adjust_dbVol. Array -- Int of Float is used to specify adjustments in dB. For -- more information, please, refer to adjust_dbVol. overSoXSynth2FDN_Sf1G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> Array Int Float -> IO () -- | Generalized variant of the overSoXSynth2FDN_Sf3 function with -- a possibility to adjust volume using adjust_dBVol. -- Array Int of Float specifies the needed -- adjustments in dB. overSoXSynth2FDN_Sf31G :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> String -> Array Int Float -> IO () -- | Similar to overSoXSynth2FDN1G, but additionally allows to -- specify by the second String argument a quality changes to the -- generated files (please, see soxBasicParams). Since version -- 0.36.0.0 the function supports generation of the pauses. overSoXSynth2FDN2G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> Array Int Float -> String -> IO () -- | Generalized version of the overSoXSynth2FDN_B1G with a -- possibility to specify sound quality parameters using additional -- second String argument. For more information, please, refer to -- soxBasicParams. overSoXSynth2FDN_B2G :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> String -> Array Int Float -> String -> IO () -- | Generalized version of the overSoXSynth2FDN_S1G with a -- possibility to specify sound quality parameters using the second -- String argument. For more information, please, refer to -- soxBasicParams. overSoXSynth2FDN_S2G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> Array Int Float -> String -> IO () -- | Generalized variant of the overSoXSynth2FDN_Sf1G with a -- possibility to specify sound quality using the second String -- argument. For more information, please, refer to -- soxBasicParams. overSoXSynth2FDN_Sf2G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> String -> Array Int Float -> String -> IO () -- | Generalized variant of the overSoXSynth2FDN_Sf31G with a -- possibility to specify sound quality using the second String -- parameter. For more information, please, refer to -- soxBasicParams. overSoXSynth2FDN_Sf32G :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> String -> Array Int Float -> String -> IO () -- | Generalized variant of the overSoXSynthGen2FDN_SG with a -- possibility to specify with the third String argument sound -- quality parameters. Besides, the second from the end argument (a -- function) needs to be one more argument -- just also String. -- For more information, please, refer to soxBasicParams. Note -- that Int arguments are used by liftInEnku in that order -- so it returns a Maybe number (actually frequency) for the n-th -- elements set of notes (see nkyT). The second Int -- parameter defines that n. overSoXSynthGen2FDN_SG2G :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> String -> String -> ((Float -> OvertonesO) -> (Float, Float) -> Int -> String -> String -> IO ()) -> String -> IO () -- | Generalized variant of the ovorSoXSynthGen2FDN_Sf3G with a -- possibility to specify sound quality with the third String -- argument. Besides, the second from the end argument (a function) needs -- to be one more argument -- just also String. For more -- information, please, refer to soxBasicParams. Note that -- Int arguments are used by liftInEnku in that order so it -- returns a Maybe number (actually frequency) for the n-th -- elements set of notes (see nkyT). The second Int -- parameter defines that n. overSoXSynthGen2FDN_Sf3G2G :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> Float -> String -> String -> ((Float -> OvertonesO) -> (Float, Float, Float) -> Int -> String -> String -> IO ()) -> String -> IO () -- | Similar to overSoXSynthGen2FDN, but instead of -- overSoXSynth2FDN uses overSoXSynth2FDN_S function. -- Note that the first Int arguments are used by liftInEnku -- in that order so it returns a Maybe number (actually frequency) -- for the n-th elements set of notes (see nkyT). The second -- Int parameter defines that n. overSoXSynthGen2FDN_SG :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> String -> String -> ((Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()) -> IO () -- | Similar to overSoXSynthGen2FDN_S, but instead of -- overSoXSynth2FDN_S uses overSoXSynth2FDN_Sf3 -- function. Note that Int arguments are used by liftInEnku -- in that order so it returns a Maybe number (actually frequency) -- for the n-th elements set of notes (see nkyT). The second -- Int parameter defines that n. overSoXSynthGen2FDN_Sf3G :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> Float -> String -> String -> ((Float -> OvertonesO) -> (Float, Float, Float) -> Int -> String -> IO ()) -> IO () -- | Can generate multiple notes with their respective overtones that are -- played simultaneously (e. g. it can be just one note with overtones, -- an interval with overtones, an accord with overtones etc.). This -- allows to get a rather complex or even complicated behaviour to obtain -- expressive and rich sound. It uses volume adjustment in dB given by -- the second [Float] for the overtones. soundGenF31G :: [Float -> Float] -> [Float] -> [Int] -> (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> Array Int Float -> IO () -- | Generalized variant of the overSoXSynthGen2FDN with your own -- specified Durations for the sounds and pauses. Instead of using -- a Ukrainian text to specify a durations for the sounds (and a rhythm -- respectively) you provide your own rhythm as Durations. -- Positive values correspond to durations of the sounds generated and -- negative values -- to durations of the pauses respectively. overSoXSynthGen2FDN4G :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Durations -> String -> IO () -- | Generalized version of the overSoXSynthGen2FDN_SG where instead -- of using a Ukrainian text to specify a durations for the sounds (and a -- rhythm respectively) you provide your own rhythm as Durations. -- Positive values correspond to durations of the sounds generated and -- negative values -- to durations of the pauses respectively. Please, -- use a function h :: ((Float -> OvertonesO) -> (Float, Float) -- -> Int -> String -> IO ()) such that it can create for -- the given values accorgingly sounds and pauses. Otherwise, please, -- check whether at least it can deal with such arguments without errors. -- Note that Int arguments are used by liftInEnku in that -- order so it returns a Maybe number (actually frequency) for the -- n-th elements set of notes (see nkyT). The second Int -- parameter defines that n. overSoXSynthGen2FDN_SG4G :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Durations -> String -> ((Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()) -> IO () -- | A variant of the overSoXSynthGen2FDN_SG4G where instead of -- providing your own durations as Durations you use a Ukrainian -- text and a function treats each symbol in it as a duration parameter -- with its sign. Positive values correspond to durations of the sounds -- generated and negative values -- to durations of the pauses -- respectively. Please, use a function h :: ((Float -> -- OvertonesO) -> (Float, Float) -> Int -> String -> IO -- ()) such that it can create for the given values accorgingly -- sounds and pauses. Otherwise, please, check whether at least it can -- deal with such arguments without errors. overSoXSynthGen2FDN_SG4GS :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> String -> String -> ((Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()) -> IO () -- | Similar to overSoXSynth2FDN2G, but additionally allows to -- specify by the Intervals argument to specify your own -- intervals. For more information, please, refer to -- intervalsFromStringG. overSoXSynth2FDN5G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> Intervals -> Array Int Float -> String -> IO () -- | Generalized version of the overSoXSynth2FDN_B2G with a -- possibility to specify your own Intervals. For more -- information, please, refer to intervalsFromStringG. overSoXSynth2FDN_B5G :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> Intervals -> Array Int Float -> String -> IO () -- | Generalized version of the overSoXSynth2FDN_S2G where you -- specify your own Intervals. For more information, please, refer -- to intervalsFromStringG. overSoXSynth2FDN_S5G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> Intervals -> Array Int Float -> String -> IO () -- | Generalized variant of the overSoXSynth2FDN_Sf31G with a -- possibility to specify sound quality using the second String -- parameter. For more information, please, refer to -- soxBasicParams. overSoXSynth2FDN_Sf35G :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> Intervals -> Array Int Float -> String -> IO () -- | Generalized variant of the overSoXSynth2FDN5G with afterwards -- apply6Gf usage. overSoXSynth2FDN6G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> Intervals -> Array Int Float -> String -> Float -> IO () -- | A variant of the overSoXSynth2FDN6G where volume adjustment is -- obtained from a Ukrainian text. overSoXSynth2FDN6GS :: (Float -> OvertonesO) -> (Float, Float) -> Int -> Intervals -> String -> Array Int Float -> String -> String -> IO () -- | Generalized variant of the overSoXSynth2FDN_B5G with afterwards -- apply6G usage. overSoXSynth2FDN_B6G :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> Intervals -> Array Int Float -> String -> Float -> IO () -- | A variant of the overSoXSynth2FDN_B6G where volume adjustment -- is obtained from a Ukrainian text. overSoXSynth2FDN_B6GS :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> Intervals -> String -> Array Int Float -> String -> String -> IO () -- | Generalized variant of the overSoXSynth2FDN_S5G with afterwards -- apply6G usage. Arguments for the latter is the three last -- function arguments. overSoXSynth2FDN_S6G :: (Float -> OvertonesO) -> (Float, Float) -> Int -> Intervals -> Array Int Float -> String -> Float -> IO () -- | A variant of the overSoXSynth2FDN_S6G where volume adjustment -- is obtained from a Ukrainian text. overSoXSynth2FDN_S6GS :: (Float -> OvertonesO) -> (Float, Float) -> Int -> Intervals -> String -> Array Int Float -> String -> String -> IO () -- | Generalized variant of the overSoXSynth2FDN_Sf35G with -- afterwards apply6G usage. overSoXSynth2FDN_Sf36G :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> Intervals -> Array Int Float -> String -> Float -> IO () -- | A variant of the overSoXSynth2FDN_Sf36G where volume adjustment -- is obtained from a Ukrainian text. overSoXSynth2FDN_Sf36GS :: (Float -> OvertonesO) -> (Float, Float, Float) -> Int -> Intervals -> String -> Array Int Float -> String -> String -> IO () -- | 6G generalized variant of the overSoXSynthGen2FDN_SG4G with -- volume adjustments given by Strengths. Note that Int -- arguments are used by liftInEnku in that order so it returns a -- Maybe number (actually frequency) for the n-th elements set of -- notes (see nkyT). The second Int parameter defines that -- n. overSoXSynthGen2FDN_SG6G :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Durations -> String -> ((Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()) -> Strengths -> Float -> IO () -- | A variant of the overSoXSynthGen2FDN_SG6G where -- Strengths are obtained from a Ukrainian text and -- str2Volume. overSoXSynthGen2FDN_SG6GS :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> String -> String -> ((Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()) -> String -> Float -> IO () -- | A variant of the overSoXSynthGen2FDN_SG6GS where -- Strengths are obtained from the same Ukrainian text as also -- Durations so the last String argument is omitted (it is -- equal to the first one). Helps to create a speech-like composition. overSoXSynthGen2FDN_SG6GSu :: FilePath -> Int -> Int -> (Float -> OvertonesO) -> Float -> String -> String -> ((Float -> OvertonesO) -> (Float, Float) -> Int -> String -> IO ()) -> Float -> IO () help11 :: (Float -> OvertonesO) -> (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 () help13 :: (Float -> OvertonesO) -> (Float, Float) -> Int -> Array Int Float -> String -> Int -> Maybe Float -> Float -> IO () -- | Helps to create experimental music from a file (or its part) and a -- Ukrainian text. It can also generate a timbre for the notes. Uses SoX -- inside. module Composition.Sound.Functional.Split -- | Splits (with addition of the new overtones) a given OvertonesO -- into a number n (specified by the first Int argument) -- of OvertonesO (represented finally as a list of them -- respectively) so that all except the first n greatest by the -- absolute value of the amplitude tuples of Floats are considered -- overtones for the greatest by the absolute value one in the given -- OvertonesO and all the next n - 1 are treated as the -- greatest by the absolute value and each of them produces the similar -- by the f :: Float -> OvertonesO function overtones. -- -- It is expected to obtain by such a conversion a splitted one sound -- into several simultaneous similar ones with different heights. To -- provide a rich result, the given first argument must be strictly less -- than the length of the given OvertonesO minus one. splitO :: Int -> OvertonesO -> [OvertonesO] -- | Splits (with addition of the new overtones) a given OvertonesO -- into a number of OvertonesO (represented finally as a -- Array Int of them repsectively) so that it -- intermediately uses a special function before applying the -- "similarization" splitting function. Is a generalization of the -- splitO, which can be considered a splitO2 with a first -- command line argument equals to id. -- -- It is expected to obtain by such a conversion a splitted one sound -- into several simultaneous similar (less or more, depending on h :: -- OvertonesO -> OvertonesO) ones with different heights. To -- provide a rich result, the given first argument must be strictly less -- than the length of the given OvertonesO minus one. splitO2 :: (OvertonesO -> OvertonesO) -> Int -> OvertonesO -> [OvertonesO] -- | Concatenates a list of OvertonesO into a single -- OvertonesO. Can be easily used with splitO. overConcat :: [OvertonesO] -> OvertonesO -- | Auxiliary function that is used inside splitOG1. splitHelp1 :: Int -> Int -> Int -> Int -> [(Float, Float)] -> (Float, Float) -> [OvertonesO] -- | Auxiliary function that is used inside splitOG2. splitHelp2 :: (OvertonesO -> OvertonesO) -> Int -> Int -> Int -> Int -> [(Float, Float)] -> (Float, Float) -> [OvertonesO] -- | Generalized variant of the splitO with the different splitting -- variants depending on the first two ASCII lower case letters in the -- String argument. splitOG1 :: String -> Int -> OvertonesO -> [OvertonesO] -- | Generalized variant of the splitO2 with the different splitting -- variants depending on the first two ASCII lower case letters in the -- String argument. splitOG2 :: (OvertonesO -> OvertonesO) -> String -> Int -> [(Float, Float)] -> [OvertonesO] -- | Generalized variant of the splitOG1 with a possibility to -- specify a default value for splitting parameters as the first argument -- (Int,Int,Int,Int) and the sorted by the first element in the -- tuple (actually a String) in ascending order list (the second -- one). Each String in the list must be unique and consist of -- lowercase ASCII letters. splitOG12 :: (Int, Int, Int, Int) -> [(String, Int -> [(Float, Float)] -> (Int, Int, Int, Int))] -> String -> Int -> [(Float, Float)] -> [OvertonesO] -- | Variant of the splitOG12 applied to the unsorted second -- argument. It sorts it internally. If you specify the already sorted -- second argument then it is better to use splitOG12. Each -- String in the list must be unique and consist of lowercase -- ASCII letters. splitOG12S :: (Int, Int, Int, Int) -> [(String, Int -> [(Float, Float)] -> (Int, Int, Int, Int))] -> String -> Int -> [(Float, Float)] -> [OvertonesO] -- | Generalized variant of the splitOG2 with a possibility to -- specify a default value for splitting parameters as the first argument -- (Int,Int,Int,Int) and the sorted by the first element in the -- tuple (actually a String) in ascending order list (the second -- one). Each String in the list must be unique and consist of -- lowercase ASCII letters. splitOG22 :: (Int, Int, Int, Int) -> [(String, Int -> [(Float, Float)] -> (Int, Int, Int, Int))] -> (OvertonesO -> OvertonesO) -> String -> Int -> [(Float, Float)] -> [OvertonesO] -- | Variant of the splitOG22 applied to the unsorted second -- argument. It sorts it internally. If you specify the already sorted -- second argument then it is better to use splitOG22. Each -- String in the list must be unique and consist of lowercase -- ASCII letters. splitOG22S :: (Int, Int, Int, Int) -> [(String, Int -> [(Float, Float)] -> (Int, Int, Int, Int))] -> (OvertonesO -> OvertonesO) -> String -> Int -> [(Float, Float)] -> [OvertonesO] -- | Helps to create experimental music from a file (or its part) and a -- Ukrainian text. It can also generate a timbre for the notes. Uses SoX -- inside. module Composition.Sound.Octaves -- | Returns an analogous note in the higher octave (its frequency in Hz). octaveUp :: Float -> Float -- | Returns an analogous note in the lower octave (its frequency in Hz). octaveDown :: Float -> Float -- | Function lifts the given frequency to the given number of the octave -- (in American notation, from 0 to 8). This number is an Int -- parameter. The function also takes into account the lower pure quint -- for the closest note. If it is not practical to determine the number, -- then the function returns Nothing. liftInOctave :: Int -> Float -> Maybe Float -- | Function lifts the list of Float representing frequencies to -- the given octave with the Int number. Better to use numbers in -- the range [1..8]. The function also takes into account the lower pure -- quint for the obtained note behaviour. If it is not practical to -- determine the octave, the resulting frequency is omitted from the -- resulting list. liftInOctaveV :: Int -> [Float] -> [Float] -- | Helps to create experimental music from a file (or its part) and a -- Ukrainian text. It can also generate a timbre for the notes. Uses SoX -- inside. module Composition.Sound.Overtones -- | Function to create a melody for the given arguments. String is -- used to provide a rhythm. The main component of the sound includes the -- lower pure quint, which can be in the same octave or in the one with -- the number lower by one. The first Float argument from the -- range [0.01..1.0] is used as a maximum amplitude for Overtones. If it -- is set to 1.0 the overTones amplitudes are just the maximum ones, -- otherwise they are multiplied by the parameter and this results in -- their becoming more silent ones. The second Float argument is a -- basic sound duration. The default one is 0.5 (second). Please, check -- before executing whether there is no "x.wav", "test*", "result*" files -- in the current directory, because they can be overwritten. overSoXSynthN :: Int -> Float -> Float -> String -> [Float] -> IO () -- | For the given frequency of the note and a Ukrainian text it generates -- a list of the tuples, each one of which contains the harmonics' -- frequency and amplitude. The String is used to produce the -- signs for harmonics coefficients. overTones2 :: Float -> String -> OvertonesO -- | For the given frequency it generates a musical sound with a timbre. -- The main component of the sound includes the lower pure quint, which -- can be in the same octave or in the one with the number lower by one. -- Please, check before executing whether there is no "x.wav", "test*", -- "result*" files in the current directory, because they can be -- overwritten. The String argument is used to define signs of the -- harmonics coefficients for Overtones. overSoXSynth2 :: Float -> String -> IO () -- | Function to create a melody for the given arguments. String is -- used to provide a rhythm. The main component of the sound includes the -- lower pure quint, which can be in the same octave or in the one with -- the number lower by one. The first Float argument from the -- range [0.01..1.0] is used as a maximum amplitude for Overtones. If it -- is set to 1.0 the overTones amplitudes are just the maximum ones, -- otherwise they are multiplied by the parameter and this results in -- their becoming more silent ones. The second Float argument is a -- basic sound duration. The default one is 0.5 (second). Please, check -- before executing whether there is no "x.wav", "test*", "result*" files -- in the current directory, because they can be overwritten. overSoXSynthN2 :: Int -> Float -> Float -> String -> String -> [Float] -> IO () -- | Function to create a melody for the given arguments. String is -- used to provide a rhythm. The main component of the sound includes the -- lower pure quint, which can be in the same octave or in the one with -- the number lower by one. The first Float argument from the -- range [0.01..1.0] is used as a maximum amplitude for Overtones. If it -- is set to 1.0 the overTones amplitudes are just the maximum ones, -- otherwise they are multiplied by the parameter and this results in -- their becoming more silent ones. The second Float argument is a -- basic sound duration. The default one is 0.5 (second). Please, check -- before executing whether there is no "x.wav", "test*", "result*" files -- in the current directory, because they can be overwritten. The third -- String argument is used to define the intervals for the notes -- if any. The third Float parameter basically is used to define -- in how many times the volume for the second lower note is less than -- the volume of the main note. If it is rather great, it can signal that -- the volume for the second note overTones are greater than for the main -- note obetones. The last one is experimental feature. overSoXSynthN3 :: Int -> Float -> Float -> Float -> String -> String -> String -> [Float] -> IO () -- | Similar to overSoXSynth except that takes not necessarily pure -- lower quint note as the second one, but the one specified by the -- String parameter as an argument to dNote. If you begin -- the String with space characters, or "сь", or "ць", or dash, or -- apostrophe, or soft sign, than there will be no interval and the sound -- will be solely one with its OvertonesO. overSoXSynthDN :: Float -> String -> IO () -- | Similar to overSoXSynthDN except that the resulting duration is -- specified by the second Float parameter in seconds. For -- overSoXSynthDN it is equal to 0.5. overSoXSynth2DN :: Float -> Float -> String -> IO () -- | Similar to overSoXSynthN, but uses a sound file to obtain the -- information analogous to list in the latter one. Besides, the function -- lifts the frequencies to the octave with the given by Int -- parameter number (better to use from the range [1..8]). The first -- Float argument from the range [0.01..1.0] is used as a maximum -- amplitude for Overtones. If it is set to 1.0 the overTones amplitudes -- are just maximum ones, otherwise they are multiplied by the parameter -- and this results in their becoming more silent ones. The second -- Float argument is a basic sound duration. The default one is -- 0.5 (second). Please, check before executing whether there is no -- "x.wav", "test*", "result*" and "end.wav" files in the current -- directory, because they can be overwritten. -- -- For better usage the FilePath should be a filepath for the .wav -- file. overSoXSynthNGen :: FilePath -> Int -> Float -> Float -> String -> IO () -- | Similar to overSoXSynthN2, but uses a sound file to obtain the -- information analogous to list in the latter one. Besides, the function -- lifts the frequencies to the octave with the given by Int -- parameter number (better to use from the range [1..8]). The first -- Float argument from the range [0.01..1.0] is used as a maximum -- amplitude for Overtones. If it is set to 1.0 the overTones amplitudes -- are just maximum ones, otherwise they are multiplied by the parameter -- and this results in their becoming more silent ones. The second -- Float argument is a basic sound duration. The default one is -- 0.5 (second). Please, check before executing whether there is no -- "x.wav", "test*", "result*" and "end.wav" files in the current -- directory, because they can be overwritten. -- -- For better usage the FilePath should be a filepath for the .wav -- file. The second String argument is used to define signs of the -- harmonics coefficients in the generated sounds. overSoXSynthNGen2 :: FilePath -> Int -> Float -> Float -> String -> String -> IO () -- | Similar to overSoXSynthN2, but uses a sound file to obtain the -- information analogous to list in the latter one. Besides, the function -- lifts the frequencies to the octave with the given by Int -- parameter number (better to use from the range [1..8]). The first -- Float argument from the range [0.01..1.0] is used as a maximum -- amplitude for overtones. If it is set to 1.0 the overTones amplitudes -- are just maximum ones, otherwise they are multiplied by the parameter -- and this results in their becoming more silent ones. The second -- Float argument is a basic sound duration. The default one is -- 0.5 (second). Please, check before executing whether there is no -- "x.wav", "test*", "result*" and "end.wav" files in the current -- directory, because they can be overwritten. -- -- For better usage the FilePath should be a filepath for the .wav -- file. The second String argument is used to define signs of the -- harmonics coefficients in the generated sounds. The third -- String argument is used to define the intervals for the notes -- if any. The third Float parameter basically is used to define -- in how many times the volume for the second lower note is less than -- the volume of the main note. If it is rather great, it can signal that -- the volume for the second note overTones are greater than for the main -- note obetones. The last one is experimental feature. overSoXSynthNGen3 :: FilePath -> Int -> Float -> Float -> Float -> String -> String -> String -> IO () -- | Similar to overSoXSynthNGen, but uses additional second -- Int parameter. It defines, to which n-th elements set (see -- nkyT) belongs the obtained higher notes in the intervals. If -- that parameter equals to 12, then the function is practically -- equivalent to overSoXSynthNGen. To obtain its modifications, -- please, use 2, 3, 4, 6, or 9. overSoXSynthNGenE :: FilePath -> Int -> Int -> Float -> Float -> String -> IO () -- | Similar to overSoXSynthNGen2, but uses additional second -- Int parameter. It defines, to which n-th elements set (see -- nkyT) belongs the obtained higher notes in the intervals. If -- that parameter equals to 12, then the function is practically -- equivalent to overSoXSynthNGen2. To obtain its modifications, -- please, use 2, 3, 4, 6, or 9. overSoXSynthNGen2E :: FilePath -> Int -> Int -> Float -> Float -> String -> String -> IO () -- | Similar to overSoXSynthNGen3, but uses additional second -- Int parameter. It defines, to which n-th elements set (see -- nkyT) belongs the obtained higher notes in the intervals. If -- that parameter equals to 12, then the function is practically -- equivalent to overSoXSynthNGen3. To obtain its modifications, -- please, use 2, 3, 4, 6, or 9. overSoXSynthNGen3E :: FilePath -> Int -> Int -> Float -> Float -> Float -> String -> String -> String -> IO () -- | Function to create a melody for the given arguments. Durations -- is used to provide a rhythm. overSoXSynthN4G :: Int -> Float -> Durations -> [Float] -> IO () -- | Function to create a melody for the given arguments. Durations -- is used to provide a rhythm. overSoXSynthN24G :: Int -> Float -> Durations -> String -> [Float] -> IO () -- | Function to create a melody for the given arguments. -- Duraitons is used to provide a rhythm. overSoXSynthN34G :: Int -> Float -> Float -> Durations -> String -> String -> [Float] -> IO () -- | 4G genaralized version of the overSoXSynthNGenE where you -- provide your own Durations. overSoXSynthNGenE4G :: FilePath -> Int -> Int -> Float -> Durations -> IO () -- | 4G genaralized version of the overSoXSynthNGen2E where you -- provide your own Durations. overSoXSynthNGen2E4G :: FilePath -> Int -> Int -> Float -> Durations -> String -> IO () -- | 4G generalized function for overSoXSynthNGen3E where you -- provide your own Durations. Note that Int arguments are -- used by liftInEnku in that order so it returns a Maybe -- number (actually frequency) for the n-th elements set of notes (see -- nkyT). The second Int parameter defines that n. overSoXSynthNGen3E4G :: FilePath -> Int -> Int -> Float -> Float -> Durations -> String -> String -> IO () -- | Variant of the overSoXSynthN4G where Durations are -- obtained from the String using str2Durations function. -- Helps to create a speech-like composition. overSoXSynthN4GS :: Int -> Float -> Float -> String -> [Float] -> IO () -- | Variant of the overSoXSynthN24G where Durations are -- obtained from the String using str2Durations function. -- Helps to create a speech-like composition. overSoXSynthN24GS :: Int -> Float -> Float -> String -> String -> [Float] -> IO () -- | Variant of the overSoXSynthN34G where Durations are -- obtained from the String using str2Durations function. -- Helps to create a speech-like composition. overSoXSynthN34GS :: Int -> Float -> Float -> Float -> String -> String -> String -> [Float] -> IO () -- | Variant of the overSoXSynthNGenE4G where Durations are -- obtained from the String using str2Durations function. -- Helps to create a speech-like composition. overSoXSynthNGenE4GS :: FilePath -> Int -> Int -> Float -> Float -> String -> IO () -- | Variant of the overSoXSynthNGen2E4G where Durations are -- obtained from the String using str2Durations function. -- Helps to create a speech-like composition. overSoXSynthNGen2E4GS :: FilePath -> Int -> Int -> Float -> Float -> String -> String -> IO () -- | Variant of the overSoXSynthNGen3E4G where Durations are -- obtained from the String using str2Durations function. -- Helps to create a speech-like composition. Note that Int -- arguments are used by liftInEnku in that order so it returns a -- Maybe number (actually frequency) for the n-th elements set of -- notes (see nkyT). The second Int parameter defines that -- n. overSoXSynthNGen3E4GS :: FilePath -> Int -> Int -> Float -> Float -> Float -> String -> String -> String -> IO () -- | Generalized variant of the overSoXSynthN34G where you specify -- your own Intervals. For more information, please, refer to -- intervalsFromStringG. overSoXSynthN35G :: Int -> Float -> Float -> Durations -> String -> Intervals -> [Float] -> IO () -- | 5G generalized function for overSoXSynthNGen3E4G where you -- provide your own Intervals. Note that Int arguments are -- used by liftInEnku in that order so it returns a Maybe -- number (actually frequency) for the n-th elements set of notes (see -- nkyT). The second Int parameter defines that n. overSoXSynthNGen3E5G :: FilePath -> Int -> Int -> Float -> Float -> Durations -> String -> Intervals -> IO () -- | Variant of the overSoXSynthN34G where intervals are obtained -- from the basic Intervals with the length no more than 29 and a -- Ukrainian text specified as the last String argument so that -- you can produce Intervals of the arbitrary length. For more -- information, please, refer to intervalsFromStringG and -- strToIntG. overSoXSynthN35GS :: Int -> Float -> Float -> Float -> String -> String -> Intervals -> String -> [Float] -> IO () -- | Variant of the overSoXSynthNGen3E5G where Intervals are -- obtained from the basic Intervals with the length no more than -- 29 and a Ukrainian text specified as the last String argument -- so that you can produce Intervals of the arbitrary length. For -- more information, please, refer to intervalsFromStringG and -- strToIntG. Note that Int arguments are used by -- liftInEnku in that order so it returns a Maybe number -- (actually frequency) for the n-th elements set of notes (see -- nkyT). The second Int parameter defines that n. overSoXSynthNGen3E5GS :: FilePath -> Int -> Int -> Float -> Float -> Float -> String -> String -> Intervals -> String -> IO () -- | 6G generalized function for overSoXSynthNGen3E5G where you -- provide your own Strengths. Note that Int arguments are -- used by liftInEnku in that order so it returns a Maybe -- number (actually frequency) for the n-th elements set of notes (see -- nkyT). The second Int parameter defines that n. overSoXSynthNGen3E6G :: FilePath -> Int -> Int -> Float -> Float -> Durations -> String -> Intervals -> Strengths -> Float -> IO () -- | A variant of overSoXSynthNGen3E6G where Strengths are -- obtained from a Ukrainian text specified as the last String -- argument. Note that Int arguments are used by liftInEnku -- in that order so it returns a Maybe number (actually frequency) -- for the n-th elements set of notes (see nkyT). The second -- Int parameter defines that n. overSoXSynthNGen3E6GS :: FilePath -> Int -> Int -> Float -> Float -> Durations -> String -> Intervals -> String -> Float -> IO () -- | A variant of overSoXSynthNGen3E6GS where Strengths and -- Durations are obtained from the same Ukrainian text specified -- as the last String argument. The third Float argument is -- an average duration of the sounds in seconds. Note that Int -- arguments are used by liftInEnku in that order so it returns a -- Maybe number (actually frequency) for the n-th elements set of -- notes (see nkyT). The second Int parameter defines that -- n. overSoXSynthNGen3E6GSu :: FilePath -> Int -> Int -> Float -> Float -> Float -> String -> Intervals -> String -> Float -> IO () -- | Generalized version of the overSoXSynthNGenE where instead of -- lifting with liftInEnkuV liftInParamsV is used. It -- allows e. g. to use some tonality. For more information, please, refer -- to filterInParams. overSoXSynthNGenEPar :: FilePath -> Params -> Float -> Float -> String -> IO () -- | Generalized version of the overSoXSynthNGenE4GS where instead -- of lifting with liftInEnkuV liftInParamsV is used. It -- allows e. g. to use some tonality. For more information, please, refer -- to filterInParams. overSoXSynthNGenE4GSPar :: FilePath -> Params -> Float -> Float -> String -> IO () -- | Generalized version of the overSoXSynthNGenE4G where instead of -- lifting with liftInEnkuV liftInParamsV is used. It -- allows e. g. to use some tonality. For more information, please, refer -- to filterInParams. overSoXSynthNGenE4GPar :: FilePath -> Params -> Float -> Durations -> IO () -- | Generalized version of the overSoXSynthNGen2E where instead of -- lifting with liftInEnkuV liftInParamsV is used. It -- allows e. g. to use some tonality. For more information, please, refer -- to filterInParams. overSoXSynthNGen2EPar :: FilePath -> Params -> Float -> Float -> String -> String -> IO () -- | Generalized version of the overSoXSynthNGen2E4GS where instead -- of lifting with liftInEnkuV liftInParamsV is used. It -- allows e. g. to use some tonality. For more information, please, refer -- to filterInParams. overSoXSynthNGen2E4GSPar :: FilePath -> Params -> Float -> Float -> String -> String -> IO () -- | Generalized version of the overSoXSynthNGen2E4G where instead -- of lifting with liftInEnkuV liftInParamsV is used. It -- allows e. g. to use some tonality. For more information, please, refer -- to filterInParams. overSoXSynthNGen2E4GPar :: FilePath -> Params -> Float -> Durations -> String -> IO () -- | Generalized version of the overSoXSynthNGen3E where instead of -- lifting with liftInEnkuV liftInParamsV is used. It -- allows e. g. to use some tonality. For more information, please, refer -- to filterInParams. overSoXSynthNGen3EPar :: FilePath -> Params -> Float -> Float -> Float -> String -> String -> String -> IO () -- | Generalized version of the overSoXSynthNGen3E4GS where instead -- of lifting with liftInEnkuV liftInParamsV is used. It -- allows e. g. to use some tonality. For more information, please, refer -- to filterInParams. overSoXSynthNGen3E4GSPar :: FilePath -> Params -> Float -> Float -> Float -> String -> String -> String -> IO () -- | Generalized version of the overSoXSynthNGen3E4G where instead -- of lifting with liftInEnkuV liftInParamsV is used. It -- allows e. g. to use some tonality. For more information, please, refer -- to filterInParams. overSoXSynthNGen3E4GPar :: FilePath -> Params -> Float -> Float -> Durations -> String -> String -> IO () -- | Generalized version of the overSoXSynthNGen3E5G where instead -- of lifting with liftInEnkuV liftInParamsV is used. It -- allows e. g. to use some tonality. For more information, please, refer -- to filterInParams. overSoXSynthNGen3E5GPar :: FilePath -> Params -> Float -> Float -> Durations -> String -> Intervals -> IO () -- | Generalized version of the overSoXSynthNGen3E5GS where instead -- of lifting with liftInEnkuV liftInParamsV is used. It -- allows e. g. to use some tonality. For more information, please, refer -- to filterInParams. overSoXSynthNGen3E5GSPar :: FilePath -> Params -> Float -> Float -> Float -> String -> String -> Intervals -> String -> IO () -- | Generalized version of the overSoXSynthNGen3E6G where instead -- of lifting with liftInEnkuV liftInParamsV is used. It -- allows e. g. to use some tonality. For more information, please, refer -- to filterInParams. overSoXSynthNGen3E6GPar :: FilePath -> Params -> Float -> Float -> Durations -> String -> Intervals -> Strengths -> Float -> IO () -- | Generalized version of the overSoXSynthNGen3E6GS where instead -- of lifting with liftInEnkuV liftInParamsV is used. It -- allows e. g. to use some tonality. For more information, please, refer -- to filterInParams. overSoXSynthNGen3E6GSPar :: FilePath -> Params -> Float -> Float -> Durations -> String -> Intervals -> String -> Float -> IO () -- | Generalized version of the overSoXSynthNGen3E6GSu where instead -- of lifting with liftInEnkuV liftInParamsV is used. It -- allows e. g. to use some tonality. For more information, please, refer -- to filterInParams. overSoXSynthNGen3E6GSuPar :: FilePath -> Params -> Float -> Float -> Float -> String -> Intervals -> String -> Float -> IO () -- | Helps to create experimental music from a file (or its part) and a -- Ukrainian text. It can also generate a timbre for the notes. Uses SoX -- inside. module Composition.Sound.ParseList parseTup :: String -> [String] containsExt :: [String] -> Bool -- | Predicate to check whether a list does not contain round parentheses -- or dash (a minus sign) as its elements. Is used internally in the -- parseStoLInts function to avoid lists with negative elements. canBePreParseV :: [String] -> Bool -- | Notification. Uses an Int limitation to avoid infinite lists. -- All arguments must be not negative. parseV :: Int -> [String] -> Maybe [Int] -- | From the 0.19.0.0 version. Can be used to parse also into infinite -- lists. parseVInf :: [String] -> Maybe [Int] -- | Parses a String being a list of Ints written with Haskell -- rules, e. g. "[1..]", "[2,4..45]", "[3,5,6,7,8,3]" etc. into a list of -- Int. If it is not possible or list is empty, returns []. -- Preceding whitespaces are ignored. An Int argument is used as a -- delimiter to avoid infinite lists. parseStoLInts :: Int -> String -> [Int] -- | Helps to create experimental music from a file (or its part) and a -- Ukrainian text. It can also generate a timbre for the notes. Uses SoX -- inside. module Composition.Sound.Process -- | Function records and processes the sound data needed to generate the -- "end.wav" file in the dobutokO2 function. Please, check -- before executing whether there is no "x.wav" file in the current -- directory, because it can be overwritten. recAndProcess :: FilePath -> Int -> IO String processD1 :: IO String d3H :: String -> String d4H :: String -> String d5H :: String -> String d7H :: String -> String d8H :: String -> String d9H :: String -> String -- | Helps to create experimental music from a file (or its part) and a -- Ukrainian text. It can also generate a timbre for the notes. Uses SoX -- inside. module Composition.Sound.Uniq -- | For the given frequency of the note it generates a list of the tuples, -- each one of which contains the harmonics' frequency and amplitude. For -- every given String structure of the uniqueness (see the -- documentation for ukrainian-phonetics-basic-array and -- uniqueness-periods packages) it produces the unique timbre. -- Partial function. uniqOvertonesV :: Float -> String -> OvertonesO -- | For the given frequency and a Ukrainian text it generates a musical -- sound with the timbre obtained from the Ukrainian text (see the -- documentation for ukrainian-phonetics-basic-array package). -- The timbre for another given text usually differs, but can be the -- same. The last one is only if the uniqueness structure and length are -- the same for both String. Otherwise, they differs. This gives -- an opportunity to practically and quickly synthesize differently -- sounding intervals. The main component of the sound includes the lower -- pure quint, which can be in the same octave or in the one with the -- number lower by one. Please, check before executing whether there is -- no "x.wav", "test*", "result*" files in the current directory, because -- they can be overwritten. uniqOverSoXSynth :: Float -> String -> IO () -- | Function to create a melody for the given arguments. The first -- String is used to provide a rhythm. The second one -- to -- provide a timbre. The timbre for another given text usually differs, -- but can be the same. This gives an opportunity to practically and -- quickly synthesize differently sounding intervals. The first -- Float argument from the range [0.01..1.0] is used as a maximum -- amplitude for Overtones. If it is set to 1.0 the overTones amplitudes -- are just maximum ones, otherwise they are multiplied by the parameter -- and this results in their becoming more silent ones. The main -- component of the sound is in the given octave with a number given by -- Int parameter. Besides, another main component of the sound -- includes the lower pure quint, which can be in the same octave or in -- the one with the number lower by one. The second Float argument -- is a basic sound duration. The default one is 0.5 (second). Please, -- check before executing whether there is no "x.wav", "test*", "result*" -- files in the current directory, because they can be overwritten. uniqOverSoXSynthN :: Int -> Float -> Float -> String -> String -> [Float] -> IO () -- | For the given frequency of the note it generates a list of the tuples, -- each one of which contains the harmonics' frequency and amplitude. For -- every given first String argument structure of the uniqueness -- (see the documentation for ukrainian-phonetics-basic-array -- and uniqueness-periods packages) it produces the unique -- timbre. The second String is used to produce the signs for -- harmonics coefficients. Partial function. uniqOvertonesV2 :: Float -> String -> String -> OvertonesO -- | For the given frequency and a Ukrainian text it generates a musical -- sound with the timbre obtained from the Ukrainian text (see the -- documentation for ukrainian-phonetics-basic-array package). -- The timbre for another given text usually differs, but can be the -- same. The last one is only if the uniqueness structure and length are -- the same for both String. Otherwise, they differs. This gives -- an opportunity to practically and quickly synthesize differently -- sounding intervals. The main component of the sound includes the lower -- pure quint, which can be in the same octave or in the one with the -- number lower by one. Please, check before executing whether there is -- no "x.wav", "test*", "result*" files in the current directory, because -- they can be overwritten. The second String argument is used to -- define signs for the harmonics coefficients for Overtones. uniqOverSoXSynth2 :: Float -> String -> String -> IO () -- | Function to create a melody for the given arguments. The first -- String is used to provide a rhythm. The second one -- to -- provide a timbre. The timbre for another given text usually differs, -- but can be the same. This gives an opportunity to practically and -- quickly synthesize differently sounding intervals. The first -- Float argument from the range [0.01..1.0] is used as a maximum -- amplitude for Overtones. If it is set to 1.0 the overTones amplitudes -- are just maximum ones, otherwise they are multiplied by the parameter -- and this results in their becoming more silent ones. The main -- component of the sound is in the given octave with a number given by -- Int parameter. Besides, another main component of the sound -- includes the lower pure quint, which can be in the same octave or in -- the one with the number lower by one. The second Float argument -- is a basic sound duration. The default one is 0.5 (second). Please, -- check before executing whether there is no "x.wav", "test*", "result*" -- files in the current directory, because they can be overwritten. The -- third String argument is used to define signs of the harmonics -- coefficients in the generated sounds. uniqOverSoXSynthN3 :: Int -> Float -> Float -> String -> String -> String -> [Float] -> IO () -- | Function to create a melody for the given arguments. The first -- String is used to provide a rhythm. The second one -- to -- provide a timbre. The timbre for another given text usually differs, -- but can be the same. This gives an opportunity to practically and -- quickly synthesize differently sounding intervals. The first -- Float argument from the range [0.01..1.0] is used as a maximum -- amplitude for Overtones. If it is set to 1.0 the overTones amplitudes -- are just maximum ones, otherwise they are multiplied by the parameter -- and this results in their becoming more silent ones. The main -- component of the sound is in the given octave with a number given by -- Int parameter. Besides, another main component of the sound -- includes the lower pure quint, which can be in the same octave or in -- the one with the number lower by one. The second Float argument -- is a basic sound duration. The default one is 0.5 (second). Please, -- check before executing whether there is no "x.wav", "test*", "result*" -- files in the current directory, because they can be overwritten. The -- third String argument is used to define signs of the harmonics -- coefficients in the generated sounds. The fourth String -- argument is used to define the intervals for the notes if any. The -- third Float parameter basically is used to define in how many -- times the volume for the second lower note is less than the volume of -- the main note. If it is rather great, it can signal that the volume -- for the second note overTones are greater than for the main note -- obetones. The last one is experimental feature. uniqOverSoXSynthN4 :: Int -> Float -> Float -> Float -> String -> String -> String -> String -> [Float] -> IO () -- | Similar to uniqOverSoXSynthN, but uses a sound file to obtain -- the information analogous to Array Int in the latter -- one. Besides, the function lifts the frequencies to the octave with -- the given by Int parameter number (better to use from the range -- [1..8]). The first Float argument from the range [0.01..1.0] is -- used as a maximum amplitude for Overtones. If it is set to 1.0 the -- overTones amplitudes are just the maximum ones, otherwise they are -- multiplied by the parameter and this results in their becoming more -- silent ones. The second Float argument is a basic sound -- duration. The default one is 0.5 (second). Please, check before -- executing whether there is no "x.wav", "test*", "result*" and -- "end.wav" files in the current directory, because they can be -- overwritten. -- -- For better usage the FilePath should be a filepath for the .wav -- file. uniqOverSoXSynthNGen :: FilePath -> Int -> Float -> Float -> String -> String -> IO () -- | Similar to uniqOverSoXSynthN, but uses a sound file to obtain -- the information analogous to Array Int in the latter -- one. Besides, the function lifts the frequencies to the octave with -- the given by Int parameter number (better to use from the range -- [1..8]). The first Float argument from the range [0.01..1.0] is -- used as a maximum amplitude for Overtones. If it is set to 1.0 the -- overTones amplitudes are just the maximum ones, otherwise they are -- multiplied by the parameter and this results in their becoming more -- silent ones. The second Float argument is a basic sound -- duration. The default one is 0.5 (second). Please, check before -- executing whether there is no "x.wav", "test*", "result*" and -- "end.wav" files in the current directory, because they can be -- overwritten. -- -- For better usage the FilePath should be a filepath for the .wav -- file. The third String argument is used to define signs of the -- harmonics coefficients in the generated sounds. uniqOverSoXSynthNGen3 :: FilePath -> Int -> Float -> Float -> String -> String -> String -> IO () -- | Similar to uniqOverSoXSynthN, but uses a sound file to obtain -- the information analogous to Array Int in the latter -- one. Besides, the function lifts the frequencies to the octave with -- the given by Int parameter number (better to use from the range -- [1..8]). The first Float argument from the range [0.01..1.0] is -- used as a maximum amplitude for Overtones. If it is set to 1.0 the -- overTones amplitudes are just the maximum ones, otherwise they are -- multiplied by the parameter and this results in their becoming more -- silent ones. The second Float argument is a basic sound -- duration. The default one is 0.5 (second). Please, check before -- executing whether there is no "x.wav", "test*", "result*" and -- "end.wav" files in the current directory, because they can be -- overwritten. -- -- For better usage the FilePath should be a filepath for the .wav -- file. The third String argument is used to define signs of the -- harmonics coefficients in the generated sounds. The fourth -- String argument is used to define the intervals for the notes -- if any. The third Float parameter basically is used to define -- in how many times the volume for the second lower note is less than -- the volume of the main note. If it is rather great, it can signal that -- the volume for the second note overTones are greater than for the main -- note obetones. The last one is an experimental feature. uniqOverSoXSynthNGen4 :: FilePath -> Int -> Float -> Float -> Float -> String -> String -> String -> String -> IO () -- | Similar to uniqOverSoXSynthNGen, but uses additional second -- Int parameter. It defines, to which n-th elements set (see -- nkyT) belongs the obtained higher notes in the intervals. If -- that parameter equals to 12, then the function is practically -- equivalent to uniqOverSoXSynthNGen. To obtain its -- modifications, please, use 2, 3, 4, 6, or 9. Note that Int -- arguments are used by liftInEnku in that order so it returns a -- Maybe number (actually frequency) for the n-th elements set of -- notes (see nkyT). The second Int parameter defines that -- n. uniqOverSoXSynthNGenE :: FilePath -> Int -> Int -> Float -> Float -> String -> String -> IO () -- | Similar to uniqOverSoXSynthNGen3, but uses additional second -- Int parameter. It defines, to which n-th elements set (see -- nkyT) belongs the obtained higher notes in the intervals. If -- that parameter equals to 12, then the function is practically -- equivalent to uniqOverSoXSynthNGen3. To obtain its -- modifications, please, use 2, 3, 4, 6, or 9. Note that Int -- arguments are used by liftInEnku in that order so it returns a -- Maybe number (actually frequency) for the n-th elements set of -- notes (see nkyT). The second Int parameter defines that -- n. uniqOverSoXSynthNGen3E :: FilePath -> Int -> Int -> Float -> Float -> String -> String -> String -> IO () -- | Similar to uniqOverSoXSynthNGen4, but uses additional second -- Int parameter. It defines, to which n-th elements set (see -- nkyT) belongs the obtained higher notes in the intervals. If -- that parameter equals to 12, then the function is practically -- equivalent to uniqOverSoXSynthNGen4. To obtain its -- modifications, please, use 2, 3, 4, 6, or 9. Note that Int -- arguments are used by liftInEnku in that order so it returns a -- Maybe number (actually frequency) for the n-th elements set of -- notes (see nkyT). The second Int parameter defines that -- n. uniqOverSoXSynthNGen4E :: FilePath -> Int -> Int -> Float -> Float -> Float -> String -> String -> String -> String -> IO () -- | 4G generalized variant of the uniqOverSoXSynthN where you -- specify your own Durations. uniqOverSoXSynthN4G :: Int -> Float -> Durations -> String -> [Float] -> IO () -- | 4G generalized variant of the uniqOverSoXSynthN3 where you -- specify your own Durations. uniqOverSoXSynthN34G :: Int -> Float -> Durations -> String -> String -> [Float] -> IO () -- | 4G generalized variant of the uniqOverSoXSynthN4 where you -- specify your own Durations. uniqOverSoXSynthN44G :: Int -> Float -> Float -> Durations -> String -> String -> String -> [Float] -> IO () -- | 4G genaralized version of the uniqOverSoXSynthNGenE where you -- provide your own Durations. Note that Int arguments are -- used by liftInEnku in that order so it returns a Maybe -- number (actually frequency) for the n-th elements set of notes (see -- nkyT). The second Int parameter defines that n. uniqOverSoXSynthNGenE4G :: FilePath -> Int -> Int -> Float -> Durations -> String -> IO () -- | 4G genaralized version of the uniqOverSoXSynthNGen3E where you -- provide your own Durations. Note that Int arguments are -- used by liftInEnku in that order so it returns a Maybe -- number (actually frequency) for the n-th elements set of notes (see -- nkyT). The second Int parameter defines that n. uniqOverSoXSynthNGen3E4G :: FilePath -> Int -> Int -> Float -> Durations -> String -> String -> IO () -- | 4G genaralized version of the uniqOverSoXSynthNGen4E where you -- provide your own Durations. Note that Int arguments are -- used by liftInEnku in that order so it returns a Maybe -- number (actually frequency) for the n-th elements set of notes (see -- nkyT). The second Int parameter defines that n. uniqOverSoXSynthNGen4E4G :: FilePath -> Int -> Int -> Float -> Float -> Durations -> String -> String -> String -> IO () -- | Variant of the uniqOverSoXSynthN4G function where -- Durations are obtained from the String using -- str2Durations function. Helps to create a speech-like -- composition. uniqOverSoXSynthN4GS :: Int -> Float -> Float -> String -> String -> [Float] -> IO () -- | Variant of the uniqOverSoXSynthN34G where Durations are -- obtained from the String using str2Durations function. -- Helps to create a speech-like composition. uniqOverSoXSynthN34GS :: Int -> Float -> Float -> String -> String -> String -> [Float] -> IO () -- | Variant of the uniqOverSoXSynthN44G where Durations are -- obtained from the String using str2Durations function. -- Helps to create a speech-like composition. uniqOverSoXSynthN44GS :: Int -> Float -> Float -> Float -> String -> String -> String -> String -> [Float] -> IO () -- | Variant of the uniqOverSoXSynthNGenE4G where Durations -- are obtained from the String using str2Durations -- function. Helps to create a speech-like composition. Note that -- Int arguments are used by liftInEnku in that order so it -- returns a Maybe number (actually frequency) for the n-th -- elements set of notes (see nkyT). The second Int -- parameter defines that n. uniqOverSoXSynthNGenE4GS :: FilePath -> Int -> Int -> Float -> Float -> String -> String -> IO () -- | Variant of the uniqOverSoXSynthNGen3E4G where Durations -- are obtained from the String using str2Durations -- function. Helps to create a speech-like composition. Note that -- Int arguments are used by liftInEnku in that order so it -- returns a Maybe number (actually frequency) for the n-th -- elements set of notes (see nkyT). The second Int -- parameter defines that n. uniqOverSoXSynthNGen3E4GS :: FilePath -> Int -> Int -> Float -> Float -> String -> String -> String -> IO () -- | Variant of the uniqOverSoXSynthNGen4E4G where Durations -- are obtained from the String using str2Durations -- function. Helps to create a speech-like composition. Note that -- Int arguments are used by liftInEnku in that order so it -- returns a Maybe number (actually frequency) for the n-th -- elements set of notes (see nkyT). The second Int -- parameter defines that n. uniqOverSoXSynthNGen4E4GS :: FilePath -> Int -> Int -> Float -> Float -> Float -> String -> String -> String -> String -> IO () -- | 5G generalized variant of the uniqOverSoXSynthN44G where you -- specify your own Intervals. uniqOverSoXSynthN45G :: Int -> Float -> Float -> Durations -> String -> String -> Intervals -> [Float] -> IO () -- | 5G genaralized version of the uniqOverSoXSynthNGen4E where you -- provide your own Durations and Intervals. Note that -- Int arguments are used by liftInEnku in that order so it -- returns a Maybe number (actually frequency) for the n-th -- elements set of notes (see nkyT). The second Int -- parameter defines that n. uniqOverSoXSynthNGen4E5G :: FilePath -> Int -> Int -> Float -> Float -> Durations -> String -> String -> Intervals -> IO () -- | Variant of the uniqOverSoXSynthN45G where Intervals are -- obtained from the String using intervalsFromStringG -- function. Helps to create a speech-like composition. uniqOverSoXSynthN45GS :: Int -> Float -> Float -> Float -> String -> String -> String -> Intervals -> String -> [Float] -> IO () -- | Variant of the uniqOverSoXSynthNGen4E5G where Intervals -- are obtained from the String using intervalsFromStringG -- function. Helps to create a speech-like composition. Note that -- Int arguments are used by liftInEnku in that order so it -- returns a Maybe number (actually frequency) for the n-th -- elements set of notes (see nkyT). The second Int -- parameter defines that n. uniqOverSoXSynthNGen4E5GS :: FilePath -> Int -> Int -> Float -> Float -> Float -> String -> String -> String -> Intervals -> String -> IO () -- | 6G generalized function for uniqOverSoXSynthNGen4E5G where you -- provide your own Strengths. Note that Int arguments are -- used by liftInEnku in that order so it returns a Maybe -- number (actually frequency) for the n-th elements set of notes (see -- nkyT). The second Int parameter defines that n. uniqOverSoXSynthNGen4E6G :: FilePath -> Int -> Int -> Float -> Float -> Durations -> String -> String -> Intervals -> Strengths -> Float -> IO () -- | Variant of the uniqOverSoXSynthN46G where Strengths are -- obtained from the String using str2Volume function. -- Helps to create a speech-like composition. uniqOverSoXSynthN46GS :: Int -> Float -> Float -> Float -> String -> String -> String -> Intervals -> String -> [Float] -> String -> Float -> IO () -- | A variant of uniqOverSoXSynthN46GS where Strengths and -- Durations are obtained from the same Ukrainian text specified -- as the last String argument. The second Float argument -- is an average duration of the sounds in seconds. Note that Int -- arguments are used by liftInEnku in that order so it returns a -- Maybe number (actually frequency) for the n-th elements set of -- notes (see nkyT). The second Int parameter defines that -- n. uniqOverSoXSynthN46GSu :: Int -> Float -> Float -> Float -> String -> String -> Intervals -> String -> [Float] -> String -> Float -> IO () -- | A variant of uniqOverSoXSynthNGen4E6G where Strengths -- are obtained from a Ukrainian text specified as the last String -- argument. Note that Int arguments are used by liftInEnku -- in that order so it returns a Maybe number (actually frequency) -- for the n-th elements set of notes (see nkyT). The second -- Int parameter defines that n. uniqOverSoXSynthNGen4E6GS :: FilePath -> Int -> Int -> Float -> Float -> Float -> String -> String -> String -> Intervals -> String -> String -> Float -> IO () -- | A variant of uniqOverSoXSynthNGen4E6GS where Strengths -- and Durations are obtained from the same Ukrainian text -- specified as the last String argument. The second Float -- argument is an average duration of the sounds in seconds. Note that -- Int arguments are used by liftInEnku in that order so it -- returns a Maybe number (actually frequency) for the n-th -- elements set of notes (see nkyT). The second Int -- parameter defines that n. uniqOverSoXSynthNGen4E6GSu :: FilePath -> Int -> Int -> Float -> Float -> Float -> String -> String -> Intervals -> String -> String -> Float -> IO () -- | Generalized version of the uniqOverSoXSynthNGenE where instead -- of lifting with liftInEnkuV liftInParamsV is used. It -- allows e. g. to use some tonality. For more information, please, refer -- to filterInParams. uniqOverSoXSynthNGenEPar :: FilePath -> Params -> Float -> Float -> String -> String -> IO () -- | Generalized version of the uniqOverSoXSynthNGenE4GS where -- instead of lifting with liftInEnkuV liftInParamsV is -- used. It allows e. g. to use some tonality. For more information, -- please, refer to filterInParams. uniqOverSoXSynthNGenE4GSPar :: FilePath -> Params -> Float -> Float -> String -> String -> IO () -- | Generalized version of the uniqOverSoXSynthNGenE4G where -- instead of lifting with liftInEnkuV liftInParamsV is -- used. It allows e. g. to use some tonality. For more information, -- please, refer to filterInParams. uniqOverSoXSynthNGenE4GPar :: FilePath -> Params -> Float -> Durations -> String -> IO () -- | Generalized version of the uniqOverSoXSynthNGen3E where instead -- of lifting with liftInEnkuV liftInParamsV is used. It -- allows e. g. to use some tonality. For more information, please, refer -- to filterInParams. uniqOverSoXSynthNGen3EPar :: FilePath -> Params -> Float -> Float -> String -> String -> String -> IO () -- | Generalized version of the uniqOverSoXSynthNGen3E4GS where -- instead of lifting with liftInEnkuV liftInParamsV is -- used. It allows e. g. to use some tonality. For more information, -- please, refer to filterInParams. uniqOverSoXSynthNGen3E4GSPar :: FilePath -> Params -> Float -> Float -> String -> String -> String -> IO () -- | Generalized version of the uniqOverSoXSynthNGen3E4G where -- instead of lifting with liftInEnkuV liftInParamsV is -- used. It allows e. g. to use some tonality. For more information, -- please, refer to filterInParams. uniqOverSoXSynthNGen3E4GPar :: FilePath -> Params -> Float -> Durations -> String -> String -> IO () -- | Generalized version of the uniqOverSoXSynthNGen4E where instead -- of lifting with liftInEnkuV liftInParamsV is used. It -- allows e. g. to use some tonality. For more information, please, refer -- to filterInParams. uniqOverSoXSynthNGen4EPar :: FilePath -> Params -> Float -> Float -> Float -> String -> String -> String -> String -> IO () -- | Generalized version of the uniqOverSoXSynthNGen4E4GS where -- instead of lifting with liftInEnkuV liftInParamsV is -- used. It allows e. g. to use some tonality. For more information, -- please, refer to filterInParams. uniqOverSoXSynthNGen4E4GSPar :: FilePath -> Params -> Float -> Float -> Float -> String -> String -> String -> String -> IO () -- | Generalized version of the uniqOverSoXSynthNGen4E4G where -- instead of lifting with liftInEnkuV liftInParamsV is -- used. It allows e. g. to use some tonality. For more information, -- please, refer to filterInParams. uniqOverSoXSynthNGen4E4GPar :: FilePath -> Params -> Float -> Float -> Durations -> String -> String -> String -> IO () -- | Generalized version of the uniqOverSoXSynthNGen4E5G where -- instead of lifting with liftInEnkuV liftInParamsV is -- used. It allows e. g. to use some tonality. For more information, -- please, refer to filterInParams. uniqOverSoXSynthNGen4E5GPar :: FilePath -> Params -> Float -> Float -> Durations -> String -> String -> Intervals -> IO () -- | Generalized version of the uniqOverSoXSynthNGen4E5GS where -- instead of lifting with liftInEnkuV liftInParamsV is -- used. It allows e. g. to use some tonality. For more information, -- please, refer to filterInParams. uniqOverSoXSynthNGen4E5GSPar :: FilePath -> Params -> Float -> Float -> Float -> String -> String -> String -> Intervals -> String -> IO () -- | Generalized version of the uniqOverSoXSynthNGen4E6G where -- instead of lifting with liftInEnkuV liftInParamsV is -- used. It allows e. g. to use some tonality. For more information, -- please, refer to filterInParams. uniqOverSoXSynthNGen4E6GPar :: FilePath -> Params -> Float -> Float -> Durations -> String -> String -> Intervals -> Strengths -> Float -> IO () -- | Generalized version of the uniqOverSoXSynthNGen4E6GS where -- instead of lifting with liftInEnkuV liftInParamsV is -- used. It allows e. g. to use some tonality. For more information, -- please, refer to filterInParams. uniqOverSoXSynthNGen4E6GSPar :: FilePath -> Params -> Float -> Float -> Float -> String -> String -> String -> Intervals -> String -> String -> Float -> IO () -- | Generalized version of the uniqOverSoXSynthNGen4E6GSu where -- instead of lifting with liftInEnkuV liftInParamsV is -- used. It allows e. g. to use some tonality. For more information, -- please, refer to filterInParams. uniqOverSoXSynthNGen4E6GSuPar :: FilePath -> Params -> Float -> Float -> Float -> String -> String -> Intervals -> String -> String -> Float -> IO () -- | Helps to create experimental music from a file (or its part) and a -- Ukrainian text. It can also generate a timbre for the notes. Uses SoX -- inside. module Composition.Sound.Executable -- | Function that actually makes processing in the dobutokO2 -- executable. Please, check before executing whether there is no -- "x.wav", "test*", "result*" and "end*" files in the current directory, -- because they can be overwritten. Since 0.44.0.0 the behaviour for "7" -- as option (dobutokO2H7) changed. Now, it does not reduce noise. dobutokO2 :: IO () -- | Used to obtain one multiline specially formatted textual input and do -- the full processment for the sound. The function generates overtones -- using additional String and allows maximum control over the -- parameters. Besides, all the needed information it obtains from the -- singular formatted input, which can be ended with a keyboard keys -- combination that means an end of input (e. g. for Unices, that is -- probably Ctrl + D). '@' are separators for the input parts for their -- respective parts. For more information about the format of the single -- input, see: -- -- -- 'https://drive.google.com/open?id=10Z_GRZR4TKoL5KXfqPm-t-4humuHN0O4' -- -- The file is also provided with the package as text.dat.txt. The last -- two or three inputs (an input just here means a textual input between -- two '@') can be omitted, the program will work also but with less -- control for the user possible. dobutokO2H7 :: Bool -> String -> FilePath -> IO () -- | Actually works as pAnR_ function. dobutokO2H9 :: Bool -> String -> FilePath -> IO () -- | Actually works as pAnR_2G function. dobutokO2H92 :: Bool -> String -> FilePath -> IO () -- | Takes textual input from the stdin and prints it as one String -- to the stdout. o2help :: Bool -> String -> FilePath -> IO () -- | A program and a library to create experimental music from a mono audio -- and a Ukrainian text. module Main main :: IO ()