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
Georgi Gerganov
f4fb02d5d4
ggwave : add "soundMarkerThreshold" parameter
...
Can be used to control the threshold used for distinguishing odd from even
frequencies in the sound markers.
2021-02-21 00:13:28 +02:00
Georgi Gerganov
19bf22df0d
ggwave v0.2.0 ( #20 )
...
* ggwave : add support for fixed length transmissions
* spectrogram : add sample rate offset for debugging purposes
* gwave : fix decoding bug
* waver : wip
* wip
* remove post-marker frames
* add resampler
* ggwave : input/output resampling
* ggwave : fix python build
* ggwave : update spm
* ggwave : refactor duplicate encode/decode code
* ggwave : fix sound marker detection
* waver : fix typo
* ggwave : fix uninitialized members
* ggwave : more sensitive receive
2021-02-20 19:16:15 +02:00
Georgi Gerganov
555495f7cb
ggwave : add some more comments to the C interface
2021-01-25 21:30:07 +02:00
Georgi Gerganov
ba8e0cd2b1
c, python : add option to query encode size
2021-01-23 17:13:13 +02:00
Georgi Gerganov
0c746c1b15
tests : add test for capture/playback at different sample rates
2021-01-23 16:27:50 +02:00
Georgi Gerganov
597cc48cbb
core : refactoring + bug fix
...
- rename callback types
- fix calculation of data frames
2021-01-23 15:47:59 +02:00
Georgi Gerganov
a64106783f
Support for various sample formats ( #11 )
...
* wip : support for various sample formats
* finalize support for various sample formats
* adding more tests
* update python bindings
* add "string" header
2021-01-23 11:45:20 +02:00
Georgi Gerganov
86b3615012
tests : adding first tests + sanitizer builds
2021-01-18 21:32:27 +02:00
Georgi Gerganov
9645938e2e
ggwave : fix indentation
2021-01-17 23:08:22 +02:00
Georgi Gerganov
cd332b5919
ggwave : refactoring + comments
2021-01-17 21:19:41 +02:00
Georgi Gerganov
2ed431fa81
Add python bindings + package ( #10 )
...
* wip : python package
* wip : minor fixes
* wip : upload package to main pypi
* wip : initial text encoding
* wip : extending C api
* wip : use map of global instances
* wip : added decode functionality
* update main README
2021-01-17 17:36:50 +02:00
Georgi Gerganov
94978e679a
ggwave : add default samples per frame
2021-01-16 18:39:11 +02:00
Georgi Gerganov
7ccd6ed2c6
ggwave : print to stderr + send() return bool
2021-01-10 15:33:09 +02:00
Georgi Gerganov
a9b339c02e
ggwave : getTxProtocols is now static method
2021-01-09 13:24:19 +02:00
Georgi Gerganov
174b6872e8
examples : add "simple-rx" example + minor clean-up
2020-12-19 11:26:40 +02:00
Georgi Gerganov
ef081f4856
ggwave-gui : adding tx waveform display
2020-12-13 16:24:52 +02:00
Georgi Gerganov
7f4cce25fa
ggwave-gui : add spectrum + other UI stuff
2020-12-05 19:22:22 +02:00
Georgi Gerganov
cde32e3e96
ggwave : always reset RS instances
2020-12-05 17:01:33 +02:00
Georgi Gerganov
ce673be655
ggwave : use std::vector instead of std::array
2020-12-05 16:01:20 +02:00
Georgi Gerganov
368962c82d
ggwave-gui : add volume and protocol selection
2020-12-05 14:45:18 +02:00
Georgi Gerganov
1ee4274c48
wip : info about Rx protocol
2020-12-05 14:06:45 +02:00
Georgi Gerganov
cf35ed33c9
wip : fftw without std::complex
2020-12-05 14:00:32 +02:00
Georgi Gerganov
72d0ca630d
wip : volume no longer protocol parameter
2020-12-05 13:32:39 +02:00
Georgi Gerganov
4a8a219f39
wip : refactor GGWave
2020-12-05 13:20:06 +02:00
Georgi Gerganov
a02ead3b90
wip : remove TxMode
...
always use variable length
2020-12-05 11:25:29 +02:00
Georgi Gerganov
d95e09faf4
wip : remove param ecc bytes
2020-12-05 10:54:27 +02:00
Georgi Gerganov
09d0e41df4
wip : proper recording length
2020-12-05 10:03:48 +02:00