Skip to content

Releases: kazek5p-git/sonicpitch

Global Sonic Pitch 1.1.6

Choose a tag to compare

@kazek5p-git kazek5p-git released this 08 Aug 17:46
  • 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

Choose a tag to compare

@kazek5p-git kazek5p-git released this 02 Aug 19:00
736d165

Changes

  • Fixes restoring the saved per-voice Sonic pitch value when switching back to sapi5_32 after 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 --check passed; 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 received sonicPitch=62 after switching back.

SHA256: 6EA9B425D7EF9AA73C7DE144D6ED85D079DE08466EDE81161FAAD241D0017776

Global Sonic Pitch 1.1.4

Choose a tag to compare

@kazek5p-git kazek5p-git released this 01 Aug 21:24

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 --check passed; only CRLF conversion warnings were reported.
  • Live isolated NVDA test passed on 64-bit NVDA with sapi4_32, sapi5, and sapi5_32, opening and closing Speech and General settings twice for each synthesizer.

SHA256: 296353EE751E8FED851B9F85BA70E100335684E0F9116AF8DE0AF65FD8F0048B

Global Sonic Pitch 1.1.3

Choose a tag to compare

@kazek5p-git kazek5p-git released this 30 Jul 12:55

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

Choose a tag to compare

@kazek5p-git kazek5p-git released this 29 Jul 16:13

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

Choose a tag to compare

@kazek5p-git kazek5p-git released this 29 Jul 11:10

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

Choose a tag to compare

@kazek5p-git kazek5p-git released this 21 Jul 20:47

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

Choose a tag to compare

@kazek5p-git kazek5p-git released this 15 Jul 20:47

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

Choose a tag to compare

@kazek5p-git kazek5p-git released this 14 Jul 22:23

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

Choose a tag to compare

@kazek5p-git kazek5p-git released this 14 Jul 17:29

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