dobutokO2: A program and a library to create experimental music from a mono audio and a Ukrainian text

[ Ukrainian, algorithmic-composition, language, library, mit, music, program, rhythm, sound, sox, timbre, tonality ] [ Propose Tags ]
This version is deprecated.

It can also create a timbre for the notes


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.2.0.0, 0.3.0.0, 0.3.1.0, 0.3.1.1, 0.4.0.0, 0.5.0.0, 0.5.1.0, 0.5.2.0, 0.5.3.0, 0.6.0.0, 0.6.1.0, 0.7.0.0, 0.7.1.0, 0.7.1.1, 0.7.2.0, 0.7.2.1, 0.8.0.0, 0.8.0.1, 0.8.1.0, 0.8.2.0, 0.9.0.0, 0.9.1.0, 0.10.0.0, 0.10.1.0, 0.11.0.0, 0.11.0.1, 0.11.1.0, 0.11.2.0, 0.12.0.0, 0.13.0.0, 0.14.0.0, 0.15.0.0, 0.15.1.0, 0.16.0.0, 0.17.0.0, 0.17.1.0, 0.18.0.0, 0.19.0.0, 0.19.1.0, 0.20.0.0, 0.21.0.0, 0.22.0.0, 0.22.1.0, 0.23.0.0, 0.24.0.0, 0.24.1.0, 0.24.2.0, 0.24.3.0, 0.24.4.0, 0.24.5.0, 0.24.6.0, 0.25.0.0, 0.26.0.0, 0.27.0.0, 0.27.1.0, 0.28.0.0, 0.29.0.0, 0.30.0.0, 0.31.0.0, 0.32.0.0, 0.33.0.0, 0.34.0.0, 0.35.0.0, 0.35.1.0, 0.35.2.0, 0.36.0.0, 0.36.1.0, 0.36.2.0, 0.36.3.0, 0.37.0.0, 0.37.1.0, 0.38.0.0, 0.38.1.0, 0.39.0.0, 0.39.0.1, 0.39.1.0, 0.40.0.0, 0.41.0.0, 0.42.0.0, 0.43.0.0 (info)
Change log CHANGELOG.md
Dependencies base (>=4.7 && <4.14), directory (>=1.2.5 && <1.6), mmsyn2 (>=0.1.7 && <1), mmsyn3 (>=0.1.4 && <1), mmsyn6ukr (>=0.6.3.1 && <1), mmsyn7s (>=0.6.6 && <1), mmsyn7ukr (>=0.15.3 && <1), process (>=1.4 && <1.8), vector (>=0.11 && <0.14) [details]
License MIT
Author OleksandrZhabenko
Maintainer olexandr543@yahoo.com
Category Sound
Home page https://hackage.haskell.org/package/dobutokO2
Uploaded by OleksandrZhabenko at 2020-03-20T15:50:36Z
Distributions
Reverse Dependencies 2 direct, 0 indirect [details]
Executables dobutokO2
Downloads 24232 total (171 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2020-03-20 [all 1 reports]

Readme for dobutokO2-0.15.0.0

[back to package description]

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 as 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 | 11 | 2 | 21 | 3 | 31 | 4 | 41 | 5 | 51 | 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.

"11", or "21", or "31", or "41", or "51" -> the program works as for the respective inputs with only the first character in the option (e. g. for "51", this is "5"), but uses not octaves, but n-th elements sets of consequential notes consisting of 2, 3, 4, 6, or 9 elements (called 'enky'). The usual octave is from such point of view a 12th elements set of consequential notes. This allows to create more 'condensed' and 'narrower' compositions that being more defined can be at the same time more precise.

In more details:

"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.

"11" -> the same as "1", but works with enky. See general information above.

"2" -> basic functionality with the possibility to define individual obertones. In such a case, another text gives the other obertones.

"21" -> the same as "2", but works with enky. See general information above.

"3" -> adittionally to basic functionality gives an opportunity to specify the signs for the harmonics coefficients for obertones by additional String.

"31" -> the same as "3", but works with enky. See general information above.

"4" -> similarly to "2" gives an opportunity to specify the signs for the harmonics coefficients for obertones by additional String.

"41" -> the same as "4", but works with enky. See general information above.

"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.

"51" -> the same as "5", but works with enky. See general information above.

"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.

After the program executing (it takes some time) with the first command line options except "80" there are files "result*.wav" in the directory. These are the resulting melody generated in their order preserved.

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.