Skip to content

Latest commit

 

History

History
30 lines (21 loc) · 995 Bytes

README.md

File metadata and controls

30 lines (21 loc) · 995 Bytes

ADSSS Modem

C++ modulation/demodulation algorithms to implement a data transmission channel between "smart" devices using an acoustic channel with an arbitrary, user-defined audio fragment acting as carrier sound.

Infographics for Acoustic Modem

Encoder usage

With carrier PCM data in memory:

std::vector<PCMTYPE> referencePcm;
// fill reference vector with PCM carrier data here
ADSSS::PcmHelpers::ReferenceSource referenceSource(referencePcmSamplerate, referencePcm);
ADSSS::Encoder encoder(referenceSource);
auto resultPcm = encoder.Go(payloadData);

Decoder usage

With encoded PCM data in memory:

std::vector<PCMTYPE> encodedPcm;
// fill encoded vector with PCM data here
ADSSS::PcmHelpers::ReferenceSource encodedSource(encodedPcmSamplerate, encodedPcm);
ADSSS::Decoder decoder(encodedSource);
auto decodedData = decoder.Go();