|
- mrbgems/study_audio: native C scanner (scan_silence) avoids Ruby array overflow
for large audio files; returns normalized silence region pairs directly
- Core.detect_silence: pure Ruby algorithm (threshold 0.015, min 0.75s)
for testing with synthetic data; pad_silence_regions (0.25s padding)
- Core portion navigation: find_silence_at, current_speaking_portion,
total_speaking_portions, portion_seek_target (2 frames into padding zone),
in_padding_zone?, speaking_portion_start
- Input: V/B keys for prev/next portion navigation
- Draw: section counter (N/total) displayed below play state
- build_config.rb: added study_audio gem to both desktop and web builds
- Runtime: silence_regions, raw_silence_regions, analysis_done fields
- Load system: triggers C scan_silence after audio load, pads with pure Ruby
- Knowledge doc updated with Phase 3 scar tissue (array limits, gem naming,
Wayland screenshot gap)
Verification: build clean, pure Core smoke test passes (CRuby), game runs
with country.mp3 without overflow, load system processes the file.
|