Releases: kazek5p-git/sonicpitch
Release list
Global Sonic Pitch 1.1.6
- Fixes repeated opening of NVDA settings dialogs after switching to SAPI4 or 32-bit SAPI5 on newer 64-bit NVDA builds.
- Replaces broad settings-dialog garbage collection with targeted removal of destroyed dialog registry entries.
- Keeps existing Sonic stream lifetime protections unchanged.
Global Sonic Pitch 1.1.5
Changes
- Fixes restoring the saved per-voice Sonic pitch value when switching back to
sapi5_32after using another synthesizer. - Clears per-instance runtime Sonic pitch synchronization state around synthesizer switches, so a newly created 32-bit SAPI host receives the saved value instead of staying at the neutral pitch.
Validation
- Python compile check passed for the add-on plugin, SAPI4 host, SAPI5 host, and install tasks.
git diff --checkpassed; only CRLF conversion warnings were reported.- Live isolated NVDA test passed for
sapi5_32 -> oneCore -> sapi5_32: initial readback was 62, return readback was 62, and the log confirmed the 32-bit host receivedsonicPitch=62after switching back.
SHA256: 6EA9B425D7EF9AA73C7DE144D6ED85D079DE08466EDE81161FAAD241D0017776
Global Sonic Pitch 1.1.4
Changes
- Fixes NVDA settings dialog cleanup on newer 64-bit NVDA builds when SAPI4 or SAPI5 is active.
- Avoids keeping destroyed Voice settings panels referenced after closing the dialog.
- Ignores late refreshes for already destroyed Voice settings controls and schedules cleanup after settings dialogs are destroyed.
Validation
- Python compile check passed for the add-on plugin, SAPI4 host, SAPI5 host, and install tasks.
git diff --checkpassed; only CRLF conversion warnings were reported.- Live isolated NVDA test passed on 64-bit NVDA with
sapi4_32,sapi5, andsapi5_32, opening and closing Speech and General settings twice for each synthesizer.
SHA256: 296353EE751E8FED851B9F85BA70E100335684E0F9116AF8DE0AF65FD8F0048B
Global Sonic Pitch 1.1.3
Compatibility release.
Changes:
- Refreshes the visible Sonic pitch control in NVDA Voice settings after changing only a voice variant.
- Keeps separate pending and saved Sonic pitch values for each voice variant touched while the Voice settings dialog is open.
- Preserves the effective setSynth signature when Global Sonic Pitch wraps synthesizer switching.
- Improves compatibility with Google TTS for NVDA 0.4 on older NVDA versions by filtering unsupported setSynth keyword arguments before a single call to the next wrapper.
Validation:
- Python syntax check for the main plugin, SAPI4 host, SAPI5 host, and installTasks.py.
- git diff --check.
- Simulated setSynth compatibility tests for old and new NVDA signatures.
- Simulated variant dialog refresh test.
- Package inspection confirmed manifest, HTML docs, and no pycache or .pyc files.
Global Sonic Pitch 1.1.2
Compatibility release for Global Sonic Pitch.
Changes:
- Adds Sonic pitch to synthesizers with dynamic or read-only supportedSettings without replacing their original settings logic.
- Preserves dynamic synthesizer behavior such as Google TTS automatic language profiles.
- Adds active voice variants to the per-voice Sonic pitch identity when a synthesizer exposes a meaningful variant.
- Keeps existing per-voice saved values working as a fallback when no variant-specific value has been saved yet.
- Avoids duplicated Sonic pitch settings when NVDA speech settings are opened repeatedly.
Validation:
- Confirmed by user testing with Google TTS 0.4 on another computer.
- Python syntax check for the main add-on plugin and SAPI host modules.
- Simulated tests for normal supportedSettings attributes, read-only dynamic supportedSettings properties, automatic-language notice mode, repeated patching, descriptor restoration, variant-specific keys, and fallback from old keys.
- Package integrity check for the built .nvda-addon.
SHA256:
BFBB72855C01BCE0FCB83A7D2941021B649B6E43453FF328006AF50825B0932E
Global Sonic Pitch 1.1.1
Stability release for Global Sonic Pitch.
Changes:
- Records the Sonic quality actually accepted by newly created streams, including fallback to fast mode when better-quality mode cannot be applied.
- Keeps the requested quality separately from the applied quality so a fallback does not cause repeated processor or stream recreation.
- Improves SAPI4 stability by keeping retired Sonic streams alive for the 32-bit host lifetime on fragile SAPI4 paths.
- Synchronizes SAPI4 extended range and quality before applying remote Sonic pitch changes.
Validation:
- Python syntax check for the main add-on plugin and SAPI host modules.
- Package integrity check for the built .nvda-addon.
- Simulated permanent quality setter failure stress test for the main WavePlayer path, SAPI4 host, and SAPI5 host.
SHA256:
4D0AB686ADF58DA7D3A95AC9AC00152EA8101CB3B1B82425D3E9C1F9F466BF1D
Global Sonic Pitch 1.1
Global Sonic Pitch 1.1 adds an optional Sonic processing quality setting.
Changes:
- Added the Use better-quality Sonic processing checkbox in the Global Sonic Pitch settings panel.
- Fast Sonic mode remains the default: sonicQuality = 0. Better-quality processing stores sonicQuality = 1.
- Applies the selected quality to newly created Sonic streams in the main WavePlayer path.
- Sends the selected quality to the bundled 32-bit SAPI5 and SAPI4 host wrappers through the existing hidden host parameter channel.
- Preserves the existing stream lifetime, locking, buffering, retirement, and safe boundary protections.
- Updated English, Polish, and Slovak documentation and translations.
Validation:
- python -m py_compile for the global plugin, SAPI4 host, SAPI5 host, and install tasks.
- msgfmt --check for Polish and Slovak translations.
- git diff --check.
- Package inspection verified manifest version 1.1, required files, bundled Sonic libraries, docs, locales, and no .pyc / pycache entries.
SHA256:
2A37B575F8027009622EEC09EFCEA26670B52E0EC28A4BD789598BCF24863382
Global Sonic Pitch 1.0
Stable 1.0 release.
This release replaces the withdrawn 1.0 build. It is based on the tested 0.4.20 line and keeps the 20-semitone extended range plus standard sapi4_32 and sapi5_32 host support.
Changes since 0.4.20:
- Improves short first audio block handling without timer-based audio flushing.
- Defers WavePlayer completion callbacks until processed Sonic audio is fed back to NVDA.
- Hardens Voice settings dialog cleanup for OK, Apply, Escape, Cancel, and window destruction.
Verification:
- Python syntax check passed for the add-on Python files.
- Package contents verified: manifest, main plugin, SAPI4/SAPI5 host wrappers, Sonic 32-bit and 64-bit DLLs, English/Polish/Slovak docs and Polish/Slovak locale files.
- Package verified to contain no pycache or .pyc files.
- User SAPI4/Syntalk regression test confirmed no crash with this build.
SHA256:
9D9B516931FE110169E6B3E3EABD5697AC72E3DB4617230534CAAA134466CB4B
Global Sonic Pitch 0.4.20
Changes in 0.4.20:
- Adds an optional extended Sonic pitch range of approximately -20..+20 semitones.
- Adds standard sapi4_32 support on 64-bit NVDA through the bundled 32-bit host wrapper when NVDA's SAPI4 WASAPI path is active.
- Keeps remote 32-bit SAPI processing inside the 32-bit synth host to avoid accidental main-process audio processing.
- Updates English, Polish, and Slovak documentation plus testing and store notes.
Package SHA256:
64A4D0119E76A8998368CFD5311277B7453B196BCC8881B8997D7AEDFF195C6E
Local verification:
- python -m py_compile for main plugin, SAPI5 host wrapper, SAPI4 host wrapper, and installTasks.
- Package structure verified: manifest at archive root, SAPI4/SAPI5 wrappers present, no pycache.
- NVDA 2026.2beta6 x64 smoke test: sapi4_32 wrapper loaded and processed SAPI4 audio at sonicPitch=75.
- NVDA 2026.2beta6 x64 smoke test: sapi5_32 wrapper loaded and set Sonic pitch.
Global Sonic Pitch 0.4.19
Changes
- Reorganized root README files into a short, store-friendly overview with links to detailed documentation.
- Cleaned bundled add-on help in English, Polish, and Slovak so it describes the current Global Sonic Pitch add-on only.
- Rewrote technical notes and manual testing documentation around the current implementation.
- Removed references to internal historical SAPI5 Sonic Pitch prototypes from public documentation.
No audio behavior changes from 0.4.18.
Verification
- Package manifest declares version 0.4.19.
- English, Polish, and Slovak help files are included.
- Polish and Slovak gettext catalogs load correctly.
- The translation template is included at addon/locale/nvda.pot.
- Package contains no pycache directories.
SHA256: 54710A32C840394B4D6B220F7E7EF3CB9238D6E8D83C7A183C8E663CF6328E5F