Marat Fayzullin
02c9a2480e
Adding number of buckets
2023-01-28 13:56:20 -05:00
Marat Fayzullin
47a400b69a
Adding proper offset selection.
2023-01-28 13:56:20 -05:00
Marat Fayzullin
ec2819b886
Adding CW decoder.
2023-01-28 13:56:20 -05:00
Marat Fayzullin
e3780f6aea
Adding all current customizations to the original forked code.
2022-11-19 14:34:47 -05:00
Jakob Ketterl
46c78f6463
avoid demodulator concurrency
...
* this frees up resources used by the current demodulator before
starting a new one
* this addresses an issue where users of single-channel AMBE sticks
could not seamlessly switch between digital modes
2021-12-23 16:32:51 +01:00
Jakob Ketterl
40c68933e1
add preliminary parsing and display of M17 metadata
2021-12-21 21:18:17 +01:00
Jakob Ketterl
4ce3816f48
show codecserver errors in the client
2021-12-13 13:26:47 +01:00
Jakob Ketterl
33c8e34456
use the resume call before pumping data from a reader
2021-10-26 16:40:38 +02:00
Jakob Ketterl
8cce5bd889
add metrics for pocsag
2021-10-01 00:52:32 +02:00
Jakob Ketterl
1e57fb4609
expect a broken pipe
2021-09-30 23:04:59 +02:00
Jakob Ketterl
c3917c61d3
fix audio compression switching
2021-09-28 17:46:18 +02:00
Jakob Ketterl
25e2a8013e
parser typing
2021-09-28 00:27:01 +02:00
Jakob Ketterl
757ec01ea4
clientReader is not used any more
2021-09-28 00:14:53 +02:00
Jakob Ketterl
a07480fd9a
remove old csdr code
2021-09-27 18:53:49 +02:00
Jakob Ketterl
909a969e04
restore wfm deemphasis tau functionality
2021-09-27 17:46:19 +02:00
Jakob Ketterl
edace3d451
work on some todos
2021-09-27 17:29:51 +02:00
Jakob Ketterl
cbcba5807f
restore PSK decoding
2021-09-23 18:43:41 +02:00
Jakob Ketterl
83d01553e3
use "Optional" in typing
2021-09-20 17:24:10 +02:00
Jakob Ketterl
f2a97415b9
more localized imports
2021-09-20 16:55:17 +02:00
Jakob Ketterl
81ed1a9ebb
abstract chain features; use local imports to avoid hard dependencies
2021-09-20 16:14:23 +02:00
Jakob Ketterl
b2e15c559e
refactor
2021-09-20 15:32:26 +02:00
Jakob Ketterl
c10fdd2a53
move
2021-09-20 15:16:06 +02:00
Jakob Ketterl
9efe41a2b1
move the pump mechanism, allowing the old output code to be removed
2021-09-20 15:09:26 +02:00
Jakob Ketterl
6129b92277
avoid duplicate method
2021-09-15 15:01:36 +02:00
Jakob Ketterl
e5b120311d
get freedv back by modeling a corresponding module and chain
2021-09-13 16:58:02 +02:00
Jakob Ketterl
72920135e9
fix initial setup of dial frequency
2021-09-09 22:24:41 +02:00
Jakob Ketterl
66cf940523
refactor the metaparser into a modules and use accordingly
2021-09-09 15:11:33 +02:00
Jakob Ketterl
ca0f7af1d0
use stereo downmix; disable squelch for DRM
2021-09-08 13:48:11 +02:00
Jakob Ketterl
d9db74e565
fix reading from process
2021-09-08 13:47:46 +02:00
Jakob Ketterl
9ca5e0ebd6
restore DRM functionality
2021-09-07 17:31:32 +02:00
Jakob Ketterl
f3b05c6318
re-add m17
2021-09-07 14:45:52 +02:00
Jakob Ketterl
6014ce8921
restore pocsag functionality
2021-09-06 20:00:14 +02:00
Jakob Ketterl
b9f43654cd
restore aprs functionality
2021-09-06 15:05:33 +02:00
Jakob Ketterl
7c43c78c4b
refactor aprs stuff
2021-09-02 11:00:57 +02:00
Jakob Ketterl
01260d66c8
create a base class for python-implemented modules
2021-09-01 15:08:28 +02:00
Jakob Ketterl
51453662e2
fix dial frequencies
2021-08-31 22:46:11 +02:00
Jakob Ketterl
73d326037c
restore audio chopper decoding
2021-08-31 16:54:37 +02:00
Jakob Ketterl
4a4901fa38
restore secondary fft
2021-08-28 00:10:46 +02:00
Jakob Ketterl
4c1777dc19
refactor
2021-08-27 17:34:48 +02:00
Jakob Ketterl
42b315ef86
handle empty converter chain
2021-08-27 16:11:03 +02:00
Jakob Ketterl
aecb79a4d4
restore demodulation of digital voice modes
2021-08-26 15:58:02 +02:00
Jakob Ketterl
5032f4b66d
first steps at rewiring the dsp stuff
2021-08-23 14:25:28 +02:00
Jakob Ketterl
0f1feb9d47
return to the simpler API
2021-08-16 16:41:18 +02:00
Jakob Ketterl
be6f533437
re-structure client audio conversion
2021-08-12 18:01:03 +02:00
Jakob Ketterl
c3d393252b
parse metadata as UTF-8
2021-08-12 16:51:21 +02:00
Jakob Ketterl
1e8527da68
add YSF chain; re-introduce RRC filters
2021-08-10 14:03:49 +02:00
Jakob Ketterl
2b3123c7cb
dmr tdma slot filter control
2021-08-07 00:09:40 +02:00
Jakob Ketterl
3ccb4a11d2
add new DMR chain
2021-08-06 20:02:59 +02:00
Jakob Ketterl
c5a314810e
read metadata from pipeline decoders
2021-08-01 00:49:20 +02:00
Jakob Ketterl
f8f2740c77
implement nxdn chain using new digiham components
2021-07-31 00:10:10 +02:00
Jakob Ketterl
1c91c6dcc1
start building digiham chains
2021-07-30 00:06:21 +02:00
Jakob Ketterl
11a3606070
use the new cutoff parameter to compensate the fractional decimator
2021-07-25 23:38:24 +02:00
Jakob Ketterl
75aac5969a
implement WFM with the new chain elements
2021-07-25 22:44:53 +02:00
Jakob Ketterl
459a99cbf8
backport the sync implementation from the csdr++ branch
2021-07-25 20:06:14 +02:00
Jakob Ketterl
c07d9ecf92
use the right rates
2021-07-25 19:36:03 +02:00
Jakob Ketterl
99c7093a1a
pack the client audio processing into its own chain
2021-07-25 19:31:56 +02:00
Jakob Ketterl
223c2d1709
BufferReader won't return bytes
2021-07-25 17:36:32 +02:00
Jakob Ketterl
6db80ec51a
clarify s-meter interval calculations
2021-07-25 00:17:27 +02:00
Jakob Ketterl
207ada70fd
restore s-meter display
2021-07-25 00:05:48 +02:00
Jakob Ketterl
c50da15bfd
apply all decimation in comples to simplify the chain
2021-07-24 22:25:41 +02:00
Jakob Ketterl
ab99b8e476
don't wrap the module, it's not necessary
2021-07-24 22:11:41 +02:00
Jakob Ketterl
7d7cec1ec3
update to match pycsdr chaanges
2021-07-24 18:50:30 +02:00
Jakob Ketterl
aeca8265c3
fine-tune agc
2021-07-20 17:58:32 +02:00
Jakob Ketterl
b242f09d5d
Merge branch 'develop' into pycsdr
2021-07-20 13:33:52 +02:00
Jakob Ketterl
ad396fa970
remove "unvoiced quality" setting
2021-07-20 13:33:26 +02:00
Jakob Ketterl
2bcb62e706
add ssb chain
2021-07-20 00:57:43 +02:00
Jakob Ketterl
be093b8b05
implement a method to replace chain members
2021-07-20 00:44:41 +02:00
Jakob Ketterl
eb76ec4a9f
add am demodulator chain
2021-07-19 23:32:03 +02:00
Jakob Ketterl
f03a6c127e
fix initial demodulator parameters
2021-07-19 19:48:18 +02:00
Jakob Ketterl
5bb14a8997
first working nfm chain using pycsdr
2021-07-19 19:04:14 +02:00
Jakob Ketterl
8531d5e4ab
properly shutdown and unblock the final buffer
2021-07-18 14:56:48 +02:00
Jakob Ketterl
320521a74a
adopt to updated api
2021-07-16 16:12:16 +02:00
Jakob Ketterl
5e7a0a38aa
Merge branch 'develop' into pycsdr
2021-07-15 18:09:39 +02:00
Jakob Ketterl
e6dd1e0fde
disable squelch for DRM, too
2021-07-15 12:54:21 +02:00
Jakob Ketterl
f5c2525f22
switch NXDN to use digiham decoder; add meta panel
2021-06-15 22:50:30 +02:00
Jakob Ketterl
5fd303f4a2
replace dsd with dstar_decoder from the digiham package
2021-06-08 13:36:08 +02:00
Jakob Ketterl
d04ab43977
add ability to configure codecserver
2021-05-29 18:50:17 +02:00
Jakob Ketterl
a16ad952c4
change digiham / ambe integration
2021-05-27 21:35:55 +02:00
Jakob Ketterl
89cd17042a
re-introduce (improved) dc blocker to allow slightly off-frequency
...
signals
2021-04-20 01:06:01 +02:00
Jakob Ketterl
9351e4793c
merge AudioHandler and AudioChopper; split audio module
2021-04-11 14:40:28 +02:00
Jakob Ketterl
907359df82
fix js8 parser
2021-04-09 22:40:30 +02:00
Jakob Ketterl
bbad34cec3
move wsjt/js8 decisions out of csdr
2021-04-09 18:16:25 +02:00
Jakob Ketterl
fcbaa4f22a
implement aprs config changes
2021-04-07 16:20:10 +02:00
Jakob Ketterl
c0ca216e4d
make "digimodes_fft_size" work from web config
2021-04-05 17:18:30 +02:00
Jakob Ketterl
7dcafab2c1
restart on fft_compression changes, too
2021-02-27 00:29:04 +01:00
Jakob Ketterl
baef88bd94
restart demodulator on compression changes
2021-02-27 00:17:37 +01:00
Jakob Ketterl
819790cbc8
prevent an endless loop when client has problematic audio
2021-02-15 18:03:16 +01:00
Jakob Ketterl
5068bcd347
run black
2021-02-11 23:08:19 +01:00
Jakob Ketterl
024a6684ce
fix undefined variable
2021-02-11 23:07:45 +01:00
Jakob Ketterl
aad757df36
remove experimental csdr settings
2021-02-11 22:51:50 +01:00
Jakob Ketterl
d6d6d97a13
add Q65 mode integration
2021-02-03 20:11:07 +01:00
Jakob Ketterl
e11bbbf494
remove fft stuff from csdr
2021-01-23 19:40:05 +01:00
Jakob Ketterl
4b94126dc3
use the fft chain directly without csdr dsp classes
2021-01-23 19:27:01 +01:00
Jakob Ketterl
4e429d047d
Merge branch 'develop' into pycsdr
2021-01-23 17:17:44 +01:00
Jakob Ketterl
68a1abd37e
keep intermediate sample rate down to a minimum
2021-01-22 18:47:34 +01:00
Jakob Ketterl
bcab2b2288
update copyright notices
2021-01-22 18:10:51 +01:00
Jakob Ketterl
64b7b485b3
run the code formatter over all
2021-01-20 17:01:46 +01:00
Jakob Ketterl
ee8d896d60
implement output buffer shutdown
2021-01-17 21:01:54 +01:00
Jakob Ketterl
297d6b540d
Merge branch 'develop' into pycsdr
2021-01-17 18:16:32 +01:00
Jakob Ketterl
e917b920c8
remove failing stop() implementation on destructor
2021-01-17 18:11:10 +01:00
Jakob Ketterl
1b36baad88
extend default WFM bandwidth to 150kHz, allowing up to 200kHz
2021-01-14 23:47:12 +01:00
Jakob Ketterl
f4629804ff
explicitly unset chain since automatic garbage collection is broken
2021-01-04 00:24:06 +01:00
Jakob Ketterl
a2d731503f
update api
2021-01-02 03:12:21 +01:00
Jakob Ketterl
ca183c7c5a
Merge branch 'develop' into pycsdr
2020-12-27 20:22:42 +01:00
Jakob Ketterl
ecf934864a
move dc_block to individual chains since it interferes with m17 demod
2020-12-27 19:49:59 +01:00
Jakob Ketterl
fa3b5cd7e6
implement new buffer input / output api
2020-12-25 20:27:30 +01:00
Jakob Ketterl
2df527ed20
wrap averager (prepare to make it switchable)
2020-12-21 00:33:48 +01:00
Jakob Ketterl
2c7c41cded
move fft calculations into fft chain
2020-12-20 22:55:10 +01:00
Jakob Ketterl
1083d51e18
update fft parameters without restarting
2020-12-19 17:13:36 +01:00
Jakob Ketterl
40c07ebb57
move fft calculations to dsp class
2020-12-19 16:41:48 +01:00
Jakob Ketterl
efe80a75f5
put the socketclient on the source so it can be shared
2020-12-19 16:28:18 +01:00
Jakob Ketterl
1bd6aa73f3
encapsulate fft chain in its own class
2020-12-16 18:52:00 +01:00
Jakob Ketterl
4b61192b36
add a feature flag
2020-12-16 10:18:47 +01:00
Jakob Ketterl
664c6e049f
pycsdr based ffd (baby steps)
2020-12-15 23:02:12 +01:00
Jakob Ketterl
6af19f44e8
Merge branch 'develop' into m17
2020-12-08 16:57:00 +01:00
Jakob Ketterl
ac4401175f
add FST4 and FST4W modes
2020-12-07 11:56:01 +01:00
Jakob Ketterl
bee6ddc843
use information from the mode registry to set up services
2020-12-06 00:36:20 +01:00
Jakob Ketterl
017bbc3748
attempt to include m17-demod (untested due to lack of signals)
2020-11-23 01:00:25 +01:00
Jakob Ketterl
e6a04aa5e9
use agc on wsjtx/js8 since the levels are too low on some sdrs
2020-10-25 14:41:53 +01:00
Jakob Ketterl
f31685e4e7
fix some exceptions due to None values
2020-10-11 00:15:09 +02:00
Jakob Ketterl
1faa61ad50
allow wfm deemphasis tau to be set from the outside
2020-10-04 21:46:58 +02:00
Jakob Ketterl
a3285d5943
make the secondary fft run faster again
2020-09-17 22:57:40 +02:00
Jakob Ketterl
b9e19421c1
activate fft averaging on the secondary fft
2020-09-17 22:43:39 +02:00
Jakob Ketterl
6a6d4a3c9b
secondary fft is now complex, better display for digimodes based on FM
2020-09-17 22:21:49 +02:00
Jakob Ketterl
9a5286ca24
use complex fractional decimator
2020-09-04 22:02:23 +02:00
Jakob Ketterl
e8068a8795
fix dream audio output
2020-09-04 19:14:16 +02:00
Jakob Ketterl
2411929455
implement DRM mode with dream
2020-09-04 18:09:02 +02:00
Jakob Ketterl
d609acc6aa
freedv agc fine-tuning
2020-08-29 21:32:21 +02:00
Jakob Ketterl
c16a1b4726
fine-tune dsd agc; remove limiter (included in agc now)
2020-08-28 22:05:00 +02:00
Jakob Ketterl
d1cea95eb4
use 16bit agc for freedv and dsd modes, refs #126
2020-08-27 22:35:49 +02:00
Jakob Ketterl
53eefa7c80
fix last_decimation
2020-08-27 22:35:12 +02:00
Jakob Ketterl
b06732dbf5
fine-tuning of dsd audio agc
2020-08-27 19:41:46 +02:00
Jakob Ketterl
22feb8dd1c
moderate agc for NFM
2020-08-27 19:28:20 +02:00
Jakob Ketterl
055269504b
use the new agc parameters
2020-08-26 19:45:21 +02:00
Jakob Ketterl
dea5b15656
new gain parameters for digital modes
2020-08-26 00:43:49 +02:00
Jakob Ketterl
6650438d2f
slow agc parameters for AM
2020-08-25 21:28:18 +02:00
Jakob Ketterl
4204e4d9e2
Merge branch 'develop' into agc_work
2020-08-24 00:03:55 +02:00
Jakob Ketterl
0030c6d656
thread names to aid debugging
2020-08-14 20:22:25 +02:00
Jakob Ketterl
7e5ea6e065
improve read pipe opening
2020-08-14 20:20:07 +02:00
Jakob Ketterl
49383e757f
extract pipes to separate file
2020-08-14 19:54:07 +02:00
Jakob Ketterl
0cd0a1085a
uncouple reading pipes, too, and select makes the threads time out
2020-08-14 00:17:09 +02:00
Jakob Ketterl
5bc69b6fa4
use id of pipe to avoid file system collisions
2020-08-13 23:51:11 +02:00
Jakob Ketterl
ddb5fe51b3
open pipes in non-blocking loops, preventing thread leaks
2020-08-13 23:35:49 +02:00
Jakob Ketterl
7f57e4f45c
compensate oversampling with the prefilter of csdr
2020-08-08 22:51:03 +02:00
Jakob Ketterl
8c5a7a087f
compensate WFM frequency deviation, at least preliminary
2020-08-08 21:56:35 +02:00
Jakob Ketterl
448e266097
implement wfm demodulator chain
2020-08-08 21:29:25 +02:00
Jakob Ketterl
ef2ec1e1c5
catch exception on closed inputs
2020-08-08 20:43:29 +02:00
Jakob Ketterl
a77108dd0c
drain subprocess pipes to free up file descriptors, refs #146
2020-08-05 20:01:57 +02:00
Jakob Ketterl
7e5409160e
initial work on freedv / codec2 support, refs #126
2020-07-28 00:28:20 +02:00
Jakob Ketterl
174e9afa7b
correctly close iqtee / iqtee2 pipes
2020-07-18 20:00:49 +02:00
Jakob Ketterl
f1d9a4a28c
switch to shift_addfast_cc for better performance
2020-05-24 03:04:20 +02:00
Jakob Ketterl
66a4f29911
let's try pre-loading the pipes to improve dsp initialization
2020-05-06 19:54:55 +02:00
Jakob Ketterl
26321ab68b
keep more parameters on the server side
2020-04-26 18:45:41 +02:00
Jakob Ketterl
b58357741a
separate modes in here, too
2020-04-25 19:05:24 +02:00
Jakob Ketterl
4e67be8a3c
dynamic profiles
2020-04-23 23:30:56 +02:00
Jakob Ketterl
623f21f769
fast and turbo modes
2020-04-23 22:27:03 +02:00
Jakob Ketterl
34838abfa9
profiles
2020-04-23 22:21:26 +02:00
Jakob Ketterl
0120b33a25
refactor chopper out of wsjt
2020-04-22 23:53:19 +02:00
Jakob Ketterl
ddfd85c586
add js8 decoding if available
2020-04-12 13:10:23 +02:00
Jakob Ketterl
d06e9151b9
pass the frequency along with the job, refs #22 #61
2020-04-05 16:35:46 +02:00
Jakob Ketterl
7cae383127
include defaults
2020-03-23 22:09:05 +01:00
Jakob Ketterl
8abfe059b7
now the sequence doesn't matter any more
2020-02-28 16:55:50 +01:00
Jakob Ketterl
10523dbbd7
use threading to uncouble the queues
2020-02-28 16:13:53 +01:00
Jakob Ketterl
b8c71109b8
initialize dmr filter, too
2020-02-28 00:30:41 +01:00
Jakob Ketterl
9cc850e578
introduce new pipe classes to improve sequencing
2020-02-28 00:20:37 +01:00
Jakob Ketterl
d36be799d0
improve lock handling
2020-02-27 19:48:22 +01:00
Jakob Ketterl
c325368be8
improve variable handling
2020-02-27 18:50:53 +01:00
Jakob Ketterl
278fab268f
use dicts for the pipes
2020-02-25 20:55:42 +01:00
Jakob Ketterl
ad565c5a2b
re-wire the audio output to "null" - thanks to @dl9rdz
2020-02-17 12:06:13 +01:00
Jakob Ketterl
4f36df6324
some work on the agc (doesn't work for all stations)
2020-01-24 11:42:20 +01:00
Jakob Ketterl
470fc43646
avoid using preexec_fn in the other places, too
2020-01-17 21:18:02 +01:00
Jakob Ketterl
758b15e887
set parameters for psk63 mode
2020-01-13 20:10:14 +01:00
Jakob Ketterl
44c1edb2dd
update legal information
...
remove andras from contacts since he discontinued openwebrx
2020-01-09 22:24:39 +01:00
Jakob Ketterl
e0501cff0f
add owrx message passing and frontend
2020-01-09 15:12:51 +01:00
Jakob Ketterl
887cc3a88a
sample pocsag data in 48kHz, too, allowing for wider filters
2020-01-09 13:47:47 +01:00
Jakob Ketterl
db508fc4f7
inversion mode
2020-01-07 07:30:19 +01:00
Jakob Ketterl
12e5d2f6f3
add scaffolding for pocsag decoding
2020-01-06 22:08:17 +01:00
Jakob Ketterl
57ec4e09ad
move to package location
2019-12-08 17:16:28 +01:00