From 67c6fbcad967dc78158408ac69538973f1afd2e1 Mon Sep 17 00:00:00 2001 From: "James C. Ahlstrom" Date: Tue, 4 Aug 2026 12:01:45 -0400 Subject: [PATCH] Quisk version 4.2.54 --- CHANGELOG.txt | 9 ++ __init__.py | 2 +- docs.html | 3 + filters.h | 8 +- icons/quisk.ico | Bin 0 -> 131465 bytes icons/quisk.svg | 221 ++++++++++++++++++++++++++++++++++++++++++++ icons/quisk_128.png | Bin 0 -> 5346 bytes icons/quisk_16.png | Bin 0 -> 675 bytes icons/quisk_256.png | Bin 0 -> 10530 bytes icons/quisk_32.png | Bin 0 -> 1344 bytes icons/quisk_48.png | Bin 0 -> 2064 bytes icons/quisk_512.png | Bin 0 -> 21462 bytes icons/quisk_64.png | Bin 0 -> 2775 bytes pyproject.toml | 12 ++- setup.py | 2 +- tci.c | 72 ++++++++++++--- 16 files changed, 305 insertions(+), 24 deletions(-) create mode 100644 icons/quisk.ico create mode 100644 icons/quisk.svg create mode 100644 icons/quisk_128.png create mode 100644 icons/quisk_16.png create mode 100644 icons/quisk_256.png create mode 100644 icons/quisk_32.png create mode 100644 icons/quisk_48.png create mode 100644 icons/quisk_512.png create mode 100644 icons/quisk_64.png diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 2b1390d..8039be2 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,12 @@ +Quisk Version 4.2.54 August 2026 +================================= +Quisk can now accept audio samples for Tx from TCI at rates 48000, 24000, 12000 and 8000. Please test. + +Quisk now includes program icons in the directory "quisk/icons". The Windows icon is quisk/icons/quisk.ico. +On Windows, right-click the desktop icon and change the icon to /quisk/icons/quisk.ico. +The Linux icon is quisk/icons/quisk.svg. On Linux, change the quisk.desktop file to +Icon=/quisk/icons/quisk.svg. + Quisk Version 4.2.53 June 2026 =============================== I added TCI support for Software Defined Connectors CW skimmer. Please test. diff --git a/__init__.py b/__init__.py index 002f4aa..aaad8d6 100644 --- a/__init__.py +++ b/__init__.py @@ -1,2 +1,2 @@ -#Quisk version 4.2.53 +#Quisk version 4.2.54 from .quisk import main diff --git a/docs.html b/docs.html index 631c2bb..50a3423 100644 --- a/docs.html +++ b/docs.html @@ -255,6 +255,8 @@ and then name the shortcut, perhaps "Quisk". If you check the properties you will see that Windows expanded the location and start directory to the full path. If you are curious, Quisk and its Python source files are installed in "your_install_directory\Lib\site-packages\quisk". If you change to that directory you can run Quisk with "pythonw quisk.py". +Quisk has its icon file in quisk\icons. Right-click your desktop shortcut and change the Icon to + "your_install_directory\Lib\site-packages\quisk\icons\quisk.ico".


@@ -389,6 +391,7 @@ make

You run Quisk by running the file quisk.py with python3. For example, "python3 /home/jim/quisk/quisk.py". You can create a desktop icon to do that, but the method depends on your version of Linux. +The quisk icon is the file quisk/icons/quisk.svg. Never run Quisk with root privelege by using sudo. Fix the permission problem instead. To get started you must tell Quisk what kind of radio hardware you have. Press the Config button and select Radios. Add a radio from the list of hardware radios available. Or add the best match. diff --git a/filters.h b/filters.h index 3caf377..7735d75 100644 --- a/filters.h +++ b/filters.h @@ -414,7 +414,7 @@ double quiskFilt111D4Coefs[196] = { 0.000022860383861326, 0.000070265173417164, 0.000878636067621920, 0.000694724116305488, 0.000487289901409396, 0.000301317969124407, 0.000160689233204503, 0.000070265173417164, 0.000022860383861326} ; -// Sample 53333 Hz, pass 20000, stop 24000, ripple 0.1 dB, atten 100 dB. For SDR-IQ. Stop 0.45000. +// Sample 53333 Hz, pass 20000, stop 24000, ripple 0.1 dB, atten 100 dB. For SDR-IQ. Pass 0.375. Stop 0.45000. double quiskFilt53D1Coefs[55] = { 0.000318858391362187, 0.001662116369387873, -0.000065237353639775, -0.000854885424783294, 0.001693126335254083, -0.002034310867663472, 0.001354648789538254, 0.000509693525155950, -0.003079059747940221, 0.005242349925004462, -0.005626507739484119, 0.003235398612833476, 0.001883583294529978, -0.008273775245721798, 0.013282431836060808, -0.013924391581141530, @@ -426,7 +426,7 @@ double quiskFilt53D1Coefs[55] = { 0.000318858391362187, 0.001662116369387873, -0 -0.003079059747940221, 0.000509693525155950, 0.001354648789538254, -0.002034310867663472, 0.001693126335254083, -0.000854885424783294, -0.000065237353639775, 0.001662116369387873, 0.000318858391362187 } ; -// Sample 53333 Hz, pass 10000, stop 12000, ripple 0.5 dB, atten 100 dB. For SDR-IQ. Stop 0.22500. +// Sample 53333 Hz, pass 10000, stop 12000, ripple 0.5 dB, atten 100 dB. For SDR-IQ. Pass 0.1875. Stop 0.22500. double quiskFilt53D2Coefs[93] = { 0.000107966318729964, 0.000421475598772498, 0.000731343669484184, 0.000328611865414609, -0.001457272471508304, -0.004143803290279123, -0.005736802939367581, -0.004303861070721504, -0.000415676176666607, 0.002561521351129964, 0.001705074918770091, -0.001794491466202784, -0.003398011312785532, -0.000595401366072839, @@ -603,7 +603,7 @@ double quiskAudio48p6Coefs[71] = { 0.000324677779792651, 0.001038192405843851, 0 0.001132278163758895, 0.002811674671240099, 0.002938055116822665, 0.002082337464742640, 0.001038192405843851, 0.000324677779792651} ; -// Sample 96 kHz, pass 6, stop 40, ripple 0.1 dB, atten 100 dB. Stop 0.41667. +// Sample 96 kHz, pass 6, stop 40, ripple 0.1 dB, atten 100 dB. Pass 0.0625. Stop 0.41667. double quiskAudio96Coefs[11] = { -0.004756607210954994, -0.022893760473075838, -0.023609616122334920, 0.078161168368381481, 0.277880235815005590, 0.388489826271597950, 0.277880235815005590, 0.078161168368381481, -0.023609616122334920, -0.022893760473075838, -0.004756607210954994} ; @@ -663,7 +663,7 @@ double quiskAudioFmHpCoefs[309] = { 0.004847574947800705, -0.001211970386842814, -0.000365311474947399, -0.000434052387522716, -0.000504808183463150, -0.000579117971409598, -0.000658731927598885, -0.000745515693376396, -0.000841696354699768, -0.000949749961336003, -0.001072277374239886, -0.001211970386842814, 0.004847574947800705} ; -// Sample 24 kHz, pass 3, stop 4, ripple 0.1 dB, atten 100 dB. Stop 0.166667. +// Sample 24 kHz, pass 3, stop 4, ripple 0.1 dB, atten 100 dB. Pass 0.125. Stop 0.166667. double quiskAudio24p3Coefs[100] = { 0.000040101217607380, 0.000144142945632828, 0.000313272623844654, 0.000472482653992188, 0.000478145332060253, 0.000196098255702949, -0.000370577202968848, -0.000996638165520275, -0.001297816111521122, -0.000964536466628102, -0.000042557313824444, 0.000962997869327471, 0.001323534221298773, 0.000594056697947640, diff --git a/icons/quisk.ico b/icons/quisk.ico new file mode 100644 index 0000000000000000000000000000000000000000..331ed93ce545a4dc3087e85adcbf85825d2bd3ff GIT binary patch literal 131465 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 taCQHSlr5LP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/icons/quisk_128.png b/icons/quisk_128.png new file mode 100644 index 0000000000000000000000000000000000000000..6f16a9b36d7ef27e8997d60e33baa495ca96cc21 GIT binary patch literal 5346 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 literal 0 HcmV?d00001 diff --git a/icons/quisk_16.png b/icons/quisk_16.png new file mode 100644 index 0000000000000000000000000000000000000000..5d793c4cec2497bdadb4cb1ea9050b9c799d763b GIT binary patch literal 675 zcmV;U0$lxxP)cT9lRS{HDl8ai|-=ZMOfm&9J z$_fhHNk6n`6+~pZ2v-qVLZV`gq>M9;H3K%xe5ZxZmt#%u>T>Tn&wXFcy`riBoWIUS zO>+>%&%c!hK8CjO^vNO8nN16zCrE=O`VN)i9L;*eSBjsP$=_ML%&5$Dzi z_Xn}AC9z7h!@AuHLr-8n^ zZz%P8*||Fhps1vZ&phLOhKxV>c8@>l^8AnR0(7OR4A}>KETz0 zasW)@&p0v>UKrx)@|1OANP=NCD6rC$rG&5wuR`s(D_mGwj(}||eGXJr5y3dy%YdN! z6)AAs3F-`gc^y%c)3+}3Jj;P9HgFgOfM5_;3?7SeK;W7}f5x=sVlFFI<~OcYFi8Fn zxTkP}RWA>i72(*8E4=E5JOXhAKd?@q|K?R*{sshO!_sd38&d!P002ov JPDHLkV1ln(A>04} literal 0 HcmV?d00001 diff --git a/icons/quisk_256.png b/icons/quisk_256.png new file mode 100644 index 0000000000000000000000000000000000000000..d79a19e22a2d4210d1af82272de64e291597ca49 GIT binary patch literal 10530 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

3I$}-(=h_DXNHL2!mNJ|@?C~Ly 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

*G>6^tV=>TCExyu7aMJBeb#K6H+7-ot6eL15V2 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 literal 0 HcmV?d00001 diff --git a/icons/quisk_64.png b/icons/quisk_64.png new file mode 100644 index 0000000000000000000000000000000000000000..ee8850c791bc2b38fb97d3a874bc6fb1d84267e7 GIT binary patch literal 2775 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 literal 0 HcmV?d00001 diff --git a/pyproject.toml b/pyproject.toml index c00e148..7dd0271 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "quisk" -version = "4.2.53" +version = "4.2.54" requires-python = ">=3.13" description = 'QUISK is a Software Defined Radio (SDR) transceiver that can control various radio hardware.' license = "GPL-2.0-or-later" @@ -25,6 +25,7 @@ classifiers = [ 'Programming Language :: C', 'Topic :: Communications :: Ham Radio', ] +dynamic = ["readme"] [project.gui-scripts] quisk = "quisk.quisk:main" @@ -35,7 +36,12 @@ Documentation = "https://james.ahlstrom.name/quisk/docs.html" Repository = "https://github.com/jimahlstrom/quisk" Changelog = "https://james.ahlstrom.name/quisk/CHANGELOG.txt" -[tool.setuptools.packages.find] -where = ["."] +[tool.setuptools.package-data] +"quisk.icons" = ["*"] +[tool.setuptools] +package-dir = {"quisk" = "."} +packages = ["quisk", "quisk.n2adr", "quisk.softrock", "quisk.freedvpkg", + "quisk.hermes", "quisk.hiqsdr", "quisk.afedrinet", "quisk.soapypkg", + "quisk.sdrmicronpkg", "quisk.perseuspkg", "quisk.ac2yd", "quisk.multuspkg"] diff --git a/setup.py b/setup.py index e06a76f..e9b0486 100644 --- a/setup.py +++ b/setup.py @@ -82,7 +82,7 @@ N1MM+ and software that uses Hamlib. 'quisk.hermes', 'quisk.hiqsdr', 'quisk.afedrinet', 'quisk.soapypkg', 'quisk.sdrmicronpkg', 'quisk.perseuspkg', 'quisk.ac2yd', 'quisk.multuspkg'], package_dir = {'quisk' : '.'}, - package_data = {'' : ['*.txt', '*.html', '*.so', '*.dll']}, + package_data = {'' : ['*.txt', '*.html', '*.so', '*.dll'], 'quisk' : ['icons/*']}, entry_points = {'gui_scripts' : ['quisk = quisk.quisk:main', 'quisk_vna = quisk.quisk_vna:main']}, ext_modules = Modules, provides = ['quisk'], diff --git a/tci.c b/tci.c index fc08691..7f4f978 100644 --- a/tci.c +++ b/tci.c @@ -80,9 +80,14 @@ struct ClientData { // data for each client int audio_stream_channels; int audio_stream_samples; int audio_stream_bytes_per_sample; + // Rx stream decimation filters struct quisk_cHB45Filter HalfBand1; struct quisk_cFilter filtDecim3; struct quisk_cFilter filtDecim48to24; + // Tx stream interpolation filters + struct quisk_cHB45Filter HalfBandTx1; + struct quisk_cHB45Filter HalfBandTx2; + struct quisk_cFilter filtTxInterp3; int send_IQ_stream; int IQ_stream_samplerate; } ; @@ -138,6 +143,9 @@ struct _StreamTypes StreamTypes[NUM_STREAM_TYPES] = { {"lineout ", 0} } ; +static int interpolate_tx_audio_stream(complex double * cSamples, int nSamples, struct ClientData * ctx); +static int decimate_audio_stream(complex double * cSamples, int nSamples, struct ClientData * ctx); + static void PrintStream(const char * msg, size_t size, int always) { struct _Stream * pt = (struct _Stream *)msg; @@ -203,6 +211,7 @@ static int text_message(ws_cli_conn_t client, struct ClientData * ctx) for (i = 0; i < tci_clients_count; i++) { if (tci_clients_list[i] == client) { ctx->send_Rx_audio_stream = 1; + // Rx stream filters memset(&ctx->HalfBand1, 0, sizeof(struct quisk_cHB45Filter)); quisk_filt_cInit(&ctx->filtDecim3, @@ -361,6 +370,13 @@ static int text_message(ws_cli_conn_t client, struct ClientData * ctx) tci_tx_audio_samples = 0; tci_tx_audio_rate = ctx->audio_stream_samplerate; pthread_mutex_unlock(&tx_buffer_mutex); + // Tx stream filters + memset(&ctx->HalfBandTx1, + 0, sizeof(struct quisk_cHB45Filter)); + memset(&ctx->HalfBandTx2, + 0, sizeof(struct quisk_cHB45Filter)); + quisk_filt_cInit(&ctx->filtTxInterp3, + quiskAudio24p3Coefs, sizeof(quiskAudio24p3Coefs)/sizeof(double)); } } else if (client == tci_tx_audio_client) { @@ -426,7 +442,7 @@ static void onopen(ws_cli_conn_t client) QuiskPrintf("TCI *Connection opened, addr: %s\n", cli); } - sendframe_txt(client, "protocol:ESDR,1.4;"); + sendframe_txt(client, "protocol:ExpertSDR3,2.0;"); //sendframe_txt(client, "vfo_limits:30000,30000000;"); Not known due to transverters int if_limit = quisk_sound_state.sample_rate / 2; snprintf(command, TCI_COMMAND_SIZE, "if_limits:%d,%d;", - if_limit, if_limit); @@ -480,12 +496,14 @@ static void onclose(ws_cli_conn_t client) static void onmessage(ws_cli_conn_t client, const unsigned char *msg, uint64_t size, int type) { char echo_copy[TCI_RX_BUF_SIZE]; - complex double sample; + int n; + static complex double * cCopy = NULL; + static int cCopy_size = 0; + struct ClientData * ctx = ws_get_connection_context(client); if (type == WS_FR_OP_TXT) { if (size > TCI_RX_BUF_SIZE / 2) return; // prevent overflow - struct ClientData * ctx = ws_get_connection_context(client); if (ctx->msg_length + size >= TCI_RX_BUF_SIZE - 2) ctx->msg_length = 0; // prevent overflow memcpy(ctx->msg_buf + ctx->msg_length, msg, size); // append msg to buffer @@ -519,7 +537,6 @@ static void onmessage(ws_cli_conn_t client, const unsigned char *msg, uint64_t s const unsigned char * vpt2; const unsigned char * vpt2_end; int count2; - int buf_start=0, buf_end; if (verbose >= 3) { QuiskPrintf("\n\nMSG size %ld length %d\n 0 ", size, pt->length); @@ -544,15 +561,19 @@ static void onmessage(ws_cli_conn_t client, const unsigned char *msg, uint64_t s } if (pt->type == TX_AUDIO_STREAM) { + n = pt->length * 7 + 100; // Make room for 6X interpolation + if (cCopy_size < n) { + if (cCopy) + free(cCopy); + cCopy_size = n; + cCopy = (complex double *)malloc(cCopy_size * sizeof(complex double)); + } if (pt->length > 0 && client == tci_tx_audio_client) { - pthread_mutex_lock(&tx_buffer_mutex); - if (verbose >= 2) - buf_start = CircularBuffer(0, &sample, 0, 0); + n = 0; switch (TxChrono.format) { case TCI_INT16: break; case TCI_FLOAT32: - // Version 1.4 does not return the number of channels. We assume two channels. // pt->length is the number of floats while (vpt < vpt_end && count < pt->length) { re = *(float *)vpt; @@ -566,18 +587,16 @@ static void onmessage(ws_cli_conn_t client, const unsigned char *msg, uint64_t s else { im = re; } - sample = (re + I * im) * (CLIP32 / 2); - CircularBuffer(0, &sample, 0, 1); + cCopy[n++] = (re + I * im) * (CLIP32 / 2); } if (verbose && count != pt->length) QuiskPrintf("TCI *TX count %ld %d %d\n", size, count, pt->length); + n = interpolate_tx_audio_stream(cCopy, n, ctx); + pthread_mutex_lock(&tx_buffer_mutex); + CircularBuffer(0, cCopy, 0, n); + pthread_mutex_unlock(&tx_buffer_mutex); break; } - if (verbose >= 2) { - buf_end = CircularBuffer(0, &sample, 0, 0); - QuiskPrintf("TCI Tx buffer add %4d start %5d end %5d\n", count, buf_start, buf_end); - } - pthread_mutex_unlock(&tx_buffer_mutex); } } if (verbose) @@ -634,6 +653,29 @@ static int decimate_audio_stream(complex double * cSamples, int nSamples, struct return nSamples; } +static int interpolate_tx_audio_stream(complex double * cSamples, int nSamples, struct ClientData * ctx) +{ + switch(tci_tx_audio_rate) { // Ending audio rate is 48000 + case 48000: + break; + case 24000: + nSamples = quisk_cInterp2HB45(cSamples, nSamples, &ctx->HalfBandTx1); + break; + case 12000: + nSamples = quisk_cInterp2HB45(cSamples, nSamples, &ctx->HalfBandTx1); + nSamples = quisk_cInterp2HB45(cSamples, nSamples, &ctx->HalfBandTx2); + break; + case 8000: + nSamples = quisk_cInterpolate(cSamples, nSamples, &ctx->filtTxInterp3, 3); + nSamples = quisk_cInterp2HB45(cSamples, nSamples, &ctx->HalfBandTx1); + break; + default: + nSamples = 0; + break; + } + return nSamples; +} + void tci_send_audio(complex double * cSamples, int nSamples) // called from the sound thread { int i, n;