Zongzi. Windowing. RestSplit3Beats
(zongzi v0.3.0)
Copy Markdown
默认乐句分窗策略(windowing-post-rebase 默认策略)。
规则
- 按 Timeline active 序取 note cores。
- Intervention:对
channelpattern match;当前实现凡有合法 scope 的 均并入 content(:pitch/:phoneme_timing/ 其它带 scope 的)。 scope 由Declaration.scope/2现场计算(不缓存于 struct 字段)。 - 相邻 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))。