@ignix-social/editor 0.1.13 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ignix-social/editor",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "description": "Ignix Editor: render HTML video compositions (reels, edits, clips) on your own computer. Based on HyperFrames.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -43,11 +43,13 @@ const SAFE = { x0: 0.12, x1: 0.88, y0: 0.13, y1: 0.765 };
43
43
  /**
44
44
  * Lo que cambia en un vídeo HORIZONTAL (YouTube, 2026-10-06): su manual pide un cambio cada
45
45
  * ~3-5 s (no 1-1,5), subtítulos abajo del todo y ~0,8 s de aire al cambiar de capítulo.
46
- * Sin calibrar con vídeos reales todavía: por eso más holgado.
46
+ * Calibrado con un youtuber que Fran da por bueno (36 min, 2026-10-06): plano al 89 %, quietud
47
+ * máxima 4,1 s, 8 cortes/min y ~26 pausas naturales de 1-2 s al hablar → los huecos avisan desde
48
+ * 2,5 s, y «sin efectos» no se dice (bajo una voz continua no se distinguen).
47
49
  */
48
50
  const WIDE = {
49
51
  stillFailSec: 6,
50
- gapWarnSec: 1,
52
+ gapWarnSec: 2.5,
51
53
  captionBand: { y0: 0.8, y1: 0.98 },
52
54
  safe: { x0: 0.05, x1: 0.95, y0: 0.06, y1: 0.92 },
53
55
  };
@@ -202,7 +204,7 @@ export async function reviewVideo({ ffmpeg, ffprobe, path, log = () => {} }) {
202
204
  level: 'warn',
203
205
  code: 'speech_gap',
204
206
  at: [r1(gp.start), r1(gp.end)],
205
- text: `${r1(gp.end - gp.start)} s of silence between two voice lines at ${r1(gp.start)} s. Lay the lines back to back (≤ 0.3 s${wide ? '; ~0.8 s only at a chapter change' : ''}).`,
207
+ text: `${r1(gp.end - gp.start)} s of silence between two voice lines at ${r1(gp.start)} s. ${wide ? 'Cut the pause, or keep it only where it lands a point or changes chapter.' : 'Lay the lines back to back (≤ 0.3 s).'}`,
206
208
  });
207
209
  }
208
210
  // Calibrado con los reels de Fran (2026-10-06): todos los buenos cortan 3,5-10 veces por
@@ -211,7 +213,7 @@ export async function reviewVideo({ ffmpeg, ffprobe, path, log = () => {} }) {
211
213
  issues.push({ level: 'warn', code: 'no_cuts', text: 'No real change of scene anywhere: it plays as one slow sequence of fades. Change scene with cuts or quick whips, and move a camera inside each scene.' });
212
214
  }
213
215
  const sfx = m?.audio?.sound?.sfxPerMinute;
214
- if (sfx === 0 && info.duration > 8) {
216
+ if (sfx === 0 && info.duration > 8 && !wide) {
215
217
  issues.push({ level: 'warn', code: 'no_sfx', text: 'No sound effect is heard. A 20 s reel usually needs 4-8, on the moments that matter (hook, scene change, the key click or reveal, the CTA).' });
216
218
  }
217
219
  return {