Copyright | (c) OleksandrZhabenko 2020 |
---|---|
License | MIT |
Stability | Experimental |
Safe Haskell | None |
Language | Haskell2010 |
- Library and executable functions
- Extended generation using enky functionality
- Auxiliary functions
- New 4G functions to work with Durations
- New 5G functions to work also with Intervals
- New 6G function to work also with Strengths
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
- overSoXSynthN :: Int -> Double -> Double -> String -> Vector Double -> IO ()
- overTones2 :: Double -> String -> OvertonesO
- overSoXSynth2 :: Double -> String -> IO ()
- overSoXSynthN2 :: Int -> Double -> Double -> String -> String -> Vector Double -> IO ()
- overSoXSynthN3 :: Int -> Double -> Double -> Double -> String -> String -> String -> Vector Double -> IO ()
- overSoXSynthDN :: Double -> String -> IO ()
- overSoXSynth2DN :: Double -> Double -> String -> IO ()
- overSoXSynthNGen :: FilePath -> Int -> Double -> Double -> String -> IO ()
- overSoXSynthNGen2 :: FilePath -> Int -> Double -> Double -> String -> String -> IO ()
- overSoXSynthNGen3 :: FilePath -> Int -> Double -> Double -> Double -> String -> String -> String -> IO ()
- uniqOvertonesV :: Double -> String -> OvertonesO
- uniqOverSoXSynth :: Double -> String -> IO ()
- uniqOverSoXSynthN :: Int -> Double -> Double -> String -> String -> Vector Double -> IO ()
- uniqOvertonesV2 :: Double -> String -> String -> OvertonesO
- uniqOverSoXSynth2 :: Double -> String -> String -> IO ()
- uniqOverSoXSynthN3 :: Int -> Double -> Double -> String -> String -> String -> Vector Double -> IO ()
- uniqOverSoXSynthN4 :: Int -> Double -> Double -> Double -> String -> String -> String -> String -> Vector Double -> IO ()
- uniqOverSoXSynthNGen :: FilePath -> Int -> Double -> Double -> String -> String -> IO ()
- uniqOverSoXSynthNGen3 :: FilePath -> Int -> Double -> Double -> String -> String -> String -> IO ()
- uniqOverSoXSynthNGen4 :: FilePath -> Int -> Double -> Double -> Double -> String -> String -> String -> String -> IO ()
- octaveUp :: Double -> Double
- octaveDown :: Double -> Double
- whichOctave :: Double -> Maybe Int
- liftInOctave :: Int -> Double -> Maybe Double
- liftInOctaveV :: Int -> Vector Double -> Vector Double
- dviykyTA :: NotePairs
- triykyTA :: NotePairs
- chetvirkyTA :: NotePairs
- p'yatirkyTA :: NotePairs
- shistkyTA :: NotePairs
- simkyTA :: NotePairs
- visimkyTA :: NotePairs
- dev'yatkyTA :: NotePairs
- desyatkyTA :: NotePairs
- odynadtsyatkyTA :: NotePairs
- octavesTA :: NotePairs
- overSoXSynthNGenE :: FilePath -> Int -> Int -> Double -> Double -> String -> IO ()
- overSoXSynthNGen2E :: FilePath -> Int -> Int -> Double -> Double -> String -> String -> IO ()
- overSoXSynthNGen3E :: FilePath -> Int -> Int -> Double -> Double -> Double -> String -> String -> String -> IO ()
- uniqOverSoXSynthNGenE :: FilePath -> Int -> Int -> Double -> Double -> String -> String -> IO ()
- uniqOverSoXSynthNGen3E :: FilePath -> Int -> Int -> Double -> Double -> String -> String -> String -> IO ()
- uniqOverSoXSynthNGen4E :: FilePath -> Int -> Int -> Double -> Double -> Double -> String -> String -> String -> String -> IO ()
- signsFromString :: Int -> String -> Vector Int
- overSoXSynthN4G :: Int -> Double -> Durations -> Vector Double -> IO ()
- overSoXSynthN24G :: Int -> Double -> Durations -> String -> Vector Double -> IO ()
- overSoXSynthN34G :: Int -> Double -> Double -> Durations -> String -> String -> Vector Double -> IO ()
- overSoXSynthNGenE4G :: FilePath -> Int -> Int -> Double -> Durations -> IO ()
- overSoXSynthNGen2E4G :: FilePath -> Int -> Int -> Double -> Durations -> String -> IO ()
- overSoXSynthNGen3E4G :: FilePath -> Int -> Int -> Double -> Double -> Durations -> String -> String -> IO ()
- uniqOverSoXSynthN4G :: Int -> Double -> Durations -> String -> Vector Double -> IO ()
- uniqOverSoXSynthN34G :: Int -> Double -> Durations -> String -> String -> Vector Double -> IO ()
- uniqOverSoXSynthN44G :: Int -> Double -> Double -> Durations -> String -> String -> String -> Vector Double -> IO ()
- uniqOverSoXSynthNGenE4G :: FilePath -> Int -> Int -> Double -> Durations -> String -> IO ()
- uniqOverSoXSynthNGen3E4G :: FilePath -> Int -> Int -> Double -> Durations -> String -> String -> IO ()
- uniqOverSoXSynthNGen4E4G :: FilePath -> Int -> Int -> Double -> Double -> Durations -> String -> String -> String -> IO ()
- overSoXSynthN4GS :: Int -> Double -> Double -> String -> Vector Double -> IO ()
- overSoXSynthN24GS :: Int -> Double -> Double -> String -> String -> Vector Double -> IO ()
- overSoXSynthN34GS :: Int -> Double -> Double -> Double -> String -> String -> String -> Vector Double -> IO ()
- overSoXSynthNGenE4GS :: FilePath -> Int -> Int -> Double -> Double -> String -> IO ()
- overSoXSynthNGen2E4GS :: FilePath -> Int -> Int -> Double -> Double -> String -> String -> IO ()
- overSoXSynthNGen3E4GS :: FilePath -> Int -> Int -> Double -> Double -> Double -> String -> String -> String -> IO ()
- uniqOverSoXSynthN4GS :: Int -> Double -> Double -> String -> String -> Vector Double -> IO ()
- uniqOverSoXSynthN34GS :: Int -> Double -> Double -> String -> String -> String -> Vector Double -> IO ()
- uniqOverSoXSynthN44GS :: Int -> Double -> Double -> Double -> String -> String -> String -> String -> Vector Double -> IO ()
- uniqOverSoXSynthNGenE4GS :: FilePath -> Int -> Int -> Double -> Double -> String -> String -> IO ()
- uniqOverSoXSynthNGen3E4GS :: FilePath -> Int -> Int -> Double -> Double -> String -> String -> String -> IO ()
- uniqOverSoXSynthNGen4E4GS :: FilePath -> Int -> Int -> Double -> Double -> Double -> String -> String -> String -> String -> IO ()
- overSoXSynthN35G :: Int -> Double -> Double -> Durations -> String -> Intervals -> Vector Double -> IO ()
- overSoXSynthNGen3E5G :: FilePath -> Int -> Int -> Double -> Double -> Durations -> String -> Intervals -> IO ()
- uniqOverSoXSynthN45G :: Int -> Double -> Double -> Durations -> String -> String -> Intervals -> Vector Double -> IO ()
- uniqOverSoXSynthNGen4E5G :: FilePath -> Int -> Int -> Double -> Double -> Durations -> String -> String -> Intervals -> IO ()
- overSoXSynthN35GS :: Int -> Double -> Double -> Double -> String -> String -> Intervals -> String -> Vector Double -> IO ()
- overSoXSynthNGen3E5GS :: FilePath -> Int -> Int -> Double -> Double -> Double -> String -> String -> Intervals -> String -> IO ()
- uniqOverSoXSynthN45GS :: Int -> Double -> Double -> Double -> String -> String -> String -> Intervals -> String -> Vector Double -> IO ()
- uniqOverSoXSynthNGen4E5GS :: FilePath -> Int -> Int -> Double -> Double -> Double -> String -> String -> String -> Intervals -> String -> IO ()
- overSoXSynthNGen3E6G :: FilePath -> Int -> Int -> Double -> Double -> Durations -> String -> Intervals -> Strengths -> Double -> IO ()
- uniqOverSoXSynthNGen4E6G :: FilePath -> Int -> Int -> Double -> Double -> Durations -> String -> String -> Intervals -> Strengths -> Double -> IO ()
- overSoXSynthNGen3E6GS :: FilePath -> Int -> Int -> Double -> Double -> Durations -> String -> Intervals -> String -> Double -> IO ()
- uniqOverSoXSynthNGen4E6GS :: FilePath -> Int -> Int -> Double -> Double -> Double -> String -> String -> String -> Intervals -> String -> String -> Double -> IO ()
Library and executable functions
For the fixed timbre
overSoXSynthN :: Int -> Double -> Double -> String -> Vector Double -> IO () Source #
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 Double
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 Double
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.
For the fixed timbre with different signs for harmonics coefficients
overTones2 :: Double -> String -> OvertonesO Source #
overSoXSynth2 :: Double -> String -> IO () Source #
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.
overSoXSynthN2 :: Int -> Double -> Double -> String -> String -> Vector Double -> IO () Source #
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 Double
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 Double
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.
overSoXSynthN3 :: Int -> Double -> Double -> Double -> String -> String -> String -> Vector Double -> IO () Source #
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 Double
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 Double
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 Double
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.
Use additional parameters
overSoXSynthDN :: Double -> String -> IO () Source #
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
.
overSoXSynth2DN :: Double -> Double -> String -> IO () Source #
Similar to overSoXSynthDN
except that the resulting duration is specified by the second Double
parameter in seconds. For overSoXSynthDN
it is equal to 0.5.
Use a file for information
overSoXSynthNGen :: FilePath -> Int -> Double -> Double -> String -> IO () Source #
Similar to overSoXSynthN
, but uses a sound file to obtain the information analogous to Vector
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 Double
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 Double
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.
overSoXSynthNGen2 :: FilePath -> Int -> Double -> Double -> String -> String -> IO () Source #
Similar to overSoXSynthN2
, but uses a sound file to obtain the information analogous to Vector
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 Double
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 Double
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.
overSoXSynthNGen3 :: FilePath -> Int -> Double -> Double -> Double -> String -> String -> String -> IO () Source #
Similar to overSoXSynthN2
, but uses a sound file to obtain the information analogous to Vector
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 Double
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 Double
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 Double
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.
For the unique for the String structure timbre
uniqOvertonesV :: Double -> String -> OvertonesO Source #
uniqOverSoXSynth :: Double -> String -> IO () Source #
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 mmsyn7s
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.
uniqOverSoXSynthN :: Int -> Double -> Double -> String -> String -> Vector Double -> IO () Source #
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 Double
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 Double
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.
For the unique for the String structure timbre with different signs for harmonics coefficients
uniqOvertonesV2 :: Double -> String -> String -> OvertonesO Source #
For the given frequency of the note it generates a Vector
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 mmsyn7s
package and its Syllable
module) it produces the unique timbre.
The second String
is used to produce the signs for harmonics coefficients.
uniqOverSoXSynth2 :: Double -> String -> String -> IO () Source #
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 mmsyn7s
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.
uniqOverSoXSynthN3 :: Int -> Double -> Double -> String -> String -> String -> Vector Double -> IO () Source #
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 Double
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 Double
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.
uniqOverSoXSynthN4 :: Int -> Double -> Double -> Double -> String -> String -> String -> String -> Vector Double -> IO () Source #
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 Double
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 Double
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 Double
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.
Use a file for information
uniqOverSoXSynthNGen :: FilePath -> Int -> Double -> Double -> String -> String -> IO () Source #
Similar to uniqOverSoXSynthN
, but uses a sound file to obtain the information analogous to Vector
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 Double
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 Double
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.
uniqOverSoXSynthNGen3 :: FilePath -> Int -> Double -> Double -> String -> String -> String -> IO () Source #
Similar to uniqOverSoXSynthN
, but uses a sound file to obtain the information analogous to Vector
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 Double
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 Double
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.
uniqOverSoXSynthNGen4 :: FilePath -> Int -> Double -> Double -> Double -> String -> String -> String -> String -> IO () Source #
Similar to uniqOverSoXSynthN
, but uses a sound file to obtain the information analogous to Vector
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 Double
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 Double
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 Double
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.
Work with octaves
octaveUp :: Double -> Double Source #
Returns an analogous note in the higher octave (its frequency in Hz).
octaveDown :: Double -> Double Source #
Returns an analogous note in the lower octave (its frequency in Hz).
whichOctave :: Double -> Maybe Int Source #
Function can be used to determine to which octave (in the American notation for the notes, this is a number in the note written form,
e. g. for C4 this is 4) the frequency belongs (to be more exact, the closest note for the given frequency -- see closestNote
taking into account
its lower pure quint, which can lay in the lower by 1 octave). If it is not practical to determine the number, then the function returns Nothing
.
liftInOctave :: Int -> Double -> Maybe Double Source #
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
.
liftInOctaveV :: Int -> Vector Double -> Vector Double Source #
Function lifts the Vector
of Double
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 Vector
.
Even more extended
Extended generation using enky functionality
With somewhat fixed timbre
overSoXSynthNGenE :: FilePath -> Int -> Int -> Double -> Double -> String -> IO () Source #
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.
overSoXSynthNGen2E :: FilePath -> Int -> Int -> Double -> Double -> String -> String -> IO () Source #
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.
overSoXSynthNGen3E :: FilePath -> Int -> Int -> Double -> Double -> Double -> String -> String -> String -> IO () Source #
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.
With usage of additional information in the Ukrainian text
uniqOverSoXSynthNGenE :: FilePath -> Int -> Int -> Double -> Double -> String -> String -> IO () Source #
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.
uniqOverSoXSynthNGen3E :: FilePath -> Int -> Int -> Double -> Double -> String -> String -> String -> IO () Source #
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.
uniqOverSoXSynthNGen4E :: FilePath -> Int -> Int -> Double -> Double -> Double -> String -> String -> String -> String -> IO () Source #
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.
Auxiliary functions
signsFromString :: Int -> String -> Vector Int Source #
Additional function to produce signs from the given String
of the Ukrainian text. Ukrainian vowels and voiced consonants gives "+" sign (+1), voiceless
and sonorous consonants gives "-" sign (-1). Voiceless2 gives "0". Other symbols are not taken into account.
New 4G functions to work with Durations
overSoXSynthN4G :: Int -> Double -> Durations -> Vector Double -> IO () Source #
Function to create a melody for the given arguments. Durations
is used to provide a rhythm.
overSoXSynthN24G :: Int -> Double -> Durations -> String -> Vector Double -> IO () Source #
Function to create a melody for the given arguments. Durations
is used to provide a rhythm.
overSoXSynthN34G :: Int -> Double -> Double -> Durations -> String -> String -> Vector Double -> IO () Source #
Function to create a melody for the given arguments. Duraitons
is used to provide a rhythm.
overSoXSynthNGenE4G :: FilePath -> Int -> Int -> Double -> Durations -> IO () Source #
4G genaralized version of the overSoXSynthNGenE
where you provide your own Durations
.
overSoXSynthNGen2E4G :: FilePath -> Int -> Int -> Double -> Durations -> String -> IO () Source #
4G genaralized version of the overSoXSynthNGen2E
where you provide your own Durations
.
overSoXSynthNGen3E4G :: FilePath -> Int -> Int -> Double -> Double -> Durations -> String -> String -> IO () Source #
4G generalized function for overSoXSynthNGen3E
where you provide your own Durations
.
uniqOverSoXSynthN4G :: Int -> Double -> Durations -> String -> Vector Double -> IO () Source #
4G generalized variant of the uniqOverSoXSynthN
where you specify your own Durations
.
uniqOverSoXSynthN34G :: Int -> Double -> Durations -> String -> String -> Vector Double -> IO () Source #
4G generalized variant of the uniqOverSoXSynthN3
where you specify your own Durations
.
uniqOverSoXSynthN44G :: Int -> Double -> Double -> Durations -> String -> String -> String -> Vector Double -> IO () Source #
4G generalized variant of the uniqOverSoXSynthN4
where you specify your own Durations
.
uniqOverSoXSynthNGenE4G :: FilePath -> Int -> Int -> Double -> Durations -> String -> IO () Source #
4G genaralized version of the uniqOverSoXSynthNGenE
where you provide your own Durations
.
uniqOverSoXSynthNGen3E4G :: FilePath -> Int -> Int -> Double -> Durations -> String -> String -> IO () Source #
4G genaralized version of the uniqOverSoXSynthNGen3E
where you provide your own Durations
.
uniqOverSoXSynthNGen4E4G :: FilePath -> Int -> Int -> Double -> Double -> Durations -> String -> String -> String -> IO () Source #
4G genaralized version of the uniqOverSoXSynthNGen4E
where you provide your own Durations
.
4G with speech-like composition
overSoXSynthN4GS :: Int -> Double -> Double -> String -> Vector Double -> IO () Source #
Variant of the overSoXSynthN4G
where Durations
are obtained from the String
using str2Durations
function. Helps to create a speech-like
composition.
overSoXSynthN24GS :: Int -> Double -> Double -> String -> String -> Vector Double -> IO () Source #
Variant of the overSoXSynthN24G
where Durations
are obtained from the String
using str2Durations
function. Helps to create a speech-like
composition.
overSoXSynthN34GS :: Int -> Double -> Double -> Double -> String -> String -> String -> Vector Double -> IO () Source #
Variant of the overSoXSynthN34G
where Durations
are obtained from the String
using str2Durations
function. Helps to create a speech-like
composition.
overSoXSynthNGenE4GS :: FilePath -> Int -> Int -> Double -> Double -> String -> IO () Source #
Variant of the overSoXSynthNGenE4G
where Durations
are obtained from the String
using str2Durations
function. Helps to create a speech-like
composition.
overSoXSynthNGen2E4GS :: FilePath -> Int -> Int -> Double -> Double -> String -> String -> IO () Source #
Variant of the overSoXSynthNGen2E4G
where Durations
are obtained from the String
using str2Durations
function. Helps to create a speech-like
composition.
overSoXSynthNGen3E4GS :: FilePath -> Int -> Int -> Double -> Double -> Double -> String -> String -> String -> IO () Source #
Variant of the overSoXSynthNGen3E4G
where Durations
are obtained from the String
using str2Durations
function. Helps to create a speech-like
composition.
uniqOverSoXSynthN4GS :: Int -> Double -> Double -> String -> String -> Vector Double -> IO () Source #
Variant of the uniqOverSoXSynthN4G
function where Durations
are obtained from the String
using str2Durations
function. Helps to create a speech-like
composition.
uniqOverSoXSynthN34GS :: Int -> Double -> Double -> String -> String -> String -> Vector Double -> IO () Source #
Variant of the uniqOverSoXSynthN34G
where Durations
are obtained from the String
using str2Durations
function. Helps to create a speech-like
composition.
uniqOverSoXSynthN44GS :: Int -> Double -> Double -> Double -> String -> String -> String -> String -> Vector Double -> IO () Source #
Variant of the uniqOverSoXSynthN44G
where Durations
are obtained from the String
using str2Durations
function. Helps to create a speech-like
composition.
uniqOverSoXSynthNGenE4GS :: FilePath -> Int -> Int -> Double -> Double -> String -> String -> IO () Source #
Variant of the uniqOverSoXSynthNGenE4G
where Durations
are obtained from the String
using str2Durations
function. Helps to create a speech-like
composition.
uniqOverSoXSynthNGen3E4GS :: FilePath -> Int -> Int -> Double -> Double -> String -> String -> String -> IO () Source #
Variant of the uniqOverSoXSynthNGen3E4G
where Durations
are obtained from the String
using str2Durations
function. Helps to create a speech-like
composition.
uniqOverSoXSynthNGen4E4GS :: FilePath -> Int -> Int -> Double -> Double -> Double -> String -> String -> String -> String -> IO () Source #
Variant of the uniqOverSoXSynthNGen4E4G
where Durations
are obtained from the String
using str2Durations
function. Helps to create a speech-like
composition.
New 5G functions to work also with Intervals
overSoXSynthN35G :: Int -> Double -> Double -> Durations -> String -> Intervals -> Vector Double -> IO () Source #
Generalized variant of the overSoXSynthN34G
where you specify your own Intervals
. For more information, please, refer to intervalsFromStringG
.
overSoXSynthNGen3E5G :: FilePath -> Int -> Int -> Double -> Double -> Durations -> String -> Intervals -> IO () Source #
5G generalized function for overSoXSynthNGen3E4G
where you provide your own Intervals
.
uniqOverSoXSynthN45G :: Int -> Double -> Double -> Durations -> String -> String -> Intervals -> Vector Double -> IO () Source #
5G generalized variant of the uniqOverSoXSynthN44G
where you specify your own Intervals
.
uniqOverSoXSynthNGen4E5G :: FilePath -> Int -> Int -> Double -> Double -> Durations -> String -> String -> Intervals -> IO () Source #
5G genaralized version of the uniqOverSoXSynthNGen4E
where you provide your own Durations
and Intervals
.
5G with obtained from the text arbitraty length Intervals
overSoXSynthN35GS :: Int -> Double -> Double -> Double -> String -> String -> Intervals -> String -> Vector Double -> IO () Source #
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
.
overSoXSynthNGen3E5GS :: FilePath -> Int -> Int -> Double -> Double -> Double -> String -> String -> Intervals -> String -> IO () Source #
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
.
uniqOverSoXSynthN45GS :: Int -> Double -> Double -> Double -> String -> String -> String -> Intervals -> String -> Vector Double -> IO () Source #
Variant of the uniqOverSoXSynthN45G
where Intervals
are obtained from the String
using intervalsFromStringG
function. Helps to create a speech-like
composition.
uniqOverSoXSynthNGen4E5GS :: FilePath -> Int -> Int -> Double -> Double -> Double -> String -> String -> String -> Intervals -> String -> IO () Source #
Variant of the uniqOverSoXSynthNGen4E5G
where Intervals
are obtained from the String
using intervalsFromStringG
function. Helps to create a speech-like
composition.
New 6G function to work also with Strengths
overSoXSynthNGen3E6G :: FilePath -> Int -> Int -> Double -> Double -> Durations -> String -> Intervals -> Strengths -> Double -> IO () Source #
6G generalized function for overSoXSynthNGen3E5G
where you provide your own Strengths
.
uniqOverSoXSynthNGen4E6G :: FilePath -> Int -> Int -> Double -> Double -> Durations -> String -> String -> Intervals -> Strengths -> Double -> IO () Source #
6G generalized function for uniqOverSoXSynthNGen3E5G
where you provide your own Strengths
.