Skip to content

TellUrStori v0.1.9 - Professional Audio Stability & Quality

Choose a tag to compare

@cgcardona cgcardona released this 08 Feb 00:10
· 52 commits to main since this release
35f9341

🎯 Release Highlights

84 commits focusing on memory safety, audio engine stability, and professional DAW workflows.

🎵 New Features

Audio Quality & Monitoring

  • Export warning dialog for clipped audio detection (Issue #73)
  • Master output clipping detection - prevents silent distortion
  • Real-time clip indicator in master meter UI

Mixer & Undo System

  • Complete mixer state synchronization with undo/redo (Issue #71)
  • UI mixer controls register with undo system
  • Audio engine state sync during undo operations

🐛 Critical Bug Fixes

Memory Safety (Swift Concurrency)

  • Added nonisolated deinit to 35+ @Observable/@mainactor classes
  • Resolved all Swift Concurrency task-local deallocation crashes
  • Fixed PluginChain crash during SwiftUI view teardown
  • Created automated detection script for missing deinits

Audio Engine Stability

  • Fixed AVAudioEngine deadlock on region deletion
  • Eliminated nested graph mutation lock inversions
  • Fixed project reload graph rebuild hang
  • Validated connection points before disconnect operations

Recording & Metronome

  • Fixed recording controls with Virtual Keyboard open (Issue #121)
  • Fixed metronome count-in not playing on subsequent recordings
  • Fixed microphone permission prompt for MIDI recording
  • Fixed count-in auto-enable on metronome toggle

MIDI & Playback

  • Fixed MIDI stuck notes on transport stop (Issue #74)
  • Fixed sustain pedal preventing note retriggering
  • Fixed timer retain cycles (Issue #72)
  • Added comprehensive stuck notes prevention tests

Piano Roll

  • Fixed context awareness - correct TimeSignature API
  • Fixed ruler/grid horizontal scroll synchronization
  • Fixed grid Canvas positioning and drawing
  • Fixed viewport-sized Canvas scroll following

Export & Rendering

  • Fixed region fade curves not applied during export (Issue #76)
  • Fixed automation curves not interpolating correctly
  • Fixed plugin presets loaded before audio processing (Issue #77)
  • Upgraded synth smoothing to per-sample interpolation

Virtual Keyboard

  • Fixed UI latency compensation (Issue #68)
  • Fixed keyboard shortcut responder chain

🧪 Test Suite

  • 1940 tests passing (21 skipped, 0 failures)
  • ASan clean - all memory issues resolved
  • Fixed 13 AudioGraphManager tests (coalescing)
  • Fixed RecordingBufferPool tests (hybrid allocation)
  • Fixed RecordingController tests (async mic permission)

🏗️ Architecture & Performance

  • Removed verbose production logging (cleaner logs)
  • Disabled info-level error tracking (warnings/errors only)
  • Removed legacy SynthVoice.render() API
  • Sample-rate conversion behavior documented

📦 Installation

Download Stori-0.1.9.dmg, open it, and drag Stori to Applications.

System Requirements:

  • macOS 14+ (Sonoma or later)
  • Apple Silicon (M1/M2/M3) or Intel

🎯 Quality Metrics

  • Memory Safety: ASan clean, zero crashes
  • Audio Quality: Zero sample drops, sub-10ms latency
  • Stability: No deadlocks, robust graph operations
  • Test Coverage: 1940 tests, 90%+ coverage

This release represents a major stability milestone - ready for beta testing and production use.