ebook2cw \- Convert ebooks to Morse code audio files (MP3/OGG)
ebook2cw [OPTIONS] [INFILE]
ebook2cw ebook2cw is a command line program which converts a plain text ebook to Morse code audio files. It works on several platforms, including Windows and Linux.
A number of CW and audio parameters can be changed from their default values, by command line switches or a config file (see below). These are (default values in brackets):
-w wpm - CW speed in words per minute 
-e wpm - Effective CW speed. If set, the spaces are sent at this speed instead of the character speed set by -w ("Farnsworth").
-W x - Extra Word spacing. Similar to -e, but only affects the inter-word spacing, not the inter-character spacing.
-f freq - audio frequency in Hz 
-T SINE|0|SAWTOOTH|1|SQUARE|2 - set waveform to sine, sawtooth, squarewave. [sine]
-Q minutes - Increase CW speed (QRQ) by 1 WpM in intervals of `minutes'. Speed will be reset to the initial value at the start of each chapter. 
-n - Disables resetting the speed when using the -Q option.
-p - Disables the paragraph separator (<BT>)
-R risetime - risetime, in samples 
-F falltime - falltime, samples 
-O - Use OGG/Vorbis encoder instead of MP3 if compiled with OGG support
-X - Do not encode, do not generate output files
-s samplerate - samplerate for the OGG/MP3 file 
-b bitrate - MP3 bitrate, kbps 
-q quality - MP3 quality, 1 (best) to 9 (worst). CW still sounds very good with the worst quality, encoding time is greatly reduced. 
-c chapter separator - Split chapters at this string. [CHAPTER]
-d duration - Splits output files after "duration" seconds; finishes the current sentence.
-l wordlimit - Splits output files after "wordlimit" words; finished the current sentence.
-o outfile-name - Output filename (chapter number and .mp3/.ogg will be appended) [Chapter]
-a author - Author for the ID3 tag. Use quotes for strings with spaces (e.g. "JW Goethe")
-t title - Title for the ID3 tag. Use quotes for strings with spaces (e.g. "Faust II")
-k comment - Comment for the ID3 tag. Use quotes for strings with spaces.
-y year - Year for the ID3 tag.
-u - Switches input encoding format to UTF-8. Currently supported alphabets include Latin, Greek, Hebrew, Arabic and Cyrillic. Default is ISO 8859-1.
-g file - Guesses the encoding of `file` (ISO 8859-1 / ASCII or UTF-8).
-S [ISO|UTF] - Shows a table of all available morse symbols for the ISO 8859-1 and UTF-8 character sets. Output in HTML format.
-N snr - When this option is used, a noise background is added to the file and the CW signal is scaled down to achieve a SNR (Signal to Noise ratio) of "snr" dB. Possible range of SNR: -10db to 10dB. Make sure to enclose the value in quotation marks if it's negative (i.e. -N "-3").
-B bandwidth in Hz - Sets the filter bandwidth if the -N / SNR option is used. Available filters are 100Hz, 500Hz, 1kHz and 2.1kHz.
-C frequency in Hz - Sets the center frequency of the filter if the -N / SNR option is used. This should be set to the frequency of the Morse signal; currently implemented center frequencies: 800Hz
CW prosigns can be generated by enclosing arbitrary letters in angle brackets (e.g. <AR>, <SK>, ...).
The tone frequency (f), speed (w), effective speed (e), volume (v, 1..100) waveform (T) and SNR (N) can be changed arbitrarily within the text by inserting commands, starting with a pipe symbol, followed by the parameter to change and the value. Additionally, |Sn adds a period of n milliseconds silence to the file at the given position (0 < n < 10000).
Example: |f400 changes the tone frequency to 400Hz, |w60 changes the speed to 60wpm, |T3 changes the waveform to squarewave.
CONFIG FILE AND CHARACTER MAPPINGS¶
ebook2cw looks for a config file, ebook2cw.conf, in which all settings that can be changed by command line parameters can be set. Any settings made in the config file can be overridden by command line arguments.
Additionally, two `map` files can be set in the config file, for ISO8859-1 and UTF-8. You can map characters in those files to a string, which may be useful to replace characters like the exclamation mark (!) to a period (.), which is more common in CW.
A set of example config and map file and a description thereof can be found at DESTDIR/share/doc/ebook2cw/examples/.
ebook2cw can also be compiled to run as a CGI to serve MP3 and OGG files on the fly for web applications.
Fabian Kurz, DJ1YFK <email@example.com>