dobutokO2-0.43.0.0: Helps to create experimental music from a file (or its part) and a Ukrainian text.

Copyright(c) OleksandrZhabenko 2020
LicenseMIT
StabilityExperimental
Safe HaskellNone
LanguageHaskell2010

DobutokO.Sound.DIS5G6G

Contents

Description

Maintainer : olexandr543@yahoo.com

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

Auxiliary functions

syllableStr :: Int -> String -> [Int] Source #

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 Source #

Function is used to get numbers of intervals from a Ukrainian String. It is used internally in the uniqOverSoXSynthN4 function.

vStrToVInt :: Vector String -> Intervals Source #

The default way to get Intervals from a converted Ukrainian text.

strToInt :: String -> 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 :: String -> Float Source #

A conversion to the Float that is used inside str2Durations.

str2Durations :: String -> Float -> Durations Source #

A full conversion to the Durations from a Ukrainian text.

str2Vol1 :: String -> Float Source #

A conversion to the Float that is used inside str2Volume.

str2Volume :: String -> Strengths Source #

A full conversion to the Strengths from a Ukrainian text.

doublesAveragedA :: Vector Float -> Float -> Vector Float Source #

Arithmetic average for the Vector is used as a weight for a duration.

doublesAveragedG :: Vector Float -> Float -> Vector Float Source #

Geometric average for the Vector is used as a weight for a strength.

equalize2Vec :: Vector (Vector a) -> Vector (Vector a) Source #

Auxiliar function to make all vectors in a Vector equal by length (the minimum one).

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.

apply6G2 :: Strengths -> String -> String -> Float -> IO () Source #

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.

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 silent ones. Otherwise, it leads to likely noise sounding or errors.

apply6GS2 :: String -> String -> String -> Float -> IO () Source #

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.