{
 "schema": "adfactory.song-v4-plan/v1",
 "session": "f5c3870848",
 "run": "runs/targ-song-v4-f5c3870848-v01",
 "at": "2026-09-24T03:57:50.886107+00:00",
 "title": "Каждое слово на долю: план итерации 4",
 "subtitle": "Итерация 3 дышит; Targ точнее на ударных барабанов. Измерено по фразам: ударные слоги знаменательных слов в ±40 мс от восьмых — Targ 0,61, версия 2 0,54, A 0,46, B 0,49 (шанс 0,28). План: текст пишется под бит-карту, два намеренно разных размера, измерение forced alignment до прослушивания, полы дыхания итерации 3",
 "status": "план опубликован до первой покупки; ссылка передана владельцу. Генерация начинается после публикации, если владелец не прокомментирует план. Оценка владельца здесь никем не присваивается.",
 "wordsIntro": "Каждая фраза §0 брифа превращена в метрику, гейт и место в коде. Главное: «на долю» измеряется не ASR-часами, а forced alignment на вокальном стеме против барабанной сетки, с шансом рядом; текст пишется под карту до покупки; всё, что дала итерация 3 (дыхание, форма, хук, кода), становится полом.",
 "requirements": [
  {
   "quote": "«Iteration 3 is the better direction: the song breathes, it has a form and a returning hook, the coda lands one fact at a time… Keep all of that.»",
   "metric": "Строки дыхания итерации 3 на каждом дубле: слог/с по спетому, самая плотная секция, возвраты хука, факты коды с паузой, паузы на границах мыслей, фрагментация",
   "gate": "P0-полы: ≤ 2,9 · ≤ 3,3 · ≥ 3 · 6/6 · ≥ 0,33 · без фрагментации; формплан v3 обязателен внутри v4",
   "code": "references/song-crispness-targets-v01.json (полы) · music_first.validate_form_plan (без изменений)"
  },
  {
   "quote": "«In the original every phrase and every word is on the beat, in sync with the music — the words land exactly where the groove wants them.»",
   "metric": "Доля ударных слогов знаменательных слов в ±40 мс от восьмых барабанной сетки (forced alignment, начало гласной) рядом с шансом; медиана |отклонения|",
   "gate": "P0: ≥ 0,58 (Targ 0,613 − 1 sd) и ≤ 35 мс; Targ измерен тем же инструментом",
   "code": "tools/song_align.py · tools/song_beat_sync.py · song_gates.py --beat-sync"
  },
  {
   "quote": "«Phrases start a little early or late»",
   "metric": "Начало каждой строки против сетки; систематический сдвиг каждой секции",
   "gate": "P0: начала строк в ±40 мс ≥ уровня Targ (0,50); P1: худший сдвиг секции ≤ 30 мс (A: 74,5)",
   "code": "song_beat_sync: lineStarts, sections.medianSignedMs"
  },
  {
   "quote": "«stressed syllables float between beats»",
   "metric": "Где стоят ударные в тексте до покупки; где они оказались после",
   "gate": "Карта: 100 % ударных знаменательных слов на долях (validate_beat_map, блокирует покупку); P1: на 1 и 3 ≥ 0,5 (A: 0,38)",
   "code": "tools/beat_map.py · music_first.validate_beat_map · song-plan/v4"
  },
  {
   "quote": "«long words smear across the grid»",
   "metric": "Слогов на ударение; binary/ternary fit; длительности нот кратны 16-й",
   "gate": "Карта: ≤ 2,6 (T) / ≤ 3,4 (H) слога на ударение, без удержанных безударных; P1: IOI ≥ 0,58 (A 0,50 = шанс)",
   "code": "tools/beat_map.py check · song_beat_sync ioi"
  },
  {
   "quote": "«You are free to change words and music beats to match: rewrite words for the beat»",
   "metric": "Каждая фраза переписана под карту до покупки",
   "gate": "Панель: лирик на вариант со scan/check, опровергатели (ударения/идиома, advertorial), режиссёр",
   "code": "preparation/panel/brief-v4.md · design-{T,H}-*.json"
  },
  {
   "quote": "«choose the meter and tempo»",
   "metric": "Два размера: прямые восьмые на темпе сида (T) и половинное время (H)",
   "gate": "Измеренный темп и октава на каждом дубле; карта остаётся на сетке при 103,4",
   "code": "plan/variants-v01.json · song_beat_sync grid.octave"
  },
  {
   "quote": "«write the beat map into the plan»",
   "metric": "Каждая фраза: слоги по восьмым, ударные на долях, пауза в долях",
   "gate": "Раздел 05 этой страницы; beatMap в song-plan/v4 до POST",
   "code": "song/song-plan-{T,H}-draft-v01.json → beatMap"
  },
  {
   "quote": "«ask the provider for the delivery»",
   "metric": "Стиль (точно на долю, чёткие согласные, без rubato), negative tags, вес сида, [Pause] только в паузах карты",
   "gate": "Один рычаг на заявку; измерение до прослушивания",
   "code": "plan/variants-v01.json · preflight_v4.py · purchase_round.py"
  },
  {
   "quote": "«and measure what came back»",
   "metric": "Стемы → проверка строк → forced alignment → beat-sync → gates",
   "gate": "P0 до слепых прослушиваний и до владельца",
   "code": "preparation/measure_take.py (v4)"
  },
  {
   "quote": "«Keep every finding of iteration 3 (§1 and §7) — do not rediscover them, build on them.»",
   "metric": "Перенесено: сид держит темп; прозаические просьбы о паузах игнорируются; только [Pause] двигает паузы; многоточия глотают строки; half-time кода уходит в речь; ударения ки́слоти/по́смішка/чужу́; защитный разбор ответов Gemini; локатор сцен для пар; лимит вывода панели",
   "gate": "Не покупать заново раскладки строфа/двустишия, не тестировать AW 0,88",
   "code": "lens3-carry-forward.md → brief-v4, этот план"
  }
 ],
 "delta": {
  "method": "Инструмент итерации 4: вокальный стем (Demucs) → forced alignment (torchaudio MMS_FA, кириллица романизирована, английский как есть) → начало гласной каждого слога → расстояние до ближайшей восьмой/доли сетки, построенной по пикам ударных. Единица сравнения — ударный слог знаменательного слова: справедливо для английского (81 % односложных) и украинского (≈ 2,5 слога на слово). Каждый процент рядом с шансом (окно ÷ шаг сетки).",
  "rows": [
   {
    "label": "Ударные слоги знаменательных слов в ±40 мс от сетки восьмых",
    "values": {
     "targ": 0.613,
     "v2": 0.536,
     "A": 0.458,
     "B": 0.486
    },
    "chance": 0.276,
    "note": "Главная строка (P0). Часы — начало гласной ударного слога (forced alignment), сетка — восьмые барабанов",
    "digits": 2
   },
   {
    "label": "… в ±60 мс от восьмых",
    "values": {
     "targ": 0.704,
     "v2": 0.632,
     "A": 0.583,
     "B": 0.595
    },
    "chance": 0.414,
    "note": "Шире окно — разрыв Targ ↔ A/B остаётся",
    "digits": 2
   },
   {
    "label": "Ударные «плавают»: ни на восьмой (±40), ни на 16-й между восьмыми (±30)",
    "values": {
     "targ": 0.291,
     "v2": 0.382,
     "A": 0.453,
     "B": 0.422
    },
    "chance": 0.517,
    "note": "Разрыв — именно «плавание»: Targ 0,29 против A 0,45 / B 0,42",
    "digits": 2
   },
   {
    "label": "Ударные на 16-й между восьмыми (синкопа, ±30 мс)",
    "values": {
     "targ": 0.096,
     "v2": 0.082,
     "A": 0.089,
     "B": 0.092
    },
    "chance": 0.207,
    "note": "Синкопа по 16-м одинаково редка у всех (ниже шанса) — не она объясняет разрыв",
    "digits": 2
   },
   {
    "label": "… в ±40 мс от доли (четверти)",
    "values": {
     "targ": 0.348,
     "v2": 0.459,
     "A": 0.312,
     "B": 0.297
    },
    "chance": 0.138,
    "note": "Targ синкопирует: половина его точных ударных стоит на слабых восьмых",
    "digits": 2
   },
   {
    "label": "Медиана |отклонения| ударных от восьмых, мс",
    "values": {
     "targ": 29.8,
     "v2": 36.0,
     "A": 48.3,
     "B": 43.1
    },
    "chance": 72.5,
    "note": "P0 ≤ 35 мс (шанс — четверть восьмой, 72,5 мс)",
    "digits": 1
   },
   {
    "label": "Систематический сдвиг ударных (медиана со знаком), мс",
    "values": {
     "targ": 9.1,
     "v2": 18.3,
     "A": 19.4,
     "B": 11.4
    },
    "chance": null,
    "note": "+ = позже бита; у всей песни сдвиг мал — проблема в секциях",
    "digits": 1
   },
   {
    "label": "Худшая секция: систематический сдвиг, мс (≥ 10 ударных)",
    "values": {
     "targ": 15.3,
     "v2": 66.3,
     "A": 74.5,
     "B": 38.2
    },
    "chance": null,
    "note": "A: припевы опаздывают на +45…+75 мс; v2: самоценность +66",
    "digits": 1
   },
   {
    "label": "Худшая секция: доля ударных в ±40 мс",
    "values": {
     "targ": 0.531,
     "v2": 0.3,
     "A": 0.278,
     "B": 0.364
    },
    "chance": 0.276,
    "note": "«каждая фраза»: ни одна секция не должна падать к шансу",
    "digits": 2
   },
   {
    "label": "Начала строк (первый слог) в ±40 мс от восьмых",
    "values": {
     "targ": 0.5,
     "v2": 0.483,
     "A": 0.5,
     "B": 0.694
    },
    "chance": 0.276,
    "note": "Targ начинает строки с затакта; у B начала точнее, чем у Targ",
    "digits": 2
   },
   {
    "label": "Длительности нот кратны 16-й (IOI ±25 %)",
    "values": {
     "targ": 0.614,
     "v2": 0.552,
     "A": 0.504,
     "B": 0.574
    },
    "chance": 0.5,
    "note": "Фазонезависимая строка «ноты — это доли»; A на уровне шанса",
    "digits": 2
   },
   {
    "label": "Ударные на долях: доля на 1 и 3 (сильные)",
    "values": {
     "targ": 0.553,
     "v2": 0.534,
     "A": 0.382,
     "B": 0.652
    },
    "chance": 0.5,
    "note": "A кладёт ударные слова на 2 и 4…",
    "digits": 2
   },
   {
    "label": "Безударные на долях: доля на 1 и 3 (контроль)",
    "values": {
     "targ": 0.4,
     "v2": 0.25,
     "A": 0.82,
     "B": 0.211
    },
    "chance": 0.5,
    "note": "…а безударные слоги — на 1 и 3 (0,82): метр текста спорит с метром музыки",
    "digits": 2
   },
   {
    "label": "Все слоги в ±40 мс от восьмых",
    "values": {
     "targ": 0.496,
     "v2": 0.479,
     "A": 0.437,
     "B": 0.522
    },
    "chance": 0.276,
    "note": "Без учёта ударения разрыв меньше: важны именно ударные",
    "digits": 2
   },
   {
    "label": "Старая строка: все онсеты стема в ±40 мс от восьмых (инструмент v1, исходная сетка)",
    "values": {
     "targ": 0.52,
     "v2": 0.51,
     "A": 0.42,
     "B": 0.47
    },
    "chance": 0.28,
    "note": "Значения из брифа владельца (tools/song_beat_sync.py v1)",
    "digits": 2
   },
   {
    "label": "То же, сетка уточнена по пикам ударных (~10 мс)",
    "values": {
     "targ": 0.445,
     "v2": 0.507,
     "A": 0.418,
     "B": 0.535
    },
    "chance": 0.276,
    "note": "Нестабильна к сетке (Targ 0,52 → 0,445; B 0,47 → 0,535) → info, не P0",
    "digits": 2
   },
   {
    "label": "Темп, BPM (измерено по уточнённой сетке)",
    "values": {
     "targ": 103.47,
     "v2": 103.47,
     "A": 102.9,
     "B": 109.57
    },
    "chance": null,
    "note": "Сид держит 103,4 BPM; B дрейфует 107–110",
    "digits": 1
   },
   {
    "label": "Слова, выровненные с низкой уверенностью (исключены)",
    "values": {
     "targ": 39,
     "v2": 10,
     "A": 6,
     "B": 16
    },
    "chance": null,
    "note": "score < 0,3: в основном служебные слова и держанные затакты Targ («I», «She»)",
    "digits": 0
   },
   {
    "label": "Ударных знаменательных слов (событий)",
    "values": {
     "targ": 230,
     "v2": 220,
     "A": 192,
     "B": 185
    },
    "chance": null,
    "note": "—",
    "digits": 0
   }
  ],
  "tracks": {
   "targ": {
    "label": "Targ (10/10)",
    "devs": [
     68.5,
     -2.3,
     32.5,
     7.0,
     -132.5,
     -98.8,
     -11.0,
     -7.0,
     22.7,
     -1.7,
     -20.0,
     -7.1,
     80.3,
     124.3,
     -62.8,
     5.2,
     -127.6,
     -113.1,
     24.9,
     38.9,
     33.6,
     -4.5,
     -130.6,
     69.4,
     -92.7,
     -134.6,
     -6.3,
     -35.2,
     3.6,
     -31.1,
     -87.7,
     -122.1,
     77.9,
     -6.1,
     34.5,
     -13.0,
     -71.0,
     49.0,
     -56.1,
     6.4,
     -11.5,
     -8.6,
     -1.5,
     26.0,
     6.1,
     26.2,
     30.7,
     -11.7,
     -15.4,
     14.7,
     76.8,
     -42.9,
     41.3,
     15.0,
     23.4,
     -128.2,
     65.1,
     16.4,
     -3.5,
     1.7,
     -8.0,
     -7.6,
     2.6,
     22.1,
     69.5,
     1.6,
     49.1,
     -14.7,
     94.4,
     -0.5,
     46.7,
     38.8,
     126.0,
     21.7,
     132.4,
     5.1,
     57.3,
     30.7,
     9.1,
     -17.4,
     -23.9,
     -15.5,
     15.3,
     -38.8,
     66.3,
     21.5,
     -103.4,
     12.7,
     -124.2,
     10.4,
     27.2,
     -15.1,
     99.1,
     9.6,
     135.3,
     44.1,
     102.0,
     30.0,
     35.5,
     75.1,
     25.5,
     -81.4,
     116.1,
     98.4,
     98.5,
     4.5,
     88.6,
     38.7,
     9.9,
     -29.7,
     59.7,
     30.1,
     -3.1,
     23.1,
     97.3,
     12.7,
     35.5,
     14.0,
     102.6,
     69.1,
     49.5,
     -5.0,
     14.2,
     -125.1,
     -2.0,
     -110.1,
     56.9,
     -142.7,
     -30.4,
     -123.2,
     -8.2,
     15.8,
     0.6,
     51.5,
     17.1,
     40.4,
     -1.3,
     -102.6,
     -40.6,
     -135.2,
     1.8,
     -0.1,
     -32.3,
     76.9,
     9.3,
     4.0,
     -121.5,
     -80.7,
     -10.1,
     -143.7,
     -23.7,
     11.7,
     -43.4,
     2.0,
     109.1,
     39.5,
     14.9,
     15.0,
     51.1,
     91.9,
     31.1,
     46.1,
     -76.6,
     -1.7,
     -134.5,
     -5.2,
     4.2,
     9.0,
     18.1,
     2.4,
     18.3,
     28.4,
     -42.4,
     96.0,
     8.0,
     15.6,
     112.6,
     6.7,
     6.9,
     -19.7,
     5.1,
     -19.8,
     136.6,
     15.0,
     70.9,
     33.6,
     -99.8,
     30.2,
     36.5,
     38.3,
     75.5,
     9.3,
     16.7,
     -9.8,
     -1.4,
     -23.6,
     24.5,
     16.4,
     -10.7,
     -12.3,
     19.1,
     15.6,
     -13.4,
     -119.0,
     -68.1,
     11.0,
     -18.2,
     -8.1,
     22.0,
     -114.5,
     -11.9,
     7.9,
     -126.9,
     6.6,
     46.6,
     15.6,
     5.2,
     -11.6,
     33.9,
     37.4,
     0.4,
     67.8,
     63.9,
     -43.9,
     75.2,
     64.5,
     62.7,
     36.3,
     -48.1,
     106.4
    ],
    "share": 0.613,
    "mad": 29.8,
    "chance": 0.276,
    "sections": [
     {
      "id": "setup",
      "t0": 0,
      "t1": 33.0,
      "content": 41,
      "content8": {
       "within40ms": 0.561,
       "chance40ms": 0.276,
       "z40ms": 1.71,
       "medianAbsDevMs": 34.5,
       "medianSignedMs": -6.3
      },
      "contentBeat": {
       "within40ms": 0.293,
       "chance40ms": 0.138,
       "z40ms": 2.21
      },
      "phraseStarts": 2,
      "phraseStart8within40ms": 0.0
     },
     {
      "id": "store",
      "t0": 33.0,
      "t1": 81.0,
      "content": 61,
      "content8": {
       "within40ms": 0.656,
       "chance40ms": 0.276,
       "z40ms": 1.47,
       "medianAbsDevMs": 25.5,
       "medianSignedMs": 15.3
      },
      "contentBeat": {
       "within40ms": 0.393,
       "chance40ms": 0.138,
       "z40ms": 2.04
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "mentor",
      "t0": 81.0,
      "t1": 108.8,
      "content": 32,
      "content8": {
       "within40ms": 0.531,
       "chance40ms": 0.276,
       "z40ms": 1.86,
       "medianAbsDevMs": 37.1,
       "medianSignedMs": 15.0
      },
      "contentBeat": {
       "within40ms": 0.344,
       "chance40ms": 0.138,
       "z40ms": 2.07
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "care",
      "t0": 108.8,
      "t1": 122.9,
      "content": 20,
      "content8": {
       "within40ms": 0.55,
       "chance40ms": 0.276,
       "z40ms": 1.47,
       "medianAbsDevMs": 28.0,
       "medianSignedMs": -5.7
      },
      "contentBeat": {
       "within40ms": 0.25,
       "chance40ms": 0.138,
       "z40ms": 1.5
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "change",
      "t0": 122.9,
      "t1": 146.4,
      "content": 31,
      "content8": {
       "within40ms": 0.645,
       "chance40ms": 0.276,
       "z40ms": 1.45,
       "medianAbsDevMs": 19.7,
       "medianSignedMs": 15.0
      },
      "contentBeat": {
       "within40ms": 0.355,
       "chance40ms": 0.138,
       "z40ms": 1.47
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "return",
      "t0": 146.4,
      "t1": 173.6,
      "content": 31,
      "content8": {
       "within40ms": 0.774,
       "chance40ms": 0.276,
       "z40ms": 2.31,
       "medianAbsDevMs": 18.2,
       "medianSignedMs": 7.9
      },
      "contentBeat": {
       "within40ms": 0.387,
       "chance40ms": 0.138,
       "z40ms": 1.88
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "selfworth",
      "t0": 173.6,
      "t1": 182.6,
      "content": 8,
      "content8": {
       "within40ms": 0.625,
       "chance40ms": 0.276,
       "z40ms": 1.44,
       "medianAbsDevMs": 35.7,
       "medianSignedMs": 19.5
      },
      "contentBeat": {
       "within40ms": 0.5,
       "chance40ms": 0.138,
       "z40ms": 2.0
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "cta",
      "t0": 182.6,
      "t1": 194.5,
      "content": 6,
      "content8": {
       "within40ms": 0.167,
       "chance40ms": 0.276,
       "z40ms": -0.59,
       "medianAbsDevMs": 63.6,
       "medianSignedMs": 63.6
      },
      "contentBeat": {
       "within40ms": 0.167,
       "chance40ms": 0.138,
       "z40ms": 0.17
      },
      "phraseStarts": 1,
      "phraseStart8within40ms": 0.0
     }
    ]
   },
   "v2": {
    "label": "Версия 2",
    "devs": [
     63.5,
     25.1,
     3.9,
     -71.4,
     -60.6,
     83.6,
     64.2,
     -1.6,
     66.4,
     -53.1,
     -37.5,
     -132.2,
     87.9,
     137.8,
     -54.5,
     10.9,
     56.9,
     -118.8,
     19.1,
     -15.9,
     92.1,
     89.8,
     -137.1,
     -6.3,
     54.5,
     15.7,
     86.2,
     36.4,
     86.4,
     87.6,
     65.1,
     67.7,
     82.9,
     -52.8,
     70.1,
     -21.3,
     49.3,
     38.5,
     37.6,
     63.7,
     -10.4,
     -26.9,
     52.3,
     5.4,
     91.9,
     33.1,
     73.2,
     -116.8,
     -11.7,
     80.7,
     89.7,
     -5.9,
     -6.7,
     13.8,
     9.6,
     40.5,
     -16.4,
     -63.7,
     -47.8,
     -83.9,
     -59.8,
     62.2,
     138.5,
     16.8,
     22.0,
     -12.4,
     -71.7,
     38.7,
     14.6,
     80.5,
     33.5,
     65.7,
     76.7,
     76.8,
     -15.2,
     69.6,
     12.9,
     93.7,
     65.6,
     -3.3,
     17.0,
     55.3,
     -0.8,
     -30.0,
     5.4,
     130.7,
     -9.1,
     -19.0,
     -8.9,
     -14.7,
     20.3,
     -24.0,
     19.1,
     -3.4,
     -29.7,
     110.5,
     -20.5,
     -144.5,
     140.3,
     21.5,
     29.8,
     3.2,
     82.0,
     82.9,
     24.6,
     -119.0,
     -5.6,
     -2.2,
     2.8,
     6.8,
     116.4,
     135.3,
     18.7,
     66.8,
     29.5,
     10.4,
     52.1,
     35.4,
     15.4,
     91.3,
     -67.5,
     -126.3,
     -25.5,
     17.4,
     13.2,
     24.1,
     10.3,
     25.7,
     25.8,
     -14.0,
     -94.9,
     90.4,
     25.0,
     21.5,
     17.8,
     5.9,
     -35.6,
     93.9,
     1.5,
     16.0,
     -51.5,
     25.0,
     -105.5,
     25.2,
     94.2,
     20.7,
     -10.9,
     21.9,
     14.5,
     50.3,
     52.3,
     13.4,
     -14.5,
     -4.4,
     10.8,
     77.6,
     -27.6,
     -2.6,
     42.5,
     7.7,
     -60.2,
     82.7,
     39.8,
     5.8,
     -25.5,
     -3.6,
     11.6,
     85.8,
     -16.3,
     7.7,
     9.8,
     90.3,
     -71.3,
     7.8,
     23.0,
     70.1,
     -68.3,
     53.5,
     31.7,
     103.2,
     33.8,
     14.6,
     1.9,
     -138.0,
     139.9,
     -23.7,
     52.3,
     -107.2,
     48.6,
     29.9,
     25.0,
     23.2,
     60.6,
     13.3,
     82.2,
     2.4,
     82.7,
     94.4,
     -137.9,
     12.2,
     81.2,
     51.3,
     103.5,
     14.5,
     56.3,
     26.8,
     29.3,
     -20.5,
     9.6,
     76.8,
     -127.4,
     -37.4,
     -32.4,
     80.6,
     12.8,
     10.9,
     118.5,
     39.3,
     87.6,
     66.3
    ],
    "share": 0.536,
    "mad": 36.0,
    "chance": 0.276,
    "sections": [
     {
      "id": "s1-hook",
      "t0": 0.411,
      "t1": 23.672,
      "content": 24,
      "content8": {
       "within40ms": 0.333,
       "chance40ms": 0.276,
       "z40ms": 0.66,
       "medianAbsDevMs": 62.0,
       "medianSignedMs": 7.4
      },
      "contentBeat": {
       "within40ms": 0.292,
       "chance40ms": 0.138,
       "z40ms": 1.58
      },
      "phraseStarts": 1,
      "phraseStart8within40ms": 1.0
     },
     {
      "id": "s2-cost-store",
      "t0": 23.672,
      "t1": 51.023,
      "content": 34,
      "content8": {
       "within40ms": 0.441,
       "chance40ms": 0.276,
       "z40ms": 0.77,
       "medianAbsDevMs": 50.8,
       "medianSignedMs": 38.0
      },
      "contentBeat": {
       "within40ms": 0.324,
       "chance40ms": 0.138,
       "z40ms": 1.13
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "s3-wound",
      "t0": 51.023,
      "t1": 76.711,
      "content": 24,
      "content8": {
       "within40ms": 0.417,
       "chance40ms": 0.276,
       "z40ms": 0.84,
       "medianAbsDevMs": 57.6,
       "medianSignedMs": 27.7
      },
      "contentBeat": {
       "within40ms": 0.417,
       "chance40ms": 0.138,
       "z40ms": 2.36
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "s4-mentor",
      "t0": 76.711,
      "t1": 96.121,
      "content": 30,
      "content8": {
       "within40ms": 0.7,
       "chance40ms": 0.276,
       "z40ms": 1.97,
       "medianAbsDevMs": 21.0,
       "medianSignedMs": 3.0
      },
      "contentBeat": {
       "within40ms": 0.567,
       "chance40ms": 0.138,
       "z40ms": 4.61
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "s5-care",
      "t0": 96.121,
      "t1": 113.63,
      "content": 21,
      "content8": {
       "within40ms": 0.667,
       "chance40ms": 0.276,
       "z40ms": 1.49,
       "medianAbsDevMs": 25.7,
       "medianSignedMs": 18.7
      },
      "contentBeat": {
       "within40ms": 0.619,
       "chance40ms": 0.138,
       "z40ms": 1.71
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "s6-change",
      "t0": 113.63,
      "t1": 136.719,
      "content": 32,
      "content8": {
       "within40ms": 0.688,
       "chance40ms": 0.276,
       "z40ms": 1.98,
       "medianAbsDevMs": 23.4,
       "medianSignedMs": 14.0
      },
      "contentBeat": {
       "within40ms": 0.594,
       "chance40ms": 0.138,
       "z40ms": 1.98
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "s7-return",
      "t0": 136.719,
      "t1": 160.273,
      "content": 28,
      "content8": {
       "within40ms": 0.536,
       "chance40ms": 0.276,
       "z40ms": 1.33,
       "medianAbsDevMs": 32.7,
       "medianSignedMs": 23.1
      },
      "contentBeat": {
       "within40ms": 0.5,
       "chance40ms": 0.138,
       "z40ms": 2.32
      },
      "phraseStarts": 3,
      "phraseStart8within40ms": 0.0
     },
     {
      "id": "s8-selfworth",
      "t0": 160.273,
      "t1": 176.786,
      "content": 10,
      "content8": {
       "within40ms": 0.3,
       "chance40ms": 0.276,
       "z40ms": -0.03,
       "medianAbsDevMs": 81.7,
       "medianSignedMs": 66.3
      },
      "contentBeat": {
       "within40ms": 0.2,
       "chance40ms": 0.138,
       "z40ms": 0.35
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "s9-coda",
      "t0": 176.786,
      "t1": 197.104,
      "content": 17,
      "content8": {
       "within40ms": 0.588,
       "chance40ms": 0.276,
       "z40ms": 1.48,
       "medianAbsDevMs": 37.4,
       "medianSignedMs": 26.8
      },
      "contentBeat": {
       "within40ms": 0.471,
       "chance40ms": 0.138,
       "z40ms": 4.63
      },
      "phraseStarts": 3,
      "phraseStart8within40ms": 0.667
     }
    ]
   },
   "A": {
    "label": "A (итерация 3)",
    "devs": [
     -14.2,
     18.1,
     92.1,
     18.9,
     -14.3,
     57.7,
     58.5,
     -142.2,
     -146.1,
     -141.9,
     -36.9,
     30.8,
     67.4,
     -5.9,
     87.7,
     5.5,
     -4.5,
     5.0,
     9.7,
     80.8,
     -48.5,
     -22.0,
     73.8,
     1.6,
     19.4,
     85.3,
     95.5,
     26.1,
     43.2,
     58.2,
     -117.8,
     54.8,
     31.4,
     118.5,
     75.3,
     -65.9,
     59.5,
     32.5,
     -37.7,
     72.9,
     -78.7,
     -9.7,
     71.8,
     -56.8,
     -131.8,
     103.6,
     86.6,
     -12.0,
     -25.2,
     16.5,
     104.2,
     -31.3,
     -38.1,
     -144.6,
     32.0,
     100.4,
     78.9,
     77.8,
     -62.9,
     85.2,
     90.9,
     -6.7,
     79.3,
     58.7,
     88.9,
     16.9,
     74.2,
     -3.6,
     74.8,
     93.5,
     31.0,
     -83.7,
     -24.7,
     -22.2,
     0.2,
     71.3,
     62.2,
     145.1,
     -20.7,
     30.5,
     -32.4,
     136.9,
     24.4,
     16.0,
     127.4,
     19.8,
     77.3,
     50.4,
     -2.5,
     128.7,
     -55.8,
     13.5,
     52.1,
     -64.0,
     -27.3,
     -16.0,
     39.0,
     69.4,
     7.3,
     40.6,
     -3.9,
     -114.0,
     85.4,
     94.2,
     -7.8,
     -27.3,
     4.6,
     105.0,
     -2.1,
     14.4,
     0.7,
     38.9,
     -80.5,
     -52.5,
     -3.2,
     12.6,
     -12.4,
     -28.7,
     6.9,
     106.6,
     1.3,
     70.6,
     -93.8,
     57.5,
     -107.4,
     19.3,
     -12.0,
     41.9,
     -7.1,
     74.1,
     29.8,
     57.7,
     -40.9,
     75.1,
     79.4,
     47.0,
     2.1,
     79.9,
     82.0,
     -17.6,
     120.6,
     15.1,
     90.6,
     -19.2,
     3.4,
     -2.2,
     83.5,
     -142.9,
     -13.9,
     91.1,
     37.2,
     -3.7,
     97.8,
     66.5,
     24.8,
     10.6,
     83.5,
     -29.6,
     133.9,
     -74.6,
     66.2,
     48.1,
     55.1,
     98.3,
     -17.5,
     62.5,
     102.8,
     91.5,
     71.3,
     20.6,
     -2.5,
     90.7,
     22.9,
     -4.7,
     -46.2,
     -6.7,
     136.7,
     8.3,
     96.0,
     18.2,
     -123.6,
     -13.1,
     -11.8,
     111.2,
     18.8,
     -46.2,
     70.9,
     -3.6,
     22.2,
     -145.7,
     -2.7,
     54.9
    ],
    "share": 0.458,
    "mad": 48.3,
    "chance": 0.274,
    "sections": [
     {
      "id": "v1",
      "t0": 0.69,
      "t1": 28.18,
      "content": 23,
      "content8": {
       "within40ms": 0.522,
       "chance40ms": 0.274,
       "z40ms": 1.41,
       "medianAbsDevMs": 36.9,
       "medianSignedMs": 5.5
      },
      "contentBeat": {
       "within40ms": 0.348,
       "chance40ms": 0.137,
       "z40ms": 2.47
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "pc",
      "t0": 28.18,
      "t1": 37.225,
      "content": 11,
      "content8": {
       "within40ms": 0.364,
       "chance40ms": 0.274,
       "z40ms": 0.27,
       "medianAbsDevMs": 54.8,
       "medianSignedMs": 43.2
      },
      "contentBeat": {
       "within40ms": 0.273,
       "chance40ms": 0.137,
       "z40ms": 1.2
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "v2",
      "t0": 37.225,
      "t1": 60.719,
      "content": 20,
      "content8": {
       "within40ms": 0.4,
       "chance40ms": 0.274,
       "z40ms": 1.64,
       "medianAbsDevMs": 62.7,
       "medianSignedMs": -10.8
      },
      "contentBeat": {
       "within40ms": 0.25,
       "chance40ms": 0.137,
       "z40ms": 1.49
      },
      "phraseStarts": 1,
      "phraseStart8within40ms": 1.0
     },
     {
      "id": "ch1",
      "t0": 60.719,
      "t1": 81.976,
      "content": 18,
      "content8": {
       "within40ms": 0.278,
       "chance40ms": 0.274,
       "z40ms": -0.23,
       "medianAbsDevMs": 76.3,
       "medianSignedMs": 74.5
      },
      "contentBeat": {
       "within40ms": 0.278,
       "chance40ms": 0.137,
       "z40ms": 0.9
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "v3",
      "t0": 81.976,
      "t1": 102.905,
      "content": 23,
      "content8": {
       "within40ms": 0.522,
       "chance40ms": 0.274,
       "z40ms": 1.45,
       "medianAbsDevMs": 32.4,
       "medianSignedMs": 19.8
      },
      "contentBeat": {
       "within40ms": 0.304,
       "chance40ms": 0.137,
       "z40ms": 1.93
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "v4",
      "t0": 102.905,
      "t1": 125.955,
      "content": 20,
      "content8": {
       "within40ms": 0.6,
       "chance40ms": 0.274,
       "z40ms": 1.98,
       "medianAbsDevMs": 33.1,
       "medianSignedMs": 2.6
      },
      "contentBeat": {
       "within40ms": 0.45,
       "chance40ms": 0.137,
       "z40ms": 2.16
      },
      "phraseStarts": 2,
      "phraseStart8within40ms": 0.5
     },
     {
      "id": "v5",
      "t0": 125.955,
      "t1": 135.057,
      "content": 11,
      "content8": {
       "within40ms": 0.545,
       "chance40ms": 0.274,
       "z40ms": 1.87,
       "medianAbsDevMs": 28.7,
       "medianSignedMs": 6.9
      },
      "contentBeat": {
       "within40ms": 0.182,
       "chance40ms": 0.137,
       "z40ms": 0.75
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "ch2",
      "t0": 135.057,
      "t1": 155.881,
      "content": 18,
      "content8": {
       "within40ms": 0.389,
       "chance40ms": 0.274,
       "z40ms": 0.46,
       "medianAbsDevMs": 44.4,
       "medianSignedMs": 44.4
      },
      "contentBeat": {
       "within40ms": 0.167,
       "chance40ms": 0.137,
       "z40ms": -0.0
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "br",
      "t0": 155.881,
      "t1": 177.673,
      "content": 19,
      "content8": {
       "within40ms": 0.421,
       "chance40ms": 0.274,
       "z40ms": 0.91,
       "medianAbsDevMs": 55.1,
       "medianSignedMs": 37.2
      },
      "contentBeat": {
       "within40ms": 0.263,
       "chance40ms": 0.137,
       "z40ms": 1.74
      },
      "phraseStarts": 4,
      "phraseStart8within40ms": 0.5
     },
     {
      "id": "ch3",
      "t0": 177.673,
      "t1": 193.901,
      "content": 10,
      "content8": {
       "within40ms": 0.4,
       "chance40ms": 0.274,
       "z40ms": 1.03,
       "medianAbsDevMs": 66.9,
       "medianSignedMs": 66.9
      },
      "contentBeat": {
       "within40ms": 0.3,
       "chance40ms": 0.137,
       "z40ms": 0.99
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "coda",
      "t0": 193.901,
      "t1": 228.024,
      "content": 19,
      "content8": {
       "within40ms": 0.526,
       "chance40ms": 0.274,
       "z40ms": 1.9,
       "medianAbsDevMs": 22.2,
       "medianSignedMs": -2.7
      },
      "contentBeat": {
       "within40ms": 0.526,
       "chance40ms": 0.137,
       "z40ms": 3.54
      },
      "phraseStarts": 5,
      "phraseStart8within40ms": 0.6
     }
    ]
   },
   "B": {
    "label": "B (итерация 3)",
    "devs": [
     69.3,
     24.4,
     8.6,
     67.0,
     -13.4,
     31.3,
     60.8,
     90.8,
     49.8,
     63.7,
     -22.3,
     84.2,
     -45.8,
     92.1,
     104.5,
     45.0,
     -22.7,
     -35.4,
     -64.5,
     59.4,
     -59.0,
     12.5,
     -25.7,
     63.3,
     27.3,
     -1.0,
     -30.5,
     -76.5,
     68.4,
     71.6,
     10.5,
     86.2,
     18.3,
     36.4,
     -7.3,
     10.0,
     50.6,
     -127.5,
     46.5,
     -42.4,
     71.0,
     130.7,
     11.4,
     -19.2,
     -71.3,
     -25.9,
     -20.4,
     23.3,
     21.9,
     0.2,
     -46.0,
     13.4,
     77.0,
     -31.6,
     -7.0,
     9.7,
     -19.6,
     23.9,
     6.8,
     3.7,
     -28.4,
     -67.3,
     92.9,
     13.0,
     62.3,
     -5.0,
     85.1,
     96.9,
     12.7,
     82.2,
     -22.6,
     -57.1,
     -125.4,
     -120.8,
     -21.0,
     -4.3,
     19.3,
     99.8,
     84.3,
     -19.0,
     -32.2,
     7.6,
     -8.8,
     81.8,
     14.6,
     41.9,
     90.0,
     -117.4,
     23.1,
     -85.9,
     -14.3,
     -26.2,
     -19.5,
     -2.0,
     -32.8,
     -21.1,
     -36.3,
     -71.2,
     11.5,
     88.4,
     -110.7,
     -53.9,
     24.3,
     -133.7,
     79.5,
     134.6,
     -19.8,
     -1.8,
     8.8,
     75.6,
     95.5,
     -71.1,
     32.4,
     17.0,
     -10.0,
     -2.9,
     77.0,
     71.8,
     54.0,
     68.4,
     -38.6,
     69.8,
     -60.3,
     -16.4,
     60.6,
     -6.8,
     -39.7,
     0.6,
     -10.2,
     83.0,
     11.5,
     96.1,
     121.0,
     128.4,
     90.7,
     15.9,
     82.2,
     -11.5,
     16.3,
     90.9,
     -80.1,
     -19.2,
     110.4,
     60.8,
     72.4,
     -21.4,
     113.0,
     21.6,
     107.4,
     106.3,
     21.1,
     -63.2,
     -131.8,
     57.6,
     51.1,
     97.1,
     -75.4,
     25.2,
     15.5,
     5.1,
     9.1,
     -18.4,
     13.4,
     -22.0,
     89.8,
     111.1,
     -60.4,
     37.1,
     -72.1,
     -18.4,
     -84.2,
     112.2,
     -128.7,
     -15.6,
     -53.3,
     10.3,
     -71.0,
     -20.9,
     -81.9,
     46.5,
     -56.3,
     31.3,
     51.3,
     -43.1,
     32.6
    ],
    "share": 0.486,
    "mad": 43.1,
    "chance": 0.292,
    "sections": [
     {
      "id": "v1",
      "t0": 0.39,
      "t1": 26.22,
      "content": 22,
      "content8": {
       "within40ms": 0.364,
       "chance40ms": 0.292,
       "z40ms": 0.43,
       "medianAbsDevMs": 54.4,
       "medianSignedMs": 38.2
      },
      "contentBeat": {
       "within40ms": 0.136,
       "chance40ms": 0.146,
       "z40ms": -0.24
      },
      "phraseStarts": 1,
      "phraseStart8within40ms": 1.0
     },
     {
      "id": "r1",
      "t0": 26.22,
      "t1": 44.409,
      "content": 13,
      "content8": {
       "within40ms": 0.615,
       "chance40ms": 0.292,
       "z40ms": 1.38,
       "medianAbsDevMs": 30.5,
       "medianSignedMs": 18.3
      },
      "contentBeat": {
       "within40ms": 0.385,
       "chance40ms": 0.146,
       "z40ms": 1.51
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "v2",
      "t0": 44.409,
      "t1": 66.276,
      "content": 21,
      "content8": {
       "within40ms": 0.571,
       "chance40ms": 0.292,
       "z40ms": 2.42,
       "medianAbsDevMs": 25.9,
       "medianSignedMs": 9.7
      },
      "contentBeat": {
       "within40ms": 0.429,
       "chance40ms": 0.146,
       "z40ms": 2.1
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "v3",
      "t0": 66.276,
      "t1": 80.02,
      "content": 14,
      "content8": {
       "within40ms": 0.571,
       "chance40ms": 0.292,
       "z40ms": 1.37,
       "medianAbsDevMs": 26.2,
       "medianSignedMs": 12.8
      },
      "contentBeat": {
       "within40ms": 0.357,
       "chance40ms": 0.146,
       "z40ms": 2.3
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "r2",
      "t0": 80.02,
      "t1": 88.352,
      "content": 4,
      "content8": {
       "within40ms": 0.25,
       "chance40ms": 0.292,
       "z40ms": -0.1,
       "medianAbsDevMs": 88.9,
       "medianSignedMs": -88.9
      },
      "contentBeat": {
       "within40ms": 0.25,
       "chance40ms": 0.146,
       "z40ms": 0.66
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "v4",
      "t0": 88.352,
      "t1": 112.37,
      "content": 23,
      "content8": {
       "within40ms": 0.696,
       "chance40ms": 0.292,
       "z40ms": 1.86,
       "medianAbsDevMs": 23.1,
       "medianSignedMs": -8.8
      },
      "contentBeat": {
       "within40ms": 0.478,
       "chance40ms": 0.146,
       "z40ms": 2.37
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "v5",
      "t0": 112.37,
      "t1": 129.878,
      "content": 17,
      "content8": {
       "within40ms": 0.412,
       "chance40ms": 0.292,
       "z40ms": 1.65,
       "medianAbsDevMs": 71.1,
       "medianSignedMs": 11.5
      },
      "contentBeat": {
       "within40ms": 0.353,
       "chance40ms": 0.146,
       "z40ms": 1.59
      },
      "phraseStarts": 1,
      "phraseStart8within40ms": 1.0
     },
     {
      "id": "v6",
      "t0": 129.878,
      "t1": 151.189,
      "content": 24,
      "content8": {
       "within40ms": 0.458,
       "chance40ms": 0.292,
       "z40ms": 0.96,
       "medianAbsDevMs": 57.2,
       "medianSignedMs": 34.9
      },
      "contentBeat": {
       "within40ms": 0.25,
       "chance40ms": 0.146,
       "z40ms": 0.98
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "r3",
      "t0": 151.189,
      "t1": 159.956,
      "content": 3,
      "content8": {
       "within40ms": 0.333,
       "chance40ms": 0.292,
       "z40ms": 0.19,
       "medianAbsDevMs": 80.1,
       "medianSignedMs": 16.3
      },
      "contentBeat": {
       "within40ms": 0.333,
       "chance40ms": 0.146,
       "z40ms": 1.39
      },
      "phraseStarts": 0,
      "phraseStart8within40ms": null
     },
     {
      "id": "br",
      "t0": 159.956,
      "t1": 194.477,
      "content": 26,
      "content8": {
       "within40ms": 0.423,
       "chance40ms": 0.292,
       "z40ms": 1.26,
       "medianAbsDevMs": 59.0,
       "medianSignedMs": 21.4
      },
      "contentBeat": {
       "within40ms": 0.192,
       "chance40ms": 0.146,
       "z40ms": 0.67
      },
      "phraseStarts": 1,
      "phraseStart8within40ms": 0.0
     },
     {
      "id": "coda",
      "t0": 194.477,
      "t1": 233.174,
      "content": 18,
      "content8": {
       "within40ms": 0.389,
       "chance40ms": 0.292,
       "z40ms": 0.7,
       "medianAbsDevMs": 48.9,
       "medianSignedMs": -19.6
      },
      "contentBeat": {
       "within40ms": 0.167,
       "chance40ms": 0.146,
       "z40ms": 0.2
      },
      "phraseStarts": 4,
      "phraseStart8within40ms": 0.75
     }
    ]
   }
  },
  "targOverall": 0.613,
  "chance8": 0.276,
  "validation": {
   "text": "Вокальный стем Targ задержан на 50 мс против неизменной музыки → выровненные слоги сдвинулись на медиану 50.0 мс (90-й перцентиль ошибки 15.0 мс); доля в ±40 мс упала 0,61 → 0.183, а после вычитания систематического сдвига осталась 0.642: инструмент следит за звуком, а не за текстом. Часы: начало гласной (onset) даёт самое плотное распределение на всех четырёх треках (Targ: 29.8 мс против 36.5 у согласной и 57.6 у сырого CTC) и сдвиг Targ около нуля (+9 мс) — поэтому P-центр слога = начало гласной. Сетка: трекер ударов (hop 23 мс) уточнён до пиков ударных (5,8 мс) и сглажен прямой по ±4 долям; джиттер Targ 3.5 мс, v2 3.9, A 11.3, B 4.5. Неопределённость: CTC на пении ±20–60 мс; биномиальная sd доли 0,61 на 230 событиях ≈ 0,032.",
   "shift": {
    "test": "Targ vocal stem delayed by 50 ms against unchanged music stems",
    "perSyllableShiftMs": {
     "median": 50.0,
     "mean": 49.1,
     "absErrP50": 0.0,
     "absErrP90": 15.0
    },
    "content8": {
     "count": 229,
     "within30ms": 0.1,
     "chance30ms": 0.207,
     "null30ms": 0.198,
     "z30ms": -0.6,
     "lift30ms": -0.134,
     "within40ms": 0.183,
     "chance40ms": 0.276,
     "null40ms": 0.264,
     "z40ms": -0.41,
     "lift40ms": -0.128,
     "within60ms": 0.45,
     "chance60ms": 0.414,
     "null60ms": 0.398,
     "z60ms": 0.23,
     "lift60ms": 0.061,
     "medianAbsDevMs": 64.7,
     "p75AbsDevMs": 84.6,
     "meanSignedMs": 41.1,
     "medianSignedMs": 53.6,
     "within40msLagCorrected": 0.642,
     "medianAbsDevLagCorrectedMs": 24.1
    }
   }
  },
  "fingerprintCaption": "Столбики — доля ударных слогов в корзине 10 мс; серая полоса — ±40 мс; пунктир — шанс (равномерно). У Targ пик у нуля узкий; у A и B — шире и с «плечом» поздних ударных.",
  "sectionCaption": "Доля ударных в ±40 мс по секциям, подпись — систематический сдвиг секции (+ = позже бита). Бледные столбики — меньше 10 ударных (не судятся). Пунктир — Targ целиком (0,61), точки — шанс.",
  "worst": {
   "schema": "adfactory.worst-phrases/v1",
   "method": "Per sung phrase: the vowel-onset clock of each content-word stressed syllable (tools/song_align.py) against the refined 8th grid of its own track (tools/song_beat_sync.py); rank = median |deviation| over phrases with >= 2 content stresses; the Targ phrase is the line with the largest overlap with the source range of the phrase's first thought.",
   "variants": {
    "A": {
     "phrasesRanked": 50,
     "medianPhraseDevMs": 48.95,
     "worst": [
      {
       "rank": 1,
       "variant": "A",
       "phraseId": "p03",
       "text": "Був березень. З Андрієм жили шістнадцять літ.",
       "meaningIds": [
        "t04",
        "t05"
       ],
       "t0": 9.623,
       "t1": 13.725,
       "medianAbsDev8Ms": 141.9,
       "within40ms8": 0.2,
       "contentDev8Ms": [
        58.5,
        -142.2,
        -146.1,
        -141.9,
        -36.9
       ],
       "words": [
        "березень",
        "Андрієм",
        "жили",
        "шістнадцять",
        "літ"
       ],
       "startDev8Ms": -40.0,
       "targ": {
        "text": "That was in March",
        "t0": 8.742,
        "t1": 9.702,
        "medianAbsDev8Ms": 1.7,
        "within40ms8": 1.0,
        "contentDev8Ms": [
         -1.7
        ],
        "words": [
         "March"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A01-ours.derivation.json",
         "sha256": "bb5b6e195af5318f7a477234d0d9dd8b2a87ad2407b775c21d2f3da1caddfa0b"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A01-ours.mp3",
         "sha256": "d4c26440788f64ada0c3f88ab21a03114dd98e3ce0c3d1dac1a2c0aa9a57b66c"
        },
        "range": [
         9.32,
         14.17
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A01-targ.derivation.json",
         "sha256": "01798e1f315133a510b4d1ab3de431f6c017a2a0b480b0e6071f2c1606f190d1"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A01-targ.mp3",
         "sha256": "7d7fb4b6aa406825ec6a75dc5774ac7ee78ffb69d918fdf878008381579f0000"
        },
        "range": [
         8.44,
         10.15
        ]
       }
      },
      {
       "rank": 2,
       "variant": "A",
       "phraseId": "p12",
       "text": "Впізнала голос — і погляд ковзнув по шиї.",
       "meaningIds": [
        "t12",
        "t13"
       ],
       "t0": 46.28,
       "t1": 51.023,
       "medianAbsDev8Ms": 86.6,
       "within40ms8": 0.0,
       "contentDev8Ms": [
        71.8,
        -56.8,
        -131.8,
        103.6,
        86.6
       ],
       "words": [
        "Впізнала",
        "голос",
        "погляд",
        "ковзнув",
        "шиї"
       ],
       "startDev8Ms": -14.7,
       "targ": {
        "text": "before she came around She saw me",
        "t0": 44.868,
        "t1": 46.828,
        "medianAbsDev8Ms": 12.4,
        "within40ms8": 0.75,
        "contentDev8Ms": [
         2.6,
         22.1,
         69.5,
         1.6
        ],
        "words": [
         "before",
         "came",
         "around",
         "saw"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A02-ours.derivation.json",
         "sha256": "273d474866ce7c45c609d4cc0568d7cac15356a789cf1cd7fc66d2ae7ae0cb13"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A02-ours.mp3",
         "sha256": "0d13688c2bc95460ff2c03e2a3ec8eee9d9cea639b2a96a833e6b94e6eed92b5"
        },
        "range": [
         45.98,
         51.47
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A02-targ.derivation.json",
         "sha256": "48aef5ab684ca8d06501289684a082164bdfe9c70b4d1adb1ee7cd8e8bcebac8"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A02-targ.mp3",
         "sha256": "a855b6425fd139aa1e6f9a441f0ce87736d388905c028adf7be469f1992c214d"
        },
        "range": [
         44.57,
         47.28
        ]
       }
      },
      {
       "rank": 3,
       "variant": "A",
       "phraseId": "p09",
       "text": "Опора дітям — теж лишає слід.",
       "meaningIds": [
        "t09"
       ],
       "t0": 33.593,
       "t1": 37.375,
       "medianAbsDev8Ms": 86.3,
       "within40ms8": 0.25,
       "contentDev8Ms": [
        -117.8,
        54.8,
        31.4,
        118.5
       ],
       "words": [
        "Опора",
        "дітям",
        "лишає",
        "слід"
       ],
       "startDev8Ms": -2.2,
       "targ": {
        "text": "Holding your kids together will do that",
        "t0": 31.106,
        "t1": 33.006,
        "medianAbsDev8Ms": 8.9,
        "within40ms8": 1.0,
        "contentDev8Ms": [
         6.4,
         -11.5
        ],
        "words": [
         "Holding",
         "together"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A03-ours.derivation.json",
         "sha256": "4fccda0cd9eead2a8ac4edd82d373b86c5aa73deb558b842c8f791925afcfb87"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A03-ours.mp3",
         "sha256": "9f392020ab42088627313d565b9fcdaba64691e2722a9cb4588a940540ab1795"
        },
        "range": [
         33.29,
         37.83
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A03-targ.derivation.json",
         "sha256": "84287dde69f75a38fa015a34176655f4ef75bb9318f0c581f4042955fb7faf0d"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A03-targ.mp3",
         "sha256": "e2ea3b68d3fc9fe1863679699ae79c1a49270d558543763f81b1a436bae86c4e"
        },
        "range": [
         30.81,
         33.46
        ]
       }
      },
      {
       "rank": 4,
       "variant": "A",
       "phraseId": "p27",
       "text": "Там купуасу, гіалурон —",
       "meaningIds": [
        "t26"
       ],
       "t0": 107.697,
       "t1": 112.079,
       "medianAbsDev8Ms": 85.4,
       "within40ms8": 0.333,
       "contentDev8Ms": [
        -3.9,
        -114.0,
        85.4
       ],
       "words": [
        "Там",
        "купуасу",
        "гіалурон"
       ],
       "startDev8Ms": -3.9,
       "targ": {
        "text": "I'd never tried Use this every night",
        "t0": 113.337,
        "t1": 117.738,
        "medianAbsDev8Ms": 20.8,
        "within40ms8": 0.75,
        "contentDev8Ms": [
         -0.1,
         -32.3,
         76.9,
         9.3
        ],
        "words": [
         "never",
         "tried",
         "Use",
         "every"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A04-ours.derivation.json",
         "sha256": "500e710c1eb3469b7d150ab78ad4358b79a3a965da2b3c80d0a87c66b019d076"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A04-ours.mp3",
         "sha256": "b020246c5dc64b2c498a226faa6d4eb608b93645a814aa1e51caf77cff32cb4e"
        },
        "range": [
         107.4,
         112.53
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A04-targ.derivation.json",
         "sha256": "866ce1e645d8d817faa604fbf528ffe1a64f4312879607ac963e0567e44c5677"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A04-targ.mp3",
         "sha256": "686b18aee2e0831ad4adb5423b8b5c285118e42f153702cc64c5d0154d3bd0f2"
        },
        "range": [
         113.04,
         118.19
        ]
       }
      },
      {
       "rank": 5,
       "variant": "A",
       "phraseId": "p16",
       "text": "Злюсь не на неї — на те, що бачу.",
       "meaningIds": [
        "t17"
       ],
       "t0": 65.893,
       "t1": 69.776,
       "medianAbsDev8Ms": 85.2,
       "within40ms8": 0.0,
       "contentDev8Ms": [
        -62.9,
        85.2,
        90.9
       ],
       "words": [
        "Злюсь",
        "неї",
        "бачу"
       ],
       "startDev8Ms": -62.9,
       "targ": {
        "text": "I was angry at what I'd seen",
        "t0": 67.693,
        "t1": 71.716,
        "medianAbsDev8Ms": 54.3,
        "within40ms8": 0.5,
        "contentDev8Ms": [
         99.1,
         9.6
        ],
        "words": [
         "angry",
         "seen"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A05-ours.derivation.json",
         "sha256": "4c043639d19074dbbf30be9e803c558d9b27ade9f0b173ab72a83cb8aaf4a2d7"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A05-ours.mp3",
         "sha256": "c2172958475315e8b19cd79692bbea12c45a5316f59a97407e843fdad01bba5c"
        },
        "range": [
         65.59,
         70.23
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A05-targ.derivation.json",
         "sha256": "33ed79845b85c8244aa5d4ef72c8b33cc3feba6abacd08c26c86e0ef24b19e70"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A05-targ.mp3",
         "sha256": "b2b5b2b2ec6575fe5ee96849eec6e259d99bda168fb292088e632d66429f20fe"
        },
        "range": [
         67.39,
         72.17
        ]
       }
      },
      {
       "rank": 6,
       "variant": "A",
       "phraseId": "p43",
       "text": "Не її думка важить — нарешті моя.",
       "meaningIds": [
        "t37"
       ],
       "t0": 181.965,
       "t1": 185.947,
       "medianAbsDev8Ms": 81.4,
       "within40ms8": 0.25,
       "contentDev8Ms": [
        102.8,
        91.5,
        71.3,
        20.6
       ],
       "words": [
        "думка",
        "важить",
        "нарешті",
        "моя"
       ],
       "startDev8Ms": 23.0,
       "targ": {
        "text": "Not because her opinion mattered But because mine finally did",
        "t0": 176.332,
        "t1": 181.673,
        "medianAbsDev8Ms": 53.9,
        "within40ms8": 0.25,
        "contentDev8Ms": [
         0.4,
         67.8,
         63.9,
         -43.9
        ],
        "words": [
         "Not",
         "opinion",
         "mattered",
         "finally"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A06-ours.derivation.json",
         "sha256": "69a4899c8905b26023c56ad3a53b3fe117113b83d8803a0354034674d21c0852"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A06-ours.mp3",
         "sha256": "d1ff21109dd177c86dec857d32f8d53f4b3f1851c0e5f7abb96590175041afa4"
        },
        "range": [
         181.66,
         186.4
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A06-targ.derivation.json",
         "sha256": "ea1741cd4a35a204c6833c1df53b6f695b857af10992469f0f3a76901350834e"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A06-targ.mp3",
         "sha256": "c003139fded5f735212d1d4db0ef0425f70ccb8441b82573b0455bf53949b3b6"
        },
        "range": [
         176.03,
         182.12
        ]
       }
      },
      {
       "rank": 7,
       "variant": "A",
       "phraseId": "p40",
       "text": "Підійшла: «Гарно виглядаєш… до речі».",
       "meaningIds": [
        "t34"
       ],
       "t0": 170.018,
       "t1": 173.48,
       "medianAbsDev8Ms": 79.0,
       "within40ms8": 0.25,
       "contentDev8Ms": [
        83.5,
        -29.6,
        133.9,
        -74.6
       ],
       "words": [
        "Підійшла",
        "Гарно",
        "виглядаєш",
        "речі"
       ],
       "startDev8Ms": -39.8,
       "targ": {
        "text": "she walked up to me",
        "t0": 161.25,
        "t1": 162.97,
        "medianAbsDev8Ms": 11.0,
        "within40ms8": 1.0,
        "contentDev8Ms": [
         11.0
        ],
        "words": [
         "walked"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A07-ours.derivation.json",
         "sha256": "7163717348824f0ea13e7d67c75cada20392f6cc051b42cd294bc99dea0e5480"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A07-ours.mp3",
         "sha256": "360f0db7ae412f4f5c6591f7509f6fbfee602c01cbee5419adfcac22cd21872c"
        },
        "range": [
         169.72,
         173.93
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A07-targ.derivation.json",
         "sha256": "799597ff8755d7bf8b96ed53195fdc0254de0058d5f25937911c058f12a9de98"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A07-targ.mp3",
         "sha256": "55c7f124418dfd32df4e7be9bc2fb9dfa083ed2efacb5100600af9155846ec0f"
        },
        "range": [
         160.95,
         163.42
        ]
       }
      },
      {
       "rank": 8,
       "variant": "A",
       "phraseId": "p15",
       "text": "П’ятнадцять хвилин сиділа в машині.",
       "meaningIds": [
        "t16"
       ],
       "t0": 60.969,
       "t1": 65.253,
       "medianAbsDev8Ms": 78.4,
       "within40ms8": 0.25,
       "contentDev8Ms": [
        32.0,
        100.4,
        78.9,
        77.8
       ],
       "words": [
        "П’ятнадцять",
        "хвилин",
        "сиділа",
        "машині"
       ],
       "startDev8Ms": -21.7,
       "targ": {
        "text": "I walked to my car and sat there for fifteen",
        "t0": 63.131,
        "t1": 65.712,
        "medianAbsDev8Ms": 12.7,
        "within40ms8": 0.667,
        "contentDev8Ms": [
         12.7,
         -124.2,
         10.4
        ],
        "words": [
         "car",
         "sat",
         "fifteen"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A08-ours.derivation.json",
         "sha256": "995b29edbf74bbc4b29fe99f7b69c93a9cee01a2939116c8552ffeb1d2550cb7"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A08-ours.mp3",
         "sha256": "22c6336414936ca40a7de7f7e8db3a4421809b45dded7b9e47c324e91766bd23"
        },
        "range": [
         60.67,
         65.7
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A08-targ.derivation.json",
         "sha256": "d1e6412214dc31baf1c08f72af02f48e958fe901d43498f63b054682d05107fe"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A08-targ.mp3",
         "sha256": "5789d76123eeae7248f75494f2400970c81f8c01f90ff042fd352ea11a2fac06"
        },
        "range": [
         62.83,
         66.16
        ]
       }
      },
      {
       "rank": 9,
       "variant": "A",
       "phraseId": "p18",
       "text": "На шиї бачу сухість, смуги, заломи.",
       "meaningIds": [
        "t18"
       ],
       "t0": 74.44,
       "t1": 77.482,
       "medianAbsDev8Ms": 74.2,
       "within40ms8": 0.4,
       "contentDev8Ms": [
        16.9,
        74.2,
        -3.6,
        74.8,
        93.5
       ],
       "words": [
        "шиї",
        "бачу",
        "сухість",
        "смуги",
        "заломи"
       ],
       "startDev8Ms": 45.8,
       "targ": {
        "text": "I was angry at what I'd seen",
        "t0": 67.693,
        "t1": 71.716,
        "medianAbsDev8Ms": 54.3,
        "within40ms8": 0.5,
        "contentDev8Ms": [
         99.1,
         9.6
        ],
        "words": [
         "angry",
         "seen"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A09-ours.derivation.json",
         "sha256": "8ec444589ac1265807f51730d13504065038ff707f56a2cd2ed85a8ec90adb43"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A09-ours.mp3",
         "sha256": "703030c9b07ed5d6bb2e204f7e99fcc5d8a6e99306b0911dec18790945de700e"
        },
        "range": [
         74.14,
         77.93
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A09-targ.derivation.json",
         "sha256": "ad81cd9282e3f40cf55fa85e3c28bd1141f0b4225cc6e37ee3f6e8527e0c5cba"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A09-targ.mp3",
         "sha256": "b2b5b2b2ec6575fe5ee96849eec6e259d99bda168fb292088e632d66429f20fe"
        },
        "range": [
         67.39,
         72.17
        ]
       }
      },
      {
       "rank": 10,
       "variant": "A",
       "phraseId": "p23",
       "text": "Сміється: «А ти що наносиш?»",
       "meaningIds": [
        "t22"
       ],
       "t0": 94.211,
       "t1": 96.232,
       "medianAbsDev8Ms": 73.6,
       "within40ms8": 0.5,
       "contentDev8Ms": [
        127.4,
        19.8
       ],
       "words": [
        "Сміється",
        "наносиш"
       ],
       "startDev8Ms": -3.6,
       "targ": {
        "text": "Said honey, what are you using",
        "t0": 98.891,
        "t1": 100.832,
        "medianAbsDev8Ms": 14.2,
        "within40ms8": 0.667,
        "contentDev8Ms": [
         -5.0,
         14.2,
         -125.1
        ],
        "words": [
         "Said",
         "honey",
         "using"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A10-ours.derivation.json",
         "sha256": "5afd3afe621e050a79d98093f61319e216a424bec2b416e55a86fb7f9a8228fd"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A10-ours.mp3",
         "sha256": "931127db897d6ce8fa24de009796ac5dd2831e341bd212ec9820eb13ac4b23ff"
        },
        "range": [
         93.91,
         96.68
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A10-targ.derivation.json",
         "sha256": "c07151ed4c4eff0377c632cf3632b78a909187e6e5721302ab9211c75a31feb6"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-A10-targ.mp3",
         "sha256": "a554fc5d7ca79b72d460ea021670cc504cb8902d4158962b2d88b89efb4222be"
        },
        "range": [
         98.59,
         101.28
        ]
       }
      }
     ],
     "shareOfPhrasesWithin35ms": 0.32
    },
    "B": {
     "phrasesRanked": 51,
     "medianPhraseDevMs": 46.5,
     "worst": [
      {
       "rank": 1,
       "variant": "B",
       "phraseId": "p22",
       "text": "Чужу жінку.",
       "meaningIds": [
        "t15"
       ],
       "t0": 83.816,
       "t1": 84.757,
       "medianAbsDev8Ms": 123.1,
       "within40ms8": 0.0,
       "contentDev8Ms": [
        -125.4,
        -120.8
       ],
       "words": [
        "Чужу",
        "жінку"
       ],
       "startDev8Ms": 25.0,
       "targ": {
        "text": "at the before version of the woman her husband loved first",
        "t0": 57.789,
        "t1": 61.91,
        "medianAbsDev8Ms": 30.1,
        "within40ms8": 0.667,
        "contentDev8Ms": [
         -15.5,
         15.3,
         -38.8,
         66.3,
         21.5,
         -103.4
        ],
        "words": [
         "before",
         "version",
         "woman",
         "husband",
         "loved",
         "first"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B01-ours.derivation.json",
         "sha256": "5bd55406b9ee2382a45970db122b4f47a4964c3bea5704d37fa3f7be8c1730f3"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B01-ours.mp3",
         "sha256": "2a6a2078901b1c2c30159dbc5dde4a2360c44723286cd6d0255d829ac019d1ca"
        },
        "range": [
         83.52,
         85.21
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B01-targ.derivation.json",
         "sha256": "ece71ec3aa5ec13e51daa709e8d946fe82501e55616325d54fb9113fc12b2f36"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B01-targ.mp3",
         "sha256": "7d6b71adca118973049959cfc08ab0ffc53a59bb52a9235de80db0ec9e9d5d91"
        },
        "range": [
         57.49,
         62.36
        ]
       }
      },
      {
       "rank": 2,
       "variant": "B",
       "phraseId": "p36",
       "text": "Шкіра рівніша, ніж за десять літ.",
       "meaningIds": [
        "t31"
       ],
       "t0": 143.354,
       "t1": 145.915,
       "medianAbsDev8Ms": 108.6,
       "within40ms8": 0.25,
       "contentDev8Ms": [
        11.5,
        96.1,
        121.0,
        128.4
       ],
       "words": [
        "Шкіра",
        "рівніша",
        "десять",
        "літ"
       ],
       "startDev8Ms": 11.5,
       "targ": {
        "text": "My skin more even than it had in a decade",
        "t0": 140.226,
        "t1": 143.806,
        "medianAbsDev8Ms": 19.7,
        "within40ms8": 0.75,
        "contentDev8Ms": [
         -19.7,
         5.1,
         -19.8,
         136.6
        ],
        "words": [
         "skin",
         "more",
         "even",
         "decade"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B02-ours.derivation.json",
         "sha256": "2730785cd2e740b15c9e12e051d3088b882671cba32cd182b3c3f976fafefac2"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B02-ours.mp3",
         "sha256": "d065a48789050a628878dca24fde68e65185f1b827bf037db4cd16104f197dce"
        },
        "range": [
         143.05,
         146.36
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B02-targ.derivation.json",
         "sha256": "401f43d1bea545b9e5b7761443d30cea18bf69cabcc0390c9c814734334516c0"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B02-targ.mp3",
         "sha256": "a10532724f37f6b7323b450c75bde0581e49a03260469016e01b7e470b51d9e5"
        },
        "range": [
         139.93,
         144.26
        ]
       }
      },
      {
       "rank": 3,
       "variant": "B",
       "phraseId": "p26",
       "text": "Сміється: «А ти що наносиш?»",
       "meaningIds": [
        "t22"
       ],
       "t0": 100.475,
       "t1": 103.436,
       "medianAbsDev8Ms": 103.7,
       "within40ms8": 0.0,
       "contentDev8Ms": [
        90.0,
        -117.4
       ],
       "words": [
        "Сміється",
        "наносиш"
       ],
       "startDev8Ms": -5.0,
       "targ": {
        "text": "Said honey, what are you using",
        "t0": 98.891,
        "t1": 100.832,
        "medianAbsDev8Ms": 14.2,
        "within40ms8": 0.667,
        "contentDev8Ms": [
         -5.0,
         14.2,
         -125.1
        ],
        "words": [
         "Said",
         "honey",
         "using"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B03-ours.derivation.json",
         "sha256": "64526ad88ee21e2b874097bf64c5cb4e70e6e8a83b3d0d1d552ba291b9d144ba"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B03-ours.mp3",
         "sha256": "08cd207d5203a79e131a7a5bd1b2c1ed170c6334a7c9ee4b1e0a8c69348afe1c"
        },
        "range": [
         100.17,
         103.89
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B03-targ.derivation.json",
         "sha256": "45b63385412d40a546d9f7adc69ae86f0b3b7efe19a9464ed379a22ac830e413"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B03-targ.mp3",
         "sha256": "a554fc5d7ca79b72d460ea021670cc504cb8902d4158962b2d88b89efb4222be"
        },
        "range": [
         98.59,
         101.28
        ]
       }
      },
      {
       "rank": 4,
       "variant": "B",
       "phraseId": "p48",
       "text": "Залиш ім’я й телефон у формі.",
       "meaningIds": [
        "t39"
       ],
       "t0": 201.571,
       "t1": 204.994,
       "medianAbsDev8Ms": 98.2,
       "within40ms8": 0.25,
       "contentDev8Ms": [
        -84.2,
        112.2,
        -128.7,
        -15.6
       ],
       "words": [
        "Залиш",
        "ім’я",
        "телефон",
        "формі"
       ],
       "startDev8Ms": -22.7,
       "targ": {
        "text": "The link's below If you need it",
        "t0": 185.434,
        "t1": 188.515,
        "medianAbsDev8Ms": 48.1,
        "within40ms8": 0.333,
        "contentDev8Ms": [
         36.3,
         -48.1,
         106.4
        ],
        "words": [
         "link's",
         "below",
         "need"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B04-ours.derivation.json",
         "sha256": "3f363e7495c7c035a752faeb5ef031446a06ab32457ee4b9492489e4eaaabc8e"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B04-ours.mp3",
         "sha256": "2cd44c7f2e6e37cc93daa7e61291b1d9b8aaad77211c9a7ac53b945a6149c898"
        },
        "range": [
         201.27,
         205.44
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B04-targ.derivation.json",
         "sha256": "10951820dae9e4af493cccf4676dc363f1ff9d35d5ea0e274556f03821f7dd7e"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B04-targ.mp3",
         "sha256": "9899c9df68bf4791b238af8da384f95742b271978f2e86c968396b0670d7a4d8"
        },
        "range": [
         185.13,
         188.96
        ]
       }
      },
      {
       "rank": 5,
       "variant": "B",
       "phraseId": "p42",
       "text": "Знов дивиться — не жалість, а подив.",
       "meaningIds": [
        "t33"
       ],
       "t0": 169.052,
       "t1": 172.355,
       "medianAbsDev8Ms": 84.7,
       "within40ms8": 0.25,
       "contentDev8Ms": [
        106.3,
        21.1,
        -63.2,
        -131.8
       ],
       "words": [
        "Знов",
        "дивиться",
        "жалість",
        "подив"
       ],
       "startDev8Ms": 106.3,
       "targ": {
        "text": "Mark's wife sat down a few seats from me",
        "t0": 150.828,
        "t1": 154.668,
        "medianAbsDev8Ms": 13.3,
        "within40ms8": 1.0,
        "contentDev8Ms": [
         9.3,
         16.7,
         -9.8,
         -1.4,
         -23.6,
         24.5
        ],
        "words": [
         "Mark's",
         "wife",
         "sat",
         "down",
         "few",
         "seats"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B05-ours.derivation.json",
         "sha256": "497fffb37d42f10df446e13bb9905a1d7a309e19adff5614d16f69989954dd92"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B05-ours.mp3",
         "sha256": "5f036cc1c21e17de4d2b7558e86c0e13e284cccf771d16d4ca424d5aa9f98a8e"
        },
        "range": [
         168.75,
         172.8
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B05-targ.derivation.json",
         "sha256": "1015f09a4964fc7460dd51261d0ea85c4558b664691dd3cc7a6184ae1e83dd44"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B05-targ.mp3",
         "sha256": "e6278d60d95b6942edea8cb81245cfc448534f07ca921ce84653765ed10868ef"
        },
        "range": [
         150.53,
         155.12
        ]
       }
      },
      {
       "rank": 6,
       "variant": "B",
       "phraseId": "p30",
       "text": "А в ній — купуасу й гіалурон.",
       "meaningIds": [
        "t26"
       ],
       "t0": 116.802,
       "t1": 119.703,
       "medianAbsDev8Ms": 79.5,
       "within40ms8": 0.333,
       "contentDev8Ms": [
        24.3,
        -133.7,
        79.5
       ],
       "words": [
        "ній",
        "купуасу",
        "гіалурон"
       ],
       "startDev8Ms": 8.5,
       "targ": {
        "text": "I'd never tried Use this every night",
        "t0": 113.337,
        "t1": 117.738,
        "medianAbsDev8Ms": 20.8,
        "within40ms8": 0.75,
        "contentDev8Ms": [
         -0.1,
         -32.3,
         76.9,
         9.3
        ],
        "words": [
         "never",
         "tried",
         "Use",
         "every"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B06-ours.derivation.json",
         "sha256": "3683f6b8a5c9b26fefdd9106ad9b36cc8a909fc078ad0f08c2e0d1e142a4a906"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B06-ours.mp3",
         "sha256": "6d2a11307c8e15490266190d0a8edd9c736fcb787e365549cf207a44d569cb67"
        },
        "range": [
         116.5,
         120.15
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B06-targ.derivation.json",
         "sha256": "06ca9eb9ce385263fdc047e9aa2a1fbce0735f4fd78090e3ac9ec7c9dbe0b5cb"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B06-targ.mp3",
         "sha256": "686b18aee2e0831ad4adb5423b8b5c285118e42f153702cc64c5d0154d3bd0f2"
        },
        "range": [
         113.04,
         118.19
        ]
       }
      },
      {
       "rank": 7,
       "variant": "B",
       "phraseId": "p46",
       "text": "Не її думка важить — нарешті моя.",
       "meaningIds": [
        "t37"
       ],
       "t0": 186.583,
       "t1": 191.365,
       "medianAbsDev8Ms": 75.1,
       "within40ms8": 0.25,
       "contentDev8Ms": [
        -22.0,
        89.8,
        111.1,
        -60.4
       ],
       "words": [
        "думка",
        "важить",
        "нарешті",
        "моя"
       ],
       "startDev8Ms": 75.2,
       "targ": {
        "text": "Not because her opinion mattered But because mine finally did",
        "t0": 176.332,
        "t1": 181.673,
        "medianAbsDev8Ms": 53.9,
        "within40ms8": 0.25,
        "contentDev8Ms": [
         0.4,
         67.8,
         63.9,
         -43.9
        ],
        "words": [
         "Not",
         "opinion",
         "mattered",
         "finally"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B07-ours.derivation.json",
         "sha256": "223c7ec0fed0bbf087b679adc48d57ad115cae661af5f9983d5c440ece23e031"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B07-ours.mp3",
         "sha256": "82a0f1d9609c63f7bc073bc99909922346a584fd5ac03a76aab43219cf87feb5"
        },
        "range": [
         186.28,
         191.81
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B07-targ.derivation.json",
         "sha256": "c249233bfe1af5d739d85041bcb61befa3a36d1c22907e89eaaaacc17b3be736"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B07-targ.mp3",
         "sha256": "c003139fded5f735212d1d4db0ef0425f70ccb8441b82573b0455bf53949b3b6"
        },
        "range": [
         176.03,
         182.12
        ]
       }
      },
      {
       "rank": 8,
       "variant": "B",
       "phraseId": "p29",
       "text": "Назавтра дала крем, якого я не знала.",
       "meaningIds": [
        "t25"
       ],
       "t0": 112.62,
       "t1": 116.582,
       "medianAbsDev8Ms": 71.2,
       "within40ms8": 0.2,
       "contentDev8Ms": [
        -71.2,
        11.5,
        88.4,
        -110.7,
        -53.9
       ],
       "words": [
        "Назавтра",
        "дала",
        "крем",
        "якого",
        "знала"
       ],
       "startDev8Ms": -17.4,
       "targ": {
        "text": "I'd never tried Use this every night",
        "t0": 113.337,
        "t1": 117.738,
        "medianAbsDev8Ms": 20.8,
        "within40ms8": 0.75,
        "contentDev8Ms": [
         -0.1,
         -32.3,
         76.9,
         9.3
        ],
        "words": [
         "never",
         "tried",
         "Use",
         "every"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B08-ours.derivation.json",
         "sha256": "96429903a62eb6acfb2f26d7ec8735b0428ed206ddb8c5c5cf6025d5d5d992b8"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B08-ours.mp3",
         "sha256": "4dac6845c2222dac39f84492a1db20079dc9742d20ac2165629389a7076d967b"
        },
        "range": [
         112.32,
         117.03
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B08-targ.derivation.json",
         "sha256": "f4d8c9d9a5c20d98af312b84197ad4f9a89a3cc4cefbae6f2fb3c0aba662dbef"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B08-targ.mp3",
         "sha256": "686b18aee2e0831ad4adb5423b8b5c285118e42f153702cc64c5d0154d3bd0f2"
        },
        "range": [
         113.04,
         118.19
        ]
       }
      },
      {
       "rank": 9,
       "variant": "B",
       "phraseId": "p09",
       "text": "Нічні сльози лишають слід.",
       "meaningIds": [
        "t09"
       ],
       "t0": 32.133,
       "t1": 35.274,
       "medianAbsDev8Ms": 70.0,
       "within40ms8": 0.25,
       "contentDev8Ms": [
        -76.5,
        68.4,
        71.6,
        10.5
       ],
       "words": [
        "Нічні",
        "сльози",
        "лишають",
        "слід"
       ],
       "startDev8Ms": -81.4,
       "targ": {
        "text": "Holding your kids together will do that",
        "t0": 31.106,
        "t1": 33.006,
        "medianAbsDev8Ms": 8.9,
        "within40ms8": 1.0,
        "contentDev8Ms": [
         6.4,
         -11.5
        ],
        "words": [
         "Holding",
         "together"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B09-ours.derivation.json",
         "sha256": "d0137a37e7505160ad2142bacc94d677765ceaa9265434cb9ce0f2d99fda56d1"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B09-ours.mp3",
         "sha256": "5a3b7e738f688186107f778d199aaf916b3cc67fecc8995abac1d1b3eaf8850f"
        },
        "range": [
         31.83,
         35.72
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B09-targ.derivation.json",
         "sha256": "d15f3d5581991275fc623b4988b044eb8057d1c1665a9cff8965eebe2cdfc0d6"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B09-targ.mp3",
         "sha256": "e2ea3b68d3fc9fe1863679699ae79c1a49270d558543763f81b1a436bae86c4e"
        },
        "range": [
         30.81,
         33.46
        ]
       }
      },
      {
       "rank": 10,
       "variant": "B",
       "phraseId": "p18",
       "text": "Злюсь не на неї — на те, що бачу.",
       "meaningIds": [
        "t17"
       ],
       "t0": 70.867,
       "t1": 74.928,
       "medianAbsDev8Ms": 67.3,
       "within40ms8": 0.333,
       "contentDev8Ms": [
        -28.4,
        -67.3,
        92.9
       ],
       "words": [
        "Злюсь",
        "неї",
        "бачу"
       ],
       "startDev8Ms": -28.4,
       "targ": {
        "text": "I was angry at what I'd seen",
        "t0": 67.693,
        "t1": 71.716,
        "medianAbsDev8Ms": 54.3,
        "within40ms8": 0.5,
        "contentDev8Ms": [
         99.1,
         9.6
        ],
        "words": [
         "angry",
         "seen"
        ]
       },
       "ours": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B10-ours.derivation.json",
         "sha256": "8c14370dc2e411b8d901bedfe4631c7178d48b8ea38b0a185755512b6ae469f8"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B10-ours.mp3",
         "sha256": "a447f545c5e11e02c897c6c5038a702ab841dd365651df0f6bba260326cee803"
        },
        "range": [
         70.57,
         75.38
        ]
       },
       "targAudio": {
        "derivation": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B10-targ.derivation.json",
         "sha256": "f68b6cb0eca5d815123a02c946233a456a2200fd4fb8d6af9688807303eb8020"
        },
        "asset": {
         "path": "/workspaces/UGS/AdFactorySongFormat/trees/f5c3870848/runs/targ-song-v4-f5c3870848-v01/audio/pair-B10-targ.mp3",
         "sha256": "b2b5b2b2ec6575fe5ee96849eec6e259d99bda168fb292088e632d66429f20fe"
        },
        "range": [
         67.39,
         72.17
        ]
       }
      }
     ],
     "shareOfPhrasesWithin35ms": 0.294
    }
   },
   "targ": {
    "phrasesRanked": 60,
    "medianPhraseDevMs": 38.05,
    "shareOfPhrasesWithin35ms": 0.467
   }
  },
  "worstText": "Для каждой фразы A и B: медиана |отклонения| её ударных слогов от восьмых; десять худших (минимум два ударных) рядом с фразой Targ, несущей ту же мысль (наибольшее перекрытие с диапазоном мысли в оригинале). Числа после слов — отклонение ударной гласной в мс (+ поздно). Пары — отрывки с постоянным gain, без ретайминга.",
  "evidence": [
   {
    "bin": "binary fit: нерегулярные (< 0,34)",
    "n": 102,
    "within": 0.468,
    "mad": 48.7,
    "where": "v2 + A + B"
   },
   {
    "bin": "binary fit: средние (0,34–0,67)",
    "n": 38,
    "within": 0.489,
    "mad": 44.2,
    "where": "v2 + A + B"
   },
   {
    "bin": "binary fit: регулярные (≥ 0,67)",
    "n": 18,
    "within": 0.591,
    "mad": 32.7,
    "where": "v2 + A + B"
   },
   {
    "bin": "binary fit: нерегулярные (< 0,34)",
    "n": 35,
    "within": 0.474,
    "mad": 46.5,
    "where": "версия 2 (сид 0,88)"
   },
   {
    "bin": "binary fit: средние (0,34–0,67)",
    "n": 16,
    "within": 0.54,
    "mad": 39.9,
    "where": "версия 2 (сид 0,88)"
   },
   {
    "bin": "binary fit: регулярные (≥ 0,67)",
    "n": 6,
    "within": 0.606,
    "mad": 19.6,
    "where": "версия 2 (сид 0,88)"
   },
   {
    "bin": "ternary fit: нерегулярные (< 0,34)",
    "n": 99,
    "within": 0.491,
    "mad": 47.4,
    "where": "v2 + A + B"
   },
   {
    "bin": "ternary fit: средние (0,34–0,67)",
    "n": 39,
    "within": 0.462,
    "mad": 46.5,
    "where": "v2 + A + B"
   },
   {
    "bin": "ternary fit: регулярные (≥ 0,67)",
    "n": 20,
    "within": 0.516,
    "mad": 41.2,
    "where": "v2 + A + B"
   },
   {
    "bin": "max(binary, ternary): нерегулярные (< 0,34)",
    "n": 51,
    "within": 0.433,
    "mad": 50.6,
    "where": "v2 + A + B"
   },
   {
    "bin": "max(binary, ternary): средние (0,34–0,67)",
    "n": 69,
    "within": 0.492,
    "mad": 45.3,
    "where": "v2 + A + B"
   },
   {
    "bin": "max(binary, ternary): регулярные (≥ 0,67)",
    "n": 38,
    "within": 0.551,
    "mad": 38.6,
    "where": "v2 + A + B"
   }
  ],
  "evidenceText": "Для каждой спетой фразы версии 2, A и B посчитана регулярность ударных по тексту (binary fit — доля промежутков между ударными знаменательных слов ровно в один безударный слог; ternary — ровно в два) и сопоставлена с измеренной долей её ударных в ±40 мс от восьмых. Регулярные двудольные фразы пелись на уровне Targ (≈ 0,59, медиана 33 мс), нерегулярные — на 0,47; в версии 2 (сильный грув, сид 0,88) эффект самый чистый (0,47 → 0,54 → 0,61), в A и B (сид 0,35–0,40) слабее. В текстах A и B регулярными были лишь 11–12 % фраз. Трёхдольная регулярность сама по себе даёт смешанную картину (мало фраз, разные треки): это слабее доказанный рычаг — поэтому вариант H помечен как исследовательский.",
  "v3Takes": [
   {
    "take": "take_A1a_1",
    "tag": "A1a",
    "variant": "A",
    "lyrics": "v01",
    "AW": "0.35",
    "SW": "0.75",
    "WC": "0.15",
    "tempo": 102.9,
    "content8Within40": 0.503,
    "content8MAD": 39.5,
    "phraseStart8Within40": 0.51,
    "maxSectionLagMs": 72.0,
    "worstSectionContent8": 0.278,
    "ioiQuant": 0.532,
    "contentOnKickBeats": 0.39,
    "contentBeatWithin40": 0.358,
    "vocalOnsets8Within40": 0.431,
    "contentLagMs": 18.1,
    "alignScore": 0.873,
    "sungRate": 2.67,
    "restBoundaryShare": 0.333,
    "what": "текст A, строка на фразу"
   },
   {
    "take": "take_A1a_2",
    "tag": "A1a",
    "variant": "A",
    "lyrics": "v01",
    "AW": "0.35",
    "SW": "0.75",
    "WC": "0.15",
    "tempo": 102.91,
    "content8Within40": 0.426,
    "content8MAD": 50.9,
    "phraseStart8Within40": 0.49,
    "maxSectionLagMs": 99.1,
    "worstSectionContent8": 0.111,
    "ioiQuant": 0.512,
    "contentOnKickBeats": 0.377,
    "contentBeatWithin40": 0.277,
    "vocalOnsets8Within40": 0.486,
    "contentLagMs": 34.9,
    "alignScore": 0.827,
    "sungRate": 2.48,
    "restBoundaryShare": 0.354,
    "what": "текст A, строка на фразу"
   },
   {
    "take": "take_A2a_1",
    "tag": "A2a",
    "variant": "A",
    "lyrics": "v02-stanza",
    "AW": "0.35",
    "SW": "0.75",
    "WC": "0.15",
    "tempo": 103.02,
    "content8Within40": 0.5,
    "content8MAD": 39.8,
    "phraseStart8Within40": 0.729,
    "maxSectionLagMs": 27.1,
    "worstSectionContent8": 0.3,
    "ioiQuant": 0.536,
    "contentOnKickBeats": 0.506,
    "contentBeatWithin40": 0.353,
    "vocalOnsets8Within40": 0.453,
    "contentLagMs": 9.0,
    "alignScore": 0.837,
    "sungRate": 2.74,
    "restBoundaryShare": 0.271,
    "what": "A: строфа на мысль"
   },
   {
    "take": "take_A2a_2",
    "tag": "A2a",
    "variant": "A",
    "lyrics": "v02-stanza",
    "AW": "0.35",
    "SW": "0.75",
    "WC": "0.15",
    "tempo": 103.02,
    "content8Within40": 0.466,
    "content8MAD": 42.2,
    "phraseStart8Within40": 0.436,
    "maxSectionLagMs": 68.8,
    "worstSectionContent8": 0.278,
    "ioiQuant": 0.55,
    "contentOnKickBeats": 0.643,
    "contentBeatWithin40": 0.28,
    "vocalOnsets8Within40": 0.447,
    "contentLagMs": 17.0,
    "alignScore": 0.711,
    "sungRate": 2.95,
    "restBoundaryShare": 0.25,
    "what": "A: строфа на мысль"
   },
   {
    "take": "take_A2b_1",
    "tag": "A2b",
    "variant": "A",
    "lyrics": "v02-couplet",
    "AW": "0.35",
    "SW": "0.75",
    "WC": "0.15",
    "tempo": 102.45,
    "content8Within40": 0.442,
    "content8MAD": 45.7,
    "phraseStart8Within40": 0.531,
    "maxSectionLagMs": 81.4,
    "worstSectionContent8": 0.263,
    "ioiQuant": 0.496,
    "contentOnKickBeats": 0.671,
    "contentBeatWithin40": 0.3,
    "vocalOnsets8Within40": 0.458,
    "contentLagMs": 22.1,
    "alignScore": 0.879,
    "sungRate": 2.98,
    "restBoundaryShare": 0.292,
    "what": "A: двустишия с «…»"
   },
   {
    "take": "take_A2b_2",
    "tag": "A2b",
    "variant": "A",
    "lyrics": "v02-couplet",
    "AW": "0.35",
    "SW": "0.75",
    "WC": "0.15",
    "tempo": 102.98,
    "content8Within40": 0.523,
    "content8MAD": 34.9,
    "phraseStart8Within40": 0.444,
    "maxSectionLagMs": 62.2,
    "worstSectionContent8": 0.222,
    "ioiQuant": 0.581,
    "contentOnKickBeats": 0.48,
    "contentBeatWithin40": 0.347,
    "vocalOnsets8Within40": 0.459,
    "contentLagMs": 14.2,
    "alignScore": 0.797,
    "sungRate": 3.66,
    "restBoundaryShare": 0.104,
    "what": "A: двустишия с «…»"
   },
   {
    "take": "take_A2c_1",
    "tag": "A2c",
    "variant": "A",
    "lyrics": "v02-pause",
    "AW": "0.35",
    "SW": "0.75",
    "WC": "0.15",
    "tempo": 103.47,
    "content8Within40": 0.435,
    "content8MAD": 51.5,
    "phraseStart8Within40": 0.52,
    "maxSectionLagMs": 46.7,
    "worstSectionContent8": 0.333,
    "ioiQuant": 0.533,
    "contentOnKickBeats": 0.588,
    "contentBeatWithin40": 0.316,
    "vocalOnsets8Within40": 0.461,
    "contentLagMs": 19.9,
    "alignScore": 0.881,
    "sungRate": 2.65,
    "restBoundaryShare": 0.438,
    "what": "A: строки [Pause]"
   },
   {
    "take": "take_A2c_2",
    "tag": "A2c",
    "variant": "A",
    "lyrics": "v02-pause",
    "AW": "0.35",
    "SW": "0.75",
    "WC": "0.15",
    "tempo": 103.94,
    "content8Within40": 0.456,
    "content8MAD": 49.4,
    "phraseStart8Within40": 0.48,
    "maxSectionLagMs": 63.9,
    "worstSectionContent8": 0.263,
    "ioiQuant": 0.531,
    "contentOnKickBeats": 0.605,
    "contentBeatWithin40": 0.337,
    "vocalOnsets8Within40": 0.447,
    "contentLagMs": 16.7,
    "alignScore": 0.866,
    "sungRate": 2.65,
    "restBoundaryShare": 0.312,
    "what": "A: строки [Pause]"
   },
   {
    "take": "take_B1a_1",
    "tag": "B1a",
    "variant": "B",
    "lyrics": "v01",
    "AW": "0.40",
    "SW": "0.70",
    "WC": "0.20",
    "tempo": 109.83,
    "content8Within40": 0.57,
    "content8MAD": 31.4,
    "phraseStart8Within40": 0.62,
    "maxSectionLagMs": 47.4,
    "worstSectionContent8": 0.32,
    "ioiQuant": 0.614,
    "contentOnKickBeats": 0.553,
    "contentBeatWithin40": 0.435,
    "vocalOnsets8Within40": 0.538,
    "contentLagMs": 5.4,
    "alignScore": 0.845,
    "sungRate": 3.14,
    "restBoundaryShare": 0.196,
    "what": "текст B"
   },
   {
    "take": "take_B1a_2",
    "tag": "B1a",
    "variant": "B",
    "lyrics": "v01",
    "AW": "0.40",
    "SW": "0.70",
    "WC": "0.20",
    "tempo": 109.7,
    "content8Within40": 0.476,
    "content8MAD": 43.0,
    "phraseStart8Within40": 0.68,
    "maxSectionLagMs": 41.6,
    "worstSectionContent8": 0.318,
    "ioiQuant": 0.571,
    "contentOnKickBeats": 0.667,
    "contentBeatWithin40": 0.303,
    "vocalOnsets8Within40": 0.543,
    "contentLagMs": 8.0,
    "alignScore": 0.814,
    "sungRate": 2.65,
    "restBoundaryShare": 0.275,
    "what": "текст B"
   },
   {
    "take": "take_B2a_1",
    "tag": "B2a",
    "variant": "B",
    "lyrics": "v02-stanza",
    "AW": "0.40",
    "SW": "0.70",
    "WC": "0.20",
    "tempo": 109.44,
    "content8Within40": 0.609,
    "content8MAD": 24.8,
    "phraseStart8Within40": 0.58,
    "maxSectionLagMs": 22.9,
    "worstSectionContent8": 0.5,
    "ioiQuant": 0.604,
    "contentOnKickBeats": 0.564,
    "contentBeatWithin40": 0.446,
    "vocalOnsets8Within40": 0.539,
    "contentLagMs": 12.6,
    "alignScore": 0.819,
    "sungRate": 3.16,
    "restBoundaryShare": 0.157,
    "what": "B: строфа на мысль"
   },
   {
    "take": "take_B2a_2",
    "tag": "B2a",
    "variant": "B",
    "lyrics": "v02-stanza",
    "AW": "0.40",
    "SW": "0.70",
    "WC": "0.20",
    "tempo": 106.07,
    "content8Within40": 0.468,
    "content8MAD": 45.0,
    "phraseStart8Within40": 0.56,
    "maxSectionLagMs": 80.2,
    "worstSectionContent8": 0.318,
    "ioiQuant": 0.509,
    "contentOnKickBeats": 0.556,
    "contentBeatWithin40": 0.371,
    "vocalOnsets8Within40": 0.56,
    "contentLagMs": 16.2,
    "alignScore": 0.859,
    "sungRate": 2.82,
    "restBoundaryShare": 0.098,
    "what": "B: строфа на мысль"
   },
   {
    "take": "take_C1a_1",
    "tag": "C1a",
    "variant": "C",
    "lyrics": "v01",
    "AW": "0.60",
    "SW": "0.55",
    "WC": "0.10",
    "tempo": 103.02,
    "content8Within40": 0.577,
    "content8MAD": 24.6,
    "phraseStart8Within40": 0.638,
    "maxSectionLagMs": 12.8,
    "worstSectionContent8": 0.333,
    "ioiQuant": 0.613,
    "contentOnKickBeats": 0.47,
    "contentBeatWithin40": 0.523,
    "vocalOnsets8Within40": 0.535,
    "contentLagMs": 7.6,
    "alignScore": 0.872,
    "sungRate": 3.49,
    "restBoundaryShare": 0.172,
    "what": "контроль: слова версии 2, сид 0,60"
   },
   {
    "take": "take_C1a_2",
    "tag": "C1a",
    "variant": "C",
    "lyrics": "v01",
    "AW": "0.60",
    "SW": "0.55",
    "WC": "0.10",
    "tempo": 103.01,
    "content8Within40": 0.518,
    "content8MAD": 37.8,
    "phraseStart8Within40": 0.466,
    "maxSectionLagMs": 32.6,
    "worstSectionContent8": 0.3,
    "ioiQuant": 0.569,
    "contentOnKickBeats": 0.559,
    "contentBeatWithin40": 0.432,
    "vocalOnsets8Within40": 0.495,
    "contentLagMs": 13.9,
    "alignScore": 0.874,
    "sungRate": 3.5,
    "restBoundaryShare": 0.052,
    "what": "контроль: слова версии 2, сид 0,60"
   },
   {
    "take": "мастер A (ремикс A1a_1)",
    "what": "+ вставленные такты коды 2,32 с при темпе дубля 102,9",
    "AW": "0.35",
    "content8Within40": 0.458,
    "content8MAD": 48.3,
    "phraseStart8Within40": 0.5,
    "maxSectionLagMs": 74.5,
    "worstSectionContent8": 0.278,
    "ioiQuant": 0.504,
    "contentOnKickBeats": 0.382,
    "contentBeatWithin40": 0.312,
    "vocalOnsets8Within40": 0.418,
    "contentLagMs": 19.4
   },
   {
    "take": "мастер B (ремикс B1a_2)",
    "what": "+ паузы коды и подъём голоса",
    "AW": "0.40",
    "content8Within40": 0.486,
    "content8MAD": 43.1,
    "phraseStart8Within40": 0.694,
    "maxSectionLagMs": 38.2,
    "worstSectionContent8": 0.364,
    "ioiQuant": 0.574,
    "contentOnKickBeats": 0.652,
    "contentBeatWithin40": 0.297,
    "vocalOnsets8Within40": 0.535,
    "contentLagMs": 11.4
   },
   {
    "take": "версия 2 (r5a_1)",
    "what": "слова версии 2 под часы Targ",
    "AW": "0.88",
    "content8Within40": 0.536,
    "content8MAD": 36.0,
    "phraseStart8Within40": 0.483,
    "maxSectionLagMs": 66.3,
    "worstSectionContent8": 0.3,
    "ioiQuant": 0.552,
    "contentOnKickBeats": 0.534,
    "contentBeatWithin40": 0.459,
    "vocalOnsets8Within40": 0.507,
    "contentLagMs": 18.3
   }
  ],
  "v3TakesText": "Те же 14 дублей итерации 3 измерены новым инструментом. Средняя доля ударных в ±40 мс: сид 0,35 (все дубли A) 0.469, сид 0,40 (B) 0.531, контроль C — слова версии 2 при сиде 0,60 — 0.547 против 0.536 у версии 2 с теми же словами при сиде 0,88. Раскладка: A1a 0.465 → строки [Pause] (A2c) 0.446, строфа на мысль 0.511, двустишия с «…» 0.483. Главное напряжение: между дублями чёткость росла с плотностью (Спирмен ρ = +0,74 со слог/с, −0,68 с долей пауз): дубли в пределах пола ≤ 2,9 слог/с — в среднем 0,47 (лучший 0,50), быстрее — 0,53; лучшие дубли (B2a_1 0,61, C1a_1 0,58) были и самыми плотными. Но внутри медленных песен A и B медленные регулярные фразы — самые чёткие (0,71, n = 6) против нерегулярных (0,52): скорость сама не нужна — нужен регулярный текст и сильный грув; ставка T — развязать чёткость и плотность. Разброс между двумя дублями одной заявки велик (0,57 и 0,48; 0,61 и 0,47) — выбор между дублями — часть метода. Ремикс того же дубля потерял чёткость: A1a_1 0.503 → мастер A 0.458 — вставленные такты коды длиной 2,32 с (такт при 103,4) в дубле с темпом 102,9 сдвигают сетку на ~12 мс за вставку; вставки в итерации 4 — ровно такт измеренного темпа дубля, и чёткость перемеряется после каждого ремикса."
 },
 "hypotheses": [
  {
   "id": "H1",
   "name": "Бит-карта как авторитет",
   "change": "Каждая фраза получает сетку: слоги по восьмым от первого сильного бита, ударные знаменательных слов на долях (T — на любой доле, H — только на 1 и 3), безударные между ними, пауза в долях. Текст пишется под карту: лирик меняет слова, порядок и длину фразы, пока строка не ляжет.",
   "evidence": "В 158 фразах версии 2, A и B регулярные фразы пелись на уровне Targ (0,59), нерегулярные — на 0,47; регулярных было лишь 11–12 %.",
   "where": "tools/beat_map.py (scan/check), song-plan/v4 beatMap, music_first.validate_beat_map (внутри validate_plan, до любой покупки)",
   "gate": "validate_beat_map: каждая фраза, слот на слог, ударные на долях, 16-е только безударные, ≤ 10 слогов в такте, пауза ≥ 1 доли, хук с одним ритмом",
   "predicted": "Карта: 100 % ударных на долях по построению; сколько переживёт провайдер — H9",
   "risk": "Провайдер сам решает ритм мелодии; в балладе с низким весом сида текст не спасает (A)",
   "fallback": "Сильнее грув (вес сида, барабаны в стиле) — T; иначе раунд 2 с исправлением «плывущих» фраз по измеренным отклонениям"
  },
  {
   "id": "H2",
   "name": "Размер и темп под слова",
   "change": "Два размера. T — темп сида 103,4 BPM, прямые восьмые: двудольный текст (≈ 2 слога на ударение), как у Targ. H — половинное время на том же пульсе: ударные только на 1 и 3, между ними 1–3 безударных, трёхдольные ячейки под длинные украинские слова, выше styleWeight.",
   "evidence": "Сид держит 103,4 BPM даже при 0,35 (итерация 3); половинное время остаётся на той же сетке, если темп не освободится. Украинский: ≈ 2,5 слога на слово; Targ — 2,5 слога на ударение знаменательного слова.",
   "where": "plan/variants-v01.json, formPlan.tempoBpm/key, beatMap.meter",
   "gate": "Измеренный темп и октава; строки чёткости по сетке того дубля",
   "predicted": "T ближе к Targ; H — исследовательский: доказательство трёхдольной регулярности слабее",
   "risk": "H в балладной подаче может опаздывать, как припевы A (+45…+75 мс); модель регулярности предсказывает H 0,51 / 46 мс — H9 не выполнено, поэтому H покупается один раз как объявленный тест H2",
   "fallback": "Если H плывёт — выбор T; идея 12/8 на той же восьмой (206,8 в минуту) записана, но не покупается без нового решения"
  },
  {
   "id": "H3",
   "name": "Рычаги провайдера для синхрона",
   "change": "Стиль: «every stressed syllable lands exactly on the beat, crisp consonants, clean short notes, no rubato, never dragging»; negative tags против rubato, free tempo, dragging, legato slurs, swing; вес сида T 0,50/0,60 (грув), H 0,30/0,45 при SW 0,85; [Pause] только там, где пауза в карте; один рычаг на заявку.",
   "evidence": "Те же 14 дублей итерации 3 измерены новым инструментом. Средняя доля ударных в ±40 мс: сид 0,35 (все дубли A) 0.469, сид 0,40 (B) 0.531, контроль C — слова версии 2 при сиде 0,60 — 0.547 против 0.536 у версии 2 с теми же словами при сиде 0,88. Раскладка: A1a 0.465 → строки [Pause] (A2c) 0.446, строфа на мысль 0.511, двустишия с «…» 0.483. Главное напряжение: между дублями чёткость росла с плотностью (Спирмен ρ = +0,74 со слог/с, −0,68 с долей пауз): дубли в пределах пола ≤ 2,9 слог/с — в среднем 0,47 (лучший 0,50), быстрее — 0,53; лучшие дубли (B2a_1 0,61, C1a_1 0,58) были и самыми плотными. Но внутри медленных песен A и B медленные регулярные фразы — самые чёткие (0,71, n = 6) против нерегулярных (0,52): скорость сама не нужна — нужен регулярный текст и сильный грув; ставка T — развязать чёткость и плотность. Разброс между двумя дублями одной заявки велик (0,57 и 0,48; 0,61 и 0,47) — выбор между дублями — часть метода. Ремикс того же дубля потерял чёткость: A1a_1 0.503 → мастер A 0.458 — вставленные такты коды длиной 2,32 с (такт при 103,4) в дубле с темпом 102,9 сдвигают сетку на ~12 мс за вставку; вставки в итерации 4 — ровно такт измеренного темпа дубля, и чёткость перемеряется после каждого ремикса.",
   "where": "plan/variants-v01.json → cover-*-environment.json; director decision на каждую заявку",
   "gate": "Строки чёткости каждого дубля до прослушивания",
   "predicted": "AW 0,60 ≥ AW 0,50 по доле ударных в ±40 мс (грув сида); проверяется раундом 1",
   "risk": "Высокий вес сида тянет форму Targ и съедает паузы (контроль C при 0,60)",
   "fallback": "Верх политики 0,6 не превышается; 0,7 из диапазона владельца — только новым версионным решением, если 0,60 выиграет и паузы выживут"
  },
  {
   "id": "H4",
   "name": "Слова для доли",
   "change": "Хореи на «сильная–слабая», ямбы с затактом, ударный конечный слог в конце фразы («слі́д», «моя́», «внизу́»), односложные слова в началах и концах фраз, меньше скоплений согласных перед ударной гласной; хук A сохранён в H (ложится на 1 и 3 без флагов); рефрен B в прямых восьмых дал удержанное «на» и binary fit 0 на всех трёх возвратах — лирик T заменил его вопросом «Хто ж та жінка в дзеркалі?» (двудольный, 7 слогов) с тремя разными ответами: «слід ×3» → «Та жінка — геть чужа» → «Світла жінка — знову я».",
   "evidence": "≤ 2,3 слога на ударение → ≈ 0,55 в ±40 мс; > 2,8 → ≈ 0,43 (все три текста).",
   "where": "brief-v4.md, beat_map check (binary/ternary fit, слогов на ударение)",
   "gate": "≥ 85 % фраз без флагов check до POST",
   "predicted": "T: binary fit ≥ 0,67 у большинства фраз; H: ternary ≥ 0,5",
   "risk": "Размер ради размера → телеграфные обрывки (отклонённый эксперимент)",
   "fallback": "Опровергатель-носитель и полы дыхания; строки без флагов, но неестественные — переписываются"
  },
  {
   "id": "H5",
   "name": "Измерение: forced alignment, не ASR",
   "change": "MMS_FA (torchaudio) на вокальном стеме; кириллица романизирована; часы — начало гласной; сетка уточнена по пикам ударных; строки по секциям и фразам; каждый процент рядом с шансом; Targ тем же инструментом.",
   "evidence": "Вокальный стем Targ задержан на 50 мс против неизменной музыки → выровненные слоги сдвинулись на медиану 50.0 мс (90-й перцентиль ошибки 15.0 мс); доля в ±40 мс упала 0,61 → 0.183, а после вычитания систематического сдвига осталась 0.642: инструмент следит за звуком, а не за текстом. Часы: начало гласной (onset) даёт самое плотное распределение на всех четырёх треках (Targ: 29.8 мс против 36.5 у согласной и 57.6 у сырого CTC) и сдвиг Targ около нуля (+9 мс) — поэтому P-центр слога = начало гласной. Сетка: трекер ударов (hop 23 мс) уточнён до пиков ударных (5,8 мс) и сглажен прямой по ±4 долям; джиттер Targ 3.5 мс, v2 3.9, A 11.3, B 4.5. Неопределённость: CTC на пении ±20–60 мс; биномиальная sd доли 0,61 на 230 событиях ≈ 0,032.",
   "where": "tools/song_align.py, tools/song_beat_sync.py, analysis/beat-sync/*.json",
   "gate": "Инструмент проверен сдвигом на 50 мс; качество выравнивания печатается на каждом дубле",
   "predicted": "—",
   "risk": "Английский и украинский выравниваются одной моделью с разной уверенностью (Targ 0,79 против 0,82–0,87)",
   "fallback": "Строки по ударным знаменательных слов (справедливая единица); исключения по score < 0,3 одинаковы для всех"
  },
  {
   "id": "H6",
   "name": "Не ретаймить",
   "change": "Спетые слова не двигаются к сетке. Разрешён ремикс того же дубля для микса, воздуха и пауз коды — вставка ровно такта измеренного темпа дубля; чёткость перемеряется после ремикса. Замена секции из другого дубля той же заявки — только версионным решением, с раскрытием.",
   "evidence": "Мастер A потерял чёткость против своего дубля (вставки 2,32 с при темпе 102,9).",
   "where": "preparation/mix_candidate.py (такт = 4 × 60 / измеренный BPM), measure после ремикса",
   "gate": "Перемер чёткости мастера = условие приёмки",
   "predicted": "Мастер не хуже своего дубля по строкам чёткости",
   "risk": "—",
   "fallback": "—"
  },
  {
   "id": "H7",
   "name": "Панель текста вокруг карты",
   "change": "Бриф переписан вокруг бит-карты: лирик на вариант пишет фразы со слогами и позициями ударений и проверяет их scan/check; режиссёр судит карту и рубрику песенности; опровергатели атакуют ударения, идиому и claims только в изменённых строках (эффорт средний, короткие ответы, находки в файлах).",
   "evidence": "Итерация 3: лирики с высоким эффортом переполнили вывод 64k; фиксы ки́слоти, по́смішка, чужу́ — факты языка.",
   "where": "preparation/panel/brief-v4.md, design-{T,H}-lyricist.json → final, refute-*.json",
   "gate": "Ledger ударений 100 % и композиционный обзор до POST",
   "predicted": "—",
   "risk": "Лирик жертвует смыслом ради размера",
   "fallback": "39 мыслей и 6 фактов коды проверяются build_v4 (assert), опровергатель advertorial"
  },
  {
   "id": "H8",
   "name": "Gates",
   "change": "Новые P0 чёткости рядом с шансом, измеренные на Targ первым: ударные в ±40 мс от восьмых ≥ 0,58, медиана ≤ 35 мс, начала строк ≥ уровня Targ; полы итерации 3 не регрессируют. Уточнение по доказательству: старая строка «все онсеты стема ≥ 0,52» зависит от сетки на ±0,07 → info.",
   "evidence": "Сетка уточнена на ~10 мс: старая строка Targ 0,52 → 0,445, B 0,47 → 0,535; строка ударных — 0,604 → 0,613 и 0,449 → 0,486.",
   "where": "references/song-crispness-targets-v01.json, song_gates.py --beat-sync, references/song-crispness-contract.md",
   "gate": "P0 до слепых прослушиваний",
   "predicted": "см. таблицу 07",
   "risk": "Цель 0,58 может оказаться выше того, что даёт Suno",
   "fallback": "Цель меняется только новой версией таблицы с дублями и слепыми отзывами"
  },
  {
   "id": "H9",
   "name": "Тренд до покупки",
   "change": "Из карты предсказываются строки дыхания (слог/с, секция, длительность) и чёткость по модели «регулярность → измеренная доля» из итерации 3 и версии 2; покупка только при полной карте и движении каждой строки в нужную сторону относительно A и B; две версии на заявку; каждый дубль измеряется до прослушивания.",
   "evidence": "Прогноз итерации 3 по слогам на такт попал в слог/с (2,72 → 2,70) и не попал в паузы (текст их не предсказывает).",
   "where": "preparation/build_v4.py → analysis/predicted-{T,H}-v01.json; director-purchase-*.json",
   "gate": "allMove = true в решении режиссёра",
   "predicted": "T ≈ 0.574 (диапазон [0.56, 0.588]), H ≈ 0.494",
   "risk": "Модель наблюдательная (внутри песен), не причинная",
   "fallback": "Измеренное после раунда 1 заменяет прогноз в той же таблице"
  }
 ],
 "code": [
  {
   "file": "tools/song_align.py (новый)",
   "change": "Forced alignment MMS_FA на вокальном стеме: слова, слоги, часы ctc/onset/cons, ударение из ledger или CMUdict, флаг знаменательного слова",
   "enables": "Ударные слоги и начала фраз с точностью ±20–60 мс вместо ASR ±250 мс",
   "retires": "Строки ударений по часам ASR (у шанса)"
  },
  {
   "file": "tools/song_beat_sync.py (v2)",
   "change": "Сетка уточнена по пикам ударных; строки content/stressed/syllables/phraseStarts/lineStarts/IOI/kick-parity; шанс и фазовый null; секции и фразы; gate_values",
   "enables": "Таблица чёткости и худшие фразы на каждом дубле",
   "retires": "Единственную строку «все онсеты» (оставлена как info)"
  },
  {
   "file": "tools/beat_map.py (новый)",
   "change": "Размещение слогов (straight/halftime), scan для строк, check для всего текста: флаги, binary/ternary fit, слогов на ударение, такты, прогноз слог/с",
   "enables": "Текст пишется под долю до покупки; предсказание из карты",
   "retires": "Бюджет «слогов на такт по типу секции» как единственная модель"
  },
  {
   "file": "tools/music_first.py",
   "change": "validate_beat_map + song-plan/v4 (v3 + beatMap); validate_plan требует v4 при songBeatMapRequired",
   "enables": "Покупка невозможна без карты",
   "retires": "—"
  },
  {
   "file": "tools/song_gates.py",
   "change": "--beat-sync: строки чёткости в той же таблице gates",
   "enables": "Один gate-файл на дубль (дыхание + чёткость)",
   "retires": "—"
  },
  {
   "file": "references/song-crispness-targets-v01.json, song-crispness-contract.md",
   "change": "P0/P1/info строки чёткости с измеренными Targ/v2/A/B и полами итерации 3",
   "enables": "Приёмка по измеренному уровню Targ рядом с шансом",
   "retires": "Старую P0 строку онсетов (→ info, с доказательством)"
  },
  {
   "file": "pipeline.json, song-clone-ua SKILL.md, music-first-execution.md §10",
   "change": "songBeatMapRequired, инструменты, раздел владельца 2026-09-24; манифест run-а с новым sha навыка",
   "enables": "Правило для всех следующих песен",
   "retires": "—"
  },
  {
   "file": "runs/targ-song-v4-f5c3870848-v01/preparation/*",
   "change": "build_v4 (дизайн → текст/ledger/план v4 с картой + прогноз), measure_baselines_v4, worst_phrases, measure_v3_takes; дальше preflight/purchase/measure/mix/review/finalize из итерации 3 с шагом чёткости",
   "enables": "Повторяемый цикл",
   "retires": "—"
  },
  {
   "file": "tests/test_beat_map.py, tests/test_song_beat_sync.py",
   "change": "25 тестов: размещение, валидатор карты, строки на синтетической сетке, коррекция сдвига, уточнение сетки, чётность долей",
   "enables": "Регрессия инструмента",
   "retires": "—"
  }
 ],
 "variants": [
  {
   "id": "T",
   "name": "Пульс Targ",
   "tempo": "103,4 BPM (темп сида), 4/4, прямые восьмые",
   "key": "F major (тональность сида)",
   "genre": "фолк-поп, акустическая гитара восьмыми, бочка 1 и 3, малый 2 и 4",
   "form": "Куплет · Рефрен-вопрос · Куплет · Куплет · Рефрен · Куплет (Лариса) · Куплет (банка) · Куплет (зміна) · Рефрен · Бридж (кульминация) · Кода",
   "hook": "Хто ж та жінка в дзеркалі?",
   "text": "Двудольный размер: ударные знаменательных слов на каждой доле (1 и 3 предпочтительно), безударные — на восьмых между ними; binary fit ≥ 0,67, ≤ 2,6 слога на ударение; фраза = 2 такта: ~6 спетых долей + пауза 2 доли",
   "style": "Ukrainian folk-pop, 103 BPM, 4/4, straight eighths, F major, tight groove: kick on 1 and 3, snare on 2 and 4, strummed acoustic guitar in eighths, bass locked to the kick. Female lead sung from the first word, no intro; every stressed syllable lands exactly on the beat, crisp consonants, clean short notes, no rubato, never dragging behind the drums. One thought per two-bar phrase, its last word held, then the voice rests while the band keeps the groove; each [Pause] is a rest of one or two beats. The refrain question «Хто ж та жінка в дзеркалі?» returns three times, rising, then a new answer. Half-time outro: one fact per phrase, a rest after each, every word sung.",
   "neg": "rubato, free tempo, dragging behind the beat, legato slurs, swing, spoken word, rap, narration, recitation, instrumental intro, fast patter, melisma, choir, reverb wash, fade-in",
   "purpose": "Проверить главный рычаг: текст, написанный под сетку Targ (двудольный, регулярный), на грув сида средней силы — ожидаем чёткость уровня Targ без потери дыхания.",
   "meterLabel": "4/4, прямые восьмые, ударные на каждой доле",
   "seedLabel": "cover на точном Targ; раунд 1: T1a AW 0.50 · SW 0.65 · WC 0.15; T1b AW 0.60 · SW 0.65 · WC 0.15. Embrace the seed: at audioWeight 0.35–0.40 iteration 3 kept Targ’s 103.4 BPM but lost its groove; 0.50 and 0.60 test groove inheritance (H3) inside the ≤ 0.6 policy with a text written to that pulse.",
   "map": {
    "sections": [
     {
      "id": "v1",
      "tag": "[Verse 1]",
      "title": "Зустріла",
      "kind": "verse",
      "bars": 13,
      "syllables": 67,
      "predictedRate": 2.92,
      "phrases": [
       {
        "id": "p01",
        "text": "Зустрі́ла ту́, кого́ Андрі́й обра́в.",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 10,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.0,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p02",
        "text": "Ї́й три́дцять чоти́ри — і жа́ль в оча́х.",
        "classes": [
         "s",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         3.0,
         4.0,
         5.0,
         7.0,
         8.0,
         9.0,
         10.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 10,
        "binaryFit": 0.333,
        "ternaryFit": 0.667,
        "sylPerStress": 2.5,
        "warnings": [
         "held unstressed: тридцять, чотири"
        ],
        "hook": false,
        "coda": null
       },
       {
        "id": "p03",
        "text": "Бу́в бе́резень. Шістна́дцять лі́т жили́ ми́ ра́зом —",
        "classes": [
         "s",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "s",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0,
         11.0
        ],
        "restBeats": 0,
        "bars": 2,
        "syllables": 13,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.6,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p04",
        "text": "бана́льно, зна́ю: вті́к з коле́гою Андрі́й.",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "u",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         7.0,
         8.0,
         9.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 12,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.4,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p05",
        "text": "Вона́ га́рна — ча́с не всти́г торкну́тись,",
        "classes": [
         "u",
         "s",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -3.0,
         -2.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0
        ],
        "restBeats": 0,
        "bars": 2,
        "syllables": 10,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.5,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p06",
        "text": "я́ ж за пі́в ро́ку — ро́ків п’я́ть наки́нула.",
        "classes": [
         "s",
         "u",
         "S",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u"
        ],
        "slots": [
         -2.0,
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 12,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.4,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "r1",
      "tag": "[Refrain]",
      "title": "дзеркалі",
      "kind": "refrain",
      "bars": 8,
      "syllables": 34,
      "predictedRate": 3.09,
      "phrases": [
       {
        "id": "p07",
        "text": "Хто́ ж та жі́нка в дзе́ркалі?",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u"
        ],
        "slots": [
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 7,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.33,
        "warnings": [],
        "hook": true,
        "coda": null
       },
       {
        "id": "p08",
        "text": "Ве́сь це́й стре́с лиша́є слі́д,",
        "classes": [
         "S",
         "s",
         "S",
         "u",
         "S",
         "u",
         "S"
        ],
        "slots": [
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 7,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 1.75,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p09",
        "text": "сльо́зи ко́жну ні́ч лиша́ють слі́д,",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S"
        ],
        "slots": [
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 9,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 1.8,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p10",
        "text": "і опо́ра ді́тям — те́ж лиша́є слі́д.",
        "classes": [
         "u",
         "u",
         "S",
         "u",
         "S",
         "u",
         "s",
         "u",
         "S",
         "u",
         "S"
        ],
        "slots": [
         -2.0,
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 11,
        "binaryFit": 0.667,
        "ternaryFit": 0.0,
        "sylPerStress": 2.75,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "v2",
      "tag": "[Verse 2]",
      "title": "суботу",
      "kind": "verse",
      "bars": 15,
      "syllables": 65,
      "predictedRate": 2.77,
      "phrases": [
       {
        "id": "p11",
        "text": "Субо́тнім ра́нком йду́ в крамни́цю, у лоси́нах,",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         7.0,
         8.0,
         9.0,
         10.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 0,
        "bars": 2,
        "syllables": 13,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.6,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p12",
        "text": "зно́в дивлю́сь на кре́м — вже́ со́тий.",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "S",
         "s",
         "S",
         "u"
        ],
        "slots": [
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 8,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.0,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p13",
        "text": "Чу́ю го́лос з-за поли́ць — і зна́ю, хто́.",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S"
        ],
        "slots": [
         0.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 11,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.2,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p14",
        "text": "Ви́йшла, гля́нула на ши́ю — дві́ секу́нди.",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         0.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 12,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.4,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p15",
        "text": "Усміхну́лась — зла́ нема́; гі́рше — жа́ль.",
        "classes": [
         "u",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "S",
         "u",
         "S"
        ],
        "slots": [
         -2.0,
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 10,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.0,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p16",
        "text": "Ба́чить ті́нь його́ пе́ршої любо́ві.",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "s",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         0.0,
         3.0,
         4.0,
         5.0,
         6.0,
         8.0,
         9.0,
         10.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 11,
        "binaryFit": 0.333,
        "ternaryFit": 0.333,
        "sylPerStress": 2.75,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "v3",
      "tag": "[Verse 3]",
      "title": "машині",
      "kind": "verse",
      "bars": 9,
      "syllables": 37,
      "predictedRate": 2.9,
      "phrases": [
       {
        "id": "p17",
        "text": "Чве́рть годи́ни я́ сиджу́ в маши́ні, зла́.",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "s",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S"
        ],
        "slots": [
         0.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 11,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.2,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p18",
        "text": "Не на не́ї злю́сь — на вла́сну ши́ю.",
        "classes": [
         "u",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -2.0,
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 10,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.5,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p19",
        "text": "Ба́чу все́: сму́ги, скла́дки, су́хість.",
        "classes": [
         "S",
         "u",
         "S",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         0.0,
         1.0,
         2.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 9,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 1.8,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p20",
        "text": "Мов зга́сло в се́рці сві́тло.",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 7,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.33,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "r2",
      "tag": "[Refrain]",
      "title": "чужа",
      "kind": "refrain",
      "bars": 3,
      "syllables": 14,
      "predictedRate": 3.02,
      "phrases": [
       {
        "id": "p21",
        "text": "Хто́ ж та жі́нка в дзе́ркалі?",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u"
        ],
        "slots": [
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 7,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.33,
        "warnings": [],
        "hook": true,
        "coda": null
       },
       {
        "id": "p22",
        "text": "Я́ сама́ собі́ чужа́.",
        "classes": [
         "s",
         "u",
         "s",
         "u",
         "s",
         "u",
         "S"
        ],
        "slots": [
         -6.0,
         -5.0,
         -4.0,
         -3.0,
         -2.0,
         -1.0,
         0.0
        ],
        "restBeats": 2,
        "bars": 1,
        "syllables": 7,
        "binaryFit": null,
        "ternaryFit": null,
        "sylPerStress": 7.0,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "v4",
      "tag": "[Verse 4]",
      "title": "Лариса",
      "kind": "verse",
      "bars": 14,
      "syllables": 65,
      "predictedRate": 2.95,
      "phrases": [
       {
        "id": "p23",
        "text": "Щодня́ чека́ю до́ньку з та́нців — та́м Лари́са.",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0,
         11.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 13,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.17,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p24",
        "text": "Ї́й п’ятдеся́т п’я́ть — а ши́я гла́дка, ні́жна.",
        "classes": [
         "s",
         "u",
         "u",
         "S",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -4.0,
         -3.0,
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 12,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.4,
        "warnings": [
         "held unstressed: п’ятдесят"
        ],
        "hook": false,
        "coda": null
       },
       {
        "id": "p25",
        "text": "Пита́ю: «Чи́м ти́ ма́жеш ши́ю?»",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "s",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 9,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.25,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p26",
        "text": "Сміє́ться: «Со́нце, чи́м ти́ ма́жеш?»",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "s",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 9,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.25,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p27",
        "text": "Кажу́: «Все́ підря́д — і кре́ми, й ки́слоти».",
        "classes": [
         "u",
         "S",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 11,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.2,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p28",
        "text": "Сті́й, сті́й! Не все́ підря́д — догляда́й щодня́.",
        "classes": [
         "S",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "S"
        ],
        "slots": [
         0.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         9.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 11,
        "binaryFit": 0.6,
        "ternaryFit": 0.2,
        "sylPerStress": 1.83,
        "warnings": [
         "held unstressed: доглядай"
        ],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "v5",
      "tag": "[Verse 5]",
      "title": "крем",
      "kind": "verse",
      "bars": 12,
      "syllables": 54,
      "predictedRate": 2.82,
      "phrases": [
       {
        "id": "p29",
        "text": "Наза́втра кре́м дала́ — яко́го я́ не зна́ла.",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "s",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         7.0,
         8.0,
         9.0,
         10.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 13,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.6,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p30",
        "text": "А в ньо́му — купуасу́ й гіалуро́н.",
        "classes": [
         "u",
         "S",
         "u",
         "u",
         "u",
         "u",
         "S",
         "u",
         "u",
         "u",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         3.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 11,
        "binaryFit": 0.0,
        "ternaryFit": 0.0,
        "sylPerStress": 3.67,
        "warnings": [
         "held unstressed: ньому"
        ],
        "hook": false,
        "coda": null
       },
       {
        "id": "p31",
        "text": "«Нано́сь щове́чора на чи́сту ши́ю то́нко",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 0,
        "bars": 2,
        "syllables": 13,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.6,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p32",
        "text": "і вго́ру — ли́ш це́й кре́м».",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "s",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 6,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.0,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p33",
        "text": "Не пече́, не щи́пле — ле́гко, ні́жно лі́г.",
        "classes": [
         "u",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S"
        ],
        "slots": [
         -2.0,
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 11,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.2,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "v6",
      "tag": "[Verse 6]",
      "title": "тижні",
      "kind": "verse",
      "bars": 15,
      "syllables": 68,
      "predictedRate": 2.83,
      "phrases": [
       {
        "id": "p34",
        "text": "За три́ ти́жні сму́ги ме́нш помі́тні.",
        "classes": [
         "u",
         "S",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 10,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.0,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p35",
        "text": "До́нька ка́же: «Ма́мо, ти́ ге́ть іна́кша —",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "s",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         8.0,
         9.0,
         10.0,
         11.0
        ],
        "restBeats": 0,
        "bars": 2,
        "syllables": 11,
        "binaryFit": 0.75,
        "ternaryFit": 0.25,
        "sylPerStress": 2.2,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p36",
        "text": "га́рно іна́кша, світлі́ша».",
        "classes": [
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         0.0,
         1.0,
         3.0,
         4.0,
         5.0,
         7.0,
         8.0,
         9.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 8,
        "binaryFit": 0.0,
        "ternaryFit": 1.0,
        "sylPerStress": 2.67,
        "warnings": [
         "held unstressed: гарно, інакша"
        ],
        "hook": false,
        "coda": null
       },
       {
        "id": "p37",
        "text": "Не ві́рю: ші́сть ти́жнів — гла́дка ши́я,",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0
        ],
        "restBeats": 0,
        "bars": 2,
        "syllables": 10,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.0,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p38",
        "text": "сму́г нема́, і скла́док — те́ж.",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "s"
        ],
        "slots": [
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 7,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.33,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p39",
        "text": "Шкі́ра рівні́ша, ніж за де́сять лі́т,",
        "classes": [
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u",
         "S"
        ],
        "slots": [
         0.0,
         1.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0
        ],
        "restBeats": 0,
        "bars": 2,
        "syllables": 10,
        "binaryFit": 0.333,
        "ternaryFit": 0.333,
        "sylPerStress": 2.5,
        "warnings": [
         "held unstressed: Шкіра"
        ],
        "hook": false,
        "coda": null
       },
       {
        "id": "p40",
        "text": "йду́ без ша́рфа — і відкри́та ши́я, ві́льна.",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         0.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 12,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.4,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "r3",
      "tag": "[Refrain]",
      "title": "знову я",
      "kind": "refrain",
      "bars": 4,
      "syllables": 14,
      "predictedRate": 3.02,
      "phrases": [
       {
        "id": "p41",
        "text": "Хто́ ж та жі́нка в дзе́ркалі?",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u"
        ],
        "slots": [
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 7,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.33,
        "warnings": [],
        "hook": true,
        "coda": null
       },
       {
        "id": "p42",
        "text": "Сві́тла жі́нка — зно́ву я́.",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "s"
        ],
        "slots": [
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 7,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.33,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "br",
      "tag": "[Bridge]",
      "title": "моя",
      "kind": "bridge",
      "bars": 18,
      "syllables": 81,
      "predictedRate": 2.85,
      "phrases": [
       {
        "id": "p43",
        "text": "У че́рвні — зві́тний ве́чір: до́нька за роя́лем.",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         7.0,
         8.0,
         9.0,
         10.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 13,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.6,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p44",
        "text": "По́руч сі́ла та, кого́ Андрі́й обра́в.",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S"
        ],
        "slots": [
         0.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 11,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.2,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p45",
        "text": "Жа́лість зни́кла — а нато́мість ба́чу по́див.",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         0.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 12,
        "binaryFit": 0.75,
        "ternaryFit": 0.0,
        "sylPerStress": 2.4,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p46",
        "text": "Ка́же: «Ду́же га́рно вигляда́єш… до ре́чі».",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 13,
        "binaryFit": 0.5,
        "ternaryFit": 0.25,
        "sylPerStress": 2.6,
        "warnings": [
         "held unstressed: виглядаєш"
        ],
        "hook": false,
        "coda": null
       },
       {
        "id": "p47",
        "text": "Це́ ж та, че́рез яку́ в маши́ні я́ сиді́ла.",
        "classes": [
         "s",
         "u",
         "s",
         "u",
         "u",
         "S",
         "u",
         "S",
         "u",
         "s",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -6.0,
         -5.0,
         -4.0,
         -3.0,
         -1.0,
         0.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         9.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 13,
        "binaryFit": 0.5,
        "ternaryFit": 0.0,
        "sylPerStress": 4.33,
        "warnings": [
         "held unstressed: через"
        ],
        "hook": false,
        "coda": null
       },
       {
        "id": "p48",
        "text": "Я́ сказа́ла щи́ро: «Дя́кую».",
        "classes": [
         "s",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u"
        ],
        "slots": [
         -2.0,
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 9,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 3.0,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p49",
        "text": "Наре́шті ва́жить ду́мка ли́ш моя́.",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 10,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.0,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "out",
      "tag": "[Outro]",
      "title": "Ґоу П’юр",
      "kind": "coda",
      "bars": 12,
      "syllables": 48,
      "predictedRate": 2.9,
      "phrases": [
       {
        "id": "p50",
        "text": "То́й кре́м — це́ Ґо́у П’ю́р.",
        "classes": [
         "s",
         "S",
         "s",
         "S",
         "u",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 6,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.0,
        "warnings": [],
        "hook": false,
        "coda": "brand"
       },
       {
        "id": "p51",
        "text": "Ім’я́ та но́мер — фо́рма ни́жче.",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 9,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.25,
        "warnings": [],
        "hook": false,
        "coda": "form"
       },
       {
        "id": "p52",
        "text": "На по́шті все́ огля́нь.",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "u",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 6,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.0,
        "warnings": [],
        "hook": false,
        "coda": "inspect"
       },
       {
        "id": "p53",
        "text": "Пла́тиш — пі́сля о́гляду.",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u"
        ],
        "slots": [
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 7,
        "binaryFit": 1.0,
        "ternaryFit": 0.0,
        "sylPerStress": 2.33,
        "warnings": [],
        "hook": false,
        "coda": "payment"
       },
       {
        "id": "p54",
        "text": "На пове́рнення — шістдеся́т дні́в.",
        "classes": [
         "u",
         "u",
         "S",
         "u",
         "u",
         "u",
         "u",
         "S",
         "S"
        ],
        "slots": [
         -2.0,
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         5.0,
         6.0,
         8.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 9,
        "binaryFit": 0.0,
        "ternaryFit": 0.0,
        "sylPerStress": 3.0,
        "warnings": [
         "held unstressed: шістдесят"
        ],
        "hook": false,
        "coda": "returns"
       },
       {
        "id": "p55",
        "text": "Посила́ння — ту́т, внизу́, якщо́ тре́ба.",
        "classes": [
         "u",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "s",
         "S",
         "u"
        ],
        "slots": [
         -2.0,
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         8.0,
         9.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 11,
        "binaryFit": 0.667,
        "ternaryFit": 0.333,
        "sylPerStress": 2.75,
        "warnings": [],
        "hook": false,
        "coda": "link"
       }
      ]
     }
    ],
    "bars": 123,
    "hookPhrases": [
     "p07",
     "p21",
     "p41"
    ],
    "coda": [
     "Той крем — це Ґоу П’юр.",
     "Ім’я та номер — форма нижче.",
     "На пошті все оглянь.",
     "Платиш — після огляду.",
     "На повернення — шістдесят днів.",
     "Посилання — тут, внизу, якщо треба."
    ]
   },
   "prediction": {
    "syllables": 547,
    "phrases": 55,
    "plannedRests": 48,
    "thoughtBoundaries": 48,
    "sungRate": 2.88,
    "maxSectionRate": 3.09,
    "maxSection": "r1",
    "hookReturns": 3,
    "codaFactsRested": 6,
    "duration": 239.3,
    "durationBasis": "sung seconds from the map + 0.8 s per planned rest + one bar per fill and before the brand; the bar-framed map length (intendedSeconds) is an upper bound — iteration 3 sang shorter than its frames",
    "restBoundaryShareRange": [
     0.33,
     0.45
    ],
    "restBasis": "iteration 3: planned rests are not predicted by the text; [Pause] tag lines gave 0.31–0.44 of boundaries, no layout reached 0.80",
    "content8Within40": 0.574,
    "content8Within40Range": [
     0.56,
     0.588
    ],
    "content8MAD": 30.9,
    "crispnessBasis": "middle of the strong-groove model (v2 phrases, seed 0.88) and the weak-groove model (A/B phrases, seed 0.35–0.40) for a seed at 0.50–0.60",
    "mapContentStressesOnBeats": 1.0,
    "mapStressOnBeats1and3": 0.675,
    "meanBinaryFit": 0.777,
    "meanTernaryFit": 0.062,
    "sylPerContentStress": 2.37,
    "sixteenths": 0,
    "models": {
     "fitKey": "binfit",
     "strong": [
      {
       "lo": 0,
       "hi": 0.34,
       "n": 35,
       "within": 0.474,
       "mad": 46.5
      },
      {
       "lo": 0.34,
       "hi": 0.67,
       "n": 16,
       "within": 0.54,
       "mad": 39.9
      },
      {
       "lo": 0.67,
       "hi": 1.01,
       "n": 6,
       "within": 0.606,
       "mad": 19.6
      }
     ],
     "weak": [
      {
       "lo": 0,
       "hi": 0.34,
       "n": 67,
       "within": 0.465,
       "mad": 49.0
      },
      {
       "lo": 0.34,
       "hi": 0.67,
       "n": 22,
       "within": 0.451,
       "mad": 46.4
      },
      {
       "lo": 0.67,
       "hi": 1.01,
       "n": 12,
       "within": 0.583,
       "mad": 42.1
      }
     ]
    }
   },
   "size": "547 слогов · 55 фраз · ≈ 239 с"
  },
  {
   "id": "H",
   "name": "Половинний час",
   "tempo": "103,4 BPM, ощущается как 52 (half-time), 4/4",
   "key": "D major",
   "genre": "поп-баллада на half-time груве: бочка на 1, малый на 3, восьмые хай-хэта, фортепиано и бас",
   "form": "Куплет · Предприпев · Куплет · Припев · Куплет (Лариса) · Куплет (банка) · Куплет (зміна) · Припев · Бридж · Припев (кульминация) · Кода",
   "hook": "Я дивлюсь у дзеркало — і бачу …",
   "text": "Трёхдольные ячейки на сетке half-time: ударные только на 1 и 3, между ними 1–3 безударных, лучше два (дактиль/амфибрахий); ternary fit ≥ 0,5, 2,5–3,4 слога на ударение; фраза = 2 такта + пауза 2 доли",
   "style": "Ukrainian pop ballad on a half-time groove, 103 BPM felt in 52, D major: kick on 1, snare on 3, steady eighth hi-hat, piano and bass on the grid. Female lead sung from the first word, no intro; each stressed syllable lands on beat 1 or 3, the other syllables fall evenly between, crisp consonants, clean note ends, no rubato, never behind the beat. One thought per two bars, then the voice rests while the groove continues; each [Pause] is a two-beat rest. The chorus «Я дивлюсь у дзеркало — і бачу…» lifts and returns three times. Calm outro: one fact per phrase, a rest after each, every word sung.",
   "neg": "rubato, free tempo, dragging behind the beat, legato slurs, swing, spoken word, rap, narration, recitation, instrumental intro, fast patter, melisma, choir, reverb wash, fade-in",
   "purpose": "Проверить «свой размер для украинских слов»: 2,5–3 слога на ударение ложатся в трёхдольные ячейки, ударные только на сильных долях — длинные слова не размазываются по сетке.",
   "meterLabel": "4/4 в половинном времени, ударные только на 1 и 3",
   "seedLabel": "cover на точном Targ; раунд 1: H1a AW 0.45 · SW 0.85 · WC 0.10. Own meter with a higher styleWeight (owner H2): SW 0.85 pushes the half-time groove of the style; audioWeight 0.45 keeps enough of the seed groove, which the iteration-3 takes tie to crispness (control C at 0.60: 0.55 on the grid). The half-time map stays on the grid if the seed keeps 103.4 BPM.",
   "map": {
    "sections": [
     {
      "id": "v1",
      "tag": "[Verse 1]",
      "title": "Зустріч у березні",
      "kind": "verse",
      "bars": 17,
      "syllables": 66,
      "predictedRate": 2.45,
      "phrases": [
       {
        "id": "p01",
        "text": "Зустрі́ла дружи́ну коли́шнього в бе́резні.",
        "classes": [
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0,
         13.0,
         14.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 13,
        "binaryFit": 0.0,
        "ternaryFit": 1.0,
        "sylPerStress": 3.25,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p02",
        "text": "Ї́й три́дцять чоти́ри — і жа́лість в оча́х.",
        "classes": [
         "s",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 11,
        "binaryFit": 0.0,
        "ternaryFit": 1.0,
        "sylPerStress": 2.75,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p03",
        "text": "Шістна́дцять лі́т ми́ з Андрі́єм жили́.",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "s",
         "u",
         "S",
         "u",
         "u",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 10,
        "binaryFit": 0.333,
        "ternaryFit": 0.667,
        "sylPerStress": 2.5,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p04",
        "text": "Пішо́в до коле́ги — бана́льно, я́ зна́ю.",
        "classes": [
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "s",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 12,
        "binaryFit": 0.0,
        "ternaryFit": 1.0,
        "sylPerStress": 3.0,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p05",
        "text": "Вродли́ва без жо́дних зуси́ль.",
        "classes": [
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 8,
        "binaryFit": 0.0,
        "ternaryFit": 1.0,
        "sylPerStress": 2.67,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p06",
        "text": "А я́ за зиму́ постарі́ла на п’я́ть лі́т.",
        "classes": [
         "u",
         "s",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "S"
        ],
        "slots": [
         -5.0,
         -4.0,
         -2.0,
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 12,
        "binaryFit": 0.0,
        "ternaryFit": 0.667,
        "sylPerStress": 3.0,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "pre",
      "tag": "[Pre-Chorus]",
      "title": "Слід",
      "kind": "prechorus",
      "bars": 8,
      "syllables": 31,
      "predictedRate": 2.38,
      "phrases": [
       {
        "id": "p07",
        "text": "Від стре́су лиша́ється слі́д.",
        "classes": [
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 8,
        "binaryFit": 0.0,
        "ternaryFit": 1.0,
        "sylPerStress": 2.67,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p08",
        "text": "Від слі́з щоно́чі лиша́ється слі́д.",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 10,
        "binaryFit": 0.333,
        "ternaryFit": 0.667,
        "sylPerStress": 2.5,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p09",
        "text": "Коли́ ти́ опо́ра ді́тям — лиша́ється слі́д.",
        "classes": [
         "u",
         "s",
         "s",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S"
        ],
        "slots": [
         -5.0,
         -4.0,
         -2.0,
         -1.0,
         0.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 13,
        "binaryFit": 0.333,
        "ternaryFit": 0.667,
        "sylPerStress": 3.25,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "v2",
      "tag": "[Verse 2]",
      "title": "Крамниця",
      "kind": "verse",
      "bars": 15,
      "syllables": 59,
      "predictedRate": 2.42,
      "phrases": [
       {
        "id": "p10",
        "text": "В субо́ту в крамни́ці стою́ без косме́тики.",
        "classes": [
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0,
         13.0,
         14.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 13,
        "binaryFit": 0.0,
        "ternaryFit": 1.0,
        "sylPerStress": 3.25,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p11",
        "text": "Дивлю́сь на кре́м — перебра́ла усі́.",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 10,
        "binaryFit": 0.333,
        "ternaryFit": 0.667,
        "sylPerStress": 2.5,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p12",
        "text": "То́й го́лос! І по́гляд ковзну́в по ши́ї.",
        "classes": [
         "s",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 11,
        "binaryFit": 0.333,
        "ternaryFit": 0.667,
        "sylPerStress": 2.75,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p13",
        "text": "А по́смішка гі́рша, ніж зла́: співчутли́ва.",
        "classes": [
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 12,
        "binaryFit": 0.0,
        "ternaryFit": 1.0,
        "sylPerStress": 3.0,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p14",
        "text": "Мов ба́чить бліду́ світли́ну пе́ршої жі́нки.",
        "classes": [
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         7.0,
         8.0,
         11.0,
         12.0,
         14.0,
         15.0,
         16.0,
         17.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 13,
        "binaryFit": 0.5,
        "ternaryFit": 0.5,
        "sylPerStress": 2.6,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "ch1",
      "tag": "[Chorus]",
      "title": "Чужа",
      "kind": "chorus",
      "bars": 14,
      "syllables": 53,
      "predictedRate": 2.44,
      "phrases": [
       {
        "id": "p15",
        "text": "П’ятна́дцять хвили́н сиді́ла в маши́ні.",
        "classes": [
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 11,
        "binaryFit": 0.333,
        "ternaryFit": 0.667,
        "sylPerStress": 2.75,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p16",
        "text": "Злю́сь не на не́ї — на те́, що ба́чу.",
        "classes": [
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "s",
         "u",
         "S",
         "u"
        ],
        "slots": [
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 10,
        "binaryFit": 0.0,
        "ternaryFit": 0.5,
        "sylPerStress": 3.33,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p17",
        "text": "Я́ дивлю́сь у дзе́ркало — і ба́чу чужу́.",
        "classes": [
         "s",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S"
        ],
        "slots": [
         -2.0,
         -1.0,
         0.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 12,
        "binaryFit": 0.333,
        "ternaryFit": 0.333,
        "sylPerStress": 3.0,
        "warnings": [],
        "hook": true,
        "coda": null
       },
       {
        "id": "p18",
        "text": "І сму́ги, й зало́ми, й су́хість на ши́ї.",
        "classes": [
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 11,
        "binaryFit": 0.333,
        "ternaryFit": 0.667,
        "sylPerStress": 2.75,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p19",
        "text": "Мов сві́тло всере́дині зга́сло.",
        "classes": [
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         9.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 9,
        "binaryFit": 0.0,
        "ternaryFit": 1.0,
        "sylPerStress": 3.0,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "v3",
      "tag": "[Verse 3]",
      "title": "Лариса",
      "kind": "verse",
      "bars": 17,
      "syllables": 68,
      "predictedRate": 2.52,
      "phrases": [
       {
        "id": "p20",
        "text": "Того́ ж ти́жня в до́ньки на та́нцях — Лари́са.",
        "classes": [
         "u",
         "s",
         "S",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -2.0,
         -1.0,
         0.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 12,
        "binaryFit": 0.333,
        "ternaryFit": 0.667,
        "sylPerStress": 3.0,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p21",
        "text": "Ї́й п’ятдеся́т п’я́ть — а на ши́ї ні́ сму́жки.",
        "classes": [
         "s",
         "u",
         "u",
         "S",
         "S",
         "u",
         "u",
         "S",
         "u",
         "s",
         "S",
         "u"
        ],
        "slots": [
         -3.0,
         -2.0,
         -1.0,
         0.0,
         4.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 12,
        "binaryFit": 0.0,
        "ternaryFit": 0.667,
        "sylPerStress": 3.0,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p22",
        "text": "А чи́м ти́, скажи́, користу́єшся?",
        "classes": [
         "u",
         "S",
         "s",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 10,
        "binaryFit": 0.0,
        "ternaryFit": 1.0,
        "sylPerStress": 3.33,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p23",
        "text": "Усміхну́лась, огля́нула ши́ю: «А ти́ чи́м?»",
        "classes": [
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "s",
         "S"
        ],
        "slots": [
         -2.0,
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 13,
        "binaryFit": 0.0,
        "ternaryFit": 0.667,
        "sylPerStress": 3.25,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p24",
        "text": "Я́ ки́слоти, кре́ми — усе́ підря́д.",
        "classes": [
         "s",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 10,
        "binaryFit": 0.333,
        "ternaryFit": 0.667,
        "sylPerStress": 2.5,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p25",
        "text": "«Сті́й. Не міня́й — а щоде́нно догляда́й».",
        "classes": [
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "u",
         "S"
        ],
        "slots": [
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 11,
        "binaryFit": 0.0,
        "ternaryFit": 0.667,
        "sylPerStress": 2.75,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "v4",
      "tag": "[Verse 4 — slower]",
      "title": "Баночка",
      "kind": "verse",
      "bars": 12,
      "syllables": 57,
      "predictedRate": 2.55,
      "phrases": [
       {
        "id": "p26",
        "text": "Наза́втра дала́ незнайо́мий мені́ кре́м.",
        "classes": [
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "s",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 12,
        "binaryFit": 0.0,
        "ternaryFit": 0.667,
        "sylPerStress": 3.0,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p27",
        "text": "Та́м купуасу́ та оли́вні ліпі́ди,",
        "classes": [
         "S",
         "u",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 0,
        "bars": 2,
        "syllables": 12,
        "binaryFit": 0.0,
        "ternaryFit": 0.667,
        "sylPerStress": 3.0,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p28",
        "text": "Гіалуро́н, кофеї́н у скла́ді.",
        "classes": [
         "u",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -3.0,
         -2.0,
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         7.0,
         8.0,
         9.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 10,
        "binaryFit": 0.5,
        "ternaryFit": 0.5,
        "sylPerStress": 3.33,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p29",
        "text": "«На чи́сту ши́ю щове́чора — то́нко, вго́ру».",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0,
         15.0,
         16.0,
         17.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 13,
        "binaryFit": 0.5,
        "ternaryFit": 0.5,
        "sylPerStress": 2.6,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p30",
        "text": "Без печі́ння, без лу́щення — ні́жно.",
        "classes": [
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -2.0,
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         9.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 10,
        "binaryFit": 0.0,
        "ternaryFit": 1.0,
        "sylPerStress": 3.33,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "v5",
      "tag": "[Verse 5]",
      "title": "Три тижні",
      "kind": "verse",
      "bars": 6,
      "syllables": 25,
      "predictedRate": 2.61,
      "phrases": [
       {
        "id": "p31",
        "text": "На тре́тьому ти́жні зало́мів поме́ншало.",
        "classes": [
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0,
         13.0,
         14.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 13,
        "binaryFit": 0.0,
        "ternaryFit": 1.0,
        "sylPerStress": 3.25,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p32",
        "text": "А до́нька: «Ти́ га́рно іна́кша. Світлі́ша».",
        "classes": [
         "u",
         "S",
         "u",
         "s",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         4.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 12,
        "binaryFit": 0.0,
        "ternaryFit": 1.0,
        "sylPerStress": 3.0,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "ch2",
      "tag": "[Chorus]",
      "title": "Світло",
      "kind": "chorus",
      "bars": 10,
      "syllables": 44,
      "predictedRate": 2.41,
      "phrases": [
       {
        "id": "p33",
        "text": "Ші́сть ти́жнів — не ві́рю: ні́ сму́г, ні́ зало́мів.",
        "classes": [
         "S",
         "S",
         "u",
         "u",
         "S",
         "u",
         "s",
         "S",
         "s",
         "u",
         "S",
         "u"
        ],
        "slots": [
         0.0,
         4.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0,
         12.0,
         14.0,
         15.0,
         16.0,
         17.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 12,
        "binaryFit": 0.0,
        "ternaryFit": 0.75,
        "sylPerStress": 2.4,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p34",
        "text": "Я́ дивлю́сь у дзе́ркало — і ба́чу сві́тло.",
        "classes": [
         "s",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -2.0,
         -1.0,
         0.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         10.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 12,
        "binaryFit": 0.667,
        "ternaryFit": 0.0,
        "sylPerStress": 3.0,
        "warnings": [
         "held unstressed: бачу"
        ],
        "hook": true,
        "coda": null
       },
       {
        "id": "p35",
        "text": "Шкі́ра рівні́ша, ніж за де́сять лі́т,",
        "classes": [
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u",
         "S"
        ],
        "slots": [
         0.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         11.0,
         12.0
        ],
        "restBeats": 0,
        "bars": 2,
        "syllables": 10,
        "binaryFit": 0.333,
        "ternaryFit": 0.333,
        "sylPerStress": 2.5,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p36",
        "text": "Не хова́ю тепе́р свою́ ши́ю.",
        "classes": [
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "s",
         "S",
         "u"
        ],
        "slots": [
         -2.0,
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         8.0,
         9.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 10,
        "binaryFit": 0.0,
        "ternaryFit": 1.0,
        "sylPerStress": 3.33,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "br",
      "tag": "[Bridge]",
      "title": "Червень",
      "kind": "bridge",
      "bars": 13,
      "syllables": 56,
      "predictedRate": 2.57,
      "phrases": [
       {
        "id": "p37",
        "text": "У че́рвні в до́ньки конце́рт.",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 7,
        "binaryFit": 0.5,
        "ternaryFit": 0.5,
        "sylPerStress": 2.33,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p38",
        "text": "Дружи́на коли́шнього сі́ла по́руч,",
        "classes": [
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 0,
        "bars": 2,
        "syllables": 11,
        "binaryFit": 0.333,
        "ternaryFit": 0.667,
        "sylPerStress": 2.75,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p39",
        "text": "І зно́ву то́й по́гляд — не жа́лість, а по́див.",
        "classes": [
         "u",
         "S",
         "u",
         "s",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         4.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 12,
        "binaryFit": 0.0,
        "ternaryFit": 1.0,
        "sylPerStress": 3.0,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p40",
        "text": "Підхо́дить: «Ти́ га́рно вигляда́єш… до ре́чі».",
        "classes": [
         "u",
         "S",
         "u",
         "s",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 13,
        "binaryFit": 0.0,
        "ternaryFit": 0.667,
        "sylPerStress": 3.25,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p41",
        "text": "Ота́, че́рез яку́ я́ сиді́ла в маши́ні.",
        "classes": [
         "u",
         "S",
         "s",
         "u",
         "u",
         "S",
         "s",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0,
         13.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 13,
        "binaryFit": 0.0,
        "ternaryFit": 0.667,
        "sylPerStress": 3.25,
        "warnings": [],
        "hook": false,
        "coda": null
       }
      ]
     },
     {
      "id": "ch3",
      "tag": "[Chorus — climax]",
      "title": "Себе",
      "kind": "chorus",
      "bars": 8,
      "syllables": 34,
      "predictedRate": 2.55,
      "phrases": [
       {
        "id": "p42",
        "text": "Я́ щи́ро сказа́ла ї́й «дя́кую».",
        "classes": [
         "s",
         "S",
         "u",
         "u",
         "S",
         "u",
         "s",
         "S",
         "u",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         5.0,
         6.0,
         8.0,
         9.0,
         10.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 10,
        "binaryFit": 0.0,
        "ternaryFit": 1.0,
        "sylPerStress": 3.33,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p43",
        "text": "Не її́ ду́мка ва́жить — наре́шті моя́.",
        "classes": [
         "u",
         "u",
         "s",
         "S",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S"
        ],
        "slots": [
         -3.0,
         -2.0,
         -1.0,
         0.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 12,
        "binaryFit": 0.333,
        "ternaryFit": 0.667,
        "sylPerStress": 3.0,
        "warnings": [],
        "hook": false,
        "coda": null
       },
       {
        "id": "p44",
        "text": "Я́ дивлю́сь у дзе́ркало — і ба́чу себе́.",
        "classes": [
         "s",
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u",
         "u",
         "s"
        ],
        "slots": [
         -2.0,
         -1.0,
         0.0,
         3.0,
         4.0,
         5.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 12,
        "binaryFit": 0.333,
        "ternaryFit": 0.333,
        "sylPerStress": 4.0,
        "warnings": [],
        "hook": true,
        "coda": null
       }
      ]
     },
     {
      "id": "out",
      "tag": "[Outro — half-time]",
      "title": "Ґоу П’юр",
      "kind": "coda",
      "bars": 14,
      "syllables": 53,
      "predictedRate": 2.34,
      "phrases": [
       {
        "id": "p45",
        "text": "Кре́м назива́ється Ґо́у П’ю́р.",
        "classes": [
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "S"
        ],
        "slots": [
         0.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 9,
        "binaryFit": 0.333,
        "ternaryFit": 0.667,
        "sylPerStress": 2.25,
        "warnings": [],
        "hook": false,
        "coda": "brand"
       },
       {
        "id": "p46",
        "text": "Лиши́ у фо́рмі ім’я́ й телефо́н.",
        "classes": [
         "u",
         "S",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S"
        ],
        "slots": [
         -1.0,
         0.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         10.0,
         11.0,
         12.0
        ],
        "restBeats": 2,
        "bars": 3,
        "syllables": 10,
        "binaryFit": 0.333,
        "ternaryFit": 0.667,
        "sylPerStress": 2.5,
        "warnings": [],
        "hook": false,
        "coda": "form"
       },
       {
        "id": "p47",
        "text": "На по́шті огля́нь поси́лку.",
        "classes": [
         "u",
         "S",
         "u",
         "u",
         "S",
         "u",
         "S",
         "u"
        ],
        "slots": [
         -1.0,
         0.0,
         2.0,
         3.0,
         4.0,
         7.0,
         8.0,
         9.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 8,
        "binaryFit": 0.5,
        "ternaryFit": 0.5,
        "sylPerStress": 2.67,
        "warnings": [],
        "hook": false,
        "coda": "inspect"
       },
       {
        "id": "p48",
        "text": "Пі́сля о́гляду — пла́тиш.",
        "classes": [
         "S",
         "u",
         "S",
         "u",
         "u",
         "S",
         "u"
        ],
        "slots": [
         0.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0,
         9.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 7,
        "binaryFit": 0.5,
        "ternaryFit": 0.5,
        "sylPerStress": 2.33,
        "warnings": [],
        "hook": false,
        "coda": "payment"
       },
       {
        "id": "p49",
        "text": "Шістдеся́т дні́в на пове́рнення.",
        "classes": [
         "u",
         "u",
         "S",
         "S",
         "u",
         "u",
         "S",
         "u",
         "u"
        ],
        "slots": [
         -2.0,
         -1.0,
         0.0,
         4.0,
         6.0,
         7.0,
         8.0,
         9.0,
         10.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 9,
        "binaryFit": 0.0,
        "ternaryFit": 0.5,
        "sylPerStress": 3.0,
        "warnings": [],
        "hook": false,
        "coda": "returns"
       },
       {
        "id": "p50",
        "text": "Якщо́ тре́ба — посила́ння внизу́.",
        "classes": [
         "u",
         "s",
         "S",
         "u",
         "u",
         "u",
         "S",
         "u",
         "u",
         "S"
        ],
        "slots": [
         -2.0,
         -1.0,
         0.0,
         1.0,
         2.0,
         3.0,
         4.0,
         6.0,
         7.0,
         8.0
        ],
        "restBeats": 2,
        "bars": 2,
        "syllables": 10,
        "binaryFit": 0.0,
        "ternaryFit": 0.5,
        "sylPerStress": 3.33,
        "warnings": [],
        "hook": false,
        "coda": "link"
       }
      ]
     }
    ],
    "bars": 134,
    "hookPhrases": [
     "p17",
     "p34",
     "p44"
    ],
    "coda": [
     "Крем називається Ґоу П’юр.",
     "Лиши у формі ім’я й телефон.",
     "На пошті оглянь посилку.",
     "Після огляду — платиш.",
     "Шістдесят днів на повернення.",
     "Якщо треба — посилання внизу."
    ]
   },
   "prediction": {
    "syllables": 546,
    "phrases": 50,
    "plannedRests": 47,
    "thoughtBoundaries": 47,
    "sungRate": 2.47,
    "maxSectionRate": 2.61,
    "maxSection": "v5",
    "hookReturns": 3,
    "codaFactsRested": 6,
    "duration": 262.9,
    "durationBasis": "sung seconds from the map + 0.8 s per planned rest + one bar per fill and before the brand; the bar-framed map length (intendedSeconds) is an upper bound — iteration 3 sang shorter than its frames",
    "restBoundaryShareRange": [
     0.33,
     0.45
    ],
    "restBasis": "iteration 3: planned rests are not predicted by the text; [Pause] tag lines gave 0.31–0.44 of boundaries, no layout reached 0.80",
    "content8Within40": 0.494,
    "content8Within40Range": [
     0.454,
     0.534
    ],
    "content8MAD": 46.4,
    "crispnessBasis": "weak-groove model (A/B phrases): lower seed weight, half-time style; ternary regularity has weaker evidence than binary (mixed per track)",
    "mapContentStressesOnBeats": 1.0,
    "mapStressOnBeats1and3": 1.0,
    "meanBinaryFit": 0.18,
    "meanTernaryFit": 0.705,
    "sylPerContentStress": 2.9,
    "sixteenths": 0,
    "models": {
     "fitKey": "anyreg",
     "strong": [
      {
       "lo": 0,
       "hi": 0.34,
       "n": 15,
       "within": 0.42,
       "mad": 50.4
      },
      {
       "lo": 0.34,
       "hi": 0.67,
       "n": 25,
       "within": 0.529,
       "mad": 42.1
      },
      {
       "lo": 0.67,
       "hi": 1.01,
       "n": 17,
       "within": 0.549,
       "mad": 38.5
      }
     ],
     "weak": [
      {
       "lo": 0,
       "hi": 0.34,
       "n": 36,
       "within": 0.438,
       "mad": 50.7
      },
      {
       "lo": 0.34,
       "hi": 0.67,
       "n": 44,
       "within": 0.47,
       "mad": 46.4
      },
      {
       "lo": 0.67,
       "hi": 1.01,
       "n": 21,
       "within": 0.553,
       "mad": 45.7
      }
     ]
    }
   },
   "size": "546 слогов · 50 фраз · ≈ 263 с"
  }
 ],
 "baselines": {
  "A": {
   "tempo": "103,4 BPM (просили 92)",
   "meterLabel": "4/4, баллада, текст без карты",
   "key": "D major",
   "genre": "акустическая баллада с припевом",
   "form": "11 секций, припев ×3",
   "hook": "Я дивлюсь у дзеркало — і бачу…",
   "text": "амфибрахии/дактили без бит-карты; binary fit 0,32",
   "seedLabel": "AW 0,35 · SW 0,75 · WC 0,15",
   "size": "536 слогов · 50 фраз · 228 с",
   "purpose": "база итерации 3: дышит лучше всех, плывёт в припевах"
  },
  "B": {
   "tempo": "107,7–109,6 BPM (просили 112)",
   "meterLabel": "4/4, фолк-поп, текст без карты",
   "key": "G major",
   "genre": "фолк-поп с рефреном-вопросом",
   "form": "11 секций, рефрен ×3",
   "hook": "Дивлюсь на себе — і що я бачу?",
   "text": "смешанный размер без бит-карты; binary fit 0,28",
   "seedLabel": "AW 0,40 · SW 0,70 · WC 0,20",
   "size": "537 слогов · 52 фразы · 233 с",
   "purpose": "база итерации 3: «больше всего песня», темп дрейфует"
  }
 },
 "mapsIntro": "Карты построены из финальных текстов панели: каждый слог — клетка восьмой (1 & 2 & 3 & 4 &, жирная линия — такт, затакт слева), ударные знаменательных слов выделены и стоят только на долях размера; штриховка — пауза голоса в долях. Мелодию решает провайдер: карта — это текст, написанный для доли, и эталон, против которого меряются спетые онсеты.",
 "gatesIntro": "P0 блокируют слепые прослушивания и владельца; P1 входят в выбор между дублями; info — читается. Значения Targ / v2 / A / B измерены тем же инструментом; прогноз — из карты и модели регулярности до покупки.",
 "gates": [
  {
   "id": "content8Within40",
   "label": "Ударные слоги знаменательных слов в ±40 мс от сетки восьмых (шанс 0,28)",
   "priority": "P0",
   "target": ">= 0.58",
   "targ": 0.613,
   "v2": 0.536,
   "A": 0.458,
   "B": 0.486,
   "pred": {
    "T": 0.574,
    "H": 0.494
   },
   "basis": "H8: at Targ's measured level (0.613 − one binomial sd 0.032)"
  },
  {
   "id": "content8MAD",
   "label": "Медианное |отклонение| ударных слогов от восьмых, мс",
   "priority": "P0",
   "target": "<= 35.0",
   "targ": 29.8,
   "v2": 36.0,
   "A": 48.3,
   "B": 43.1,
   "pred": {
    "T": 30.9,
    "H": 46.4
   },
   "basis": "H8 owner value 35 ms; Targ 29.8"
  },
  {
   "id": "phraseStart8Within40",
   "label": "Начала фраз (первый слог строки) в ±40 мс от сетки восьмых",
   "priority": "P0",
   "target": ">= 0.5",
   "targ": 0.5,
   "v2": 0.483,
   "A": 0.5,
   "B": 0.694,
   "pred": {
    "T": "≈ 0,5–0,6",
    "H": "≈ 0,5–0,6"
   },
   "basis": "H8 «phrase starts on the beat» at Targ's measured level; Targ starts many lines on pickups"
  },
  {
   "id": "maxSectionLagMs",
   "label": "Худшее систематическое опоздание/опережение секции (|медиана со знаком|, ≥ 10 ударных), мс",
   "priority": "P1",
   "target": "<= 30.0",
   "targ": 15.3,
   "v2": 66.3,
   "A": 74.5,
   "B": 38.2,
   "pred": {
    "T": "≤ 30",
    "H": "≤ 30"
   },
   "basis": "A's choruses drag +45…+75 ms; Targ's worst section 15 ms"
  },
  {
   "id": "worstSectionContent8",
   "label": "Худшая секция: доля ударных в ±40 мс от восьмых (≥ 10 ударных)",
   "priority": "P1",
   "target": ">= 0.45",
   "targ": 0.531,
   "v2": 0.3,
   "A": 0.278,
   "B": 0.364,
   "pred": {
    "T": "≈ 0,45",
    "H": "≈ 0,45"
   },
   "basis": "«every phrase»: no section falls back to chance (A ch1 0.28, B v1 0.36)"
  },
  {
   "id": "ioiQuant",
   "label": "Длительности нот: IOI соседних слогов кратны 16-й (±25 %), шанс 0,5",
   "priority": "P1",
   "target": ">= 0.58",
   "targ": 0.614,
   "v2": 0.552,
   "A": 0.504,
   "B": 0.574,
   "pred": {
    "T": "> 0,55",
    "H": "> 0,55"
   },
   "basis": "phase-free rhythm row; Targ 0.614, A 0.504 (chance)"
  },
  {
   "id": "contentOnKickBeats",
   "label": "Ударные на долях: доля на 1 и 3 (шанс 0,5)",
   "priority": "P1",
   "target": ">= 0.5",
   "targ": 0.553,
   "v2": 0.534,
   "A": 0.382,
   "B": 0.652,
   "pred": {
    "T": "> 0,5",
    "H": "> 0,5"
   },
   "basis": "A puts stressed words on 2/4 (0.38) and unstressed on 1/3 (0.82)"
  },
  {
   "id": "contentBeatWithin40",
   "label": "Ударные в ±40 мс от доли (шанс 0,14)",
   "priority": "info",
   "target": ">= 0.3",
   "targ": 0.348,
   "v2": 0.459,
   "A": 0.312,
   "B": 0.297,
   "pred": {
    "T": null,
    "H": null
   },
   "basis": "Targ syncopates half of its on-grid stresses onto off-beat eighths"
  },
  {
   "id": "vocalOnsets8Within40",
   "label": "Все онсеты вокального стема в ±40 мс от восьмых (метод v1, уточнённая сетка)",
   "priority": "info",
   "target": ">= 0.45",
   "targ": 0.445,
   "v2": 0.507,
   "A": 0.418,
   "B": 0.535,
   "pred": {
    "T": null,
    "H": null
   },
   "basis": "owner's legacy row; grid-sensitive (Targ 0.52 → 0.445 with a 10-ms grid refinement), kept for continuity"
  },
  {
   "id": "asrLineMatch",
   "label": "ASR: доля совпавших строк",
   "priority": "P0",
   "target": ">= 0.95",
   "targ": null,
   "v2": 0.992,
   "A": 0.99,
   "B": 1.0,
   "pred": {
    "T": "≥ 0,95",
    "H": "≥ 0,95"
   },
   "basis": "floor from iteration 3"
  },
  {
   "id": "restBoundaryShare",
   "label": "Доля запланированных границ мыслей с паузой ≥ 0,6 с (стем)",
   "priority": "P0",
   "target": ">= 0.33",
   "targ": 0.097,
   "v2": 0.069,
   "A": 0.396,
   "B": 0.333,
   "pred": {
    "T": "0,33–0,45",
    "H": "0,33–0,45"
   },
   "basis": "floor: iteration-3 master B 0.33 (A 0.40)"
  },
  {
   "id": "maxSectionRate",
   "label": "Самая плотная секция, слог/с по спетому",
   "priority": "P0",
   "target": "<= 3.3",
   "targ": 3.64,
   "v2": 4.61,
   "A": 3.26,
   "B": 3.01,
   "pred": {
    "T": 3.09,
    "H": 2.61
   },
   "basis": "floor: iteration-3 masters 3.26 / 3.01"
  },
  {
   "id": "sungRate",
   "label": "Вся песня, слог/с по спетому",
   "priority": "P0",
   "target": "<= 2.9",
   "targ": 3.26,
   "v2": 3.61,
   "A": 2.7,
   "B": 2.68,
   "pred": {
    "T": 2.88,
    "H": 2.47
   },
   "basis": "floor: iteration-3 masters 2.70 / 2.68; beat-tight must not bring back patter"
  },
  {
   "id": "hookReturns",
   "label": "Возвраты хука (≥ 3, ≥ 20 с между)",
   "priority": "P0",
   "target": ">= 3",
   "targ": 0,
   "v2": 0,
   "A": 3,
   "B": 3,
   "pred": {
    "T": 3,
    "H": 3
   },
   "basis": "floor"
  },
  {
   "id": "codaFactsRested",
   "label": "Факты коды спеты и каждый с паузой ≥ 0,5 с",
   "priority": "P0",
   "target": ">= 6",
   "targ": 0,
   "v2": 1,
   "A": 6,
   "B": 6,
   "pred": {
    "T": 6,
    "H": 6
   },
   "basis": "floor (same-take coda rests allowed, H6)"
  },
  {
   "id": "noFragmentation",
   "label": "Без фрагментации",
   "priority": "P0",
   "target": ">= 1",
   "targ": null,
   "v2": 1,
   "A": 1,
   "B": 1,
   "pred": {
    "T": 1,
    "H": 1
   },
   "basis": "floor; rejected experiment 2026-09-15"
  },
  {
   "id": "restMedian",
   "label": "Медианная пауза на границах мыслей, с",
   "priority": "P1",
   "target": ">= 0.8",
   "targ": 0.78,
   "v2": 1.1,
   "A": 1.44,
   "B": 2.25,
   "pred": {
    "T": null,
    "H": null
   },
   "basis": "iteration 3"
  },
  {
   "id": "chorusLift",
   "label": "Лифт припева/рефрена, полутона",
   "priority": "P1",
   "target": ">= 2",
   "targ": null,
   "v2": null,
   "A": 4.4,
   "B": 0.1,
   "pred": {
    "T": null,
    "H": null
   },
   "basis": "iteration 3"
  },
  {
   "id": "phraseRateCV",
   "label": "CV скорости по фразам",
   "priority": "info",
   "target": ">= 0.35",
   "targ": null,
   "v2": null,
   "A": null,
   "B": null,
   "pred": {
    "T": null,
    "H": null
   },
   "basis": "a beat map evens the rate on purpose; informational in iteration 4"
  },
  {
   "id": "lowPitchedPhraseShare",
   "label": "Доля фраз ≥ 1 с с pitched-share < 0,15 (прокси речитатива)",
   "priority": "P1",
   "target": "<= 0.1",
   "targ": null,
   "v2": null,
   "A": null,
   "B": null,
   "pred": {
    "T": null,
    "H": null
   },
   "basis": "iteration 3; sung throughout is a P0 blind verdict"
  },
  {
   "id": "vocMinusMusicWorst",
   "label": "Вокал минус музыка, худший блок кроме коды, dB",
   "priority": "P1",
   "target": ">= -1.0",
   "targ": null,
   "v2": null,
   "A": null,
   "B": null,
   "pred": {
    "T": null,
    "H": null
   },
   "basis": "delta study"
  },
  {
   "id": "airBeforeBrand",
   "label": "Воздух без слов перед брендом, с",
   "priority": "P1",
   "target": ">= 1.2",
   "targ": null,
   "v2": null,
   "A": null,
   "B": null,
   "pred": {
    "T": null,
    "H": null
   },
   "basis": "iteration 3"
  },
  {
   "id": "restCount",
   "label": "Услышанные паузы ÷ запланированные",
   "priority": "info",
   "target": ">= 0.8",
   "targ": null,
   "v2": null,
   "A": null,
   "B": null,
   "pred": {
    "T": null,
    "H": null
   },
   "basis": "iteration-3 H2 hypothesis, reached by no take"
  },
  {
   "id": "climaxPlacement",
   "label": "Кульминация в запланированной секции",
   "priority": "info",
   "target": ">= 1",
   "targ": null,
   "v2": null,
   "A": null,
   "B": null,
   "pred": {
    "T": null,
    "H": null
   },
   "basis": "iteration 3"
  },
  {
   "id": "contourStepMatch",
   "label": "Совпадение шагов контура",
   "priority": "info",
   "target": ">= 0.6",
   "targ": null,
   "v2": null,
   "A": null,
   "B": null,
   "pred": {
    "T": null,
    "H": null
   },
   "basis": "Suno does not read contour arrows"
  },
  {
   "id": "codaSettles",
   "label": "Кода оседает (≤ припев − 2 st)",
   "priority": "info",
   "target": ">= 1",
   "targ": null,
   "v2": null,
   "A": null,
   "B": null,
   "pred": {
    "T": null,
    "H": null
   },
   "basis": "iteration 3"
  },
  {
   "id": "duration",
   "label": "Длительность, с (свободная переменная)",
   "priority": "info",
   "target": "<= 260.0",
   "targ": 194.49,
   "v2": 197.1,
   "A": 228.02,
   "B": 233.17,
   "pred": {
    "T": 239.3,
    "H": 262.9
   },
   "basis": "sanity ceiling"
  }
 ],
 "trendRule": "Покупка варианта разрешена, когда его карта полная (validate_beat_map), прогноз строк чёткости лучше A и B, прогноз строк дыхания не хуже полов (≤ 2,9; ≤ 3,3; хук ≥ 3; кода 6/6), ledger ударений 100 %, композиционный обзор принят. После каждого раунда измеренное заменяет прогноз в той же таблице отчёта.",
 "purchase": {
  "round1": "3 заявки по 12 кредитов (две версии каждая): T1a (AW 0,50) и T1b (AW 0,60) — один рычаг, текст T проходит правило тренда (прогноз 0,58 в ±40 мс, 31 мс); H1a (AW 0,45, SW 0,85) — объявленный тест «своего размера» (H2): по модели H не проходит правило тренда по медиане отклонения (46 мс против 43 у B), поэтому одна заявка, а не две. Каждый дубль: стемы → строки → forced alignment → beat-sync → gates до прослушивания.",
  "round2": "До 4 заявок: лучший вес сида каждого варианта + один рычаг (правка «плывущих» фраз по измеренным отклонениям, без [Pause] против с [Pause], стиль). Раунд 3 — только если ни один кандидат не прошёл P0 и есть конкретная гипотеза.",
  "reviews": "Калибровка слепого уха: пары 20-с отрывков Targ vs A («где слова точнее на ударных барабанов?») — слух годен для этой строки при ≥ 70 % верных. Затем целые кандидаты + A, B, версия 2: в такте ли каждая фраза; какое вложение чётче; дышит ли и остаётся ли песней; разборчив ли каждый факт коды. 48 кбит/с моно для целых песен > 195 с, 40 кбит/с > 245 с.",
  "budget": "Потолок 300 кредитов атрибутируемых по квитанциям (≈ 12 обложек × 12 + ≈ 20 отзывов × 0,5–2,4). Баланс общего ключа не используется для атрибуции (другие сессии).",
  "stop": "Кандидат, у которого ударные и начала фраз на уровне цели (тем же инструментом, рядом с шансом), полы дыхания и песни не регрессируют, слепо «спето насквозь», каждый факт коды разборчив с паузой, ledger ударений и ASR-строки пройдены, слепые предпочитают его A и B по «в такте» и не ставят ниже по «песня, не нарратив» и «дышит», без фрагментации."
 },
 "unchanged": [
  "Естественный украинский и ударение каждого слова (ledger 100 % до покупки), разборчивость, настоящее пение насквозь: без речитатива, патера и полуразговорных вставок.",
  "Все 39 мыслей как смысл; правда продукта только из gopure-product-20260914.json; шесть фактов заказа и бренд — каждый своей спетой фразой с паузой.",
  "Первое слышимое событие — спетое слово хука; без вступления; первые 2–3 секунды цепляют.",
  "Отклонённый эксперимент 2026-09-15: никаких телеграфных обрывков, «[Instrumental answer]» после каждой строки и пауз ради пауз.",
  "Suno V6 через scripts/gen2.py с квитанциями; стиль ≤ 1000 знаков вместе с паспортом и гидом произношения; negative tags ≤ 200; неизвестный исход POST не повторяется.",
  "Версии 1, 2 и мастера итерации 3 с их отчётами не трогаются; медиа вне git; PR без merge без слова владельца; оценка владельца не присваивается."
 ],
 "links": [
  [
   "Бриф итерации 4 (NEXT_SESSION_PROMPT_SONG_V4.md)",
   "https://github.com/PytaichukBohdan/AdFactorySongFormat/blob/chief/f5c3870848/NEXT_SESSION_PROMPT_SONG_V4.md"
  ],
  [
   "Отчёт итерации 3",
   "https://gopure-song-v3-08f0d414c5.pages.dev/"
  ],
  [
   "План итерации 3",
   "https://gopure-song-v3-08f0d414c5.pages.dev/plan/"
  ],
  [
   "Отчёт версии 2",
   "https://gopure-targ-ten-c06fb16085.pages.dev/"
  ],
  [
   "Данные: чёткость Targ / v2 / A / B",
   "/data/analysis/beat-sync/targ.json"
  ],
  [
   "Данные: худшие фразы",
   "/data/analysis/beat-sync/worst-phrases-v01.json"
  ],
  [
   "Данные: 14 дублей итерации 3",
   "/data/analysis/beat-sync/v3-takes/summary-v01.json"
  ],
  [
   "Бриф панели текста",
   "/data/preparation/panel/brief-v4.md"
  ],
  [
   "Опубликованные файлы и SHA256",
   "/public-files.json"
  ]
 ],
 "linksMap": {
  "v3": "https://gopure-song-v3-08f0d414c5.pages.dev/",
  "v2": "https://gopure-targ-ten-c06fb16085.pages.dev/"
 },
 "revisions": [
  {
   "version": "v01",
   "at": "2026-09-24 03:50 UTC",
   "change": "Plan published with the lyricists' texts (T: 55 phrases, binary fit 0.80; H checkpoint) before any purchase; link given to the owner."
  },
  {
   "version": "v01.1",
   "at": "2026-09-24 04:00 UTC",
   "change": "Text panel closed: both texts attacked on two lenses (native Ukrainian; advertorial and product truth) with an adversarial verifier. T: 5 confirmed defects fixed («лиш цей крем»; «тінь його першої любові»; че́рез mis-stress and the car callback «Це ж та, через яку в машині я сиділа»; dangling «ніжно»; «…до речі» restored as the afterthought) plus 8 minor fixes; H: verifier rejected all 5 serious findings, 5 minor fixes applied (Усміхнулась, «заломів поменшало», «ніжно», «щовечора», «Шість тижнів — не вірю»). Builder rule: a stressed function word ending a phrase lands on a beat (the climax «…бачу себе́» on beat 3). Predictions: T 0.574 within ±40 ms, 30.9 ms, 2.88 syl/s; H 0.494, 46.4 ms, 2.47 syl/s → H stays the declared own-meter test (one request). Blind-ear calibration (mentor scene): Gemini ranks v2 > Targ > B > A, 4 of 6 pairs agree with the measured crispness of the same excerpts → «in sync» verdicts are supporting evidence, the measured rows decide; the second calibration request ended with HTTP 524 (outcome unresolved, not repeated)."
  },
  {
   "version": "v01.1",
   "at": "2026-09-24 03:40 UTC",
   "change": "Publication: the Cloudflare account was at its 100-project limit; on the owner's instruction the five oldest projects (all created 2025-12-02/03, no custom domains, no deployment since 2025-12-09) were deleted after two independent read-only checks, and gopure-song-v4-f5c3870848 was created (evidence: preparation/cloudflare-cleanup-v01.json)."
  }
 ]
}
