jks
About
- Username
- jks
- Joined
- Visits
- 32,340
- Last Active
- Roles
- Member, Administrator, Moderator
- Points
- 331
Reactions
-
Audio timing walkabout [FT8 decoder problems solved with tighter limits on audio buffering]
So the problem here is that FT8 has a much greater time synchronization requirement (i.e. "wall clock" time) than WSPR does. The timing of the audio hitting FT8 must match what time the FT8 program is getting from the host operating system within a second or two at most.
The Kiwi produces a delay in the audio stream because it has some buffering. Buffering is required because it is the only defense against latency/interruption issues in the network, particularly when the audio is being delivered by the Internet over long distances with lots of potential points of interruption. So you are already being disadvantaged by the time delay of this buffering to begin with. Any additional cumulative delay by other software behaving badly (e.g. sample rate compensation by the VAC) may push the total timing over the FT8 limit.
One thing you could try is reducing the Kiwi buffer size to reduce the fixed delay. The penalty for doing this is that you will have much less immunity to short-term network interruptions. That means it's important to make sure there are no highly variable latency devices in the path between the Kiwi and computer running the browser, like a WiFi router or a cheap Ethernet switch that might behave badly with heavy traffic on the other ports.
Add "abuf=n.nn" to the URL where n.nn is a number in seconds of the minimum audio buffer size. Start with 0.5 and experiment with a range from 0.3 to 0.8
It would also be interesting to know on the control panel "Stats" tab what the value of the Audio "Qlen" (queue length) is when you are having problems versus what the value is when starting (this value will vary when the abuf= value is changed) -
1476 kHz
-
v1.269: DX label filtering
Type the '@' keyboard shortcut, or click the new entry in the right-click menu to bring up a DX label filter panel. This is an experiment, not perfect and subject to change.
"Ident" means the text shown in the label. "Notes" is the text in the popup when you mouse-over the label. When you enter text in the Ident or Notes field, followed by the Enter key, the labels shown will be filtered. The label Ident and Note must contain the text in the field (not exactly match it). If both Ident and Notes are specified then they both must be true (i.e. "and" not "or"). There is a checkbox to enable upper/lowercase sensitivity.
When filtered the background where the labels appear changes from white to pink to remind you that filtering is occurring. Filtering persists after the filter panel is closed (with the Escape key or clicking the circled-X) until the text fields are set empty.
Note that even when filtered label anti-cluttering is still in effect. Anti-cluttering prevents showing too many labels that would appear too close to each other on the display. So even when filtered you may not be seeing all labels that match unless you zoom in to allow the labels to become uncluttered. You can also avoid this problem by choosing filter text that is more specific (if possible).
For Kiwi admins: Remember that you can edit the label characteristics by holding the shift-clicking on a label. And alt/option-shift-click on a label toggles the Type between "active" and "watch-list". Obviously you can tailor the Ident and Notes contents of your labels to make filtering easier, e.g. adding "DRM" to existing labels that are known to have DRM transmissions so you can simply type "drm" in the Ident filter field.
----
Advanced features
The "grep" checkbox allows the text fields to become "generalized regular expressions" for doing pattern matching. If you don't know what this is see here: https://en.wikipedia.org/wiki/Regular_expression So an Ident of "1.*2" would a label matching "1" followed by zero or more characters (the grep meaning of ".*"), then "2". If you enter an illegal regular expression the field will turn red until you fix it. -
v1.269: DX label filtering
Type the '@' keyboard shortcut, or click the new entry in the right-click menu to bring up a DX label filter panel. This is an experiment, not perfect and subject to change.
"Ident" means the text shown in the label. "Notes" is the text in the popup when you mouse-over the label. When you enter text in the Ident or Notes field, followed by the Enter key, the labels shown will be filtered. The label Ident and Note must contain the text in the field (not exactly match it). If both Ident and Notes are specified then they both must be true (i.e. "and" not "or"). There is a checkbox to enable upper/lowercase sensitivity.
When filtered the background where the labels appear changes from white to pink to remind you that filtering is occurring. Filtering persists after the filter panel is closed (with the Escape key or clicking the circled-X) until the text fields are set empty.
Note that even when filtered label anti-cluttering is still in effect. Anti-cluttering prevents showing too many labels that would appear too close to each other on the display. So even when filtered you may not be seeing all labels that match unless you zoom in to allow the labels to become uncluttered. You can also avoid this problem by choosing filter text that is more specific (if possible).
For Kiwi admins: Remember that you can edit the label characteristics by holding the shift-clicking on a label. And alt/option-shift-click on a label toggles the Type between "active" and "watch-list". Obviously you can tailor the Ident and Notes contents of your labels to make filtering easier, e.g. adding "DRM" to existing labels that are known to have DRM transmissions so you can simply type "drm" in the Ident filter field.
----
Advanced features
The "grep" checkbox allows the text fields to become "generalized regular expressions" for doing pattern matching. If you don't know what this is see here: https://en.wikipedia.org/wiki/Regular_expression So an Ident of "1.*2" would a label matching "1" followed by zero or more characters (the grep meaning of ".*"), then "2". If you enter an illegal regular expression the field will turn red until you fix it. -
The use of the -f (frequency) parameter in kiwirecorder.py
A single kiwirecorder command can make connections to multiple Kiwis and record to multiple files simultaneously. This is how it is used for example during the TDoA process. So various parameters like -f and -g can have multiple values that will correspond to multiple Kiwis, e.g.
connects to kiwi1 recording on 1234 kHz and kiwi2 on 5678 kHz. Butkiwirecorder.py -s kiwi1,kiwi2 -f 1234,5678
Will record 7890 kHz on both.kiwirecorder.py -s kiwi1,kiwi2 -f 7890
There are example uses of kiwirecorder in the file kiwiclient/Makefile.