| Copyright | (c) OleksandrZhabenko 2020-2021 |
|---|---|
| License | MIT |
| Maintainer | olexandr543@yahoo.com |
| Stability | Experimental |
| Safe Haskell | None |
| Language | Haskell2010 |
Composition.Sound.DIS5G6G
Description
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.
Synopsis
- syllableStr :: Int -> String -> [Int]
- intervalsFromString :: String -> Intervals
- vStrToVInt :: FlowSound -> Intervals
- strToInt :: Sound8 -> Int
- durationsAver :: Durations -> Float -> Durations
- str2Durat1 :: Sound8 -> Float
- str2Durations :: String -> Float -> Durations
- str2Vol1 :: String -> Float
- str2Volume :: String -> Strengths
- doublesAveragedA :: Array Int Float -> Float -> Array Int Float
- doublesAveragedG :: Array Int Float -> Float -> Array Int Float
- equalize2Vec :: Array Int [a] -> Array Int [a]
- intervalsFromStringG :: Intervals -> String -> Intervals
- silentSound2G :: FilePath -> Float -> String -> IO ()
- strengthsAver :: Strengths -> Float -> Strengths
- strengthsDbAver :: StrengthsDb -> Float -> StrengthsDb
- apply6G :: Strengths -> String -> String -> IO ()
- apply6G2 :: Strengths -> String -> String -> Float -> IO ()
- apply6GS :: String -> String -> String -> IO ()
- apply6GS2 :: String -> String -> String -> Float -> IO ()
Auxiliary functions
syllableStr :: Int -> String -> [Int] #
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.
Working with Intervals, Durations, Strengths and StrengthDb
intervalsFromString :: String -> Intervals #
Function is used to get numbers of intervals from a Ukrainian String. It is used internally in the uniqOverSoXSynthN4 function.
vStrToVInt :: FlowSound -> Intervals Source #
The default way to get Intervals from a converted Ukrainian text.
strToInt :: Sound8 -> Int Source #
The default way to get number of semi-tones between notes in a single element of Intervals.
durationsAver :: Durations -> Float -> Durations Source #
Durations accounting the desired average duration.
str2Durat1 :: Sound8 -> Float Source #
A conversion to the Float that is used inside str2Durations.
intervalsFromStringG :: Intervals -> String -> Intervals Source #
Generatlized version of the intervalsFromString with a possibility to specify your own Intervals.
silentSound2G :: FilePath -> Float -> String -> IO () Source #
For the given non-existing FilePath for a sound file supported by SoX generates a silence of the specified
duration and quality (see, soxBasicParams).
strengthsAver :: Strengths -> Float -> Strengths Source #
Strengths accounting the desired average strength.
strengthsDbAver :: StrengthsDb -> Float -> StrengthsDb Source #
StrengthsDb accounting the desired average strength in dB.
New generalized 6G functions that works with Strengths
apply6G :: Strengths -> String -> String -> IO () Source #
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.
apply6GS :: String -> String -> String -> IO () Source #
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.