Commit Graph

81 Commits

Author SHA1 Message Date
Vittorio Palmisano bac95c8113 emscripten : add rx duration frames api getter (#100)
* Add rxDurationFrames api getter

* Fixed comment

---------

Co-authored-by: Vittorio Palmisano <vittorio.palmisano@ringcentral.com>
2023-09-08 13:19:11 +03:00
Georgi Gerganov d02960259b ref #77 : add MT protocols to ggwave.js + new API for setting freqStart 2022-09-10 17:57:37 +03:00
Georgi Gerganov 84cdf0a0bd rp2040-rx : analog mic example 2022-07-23 16:00:27 +03:00
Georgi Gerganov 0ab93dfad3 ggwave : add filter function
Currently support the following filter:

- Hann window
- Hamming window
- First-order high-pass
2022-07-12 22:31:15 +03:00
Georgi Gerganov 1341b3d80e ggwave : update comments with proper ggwave_decode example 2022-07-11 19:14:39 +03:00
Georgi Gerganov d3d096ec2d spectrogram : remove old FFT algorithm
Reuse the one embedded within ggwave through a static function
2022-07-11 18:31:56 +03:00
Georgi Gerganov f2c8231cfc ggwave : fix build for Teensy boards 2022-07-10 17:35:26 +03:00
Georgi Gerganov ee6d6158d8 examples : polish the arduino and esp32 examples 2022-07-04 21:18:20 +03:00
Georgi Gerganov 745be065bd ggwave : pgmspace.h compatibility with esp32 2022-07-04 21:18:20 +03:00
Georgi Gerganov cd8c47ea11 ggwave : reduce memory for fixed payload + fix bug in decoding 2022-07-04 21:18:20 +03:00
Georgi Gerganov 9cea484135 ggwave : add DSS tests + improve enums 2022-07-04 21:18:20 +03:00
Georgi Gerganov c4947d75d7 ggwave : add DSS test + remove OperatingMode enum 2022-07-04 21:18:20 +03:00
Georgi Gerganov ca84180f22 ggwave : add default constructor 2022-07-04 21:18:20 +03:00
Georgi Gerganov 4a21ad667c ggwave : add default constructor 2022-07-04 21:18:20 +03:00
Georgi Gerganov 7918594b96 arduino : updating examples + fix memory alignment issue for rp2040 2022-07-04 21:18:20 +03:00
Georgi Gerganov 68367c2d09 ggwave : optimize memory footprint even more 2022-07-04 21:18:20 +03:00
Georgi Gerganov 535392d41f ggwave : remove <initializer_list> 2022-07-04 21:18:20 +03:00
Georgi Gerganov f7d9e90078 remove-stl : update arduino tx examples 2022-07-04 21:18:20 +03:00
Georgi Gerganov 456fc7a886 remove-stl : almost complete - only <initializer_list> remains 2022-07-04 21:18:20 +03:00
Georgi Gerganov e6d458e482 remove-stl : no longer using std::vector
However, the processing became ~4 times slower !?
2022-07-04 21:18:20 +03:00
Georgi Gerganov 4794508e04 remove-stl : prepare migration to ggvector 2022-07-04 21:18:20 +03:00
Georgi Gerganov d916ad332b remove-stl : start removing stl completely 2022-07-04 21:18:20 +03:00
Georgi Gerganov 14026a289e minor 2022-07-04 21:18:20 +03:00
Georgi Gerganov 7c5b614c16 ggwave : big refactoring / renaming 2022-07-04 21:18:20 +03:00
Georgi Gerganov f5e08d921b ggwave : various improvements
- faster FFT implementation
- built-in Direct Sequence Spread option
- remove <map> dependency from implementation
- update arduino-rx example
2022-07-04 21:18:20 +03:00
Georgi Gerganov 676163cc65 ggwave : remove <map> header dependency 2022-07-04 21:18:20 +03:00
Georgi Gerganov 4f94634611 ggwave : remove <functional> header dependency 2022-07-04 21:18:20 +03:00
Georgi Gerganov c272d79429 ggwave : remove <chrono> and <memory> headers 2022-07-04 21:18:20 +03:00
Georgi Gerganov 8a89e3fd50 examples : remove ggwave-mod
No longer needed since the core ggwave lib now supports mono-tone
protocols
2022-07-04 21:18:20 +03:00
Georgi Gerganov d752410c9c arduino-rx : generate Tx response 2022-07-04 21:18:20 +03:00
Georgi Gerganov 069169f700 ggwave : add mono-tone protocols 2022-07-04 21:18:20 +03:00
Georgi Gerganov 3f9b100687 ggwave : compute Tx amplitudes always 2022-07-04 21:18:20 +03:00
Georgi Gerganov 2eb5f8dadf ggwave : reduce memory allocations on Tx 2022-07-04 21:18:20 +03:00
Georgi Gerganov 5578a62b88 ggwave : remove unused ampl i16 Tx buffer 2022-07-04 21:18:20 +03:00
Georgi Gerganov 7a0c1681b1 ecc : reduce memory allocations in reed-solomon lib 2022-07-04 21:18:20 +03:00
Georgi Gerganov 481cc4f7e2 wip : pimpled Tx and moved resampler inside GGWave 2022-07-04 21:18:20 +03:00
Georgi Gerganov f4027d619f wip : pimpled Rx 2022-07-04 21:18:20 +03:00
Georgi Gerganov 6bbe8ecec3 wip : refactoring 2022-07-04 21:18:20 +03:00
Georgi Gerganov 05955a3ffa wip 2022-07-04 21:18:20 +03:00
Georgi Gerganov 7c2312d784 wip 2022-07-04 21:18:20 +03:00
Georgi Gerganov bbacdbcc96 c-api : add toggleRxProtocol() (#60)
This function allows to enable/disable Rx protocols during the decoding
process. This is useful when the Tx/Rx protocol is known in advance.
2021-11-22 21:29:26 +02:00
Georgi Gerganov 43bf2f17e1 ggwave : fix out-of-bounds access in ggwave_decode (#53)
Also, provide a memory-safe overload called ggwave_ndecode()
The overload takes an extra parameter that specifies the size of
the output buffer and thus limits the size of the Rx payload that can be
decoded and stored.
2021-09-21 07:07:12 +03:00
Georgi Gerganov 9cf2d476b8 Add interface for changing ggwave's internal logging (#52)
* ggwave : add interface for changing ggwave's internal logging

Using GGWave::setLogFile() it is now possible to change the log file
used internally by ggwave, or disable it all together.

* ggwave : add comments about thread-safety of setLogFile
2021-09-21 06:48:16 +03:00
Georgi Gerganov 00b23ff54f r2t2 - Transmit data through the PC speaker (#32)
* inital implementation

* remove file

* ggwave-cli : txProtocol -> txProtocolId

* ggwave : add custom protocol enum values

* r2t2 : use cutom protocols

* r2t2 : build only on Unix systems

* r2t2 : remove thread

* r2t2-rx : wip

* r2t2 : wasm build ready + various fixes

* r2t2 : error message

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* r2t2 : length 16

* r2t2 : use slow protocol by default

* r2t2 : add timestamp

* r2t2 : update html

* r2t2 : update github link

* r2t2 : more robust tx

* r2t2 : add option to use beep command

* emscripten : cannot use requestAnimationFrame when capturing audio

This causes the queued audio buffer to grow indefinitely when the page
is not focused, causing the process to run out of memory.

* r2t2 : disable beep option

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* r2t2 : add example to README
2021-04-18 13:20:45 +03:00
Georgi Gerganov ba87a651e3 ggwave : add option to query the generated tones
Calling the getWaveformTones() method after calling encode() gives a
list of the tones participating in the generated sound
2021-04-03 18:49:36 +03:00
Georgi Gerganov a0f5e9e3da waver : display detected Rx in spectrogram 2021-02-28 09:33:55 +02:00
Georgi Gerganov 1c59e38696 ggwave : switch to floating point sampling rate 2021-02-27 12:23:25 +02:00
Georgi Gerganov 5b5293d764 Waver v1.4.0 (#23)
* waver : change default protocol

* waver : global scale to 1.25

* waver : more colors

* waver : resend last message

* waver : bigger send button

* waver : start with fixed-length enabled

* waver : fix spectrum display for fixed-length mode

* waver : add option to control input sample rate offset

* ggwave : improve fixed-length decoding

* examples-common : SDL now captures 1024 samples instead of 4096

* waver : spectrum improvements + spectrogram mode

* minor changes

* ggwave : add FFT static method

* waver : realtime spectrum display

* waver : fix dragging behavior

* waver : show current tx protocol in "Messages"

* waver : show frequency range and bandwidth of selected protocol

* waver : change sample rate offset function

output instead of input

* waver : add info about local peers

* waver : add option to pause spectrum by clicking it

* waver : minor

* waver : add option descriptions

* waver : fix data races

* waver : purple-ish background

* waver : cian-ish background

* waver : add option button to cancel receiving

* waver : add option to select Rx Protocols

* waver : change default protocol

* waver : fix displayed protocol for each message
2021-02-27 11:45:01 +02:00
Georgi Gerganov 553b414929 ggwave : more resampling fixes
This time the sound cracking should be fixed for real.

Also adding option to generate noise in the cpp tests
2021-02-21 13:30:27 +02:00
Georgi Gerganov 62b71c3322 ggwave : resampling fixes
The old output resampling was bugged and produced cracking in the audio
when the output sampling rate was different from the base sampling rate.

Additionally, the decoding wasn't properly handling resampled input in all
cases.
2021-02-21 00:16:43 +02:00