All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
expressions: Add BrecLoader and VoicLoader for Breathiness and Voicing (
55fe4f4) -
expressions, embedder, wavtool: Add Breathiness & Voicing params, mHuBERT backend (
55fe4f4)
-
ustx: Catch SameFileError when same-path input/output; remove hardcoded SUPPORTED_EXPRESSIONS restriction; add allow_unicode=True to oyaml.dump; warn when no expression points fit any voice part (
96a8d29) -
ustx, seqtool, gui: Fix in-place editing, interpolation, and unicode (
96a8d29) -
wavesurfer: Add loading indicator and error handling (#28,
e257918) -
wavesurfer: Hide loader and error msg by on load (
a153c8e)
- pitd: Fix overly flat PITD curves (issue #21); special thanks to @ma0shu for helping identify
and diagnose this critical bug ❤
(
6f4bd54)
- readme: Add v0.9.0+ warning; document scaler change; update troubleshooting
(
6f4bd54)
-
f0: Add hybrid F0 backend with fallback; improve stability and reduce discontinuities (
6f4bd54) -
pitd, f0, docs: Improve PITD and add hybrid F0 backend (
6f4bd54)
- pitd, f0, docs: PITD scaler default changed from 2.0 to 1.0; PITD results prior to v0.9.0 are unreliable
- Add rmvpe-onnx as default pitch extraction backend
(
86a152b)
- test_i18n: Add create=True to ctypes.windll patches for Linux CI compatibility
(
2a0b90d)
- README,README.en: Add Data Viewer screenshot alongside workflow
(
23bb533)
-
build: Replace inline PyInstaller flags with (
23bb533) -
ui: Add ClosableTabs component extending ui.tabs with per-tab (
23bb533) -
viewer: Add
expressive-viewer— real-time expression curve (23bb533) -
viewer,build,ui,docs: Add expression curve viewer, spec-based build, and closable tabs (
23bb533)
-
wavtool: Defer heavy imports (sklearn, skimage, soundfile, (
23bb533) -
worker: Change
langfield type fromstrto (23bb533)
- wavtool: Extract_wav_frequency now returns np.ndarray instead of
(
83d33f0)
- readme: Improve demo presentation and add collapsible video
(
b6a64e0)
-
base: Register tick converters from ustx_time_axis in (
83d33f0) -
dyn,pitd,tenc: Drop tempo/ppqn kwargs from align_sequence_tick (
83d33f0) -
examples: Add テトリス and Прекрасное Далеко examples with (
83d33f0) -
seqtool: Replace time_to_ticks/ticks_to_time with a (
83d33f0) -
ustx: Add TimeAxis — piecewise tick ↔ ms converter replicating (
83d33f0) -
ustx: Add UProject, UVoicePart, UCurve, UTrack, UTempo, (
83d33f0) -
ustx: Add UstxEditor — RAII context manager with exclusive (
83d33f0) -
ustx,seqtool,base: Replace flat-dict USTX API with typed datamodel and multi-tempo support (
83d33f0)
-
base: Replace loader.tempo with ustx_time_axis assertions; remove (
83d33f0) -
expressive: Fix integration test to use UProject attribute access (
83d33f0) -
seqtool: Replace TestTimeConversion with TestTickConverterRegistry (
83d33f0) -
ustx: Replace dict-based assertions with UProject attribute (
83d33f0) -
wavtool: Fix list → ndarray type assertions for (
83d33f0)
- ustx,seqtool,base: Load_ustx() now returns UProject instead of dict; save_ustx() now accepts UProject instead of dict; edit_ustx_expression_curve() is removed — use UstxEditor or UVoicePart.set_curve() instead.
-
log: Mark main block as pragma: no cover (
b58722a) -
ui: Fix WaveSurfer load/ready sequencing and zoom sync (
1c2b201) -
wavesurfer: Prevent spurious full-width region on scroll-to-start (
d540596)
- ui: Increase waveform scrollbar height from 6px to 10px
(
b58722a)
-
Add audio trimming, waveform range selector, and tick offset fix (
125a99f) -
cli: Extract add_expression_args_group and str2bool into utils/cli (
b58722a) -
dyn,tenc: Add trim_silence option to mask leading/trailing silence (
b58722a) -
gui: Add Trim Silence toggle to dyn and tenc expression cards (
b58722a) -
wavtool: Move extract_wav_mfcc, extract_wav_frequency, extract_wav_rms to utils/wavtool (
b58722a)
-
Add test_worker.py covering WorkerContext dataclass and setup_worker_context (
b58722a) -
cli: Add tests for str2bool and add_expression_args_group; expand formatter coverage (
b58722a) -
wavtool: Add tests for extract_wav_mfcc, extract_wav_rms, extract_wav_frequency, get_wav_end_ts, ClampedWav (
b58722a)
- gui: Offload expression processing to subprocess with logging bridge
(
e01adf6)
- expressions/pitd: Adjust swift-f0 defaults for confidence_ref and semitone_shift
(
e4a707c)
- Add swift-f0 backend, polish help texts, update i18n
(
7f30d6c)
- cli: Extract RichHelpFormatter to dedicated module
(
0fce1fd)
- packaging: Guard find_spec against missing parent package
(
7daccd2)
- packaging: Add CPU and GPU installer variants
(
5fb0f1f)
- config: Fix version_variables typo and sync version.py
(
058871d)
- build: Compile .mo via hatch hook, untrack binary artifacts
(
d2141a0)
- Pin all GitHub Actions to commit SHAs
(
d59a22e)
-
gpu: Make CUDA packages optional with skip_missing flag (
d74ca13) -
gui: Support root mode for wheel-installed app (
399353b)
- i18n: Replace custom LazyString with lazy-string package
(
5af3b9e)
- Initial Release