úÎ!±á­yF      !"#$%&'()*+,-./0123456789:;<=>?@ABCDE(c) OleksandrZhabenko 2020MIT ExperimentalNone`22 dobutokO2F of musical notes in Hz. dobutokO2 Returns a FP of tuples with the lowest and highest frequencies for the notes in the octaves. dobutokO2 Returns a F[ of tuples with the lowest and highest frequencies for the notes in the sets consisting of n1 consequential notes (including semi-tones). An G parameter defines this nK. It can be 2, 3, 4, 6, 9, or 12 (the last one is for default octaves, see ). So for different valid nM you obtain doubles, triples and so on. The function being applied returns a FD of such sets with their respective lowest and highest frequencies. dobutokO2EReturns an analogous note in the higher octave (its frequency in Hz). dobutokO2UReturns an analogous note in the higher n-th elements set (its frequency in Hz) (see ). An G parameter defines this n. dobutokO2DReturns an analogous note in the lower octave (its frequency in Hz). dobutokO2TReturns an analogous note in the lower n-th elements set (its frequency in Hz) (see ). An G parameter defines this n. dobutokO2ø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 Ÿ 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 H. dobutokO2 Similarly to  returns a IE number (actually frequency) for the n-th elements set of notes (see ). An G parameter defines that n. dobutokO2|Function lifts the given frequency to the given number of the octave (in American notation, from 0 to 8). This number is an G¨ 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 H. dobutokO2 Similarly to  returns a IE number (actually frequency) for the n-th elements set of notes (see  ). A second G parameter defines that n. dobutokO2Function lifts the F of J7 representing frequencies to the given octave with the G÷ 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 F. dobutokO2 Similarly to  returns a F J@ (actually frequencies) for the n-th elements set of notes (see  ) instead of octaves. A second G parameter defines that n.  dobutokO2¢Function returns either the nearest two musical notes if frequency is higher than one for C0 and lower than one for B8 or the nearest note duplicated in a tuple. dobutokO28Returns the closest note to the given frequency in Hz.  dobutokO2/Returns a pure quint lower than the given note. dobutokO2¬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. dobutokO23For the given frequency of the note it generates a FR of the tuples, each one of which contains the harmonics' frequency and amplitude. dobutokO23For the given frequency of the note it generates a Fd of the tuples, each one of which contains the harmonics' frequency and amplitude. For every given K8 structure of the uniqueness (see the documentation for mmsyn7s package and its ' module) it produces the unique timbre. dobutokO24Additional function to produce signs from the given KË 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. dobutokO2HFor the given frequency of the note and a Ukrainian text it generates a FX of the tuples, each one of which contains the harmonics' frequency and amplitude. The K9 is used to produce the signs for harmonics coefficients.  dobutokO23For the given frequency of the note it generates a Fj of the tuples, each one of which contains the harmonics' frequency and amplitude. For every given first KA argument structure of the uniqueness (see the documentation for mmsyn7s package and its 4 module) it produces the unique timbre. The second K9 is used to produce the signs for harmonics coefficients.! dobutokO2ÿnFor 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*" and "end.wav" files in the current directory, because they can be overwritten." dobutokO2 Similar to !i except that takes not necessarily pure lower quint note as the second one, but the one specified by the K parameter as an argument to 6. If you begin the K¤ with space characters, or "AL", or "FL", or dash, or apostrophe, or soft sign, than there will be no interval and the sound will be solely one with its obertones.# dobutokO2 Similar to "? except that the resulting duration is specified by the second J parameter in seconds. For " it is equal to 0.5.$ dobutokO2ÿfFor 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 KN argument is used to define signs of the harmonics coefficients for obertones.% dobutokO25Function to create a melody for the given arguments. K´ 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 Jÿ argument from the range [0.01..1.0] is used as a maximum amplitude for obertones. If it is set to 1.0 the obertones amplitudes are just the maximum ones, otherwise they are multiplied by the parameter and this results in their becoming more silent ones. The second JÖ 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.& dobutokO25Function to create a melody for the given arguments. K´ 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 Jÿ argument from the range [0.01..1.0] is used as a maximum amplitude for obertones. If it is set to 1.0 the obertones amplitudes are just the maximum ones, otherwise they are multiplied by the parameter and this results in their becoming more silent ones. The second JÖ 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.' dobutokO25Function to create a melody for the given arguments. K´ 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 Jÿ argument from the range [0.01..1.0] is used as a maximum amplitude for obertones. If it is set to 1.0 the obertones amplitudes are just the maximum ones, otherwise they are multiplied by the parameter and this results in their becoming more silent ones. The second Jâ 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 KK argument is used to define the intervals for the notes if any. The third Jÿ/ 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 obertones are greater than for the main note obetones. The last one is experimental feature.( dobutokO2 Similar to %?, but uses a sound file to obtain the information analogous to Fa in the latter one. Besides, the function lifts the frequencies to the octave with the given by GC parameter number (better to use from the range [1..8]). The first Jÿ argument from the range [0.01..1.0] is used as a maximum amplitude for obertones. If it is set to 1.0 the obertones amplitudes are just maximum ones, otherwise they are multiplied by the parameter and this results in their becoming more silent ones. The second Jä 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 L( should be a filepath for the .wav file.) dobutokO2 Similar to (, but uses additional second G8 parameter. It defines, to which n-th elements set (see †) belongs the obtained higher notes in the intervals. If that parameter equals to 12, then the function is practically equivalent to (=. To obtain its modifications, please, use 2, 3, 4, 6, or 9.* dobutokO2 Similar to &?, but uses a sound file to obtain the information analogous to Fa in the latter one. Besides, the function lifts the frequencies to the octave with the given by GC parameter number (better to use from the range [1..8]). The first Jÿ argument from the range [0.01..1.0] is used as a maximum amplitude for obertones. If it is set to 1.0 the obertones amplitudes are just maximum ones, otherwise they are multiplied by the parameter and this results in their becoming more silent ones. The second Jä 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 L5 should be a filepath for the .wav file. The second KX argument is used to define signs of the harmonics coefficients in the generated sounds.+ dobutokO2 Similar to *, but uses additional second G8 parameter. It defines, to which n-th elements set (see †) belongs the obtained higher notes in the intervals. If that parameter equals to 12, then the function is practically equivalent to *=. To obtain its modifications, please, use 2, 3, 4, 6, or 9., dobutokO2 Similar to &?, but uses a sound file to obtain the information analogous to Fa in the latter one. Besides, the function lifts the frequencies to the octave with the given by GC parameter number (better to use from the range [1..8]). The first Jÿ argument from the range [0.01..1.0] is used as a maximum amplitude for obertones. If it is set to 1.0 the obertones amplitudes are just maximum ones, otherwise they are multiplied by the parameter and this results in their becoming more silent ones. The second Jä 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 L5 should be a filepath for the .wav file. The second Kd argument is used to define signs of the harmonics coefficients in the generated sounds. The third KK argument is used to define the intervals for the notes if any. The third Jÿ/ 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 obertones are greater than for the main note obetones. The last one is experimental feature.- dobutokO2 Similar to ,, but uses additional second G8 parameter. It defines, to which n-th elements set (see †) belongs the obtained higher notes in the intervals. If that parameter equals to 12, then the function is practically equivalent to ,=. To obtain its modifications, please, use 2, 3, 4, 6, or 9.. dobutokO23Additional function to prepend zeroes to the given KJ. The number of them are just that one to fulfill the length to the given G parameter./ dobutokO2XIs a minimal number of decimal places that are just enough to represent a length of the F given. For an M returns 0.0 dobutokO2—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 Kÿ™. 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.1 dobutokO2—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 Kÿ¦. 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 KO argument is used to define signs for the harmonics coefficients for obertones.2 dobutokO2?Function to create a melody for the given arguments. The first Kù 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 JÿL argument from the range [0.01..1.0] is used as a maximum amplitude for obertones. If it is set to 1.0 the obertones 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 G° 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 JÖ 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.3 dobutokO2?Function to create a melody for the given arguments. The first Kù 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 JÿL argument from the range [0.01..1.0] is used as a maximum amplitude for obertones. If it is set to 1.0 the obertones 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 G° 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 Jâ 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 KX argument is used to define signs of the harmonics coefficients in the generated sounds.4 dobutokO2?Function to create a melody for the given arguments. The first Kù 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 JÿL argument from the range [0.01..1.0] is used as a maximum amplitude for obertones. If it is set to 1.0 the obertones 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 G° 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 Jâ 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 Ke argument is used to define signs of the harmonics coefficients in the generated sounds. The fourth KK argument is used to define the intervals for the notes if any. The third Jÿ/ 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 obertones are greater than for the main note obetones. The last one is experimental feature.5 dobutokO2>Function is used to get numbers of intervals from a Ukrainian K. It is used internally in the 4 function.6 dobutokO2;Function to get from the number of semi-tones and a note a Iw note for the second lower note in the interval if any. If there is no need to obtain such a note, then the result is H.7 dobutokO2 Similar to 2?, but uses a sound file to obtain the information analogous to Fb in the latter one. Besides, the function lifts the frequencies to the octave with the given by GD parameter number (better to use from the range [1..8]). The first Jÿ argument from the range [0.01..1.0] is used as a maximum amplitude for obertones. If it is set to 1.0 the obertones amplitudes are just the maximum ones, otherwise they are multiplied by the parameter and this results in their becoming more silent ones. The second Jä 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 L( should be a filepath for the .wav file.8 dobutokO2 Similar to 7, but uses additional second G8 parameter. It defines, to which n-th elements set (see †) belongs the obtained higher notes in the intervals. If that parameter equals to 12, then the function is practically equivalent to 7=. To obtain its modifications, please, use 2, 3, 4, 6, or 9.9 dobutokO2 Similar to 2?, but uses a sound file to obtain the information analogous to Fb in the latter one. Besides, the function lifts the frequencies to the octave with the given by GD parameter number (better to use from the range [1..8]). The first Jÿ argument from the range [0.01..1.0] is used as a maximum amplitude for obertones. If it is set to 1.0 the obertones amplitudes are just the maximum ones, otherwise they are multiplied by the parameter and this results in their becoming more silent ones. The second Jä 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 L4 should be a filepath for the .wav file. The third KX argument is used to define signs of the harmonics coefficients in the generated sounds.: dobutokO2 Similar to 9, but uses additional second G8 parameter. It defines, to which n-th elements set (see †) belongs the obtained higher notes in the intervals. If that parameter equals to 12, then the function is practically equivalent to 9=. To obtain its modifications, please, use 2, 3, 4, 6, or 9.; dobutokO2 Similar to 2?, but uses a sound file to obtain the information analogous to Fb in the latter one. Besides, the function lifts the frequencies to the octave with the given by GD parameter number (better to use from the range [1..8]). The first Jÿ argument from the range [0.01..1.0] is used as a maximum amplitude for obertones. If it is set to 1.0 the obertones amplitudes are just the maximum ones, otherwise they are multiplied by the parameter and this results in their becoming more silent ones. The second Jä 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 L4 should be a filepath for the .wav file. The third Ke argument is used to define signs of the harmonics coefficients in the generated sounds. The fourth KK argument is used to define the intervals for the notes if any. The third Jÿ2 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 obertones are greater than for the main note obetones. The last one is an experimental feature.< dobutokO2 Similar to ;, but uses additional second G8 parameter. It defines, to which n-th elements set (see †) belongs the obtained higher notes in the intervals. If that parameter equals to 12, then the function is practically equivalent to ;=. To obtain its modifications, please, use 2, 3, 4, 6, or 9.=  !"#$%&'()*+,-./0123456789:;<=!%$&'"#(*,02 13479; )+-8:<.56/(c) OleksandrZhabenko 2020MIT ExperimentalNoneya= dobutokO2/Function that actually makes processing in the  dobutokO2« executable. 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.> dobutokO2žUsed to obtain one multiline specially formatted textual input and do the full processment for the sound. The function generates obertones using additional Kÿ‡ 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:D'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. N dobutokO28Takes textual input from the stdin and prints it as one K to the stdout.? dobutokO2[Function records and processes the sound data needed to generate the "end.wav" file in the =„ function. Please, check before executing whether there is no "x.wav" file in the current directory, because it can be overwritten.=>?=?>(c) OleksandrZhabenko 2020MIT ExperimentalNone¬h@ dobutokO2 Similar to # but instead of % function, it uses volatile function $f::Double -> Vector (Double, Double)C with somewhat sophisticated mechanism to normalize the resulting F elements (Double, Double)·. The last one is an experimental feature, so it is your responsibility to provide a function so that it does not lead to clipping. In such a case, the result of application of the O to the K parameter must not be M.²Be aware that the result can be rather unpredictable (the program can even obtain segmentation fault) for not very suitable function. But for a lot of functions this works well.\It is recommended to fully simplify the computation for "f" function before using it in the @.A dobutokO2 Similar to # but instead of % function, it uses volatile function $f::Double -> Vector (Double, Double)C with somewhat sophisticated mechanism to normalize the resulting F elements (Double, Double)´. The last one is experimental feature, so it is your responsibility to provide a function so that it does not lead to clipping. In such a case, the result of application of the O to the K parameter must not be MU. The function also tries to perform filtering to avoid possible beating. The third J  parameter in the tuple is used as a limit for frequencies difference in Hz to be filtered out from the resulting sound. It is considered to be from the range  [0.1..10.0].²Be aware that the result can be rather unpredictable (the program can even obtain segmentation fault) for not very suitable function. But for a lot of functions this works well.\It is recommended to fully simplify the computation for "f" function before using it in the A.B dobutokO2 Similar to @? but it does not make any normalizing transformations with the F\ argument. To be used properly, it is needed that every second element in the tuple in the F… argument must be in the range [-1.0..1.0] and every first element must be in between 16.351597831287414 and 7902.132820097988 (Hz).²Be aware that the result can be rather unpredictable (the program can even obtain segmentation fault) for not very suitable function. But for a lot of functions this works well.\It is recommended to fully simplify the computation for "f" function before using it in the B.C dobutokO2 Similar to B= but additionally the program filters out from the resulting FM after "f" application values that are smaller by absolute value than 0.001.²Be aware that the result can be rather unpredictable (the program can even obtain segmentation fault) for not very suitable function. But for a lot of functions this works well.\It is recommended to fully simplify the computation for "f" function before using it in the C.D dobutokO2 Similar to B= but additionally the program filters out from the resulting F? after "f" application values that are smaller than the third J1 parameter by an absolute value in the triple of Double's. ²Be aware that the result can be rather unpredictable (the program can even obtain segmentation fault) for not very suitable function. But for a lot of functions this works well.\It is recommended to fully simplify the computation for "f" function before using it in the D.@ABCD@ABCD(c) OleksandrZhabenko 2020MIT ExperimentalNone­mEEP      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUSTVPQWSXYSZ[MN\]^_`a)dobutokO2-0.15.0.0-4PoTsZhOK9zAjZTdCiGo7lDobutokO.SoundDobutokO.Sound.ExecutableDobutokO.Sound.FunctionalMainMMSyn7SyllablenotesoctavesTnkyTdviykyTAtriykyTA chetvirkyTA p'yatirkyTA shistkyTAsimkyTA visimkyTA dev'yatkyTA desyatkyTAodynadtsyatkyTA octavesTAoctaveUpenkuUp octaveDownenkuDown whichOctave whichEnka putInOctave putInEnku putInOctaveV putInEnkuVneighbourNotes closestNote pureQuintNote syllableStr oberTonesuniqOberTonesVsignsFromString oberTones2uniqOberTonesV2 oberSoXSynthoberSoXSynthDNoberSoXSynth2DN oberSoXSynth2 oberSoXSynthNoberSoXSynthN2oberSoXSynthN3oberSoXSynthNGenoberSoXSynthNGenEoberSoXSynthNGen2oberSoXSynthNGen2EoberSoXSynthNGen3oberSoXSynthNGen3E prependZeroes numVZeroesPreuniqOberSoXSynthuniqOberSoXSynth2uniqOberSoXSynthNuniqOberSoXSynthN3uniqOberSoXSynthN4intervalsFromStringdNoteuniqOberSoXSynthNGenuniqOberSoXSynthNGenEuniqOberSoXSynthNGen3uniqOberSoXSynthNGen3EuniqOberSoXSynthNGen4uniqOberSoXSynthNGen4E dobutokO2 dobutokO2H7 recAndProcessoberSoXSynth2FDNoberSoXSynth2FDN_BoberSoXSynth2FDN_SoberSoXSynth2FDN_SfoberSoXSynth2FDN_Sf3main&vector-0.12.1.2-E9YBdJZ4ywF23gc9L8wAxp Data.VectorVectorghc-prim GHC.TypesIntbase GHC.MaybeNothingMaybeDoubleGHC.BaseStringGHC.IOFilePathemptyo2help(mmsyn6ukr-0.6.3.1-B8Tt7Im88SlGtDYL5gWymjMelodics.UkrainianconvertToProperUkrainian