mmsyn6ukr- A musical instrument synthesizer or a tool for Ukrainian language listening

Copyright(c) OleksandrZhabenko 2019
Safe HaskellNone



A program and a library that can be used as a musical instrument synthesizer or for Ukrainian speech synthesis especially for poets, translators and writers.



main :: IO () Source #

The function creates a raw PCM sound file with bitrate 22050 Hz 1 mono channel 16-bit signed-integer encoding and tries to automatically convert it to the .wav file with the same parameters using the system binary SoX. If it is not installed properly, the program makes ending informational message for the user.

Command line argument is described in more details in the documentation for the nSymbols function.

  • Notification.

Please, notice that successful usage of the SoX installed in the system prior to the mmsyn6ukr leads to approximately doubling the size of used space in the storage for the resulting files because it adds a header to the .raw file and writes down additionally the raw data to form a .wav file. Also notice that the size of the largest data file representing a symbol or their combination is 6792 bytes (with 44-byte header included). So, if you expect to create sounding for n symbols of the Ukrainian text, provide at least 2 * (6792 - 44) * n + 44 = 13496 * n + 44 (bytes) of the additional space in the storage (in reality it can occupy much less because other data files are less in size). Afterwards, the program deletes the .raw file (this will approximately halve the occupied space by the resulting file) and you can manually compress the .wav file (e. g. FLAC compression with the best ratio gives approxumately halving the size). Therefore, the resulting file for the mmsyn6ukr executable run prior to such operations without command line arguments is expected to be less than about 10^7 bytes that is about 100 MB (for 31416 symbols Ukrainian text).