AUDIOLINE(1) General Commands Manual
NAME
audioline - Transfers byte streams, International Morse text and classic tape formats through audio devices or WAV files using REFCODES codecs.
SYNOPSIS
| audioline | send [ --config <config> ] [ -f <format> ] [ -p <profile> ] [ -S <sampleRate> ] [ -c <channelSelector> ] [ -m <modemMode> ] [ --morse-mode <morseMode> ] [ -t <frequencyThreshold> ] [ --preamble-bits <preambleBits> ] [ --silence-threshold <silenceThreshold> ] [ -i <inputFile> ] [ -o <outputFile> ] [ -O <outputDevice> ] [ -q ] [ -v ] [ --debug ] |
| audioline | receive [ --config <config> ] [ -f <format> ] [ -p <profile> ] [ -S <sampleRate> ] [ -c <channelSelector> ] [ -m <modemMode> ] [ --morse-mode <morseMode> ] [ --morse-probe-mode <morseProbeMode> ] [ -t <frequencyThreshold> ] [ --preamble-bits <preambleBits> ] [ --silence-threshold <silenceThreshold> ] [ -i <inputFile> ] [ -I <inputDevice> ] [ -o <outputFile> ] [ --receive-idle-millis <receiveIdleMillis> ] [ -q ] [ -v ] [ --debug ] |
| audioline | -l [ --config <config> ] [ -q ] [ -v ] [ --debug ] |
| audioline | --init [ --config <config> ] [ -q ] [ -v ] [ --debug ] |
| audioline | --help | --sysinfo |
DESCRIPTION
This manual page documents the audioline command. The send operation reads
payload bytes from STDIN or --input-file. It writes the modulated signal to
the selected Java Sound output device, or to a WAV --output-file when one is
specified. The receive operation reads a modulated signal from the selected
Java Sound input device, or from a WAV --input-file, and writes decoded payload
bytes to STDOUT or --output-file.
The --format option selects the arbitrary byte-stream FSK or PWM modem,
International MORSE text, or one of the supported Atari and Commodore 64 tape
formats. FSK is the default. Sender and receiver must use the same format.
Morse sending reads UTF-8 text and reception writes normalized uppercase UTF-8
text. The supported alphabet is defined by the International Morse codes in
REFCODES; unsupported input characters are rejected instead of being silently
lost. When --morse-mode is omitted during reception, the receiver measures
the signal’s speed and tone frequency within the selected probe mode. When the
sender mode is known, the same --morse-mode selects exact reception without
automatic probing; it takes precedence if both Morse reception options are
configured. Atari formats accept XEX files, while Commodore 64 formats accept
PRG files including their load-address prefix. When a recording contains
several complete tape files, an output path receives numbered files such as
program-1.xex and program-2.xex; such a recording cannot be written to
unframed STDOUT.
During live Morse reception, --receive-idle-millis must exceed the longest
expected inter-word pause. The default of 1500 ms is suitable for the supplied
12, 20 and 30 WPM transmission modes; slower external recordings may require a
larger value.
The AUDIO profile is intended for a loudspeaker-to-microphone connection and
favours robust transmission. The LINE profile is intended for a direct
line-out-to-line-in cable and favours throughput. Sender and receiver must use
the same profile and the same individually overridden transmission settings.
Normal status, progress and diagnostic messages are written to STDOUT. Use
--quiet when the receive operation writes its decoded payload to STDOUT,
so that the stream contains only payload data. Actual errors continue to use
STDERR.
Use --list-devices to obtain the Java Sound mixer names accepted by
--input-device and --output-device. Use --init to create an editable
configuration file. Command-line options take precedence over configured
values.
Depending on the executable’s flavor the command might also be named audioline-x.y.z.jar, audioline-bundle-x86_64-x.y.z.elf, audioline-bundle-x86_64-x.y.z.exe, audioline-installer-x86_64-x.y.z.msi, audioline-launcher-x.y.z.sh, audioline-launcher-x86_64-x.y.z.elf, audioline-launcher-x86_64-x.y.z.exe, audioline-native-x86_64-x.y.z.elf where x.y.z stands for the version of the audioline command. The according executable’s name will be referenced to in this manual as audioline.
The command-line help follows the effective message locale. Set the Java system property org.refcodes.messages.locale or the environment variable ORG_REFCODES_MESSAGES_LOCALE to de to explicitly select German output; otherwise the JVM’s default display locale is used, with English as the fallback when no localized bundle is available.
OPTIONS
| send: | Sends STDIN or an input file to a WAV file or the selected output device. |
| receive: | Receives a transmission from a WAV file or the selected input device and writes its payload to STDOUT or an output file. |
| -c --channel-selector <channelSelector>: | The PCM channel arrangement to use: { MONO, STEREO, LEFT, RIGHT }. |
| --config <config>: | Specifies the resource or file to use when loading the configuration. |
| --debug: | Enables debug mode with additional developer-readable informational output. During live reception, signal and decoder progress is reported once per second. |
| --help: | Shows this help. |
| -f --format <format>: | The byte-stream modem, International Morse or tape format: { FSK, PWM, MORSE, ATARI_FSK, ATARI_TURBO_2000, ATARI_SUPER_TURBO, C64_ROM_PAL, C64_ROM_NTSC, C64_TURBO_TAPE_64, C64_NOVALOAD_SPECIAL }. |
| -I --input-device <inputDevice>: | The Java Sound input device name or complete displayed description. Use --list-devices to list valid devices. |
| -i --input-file <inputFile>: | The byte-stream, UTF-8 text, XEX or PRG file to send, or the WAV file to receive from. STDIN or the selected audio input device is used when omitted. |
| --init: | Initializes the configuration from a template. |
| -l --list-devices: | Lists the available Java Sound input and output devices. |
| -m --modem-mode <modemMode>: | The FSK modem mode to use: { SOFT_MODEM_1, SOFT_MODEM_2, SOFT_MODEM_3, SOFT_MODEM_4, SOFT_MODEM_5 }. |
| --morse-mode <morseMode>: | The Morse mode used for transmission or exact reception: { SLOW_12_WPM, STANDARD_20_WPM, FAST_30_WPM }. Omit it during reception to probe automatically. |
| --morse-probe-mode <morseProbeMode>: | The automatic Morse reception search mode to use: { STANDARD, MANUAL, HIGH_SPEED }. |
| -O --output-device <outputDevice>: | The Java Sound output device name or complete displayed description. Use --list-devices to list valid devices. |
| -o --output-file <outputFile>: | The WAV file to send to, or the byte-stream, UTF-8 text, XEX or PRG output file. Multiple tape files receive numeric suffixes. The selected audio output device or STDOUT is used when omitted. |
| -p --profile <profile>: | The transmission profile to use (defaults to AUDIO): { AUDIO, LINE }. When repeated, the last profile is used and supplies the defaults for omitted individual transmission settings. |
| --preamble-bits <preambleBits>: | The positive number of preamble bits preceding each FSK or PWM data block. |
| -q --quiet: | Suppresses status, progress and diagnostic output. Use it when receive writes its payload to STDOUT; actual errors continue to use STDERR. |
| --receive-idle-millis <receiveIdleMillis>: | The idle time after the final decoded modem byte or after a completed tape file or Morse signal becomes silent (defaults to 1500 ms). |
| -S --sample-rate <sampleRate>: | The PCM sample rate to use: { HZ_44100, HZ_22050, HZ_29400 }. |
| --silence-threshold <silenceThreshold>: | The non-negative signal threshold used by byte-stream modems and live tape or Morse reception. |
| --sysinfo: | Shows some system information for debugging purposes. |
| -t --frequency-threshold <frequencyThreshold>: | The accepted FSK frequency correlation variance: { THRESHOLD_1, THRESHOLD_5, THRESHOLD_10, THRESHOLD_20, THRESHOLD_50, THRESHOLD_60 }. |
| -v --verbose: | Enables verbose mode with additional human-readable informational output. |
EXAMPLES
Send a payload file over a loudspeaker-to-microphone link:
- audioline send -p AUDIO -i <inputFile>
Receive a payload file over a loudspeaker-to-microphone link:
- audioline receive -p AUDIO -o <outputFile>
Encode a payload file as WAV audio:
- audioline send -i <inputFile> -o <outputFile.wav>
Decode a WAV file to a payload file:
- audioline receive -i <inputFile.wav> -o <outputFile>
Encode and decode a byte stream using the PWM modem:
- audioline send -f PWM -i <inputFile> -o <outputFile.wav>
- audioline receive -f PWM -i <inputFile.wav> -o <outputFile>
Encode and decode an Atari XEX file using the standard Atari FSK format:
- audioline send -f ATARI_FSK -i <inputFile.xex> -o <outputFile.wav>
- audioline receive -f ATARI_FSK -i <inputFile.wav> -o <outputFile.xex>
Encode and decode a Commodore 64 PRG file using the PAL ROM format:
- audioline send -f C64_ROM_PAL -i <inputFile.prg> -o <outputFile.wav>
- audioline receive -f C64_ROM_PAL -i <inputFile.wav> -o <outputFile.prg>
Encode and automatically decode International Morse text:
- audioline send -f MORSE --morse-mode STANDARD_20_WPM -i <inputFile.txt> -o <outputFile.wav>
- audioline receive -f MORSE --morse-probe-mode STANDARD -i <inputFile.wav> -o <outputFile.txt>
Decode known International Morse settings without automatic probing:
- audioline receive -f MORSE --morse-mode STANDARD_20_WPM -i <inputFile.wav> -o <outputFile.txt>
Send STDIN over a direct line-out-to-line-in cable:
- audioline send -p LINE
Receive a transmission to STDOUT over a direct line-out-to-line-in cable:
- audioline receive -q -p LINE
Select an output device when sending:
- audioline send -O <outputDevice> -i <inputFile>
Select an input device when receiving:
- audioline receive -I <inputDevice> -o <outputFile>
List available Java Sound devices:
- audioline -l
Create an editable configuration file:
- audioline --init
BUGS
See BitBucket issues at <https://bitbucket.org/funcodez/funcodes-audioline/issues>
AUTHOR
Siegfried Steiner steiner@refcodes.org
