Olivia and Contestia modulator (compatible with fldigi): the written characters are collected in blocks of bitsPerSymbol() characters, which are FEC encoded into 64 (Contestia: 32) symbols. Each symbol is a tone with a raised cosine envelope over two symbol periods, so consecutive symbols overlap by half.
More...
#include <OliviaEncoder.h>
Olivia and Contestia modulator (compatible with fldigi): the written characters are collected in blocks of bitsPerSymbol() characters, which are FEC encoded into 64 (Contestia: 32) symbols. Each symbol is a tone with a raised cosine envelope over two symbol periods, so consecutive symbols overlap by half.
A transmission starts and ends with the fldigi start/stop tones (at the band edges). Call endTransmission() (or flush()) when the data is complete: an incomplete block is filled with 0 (the idle character). Olivia sends 8 bit characters escaped with 127, like fldigi: the character 127 itself can't be sent and is ignored.
- Copyright
- GPLv3
◆ OliviaEncoder() [1/2]
| tinymodem::OliviaEncoder::OliviaEncoder |
( |
| ) |
|
|
default |
◆ OliviaEncoder() [2/2]
| tinymodem::OliviaEncoder::OliviaEncoder |
( |
Print & | out | ) |
|
|
inline |
◆ addChar()
| void tinymodem::OliviaEncoder::addChar |
( |
uint8_t | ch | ) |
|
|
inlineprotected |
◆ audioInfo()
| audio_tools::AudioInfo tinymodem::OliviaEncoder::audioInfo |
( |
| ) |
|
|
inlineoverride |
◆ begin() [1/2]
| bool tinymodem::OliviaEncoder::begin |
( |
| ) |
|
|
inlineoverride |
◆ begin() [2/2]
Starts the processing with the indicated configuration.
◆ config()
The configuration which was provided in begin().
◆ defaultConfig()
Provides a default configuration: olivia-32-1000.
◆ end()
| void tinymodem::OliviaEncoder::end |
( |
| ) |
|
|
inlineoverride |
◆ endTransmission()
| bool tinymodem::OliviaEncoder::endTransmission |
( |
size_t | silence_samples = 0 | ) |
|
|
inlineoverridevirtual |
Sends the incomplete block and the stop tones (and adds optional silence): returns true if a transmission was ended.
Implements tinymodem::ModemEncoder.
◆ isTransmitting()
| bool tinymodem::OliviaEncoder::isTransmitting |
( |
| ) |
|
|
inlineoverridevirtual |
◆ operator bool()
| tinymodem::OliviaEncoder::operator bool |
( |
| ) |
|
|
inlineoverride |
◆ sendBlock()
| void tinymodem::OliviaEncoder::sendBlock |
( |
| ) |
|
|
inlineprotected |
◆ sendStartTones()
| void tinymodem::OliviaEncoder::sendStartTones |
( |
| ) |
|
|
inlineprotected |
The fldigi start and stop tones: the lower and upper band edge twice, each for 2048 samples at 8000 Hz
◆ sendSymbol()
| void tinymodem::OliviaEncoder::sendSymbol |
( |
int | tone | ) |
|
|
inlineprotected |
Writes one symbol period: the second half of the previous symbol and the first half of this symbol (-1 = none)
◆ setAudioInfo()
| void tinymodem::OliviaEncoder::setAudioInfo |
( |
audio_tools::AudioInfo | info | ) |
|
|
inlineoverride |
Defines the sample rate and number of channels of the generated audio.
◆ setOutput()
| void tinymodem::OliviaEncoder::setOutput |
( |
Print & | out | ) |
|
|
inlineoverride |
◆ startTransmission()
| void tinymodem::OliviaEncoder::startTransmission |
( |
| ) |
|
|
inlineprotected |
◆ symbolRate()
| float tinymodem::OliviaEncoder::symbolRate |
( |
| ) |
|
|
inlineoverridevirtual |
◆ write()
| size_t tinymodem::OliviaEncoder::write |
( |
const uint8_t * | data, |
|
|
size_t | len ) |
|
inlineoverride |
◆ writeIdle()
| bool tinymodem::OliviaEncoder::writeIdle |
( |
size_t | nsamples | ) |
|
|
inlineoverridevirtual |
◆ bits
| int tinymodem::OliviaEncoder::bits = 5 |
|
protected |
◆ block
| uint8_t tinymodem::OliviaEncoder::block[8] |
|
protected |
◆ block_len
| int tinymodem::OliviaEncoder::block_len = 0 |
|
protected |
◆ cfg
◆ codec
◆ is_active
| bool tinymodem::OliviaEncoder::is_active = false |
|
protected |
◆ phase
| float tinymodem::OliviaEncoder::phase = 0 |
|
protected |
◆ prev_freq
| float tinymodem::OliviaEncoder::prev_freq = 0 |
|
protected |
◆ prev_phase
| float tinymodem::OliviaEncoder::prev_phase = 0 |
|
protected |
◆ random_seed
| uint32_t tinymodem::OliviaEncoder::random_seed = 1 |
|
protected |
◆ sample_index
| uint64_t tinymodem::OliviaEncoder::sample_index = 0 |
|
protected |
◆ samples
◆ symbol_index
| uint64_t tinymodem::OliviaEncoder::symbol_index = 0 |
|
protected |
◆ symbol_time
| double tinymodem::OliviaEncoder::symbol_time = 0 |
|
protected |
◆ transmitting
| bool tinymodem::OliviaEncoder::transmitting = false |
|
protected |
The documentation for this class was generated from the following file: