changed name from threnodyne to cicadenade
This commit is contained in:
parent
4320e50a7a
commit
e238752281
|
@ -1,5 +1,5 @@
|
|||
[package]
|
||||
name = "threnodyne"
|
||||
name = "cicadenade"
|
||||
version = "0.1.0"
|
||||
authors = ["Fluora Eigendiode <ellie.martin.eberhardt@gmail.com>"]
|
||||
edition = "2018"
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Threnodyne
|
||||
# Cicadenade
|
||||
#### More audio-based data transmission! This time it's using chirp spread spectrum
|
||||
|
||||
### What this is
|
||||
Threnodyne is another thing for making a sound card work as a silly budget SDR, in the same vein as
|
||||
Cicadenade is another thing for making a sound card work as a silly budget SDR, in the same vein as
|
||||
[transgride](https://tildegit.org/fluora/transgride). To work on radio waves, it probably needs some
|
||||
kind of upconverter, unless you're into VLF.
|
||||
|
||||
|
@ -25,7 +25,7 @@ As usual for Rust projects, you can build it (after installing the toolchain) wi
|
|||
`cargo build --release`, which will emit an executable into `target/release`. Run that executable
|
||||
with `--help` for the detailed usage information:
|
||||
```txt
|
||||
Threnodyne is program for transmitting and receiving data in chirp-sequence spread-spectrum form
|
||||
Cicadenade is program for transmitting and receiving data in chirp-sequence spread-spectrum form
|
||||
using your computer's audio card.
|
||||
|
||||
Chirps can provide substantial resistance to unfavorable channel conditions, which makes this
|
||||
|
@ -52,7 +52,7 @@ the signal.
|
|||
useful if searching for text on a noisy channel.
|
||||
|
||||
-g, --debug (default 0) - If specified when demodulating, emits every nth correlation value in f32
|
||||
form to threnodyne_rise.dat and threnodyne_fall.dat.
|
||||
form to cicadenade_rise.dat and cicadenade_fall.dat.
|
||||
```
|
||||
|
||||
### Is it useful?
|
||||
|
|
36
src/main.rs
36
src/main.rs
|
@ -23,7 +23,7 @@ fn main
|
|||
(
|
||||
lapp::parse_args(
|
||||
"
|
||||
Threnodyne is program for transmitting and receiving data in chirp-sequence spread-spectrum form using your computer's audio card.
|
||||
Cicadenade is program for transmitting and receiving data in chirp-sequence spread-spectrum form using your computer's audio card.
|
||||
|
||||
Chirps can provide substantial resistance to unfavorable channel conditions, which makes this program \
|
||||
potentially suitable for transmitting data over channels intended for narrowband voice communication.
|
||||
|
@ -42,7 +42,7 @@ fn main
|
|||
-t, --squelch (default 0.4) - Minimum signal match degree for demodulation, from 0.0 (accept all) to 1.0 (ignore all).
|
||||
-a, --ascii-only - When demodulating, suppress all output that is not an ASCII character. Possibly useful if searching for text on a noisy channel.
|
||||
|
||||
-g, --debug (default 0) - If specified when demodulating, emits every nth correlation value in f32 form to threnodyne_rise.dat and threnodyne_fall.dat.
|
||||
-g, --debug (default 0) - If specified when demodulating, emits every nth correlation value in f32 form to cicadenade_rise.dat and cicadenade_fall.dat.
|
||||
"
|
||||
)
|
||||
);
|
||||
|
@ -63,49 +63,49 @@ fn main
|
|||
if !(
|
||||
&["e", "d"].contains(&mode.as_str())
|
||||
) {
|
||||
eprintln!("threnodyne: please specify either 'e' to encode/enmodulate or 'd' to decode/demodulate.");
|
||||
eprintln!("cicadenade: please specify either 'e' to encode/enmodulate or 'd' to decode/demodulate.");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if arg_samplerate <= 0.0
|
||||
{
|
||||
eprintln!("threnodyne: the sample rate must be a positive, nonzero number ({} won't do)", arg_samplerate);
|
||||
eprintln!("cicadenade: the sample rate must be a positive, nonzero number ({} won't do)", arg_samplerate);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if arg_bitrate < 0.0
|
||||
{
|
||||
eprintln!("threnodyne: the bitrate must be a positive number ({} won't do)", arg_bitrate);
|
||||
eprintln!("cicadenade: the bitrate must be a positive number ({} won't do)", arg_bitrate);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if arg_bitrate > arg_samplerate
|
||||
{
|
||||
eprintln!("threnodyne: the bitrate cannot be larger than the sample rate (a bitrate of {} won't do when the sample rate is {})", arg_bitrate, arg_samplerate);
|
||||
eprintln!("cicadenade: the bitrate cannot be larger than the sample rate (a bitrate of {} won't do when the sample rate is {})", arg_bitrate, arg_samplerate);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if arg_centerfreq < 0.0
|
||||
{
|
||||
eprintln!("threnodyne: the center frequency must be a positive number ({} won't do)", arg_centerfreq);
|
||||
eprintln!("cicadenade: the center frequency must be a positive number ({} won't do)", arg_centerfreq);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if arg_deviation < 0.0
|
||||
{
|
||||
eprintln!("threnodyne: the frequency deviation must be a positive number ({} won't do)", arg_deviation);
|
||||
eprintln!("cicadenade: the frequency deviation must be a positive number ({} won't do)", arg_deviation);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if arg_deviation > arg_centerfreq
|
||||
{
|
||||
eprintln!("threnodyne: the frequency deviation cannot be larger than the center frequency (a deviation of {} won't do when the center frequency is {})", arg_deviation, arg_centerfreq);
|
||||
eprintln!("cicadenade: the frequency deviation cannot be larger than the center frequency (a deviation of {} won't do when the center frequency is {})", arg_deviation, arg_centerfreq);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if arg_squelch < 0.0
|
||||
{
|
||||
eprintln!("threnodyne: the squelch threshold must be at least 0.0 ({} won't do)", arg_squelch);
|
||||
eprintln!("cicadenade: the squelch threshold must be at least 0.0 ({} won't do)", arg_squelch);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
@ -133,7 +133,7 @@ fn main
|
|||
Err(why) if why.kind() == ErrorKind::UnexpectedEof => break,
|
||||
Err(why) =>
|
||||
{
|
||||
eprintln!("threnodyne: input read error: {}", why);
|
||||
eprintln!("cicadenade: input read error: {}", why);
|
||||
exit(1);
|
||||
},
|
||||
Ok(_) => input_buffer[0],
|
||||
|
@ -163,7 +163,7 @@ fn main
|
|||
{
|
||||
Err(why) =>
|
||||
{
|
||||
eprintln!("threnodyne: output write error: {}", why);
|
||||
eprintln!("cicadenade: output write error: {}", why);
|
||||
exit(1);
|
||||
},
|
||||
Ok(_) => (),
|
||||
|
@ -194,21 +194,21 @@ fn main
|
|||
debug_files =
|
||||
Some(
|
||||
(
|
||||
match File::create("threnodyne_rise.dat")
|
||||
match File::create("cicadenade_rise.dat")
|
||||
{
|
||||
Ok(file) => file,
|
||||
Err(why) =>
|
||||
{
|
||||
eprintln!("threnodyne: could not create debug output file for rising correlation: {}", why);
|
||||
eprintln!("cicadenade: could not create debug output file for rising correlation: {}", why);
|
||||
exit(1);
|
||||
},
|
||||
},
|
||||
match File::create("threnodyne_fall.dat")
|
||||
match File::create("cicadenade_fall.dat")
|
||||
{
|
||||
Ok(file) => file,
|
||||
Err(why) =>
|
||||
{
|
||||
eprintln!("threnodyne: could not create debug output file for falling correlation: {}", why);
|
||||
eprintln!("cicadenade: could not create debug output file for falling correlation: {}", why);
|
||||
exit(1);
|
||||
},
|
||||
},
|
||||
|
@ -232,7 +232,7 @@ fn main
|
|||
},
|
||||
Err(why) =>
|
||||
{
|
||||
eprintln!("threnodyne: input read error: {}", why);
|
||||
eprintln!("cicadenade: input read error: {}", why);
|
||||
exit(1);
|
||||
},
|
||||
Ok(_) => (),
|
||||
|
@ -279,7 +279,7 @@ fn main
|
|||
{
|
||||
Err(why) =>
|
||||
{
|
||||
eprintln!("threnodyne: output write error: {}", why);
|
||||
eprintln!("cicadenade: output write error: {}", why);
|
||||
exit(1);
|
||||
},
|
||||
Ok(_) => (),
|
||||
|
|
Loading…
Reference in New Issue