feat: merge temp cleanup on close + v1.4 changelog + README (Phase 2)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -41,6 +41,13 @@ All clips are exactly 8 seconds — the standard length for foley sound datasets
|
||||
- **Waveform preview** — a read-only strip of the current area (↻ to refresh; decode length-capped so long areas don't stall)
|
||||
- **Audition** — Play/Stop the current area with the edits applied
|
||||
|
||||
### Audio merge (crossfade)
|
||||
|
||||
- **Merge pane** — assemble multiple clips into one, crossfading every join (ffmpeg `acrossfade`)
|
||||
- **Add clips** — the current audio area (with its edits) or audio files from disk; reorder or remove them
|
||||
- **Crossfade length** — one global crossfade applied at each join (0 = butt-join); clips shorter than the crossfade are flagged before rendering
|
||||
- **Preview / Save** — audition the merged result, or render and save-as (WAV/MP3/FLAC/…)
|
||||
|
||||
### Audio scanning
|
||||
|
||||
- **Embedding models** — WAV2VEC2 (base/large), HuBERT (base/large/xlarge), BEATs
|
||||
|
||||
@@ -5031,9 +5031,17 @@ class MainWindow(QMainWindow):
|
||||
|
||||
# ── Changelog ────────────────────────────────────────────
|
||||
|
||||
APP_VERSION = "1.3"
|
||||
APP_VERSION = "1.4"
|
||||
_SPLIT_HEADER_H = 22 # deck split-column header height (keep both deck spots in sync)
|
||||
CHANGELOG: list[tuple[str, list[str]]] = [
|
||||
("1.4", [
|
||||
"<b>Merge (crossfade)</b> — a new <b>Merge</b> pane in the Audio tab "
|
||||
"assembles multiple clips into one, crossfading every join. Add the "
|
||||
"current audio area (with its edits) or files from disk, reorder or "
|
||||
"remove them, set the crossfade length, then <b>Preview</b> to "
|
||||
"audition or <b>Merge & Save</b> to render. Clips shorter than "
|
||||
"the crossfade are flagged before rendering.",
|
||||
]),
|
||||
("1.3", [
|
||||
"<b>Audio workspace tab</b> — the <b>Scan</b> control-deck tab is "
|
||||
"now <b>Audio</b>, a <code>QToolBox</code> with two panes. "
|
||||
@@ -8646,6 +8654,14 @@ class MainWindow(QMainWindow):
|
||||
|
||||
def closeEvent(self, event):
|
||||
_log("Shutting down…")
|
||||
# Stop any running audition and clean up merge temp WAVs.
|
||||
self._stop_audition()
|
||||
for _t in list(self._merge_temps):
|
||||
try:
|
||||
os.remove(_t)
|
||||
except OSError:
|
||||
pass
|
||||
self._merge_temps.clear()
|
||||
# Save file-list tabs for resume (per-profile).
|
||||
self._save_playlist_tabs()
|
||||
# Cancel background workers to prevent callbacks into dead objects.
|
||||
|
||||
Reference in New Issue
Block a user