Tool to send/receive text/binary file over audio via many modulation schemes
Project description
quiet-transfer
Tool to send/receive text/binary file over audio via many modulation schemes
Installation
pip install quiet-transfer
Dependencies
cffi>=1.12.0
, pyaudio
, soundfile
Documentation
quiet-transfer
can be used as a command line command. It's purpose is to convert data to sound and send it
to a sound card or to a WAV file, and all the way back.
Usage
$> quiet-transfer -h
usage: quiet-transfer [-h] [-V] {send,receive} ...
Command line utility to send/receive files/strings via quiet library.
options:
-h, --help show this help message and exit
-V, --version print version number.
commands:
{send,receive} send or receive data.
send modulate data into audio signal.
receive demodulate data from audio signal.
Send
$> quiet-transfer send -h
usage: quiet-transfer send [-h] [-i <inputfile>] [-o <wavoutputfile>] [-p <protocol>] [-f]
Command line utility to send/receive files/strings via quiet library.
options:
-h, --help show this help message and exit
-i <inputfile>, --input <inputfile>
input file (use '-' for stdin).
-o <wavoutputfile>, --output-wav <wavoutputfile>
write audio to this wav file.
-p <protocol>, --protocol <protocol>
protocol
-f, --file-transfer enable file transfer mode.
<inputfile>
can be the name of a file to read data from or-
(default) if you want to read data fromstdin
.<wavoutputfile>
is the optional name of a WAV file to write audio data to. If not present, the audio data will be written to the current default output audio device<protocol>
can be one of:- audible
- audible-7k-channel-0
- audible-7k-channel-1
- cable-64k
- ultrasonic
- ultrasonic-3600
- ultrasonic-whisper
- the
--file-transfer
flag enables the following behaviour:- If
<inputfile>
is missing or is-
, the flag is ignored. - Otherwise, the
<inputfile>
is read in memory all at once and its CRC32 is calculated. - The file size and the CRC32 are put in a JSON header which is encoded in audio and sent to audio/written to the WAV file.
- Some information messages are written to
stderr
- If
Receive
$> quiet-transfer receive -h
usage: quiet-transfer receive [-h] [-o <outputfile>] [-w] [-d <dumpfile>] [-p <protocol>] [-i <wavinputfile>] [-f]
Command line utility to send/receive files/strings via quiet library.
options:
-h, --help show this help message and exit
-o <outputfile>, --output <outputfile>
output file (use '-' for stdout).
-w, --overwrite overwrite output file if it exists.
-d <dumpfile>, --dump <dumpfile>
dump received audio to this wav file.
-p <protocol>, --protocol <protocol>
protocol
-i <wavinputfile>, --input-wav <wavinputfile>
WAV file to read from.
-f, --file-transfer enable file transfer mode.
<outputfile>
can be the name of a file to write data to or-
(default) if you want to write data tostdout
.--overwrite
must be specified if<outputfile>
already exists.<protocol>
can be one of:- audible
- audible-7k-channel-0
- audible-7k-channel-1
- cable-64k
- ultrasonic
- ultrasonic-3600
- ultrasonic-whisper
<dumpfile>
is the optional name of a WAV file. All the audio data read from the soundcard or from a input WAV file is written to this file too.<wavinputfile>
is the optional name of a WAV file to analyze. Usually this file is generated using thesend --output-wav
option.--file-transfer
enables parsing of the JSON header generated while sending a file in file transfer mode. It is used to compare the remote file's size and CRC32 with the received file's ones.
See also
fm-transfer: (https://github.com/matteotenca/fm-transfer)
gg-transfer: (https://github.com/matteotenca/gg-transfer)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
quiet_transfer-0.2.6.tar.gz
(849.3 kB
view hashes)
Built Distributions
Close
Hashes for quiet_transfer-0.2.6-pp310-pypy310_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b9730f31bfbbd2311d9127cf0a452af8d17a76c78ad29d588b0eb32e5084dc3 |
|
MD5 | 9f6153a7d9c824baaf26e53cf7e50ee2 |
|
BLAKE2b-256 | da88192d84d8a42525e82d8b9a6ab6af6b9cf59aa48bbb0a37143b7318a2b1e7 |
Close
Hashes for quiet_transfer-0.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 065d2b8e2bb1be2692f3f038b9364ba11c85f211fb6163a3918e82b28ec9a0b9 |
|
MD5 | ef9fa034b28e7ad9bfa9e090c10c8769 |
|
BLAKE2b-256 | 55bd511020bc4ffbbb8c1620ab7d9059de97be2df66c26a6d40ff45d41eecf58 |
Close
Hashes for quiet_transfer-0.2.6-pp39-pypy39_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b809c07105a8436e149f04fd7426043279c28828f8fdbb5e1398de0c7495af2 |
|
MD5 | f60b1f34e817e056e27f93710c239318 |
|
BLAKE2b-256 | 5ed86c4f4997c30e3ba43130f7c823eb8127b9811995af61f5ae50e68e5b3838 |
Close
Hashes for quiet_transfer-0.2.6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48defcd0d9d852cee6ab70f0316319bf60f24c789f7a7baa96e1ba0f1619aba6 |
|
MD5 | d08460a1b99b7a0811df2a5803a94900 |
|
BLAKE2b-256 | fa5716b74a8daf3833959a6515e22ad959d54a51e635941514f0225c2b369608 |
Close
Hashes for quiet_transfer-0.2.6-pp38-pypy38_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d99d2547ee8abf60c86fd32154e6633ac994fb1a6a6811a5469bdeba63affd6 |
|
MD5 | c9ce18b4002efeaff06d4f1ba60ecd7e |
|
BLAKE2b-256 | a4a2ccf8d1ac66315ff55ffaa23062e6035b0b08377115a5477bf2f9dc3bfd55 |
Close
Hashes for quiet_transfer-0.2.6-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a223c842b28669eb73f7748411429d11b8065ea7c2f994afa679ec074f55a0c |
|
MD5 | 3483f9d2ce148e4ef1c0301c726a718b |
|
BLAKE2b-256 | 2413177667d05f4ea1dc3c6c2582c81a66210209bfac4d5efefdf9aef6594d5b |
Close
Hashes for quiet_transfer-0.2.6-cp313-cp313-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d4b28cceacc3e38572d524a523f295a5e1e220a281b11c034dc21d48fb32c0f |
|
MD5 | 500e455073b4b6828a0fad17a5f403ac |
|
BLAKE2b-256 | 5c89c09345d0274bf9cf1b89ce227b09b8d2f24979d293b82f664ea0c4e6c148 |
Close
Hashes for quiet_transfer-0.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e8a588b19eb2042d83e46cce5facf9eb4eccc8641d73bf4e2ccf0c7c1ade832 |
|
MD5 | 06c0e226fd00992ea311fd9685330b2c |
|
BLAKE2b-256 | b3934762b5fe643b2f1bbc373fa93a3dcc981fcffd3ffe8e8cffc0630ebe6587 |
Close
Hashes for quiet_transfer-0.2.6-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3bb331f1a0d8b137e6b13828d517cb7c93235f78bc6727d7ae8d3e9acde85be1 |
|
MD5 | e821ec5aaf19812e7eda432aba2c472c |
|
BLAKE2b-256 | 4067d38eae5760d92890165d560e70f564bc69e87aebbe971b0fa427b9a7a4fc |
Close
Hashes for quiet_transfer-0.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7db1b8c05391bdf79382438ba18eada738ea88b709be4a8997d972cbe63174d1 |
|
MD5 | cdb2d4c249fb7ca700019c490d1e5057 |
|
BLAKE2b-256 | 164b04b693ec6dfcebe3e33b37b2389cf0f55ad02609fef09843a504892abfd7 |
Close
Hashes for quiet_transfer-0.2.6-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e78c53061a5ab76863eca9bd8690501f7ec6d49ad46a413f6b470afd4c1028dd |
|
MD5 | 10acd71b58460978fbc5f58b17ad30ea |
|
BLAKE2b-256 | 8fd9220a4a78ef2300b9ec3333d0714397425c452c8d3afcfa7940413aa12e82 |
Close
Hashes for quiet_transfer-0.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1cdf2de13d0278f40dcf6d83264efa18c73203dc03b76955bd5bd410cac211fe |
|
MD5 | 768231ce2103f76bb398d0f167142854 |
|
BLAKE2b-256 | e073910953471fe2e21bb348435b6d977ad0f13787b2bfd35a5d3cb508326b5d |
Close
Hashes for quiet_transfer-0.2.6-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a7666109bb3b03032b7245e70bd6deb872b9fd24ee8aca3d03d725cd8c95792 |
|
MD5 | 544a2d0b572b8e8c01d55bae7fcc8771 |
|
BLAKE2b-256 | fa40f038b8123f7a3b2376f33a526b24569f378733137f9f0a1da18b904d05e6 |
Close
Hashes for quiet_transfer-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3875f096d9f4bf300531d3e898cfe0152a734aa924f37a51065c0fd25a77d2d |
|
MD5 | bb6bf8c9d20ff1f9e528581911916080 |
|
BLAKE2b-256 | eb5e3c83926baccf0b99f20d1756ab37296d7c420252ab1f4b0571d61fd46955 |
Close
Hashes for quiet_transfer-0.2.6-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f81f2aac0eba91f3b23b835b4d3d0e5f6783a668da580c1016f0d2b78e2da83f |
|
MD5 | 0ac845bf9f72009adbd8be3aa5983365 |
|
BLAKE2b-256 | c5481e95729ff7a1add8da563575da04f6fe0f3c5ee324e813837737a9d78269 |
Close
Hashes for quiet_transfer-0.2.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76134d5c9c5b8359d70b68e5ab0375c8b1236363adb2d990e33b63bd4563942e |
|
MD5 | caf1847d17f08102253a1d6a84191ca5 |
|
BLAKE2b-256 | 557e42389bc6762da9e109695209196c0dc355828942772604e80220e241906c |
Close
Hashes for quiet_transfer-0.2.6-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dec91aa2867e7e1390d59d63d6056e8e2b513844dc7c19cac2be50c31c6195a0 |
|
MD5 | 660bf96c04497d3d803ad54035ff110d |
|
BLAKE2b-256 | 267b297d641b42bb65de0c5367db48109f22626c147d6fcf3a07785e9830d9d7 |
Close
Hashes for quiet_transfer-0.2.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11b46786ff1f9cecdbb5356ff1a6b74eeb3a409fe358a693be39f94f355ecf31 |
|
MD5 | c539aacccf02c352a51c52249821ddb1 |
|
BLAKE2b-256 | e688f962fd8ac4d0469058cfd0b251694311f28d46c01b2f7c86db98b3952899 |