A program and a library to create experimental music from
a mono audio and a Ukrainian text. It can also create a timbre
for the notes.
***** Usage *****
-----------------
You can use it as a library or an executable.
Please, check before executing whether there is no "x.wav", "test*.wav",
"result*.wav" and "end.wav" files in the current directory, because they
can be overwritten. The same can be said about "nx*.wav" files in the directory.
For the executable you enter in the terminal:
dobutokO2 { 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 80 } {fileName} {Ukrainian text}
where filename is:
the full name of the file to be recorded in the current directory or
the full absolute path to the sound .wav file (or other one format
that is supported by your SoX installation) to obtain sound information from.
If the first command line argument equals to one of the numbers below, then
the program behaves as follows:
"1", or "3", or "5" -> then the executable uses the oberTones functions,
so for the given parameters the obertones are the same for every call.
"2", or "4", or "6" -> then the program uses uniqOberTones functions.
"3", or "4", or "5", or "6" -> the program uses additional String to define
signs for the harmonics coefficients for obertones.
In more detail:
"0" -> the program just converts multiline Ukrainian text from stdin
into a String and prints it to stdout. No other arguments are used.
"1" -> basic functionality without the possibility to define individual obertones.
"2" -> basic functionality with the possibility to define individual obertones.
In such a case, another text gives the other obertones.
"3" -> adittionally to basic functionality gives an opportunity
to specify the signs for the harmonics coefficients for obertones
by additional String.
"4" -> similarly to "2" gives an opportunity to specify the signs
for the harmonics coefficients for obertones by additional String.
"5" -> additionally to that one functionality provided by "3" gives
an opportunity to specify in how many times the amplitude for
the second lower note (if any) is greater, than the amplitude
for the main note and specify the intervals to be used
for every note.
"7" -> the program behaves like for the "5" option, but generates
obertones 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.
"8" -> the program just creates from input "result*" files the "end.wav" by
concatenating them into one. It is mostly useful after some processment
on the "result*" files after previous execution with other lesser first
command line arguments to get the test final sound file. It can be then
listened to and probably remade again by editing the "result*" files
and running the program with this option again. In such a case,
noone from the other command line arguments is important for the
program running, so they all can be simply omitted.
"80" -> the same as "8" but with one important difference that the program if
succeeded in creation of the "end.wav" file, then removes all other "result*"
files from the current directory, so you cannot reverse the successful action
back and try again with just the same files. In such a case, you need to
repeat all the process of creation of "result*" files. Be aware and use
with care!
_ -> the program behaves like for the "5" option, but generates
obertones using additional String and allows maximum control over
the parameters.
If you have prepared multiline Ukrainian textual input than to use it you
can deal with O2help executable. It is simple converter of the multiline text
into a String.
After the program executing (it takes some time) there is a file "end.wav" in the directory.
This is the resulting melody generated.
The program now lifts the frequencies to the octave with the number, which you
can specify during its execution.
You can specify some control parameters during the program execution. This
leads to different sounding.
You can use the default values (backward compatible with the 0.2.0.0 version)
by simply pressing 'Enter' while being prompted and the informational message
contains the line about the default value.
** Note:
- Better to execute in the RAM. Need rather a lot of space on the disk for
the resulting file "end.wav" and auxiliary files (MBs) for a short sound
in the second command line arguments.