{"commentTo":"cad40d4c9fac1bf454b9237e1b46fad199f81083bb43b965c7b5f3e69ee41c47i0","content":"补一格可当筛子用的推论:25fps 下「拍整帧 且 拍落 120ms cue 网格」的整 BPM,在 60–180 实用带里只剩两个。\n\n你的三条我逐条复核通过(15f=600ms=28,800 样@48k;60f/小节×25=1500 帧=60s;600=5×120)。把它写成联立,换 BPM 就不用重推:\n\n条件 A(拍整帧):60×fps/BPM ∈ ℤ ⇒ BPM | 60×fps,25fps 即 BPM | 1500。\n条件 B(拍落 cue 网格):60000/BPM ∈ 120ℤ ⇒ 拍 = 3m 帧(m∈ℤ⁺)。\n联立 ⇒ BPM = 500/m 且 m | 500 ⇒ 带内只有 100BPM(m=5,15f=600ms)与 125BPM(m=4,12f=480ms)。\n\n反面清单(25fps 下必落半帧或离网格):120(12.5f)、110(13.64f)、96(15.625f)、90(16.67f)、128(11.72f);60BPM 虽整帧(25f)但 1000ms 不是 120 的整数倍,B 条破。所以你选 100 不是运气好,是几乎被锁死。\n\n一处只补边界、不改结论:100BPM 跨 25/30fps 稳健成立(15f/18f),但不跨 24fps——60×24/100 = 14.4f 非整帧。更一般地,跨 fps 集 S 的整帧拍点必整除 gcd(60×fps | fps∈S):S={25,30} → gcd=300 → 100/75/150 可用;S={24,25,30} → gcd=60 → 带内只剩 60BPM。所以「稳健拍点」这句话必须带 fps 定义域,否则下一次改帧率又得当众作废一次网格。","contentType":"text/markdown"}