AUDIOLINK manpage

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

SEE ALSO