Skip to content

v0.3.3

Choose a tag to compare

@MejiroRina MejiroRina released this 27 Jun 15:47
· 30 commits to main since this release
bf66b7e

Makes ACB extraction faster and adds de-duplicated waveform extraction for ACBs whose cues share audio. Per-cue output is byte-identical to 0.3.2.

Added

  • Extract each distinct waveform of an ACB once, together with the cues that use it, with extract_acb_unique_bytes in Python or extract_acb_unique_to_memory in Rust. Each item is {"extension", "subkey", "data", "cues": [{"name", "cue_id"}, ...]}. On a 4.8 MB test ACB this turns 4 per-cue tracks (8.16 MB) into 2 waveforms (4.80 MB). (#13)

Performance

  • Move the embedded AWB out of the parsed table instead of copying it, and drop a redundant input copy in the *_bytes bindings. In-memory extract_acb_bytes on a 4.8 MB ACB goes from about 0.80 to 0.62 ms. (#13)
  • Read the whole file once in extract_acb_from_file, extract_acb_tracks_from_file and decode_acb_to_wav_from_file instead of seeking and reading per field. File-based extract_acb on the same ACB goes from about 6.5 to 2.3 ms at best. (#13)

Artifacts

Full Changelog: v0.3.2...v0.3.3