AUDIOLINK(1) General Commands Manual
NAME
audiolink - Transfers byte streams through audio devices or WAV files using the REFCODES frequency-shift keying modem.
SYNOPSIS
| audiolink | send [ --config <config> ] [ -p <profile> ] [ -S <sampleRate> ] [ -c <channelSelector> ] [ -m <modemMode> ] [ -t <frequencyThreshold> ] [ --preamble-bits <preambleBits> ] [ --silence-threshold <silenceThreshold> ] [ -i <inputFile> ] [ -o <outputFile> ] [ -O <outputDevice> ] [ -v ] [ --debug ] |
| audiolink | receive [ --config <config> ] [ -p <profile> ] [ -S <sampleRate> ] [ -c <channelSelector> ] [ -m <modemMode> ] [ -t <frequencyThreshold> ] [ --preamble-bits <preambleBits> ] [ --silence-threshold <silenceThreshold> ] [ -i <inputFile> ] [ -I <inputDevice> ] [ -o <outputFile> ] [ --receive-idle-millis <receiveIdleMillis> ] [ -v ] [ --debug ] |
| audiolink | -l [ --config <config> ] [ -v ] [ --debug ] |
| audiolink | --init [ --config <config> ] [ -v ] [ --debug ] |
| audiolink | --help | --sysinfo |
DESCRIPTION
This manual page documents the audiolink 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 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.
Diagnostic output is written separately from the received payload so that
STDOUT remains a clean byte stream.
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 audiolink-x.y.z.jar, audiolink-bundle-x86_64-x.y.z.elf, audiolink-bundle-x86_64-x.y.z.exe, audiolink-installer-x86_64-x.y.z.msi, audiolink-launcher-x.y.z.sh, audiolink-launcher-x86_64-x.y.z.elf, audiolink-launcher-x86_64-x.y.z.exe, audiolink-native-x86_64-x.y.z.elf where x.y.z stands for the version of the audiolink command. The according executable’s name will be referenced to in this manual as audiolink.
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 }. |
| --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, diagnostics are shown until the first payload byte is received. |
| --help: | Shows this help. |
| -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 payload 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 modem mode to use: { SOFT_MODEM_1, SOFT_MODEM_2, SOFT_MODEM_3, SOFT_MODEM_4, SOFT_MODEM_5 }. |
| -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 payload file for received bytes. The selected audio output device or STDOUT is used when omitted. |
| -p --profile <profile>: | The transmission profile to use (defaults to AUDIO): { AUDIO, LINE }. |
| --preamble-bits <preambleBits>: | The positive number of carrier bits preceding each encoded data block. |
| --receive-idle-millis <receiveIdleMillis>: | The time to wait after the final decoded byte before completing reception (defaults to 1500 ms). |
| -S --sample-rate <sampleRate>: | The PCM sample rate to use: { STEREO, MONO, SEMI }. |
| --silence-threshold <silenceThreshold>: | The non-negative root mean square amplitude treated as silence. |
| --sysinfo: | Shows some system information for debugging purposes. |
| -t --frequency-threshold <frequencyThreshold>: | The accepted 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:
- audiolink send -p AUDIO -i <inputFile>
Receive a payload file over a loudspeaker-to-microphone link:
- audiolink receive -p AUDIO -o <outputFile>
Encode a payload file as WAV audio:
- audiolink send -i <inputFile> -o <outputFile.wav>
Decode a WAV file to a payload file:
- audiolink receive -i <inputFile.wav> -o <outputFile>
Send STDIN over a direct line-out-to-line-in cable:
- audiolink send -p LINE
Receive a transmission to STDOUT over a direct line-out-to-line-in cable:
- audiolink receive -p LINE
Select an output device when sending:
- audiolink send -O <outputDevice> -i <inputFile>
Select an input device when receiving:
- audiolink receive -I <inputDevice> -o <outputFile>
List available Java Sound devices:
- audiolink -l
Create an editable configuration file:
- audiolink --init
BUGS
See BitBucket issues at <https://bitbucket.org/funcodez/funcodes-audiolink/issues>
AUTHOR
Siegfried Steiner steiner@refcodes.org
