Zongzi.Windowing.RestSplit3Beats (zongzi v0.3.0)

Copy Markdown

默认乐句分窗策略(windowing-post-rebase 默认策略)。

规则

  1. 按 Timeline active 序取 note cores。
  2. Intervention:对 channel pattern match;当前实现凡有合法 scope 的 均并入 content(:pitch / :phoneme_timing / 其它带 scope 的)。 scope 由 Declaration.scope/2 现场计算(不缓存于 struct 字段)。
  3. 相邻 content 空档 gap
    • gap < 3 * beat_ticks → 粘连
    • gap >= 3 * beat_ticks → 切开;前 1 拍归前片,后 2 拍归后片; 更长空隙中间为死区(不进任一切片)

一拍

opts.beat_ticks 优先;否则 opts.tpqn(默认 480)当作一拍 (无 TimeSig 时的显式假定:四分音符 = 一拍)。 time_sig_map 接入推后——有拍号表时再换成「切点前块端」推导。

Caveats

  • scope 与 note 完全不相交时,作为独立 content span 参与合并/切开。
  • scope 会撑窗Declaration.scope/2 是保守上界(如 pitch 含 preutterance 余量),若其把 note 间 gap 填到 < 3 * beat_ticks, 本应切开的两片会被粘连成一窗——声明 scope 时注意余量别给太宽。
  • 暂不做引擎 pad(pad 后置(Caller))。