@ignix-social/editor 0.1.25 → 0.1.26
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
package/src/analysis/style.mjs
CHANGED
|
@@ -324,7 +324,12 @@ export function describe(s, n) {
|
|
|
324
324
|
const lead = n > 1 ? `Measured on ${n} videos.` : 'Measured on 1 video (2–3 give a steadier style).';
|
|
325
325
|
out.push(lead);
|
|
326
326
|
if (s.format.aspect) out.push(`Format ${s.format.aspect}${s.durationSec ? `, about ${Math.round(s.durationSec)} s long` : ''}.`);
|
|
327
|
-
|
|
327
|
+
// Sin cortes secos pero con el texto cambiando sin parar: la escena se transforma desde
|
|
328
|
+
// dentro, y «un corte cada 31 s» describía lo contrario de lo que se ve (2026-10-09).
|
|
329
|
+
const morph = s.shots.cutsPerMinute != null && s.shots.cutsPerMinute < 3 && (s.captions.changesPerMinute ?? 0) >= 10;
|
|
330
|
+
if (morph)
|
|
331
|
+
out.push(`Hardly any hard cuts (${s.shots.cutsPerMinute} per minute): the scene changes from within, the text on screen changes every ${Math.round(600 / s.captions.changesPerMinute) / 10} s. Keep it one continuous scene that builds and morphs, not a cut every few seconds.`);
|
|
332
|
+
else if (s.shots.medianSec != null)
|
|
328
333
|
out.push(`A cut every ${s.shots.medianSec} s (${s.shots.cutsPerMinute} per minute)${s.shots.firstCutSec != null ? `; the first cut at ${s.shots.firstCutSec} s` : ''}.`);
|
|
329
334
|
if (s.captions.coverage != null)
|
|
330
335
|
out.push(
|
|
@@ -350,7 +355,9 @@ export function describe(s, n) {
|
|
|
350
355
|
const types = s.audio.sfxTypes?.length ? s.audio.sfxTypes.join(', ') : null;
|
|
351
356
|
out.push(
|
|
352
357
|
!types
|
|
353
|
-
?
|
|
358
|
+
? s.audio.wordsPerMinute != null || (s.audio.musicShare ?? 0) >= 0.2
|
|
359
|
+
? 'Sound effects: not measurable here — one mixed under a continuous voice and music cannot be told apart. Ask the person whether they use them before assuming none.'
|
|
360
|
+
: 'No sound effects heard.'
|
|
354
361
|
: s.audio.sfxPerMinute > 0
|
|
355
362
|
? `Sound effects heard: ${types} — about ${s.audio.sfxPerMinute} a minute${s.audio.sfxOnCutsShare ? `, on ${Math.round(s.audio.sfxOnCutsShare * 100)} % of the cuts` : ''}.`
|
|
356
363
|
: `Sound effects in only ${s.audio.sfxVideos} of ${n} videos (${types}); mostly without.`,
|
|
@@ -81,9 +81,9 @@
|
|
|
81
81
|
Object.assign(box.style, { position: box.style.position || 'absolute', display: 'grid', placeItems: 'center', pointerEvents: 'none' });
|
|
82
82
|
const els = groups.map((g, gi) => {
|
|
83
83
|
const row = document.createElement('div');
|
|
84
|
-
// Hueco amplio entre palabras: con contorno grueso, 0,3 em las pega («VÍDEOYOUTUBE»).
|
|
84
|
+
// Hueco amplio entre palabras: con contorno grueso, 0,3 em las pega («VÍDEOYOUTUBE»); 0,55 em deja sitio al crecer la palabra activa.
|
|
85
85
|
Object.assign(row.style, {
|
|
86
|
-
display: 'none', flexWrap: 'wrap', justifyContent: 'center', alignItems: 'baseline', columnGap: '0.
|
|
86
|
+
display: 'none', flexWrap: 'wrap', justifyContent: 'center', alignItems: 'baseline', columnGap: '0.55em', rowGap: '0.06em',
|
|
87
87
|
gridArea: '1 / 1', maxWidth: '100%', textAlign: 'center', fontFamily: font, fontWeight: String(st.weight), fontSize: `${fontSize}px`, lineHeight: '1.08', transformOrigin: '50% 60%',
|
|
88
88
|
});
|
|
89
89
|
if (style === 'box') Object.assign(row.style, { background: 'rgba(14,14,16,.78)', padding: '0.22em 0.5em', borderRadius: '0.32em' });
|
|
@@ -127,7 +127,9 @@
|
|
|
127
127
|
el.style.color = now ? accent : base;
|
|
128
128
|
}
|
|
129
129
|
const kw = clamp01((t - w.s) / 0.09);
|
|
130
|
-
|
|
130
|
+
// Crece desde su centro y se come el hueco con la vecina («NOMACHINES»): poco, y menos
|
|
131
|
+
// cuanto más larga es la palabra.
|
|
132
|
+
el.style.transform = now && style === 'bold_pop' ? `scale(${(1 + Math.min(0.07, 0.35 / Math.max(5, w.t.length)) * kw).toFixed(4)})` : 'scale(1)';
|
|
131
133
|
}
|
|
132
134
|
}
|
|
133
135
|
},
|