I compiled Quisk 4.1.18 with Python 3.7 under Raspbian LINUX on a Raspberry Pi 3B. With the same configuration settings as I successfully used to talk to a SoftRock Ensemble RXTX under Windows, Quisk won't talk to the same Ensemble board attached to the Raspberry Pi.
USBsoftrock *does* successfully change Ensemble parameters, as evidenced by changing signal sights and sounds coming from Quisk.
Any clue what I should do to repair Quisk's USB connection to the Ensemble board?
It turns out that my conclusion was wrong: Python interpreter version was not the problem.
Having run into a serious installation problem, I was forced to reinstall everything from the ground up, including Quisk. The long and short is that the libusb-dev package is required for Quisk to communicate with SoftRock over USB.
Please add this instruction to the installation directions. As a greenhorn, it would have saved me many hours of frustration over several days if this instruction had appeared in the Quisk documentation. Since Quisk answers so many ham radio homebrewing needs, its value deserves to be widely recognized, which could happen if the installation process could be made fail-safe.
73 and thanks for making a fantastic contribution to our hobby.
Would you, please, describe the process you use(d) for determining FIR filter coefficients? I'd like to experiment with filter parameters, but I'm unable to reproduce the filter coefficients in filters.py using, e.g., Iowa Hills' FIR generator.
I've tried some experiments in an effort to learn how to customize Quisk's RX filters. Please forgive (and feel free to correct!) my terminology errors. These tests were performed with Quisk 4.1.21 and Python3.
First test: MAKE Quisk without a file named filters.py in the Quisk directory.
Result: MAKE complains about not having filters.py to import.
Second test: keep the Filters container in filters.py but delete all the coefficient sets.
Result: MAKE proceeds without complaint. All Quisk filter buttons act as-labeled.
Third test: delete all but the 400Hz filter in filters.py and replace the coefficients in the 400Hz filter with coefficients from a different filter.
Result: MAKE normal. The shape of the 200Hz filter changed, but the shape of the 400Hz and all other filters remain unchanged.
Net: I am able to study the effects of different filter characteristics on the latency of received signals, but I would like to understand how to correct the correspondence between the filter's bandwidth and the button label.
The filters in filters.py are calculated at 24000 sps. Recall that a 3 kHz filter at 24 ksps is the same as a 1.5 kHz filter at 12ksps. Quisk uses these filters at different sample rates because each mode (CW, SSB etc.) is filtered at a different rate. Quisk is changing the rates to minimize calculations, and means Quisk can run on single board computers and ARM processors. The equations are given at the top of filters.py.
The rate for each mode is in quisk.c in quisk_process_demodulate(). For example, CW filters at 6 ksps, so the 1000 Hz CW filter uses key = 1000 * 24000 / 6000 / 2 = 2000. This same filter is used for SSB for a 2000 Hz bandwidth.
To see this uncomment the prints in MakeFilterCoef() in quisk.py.