From 119791b30339f69a8e5359c72d894c02ed9c9405 Mon Sep 17 00:00:00 2001 From: "prompt.ac/@jeffrey" Date: Tue, 18 Aug 2026 10:22:12 -0400 Subject: [PATCH] =?UTF-8?q?loner:=20"pa"=20a=20beat=20shorter,=20"my"=20a?= =?UTF-8?q?=20beat=20sooner=20=E2=80=94=20and=20the=20bar=20lines=20come?= =?UTF-8?q?=20back?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @jeffrey: "pa in patiently is a little too long · my should start one beat sooner too · and could just overlap in". On overlapping: the warp is a single sequential frame map — one voice, one index per output frame — so two units cannot literally sound at once. Starting "my" sooner simply ends "in" there, which is what the overlap would sound like anyway. in lands at 1.5 beats, 0.92x her sung length: her own speed, no stretch. That beat propagates, and it happens to undo the displacement from the last few passes: stone is back on bar 6 beat 2, just on the bar 7 downbeat, waiting on bar 8 beat 1, and my on bar 2 beat 3. pa 4 -> 3 beats, so patiently reads pa 3 · tient 1.5 · ly 1.5 with "tient" on bar 10 beat 4. --- pop/loner/bin/halo3.py | 10 ++++- pop/loner/c/loner-chart.h | 40 +++++++++--------- pop/loner/vox4/.chart.json | 76 +++++++++++++++++------------------ pop/loner/vox4/.manifest.json | 12 +++--- 4 files changed, 72 insertions(+), 66 deletions(-) diff --git a/pop/loner/bin/halo3.py b/pop/loner/bin/halo3.py index 74d5808cbb..6e166b8b40 100644 --- a/pop/loner/bin/halo3.py +++ b/pop/loner/bin/halo3.py @@ -226,7 +226,13 @@ CHART = { # ("of should start sooner, right after # 'think' ends") with no rest needed at all. "durs": { 0: 2.0, 1: 2.0, 2: 2.5, 3: 1.5, - 4: 2.5, 5: 2.0, 6: 2.0, + # "my" a beat sooner: the warp is one + # sequential frame map, so units cannot + # truly overlap — "in" simply ends where + # "my" begins, which is what overlapping + # would sound like anyway. in lands at + # 0.92x, her own speed. + 4: 1.5, 5: 2.0, 6: 2.0, # think 1 (1.17×, her own speed — at 2 # it was a 2.3× held tone), so OF keeps # its 4 beats at 1.01×, her real octave, @@ -245,7 +251,7 @@ CHART = { # full bar because at 2 beats it was # too fast and abrupt 12: 4.0, 13: 4.0, 14: 2.0, 15: 2.0, - 16: 4.0, 17: 1.5, 18: 1.5 }, + 16: 3.0, 17: 1.5, 18: 1.5 }, # words whose syllables carry a melody must not # be flattened to one tone by THE HOLD # patiently is pa·tient·ly, three notes diff --git a/pop/loner/c/loner-chart.h b/pop/loner/c/loner-chart.h index e2cb005668..2fc4255fac 100644 --- a/pop/loner/c/loner-chart.h +++ b/pop/loner/c/loner-chart.h @@ -17,25 +17,25 @@ static const ChartNote w_whole_line_notes[] = { { 2.00, 2.00, 5 }, { 4.00, 2.50, 3 }, { 6.50, 1.50, 2 }, - { 8.50, 2.50, 0 }, - { 11.00, 2.00, 5 }, - { 13.00, 2.00, 2 }, - { 15.00, 2.00, -2 }, - { 17.00, 2.00, -5 }, - { 19.00, 4.00, 12 }, - { 23.00, 3.00, 10 }, - { 26.00, 3.00, 5 }, - { 29.00, 4.00, 2 }, - { 33.00, 4.00, 3 }, - { 37.00, 2.00, 0 }, - { 39.00, 2.00, -2 }, - { 41.00, 4.00, 7 }, - { 45.00, 1.50, 5 }, - { 46.50, 1.50, 3 }, - { 48.00, 2.00, 5 }, - { 50.00, 4.50, 7 }, - { 54.50, 4.00, 3 }, - { 58.50, 3.00, 3 }, + { 8.50, 1.50, 0 }, + { 10.00, 2.00, 5 }, + { 12.00, 2.00, 2 }, + { 14.00, 2.00, -2 }, + { 16.00, 2.00, -5 }, + { 18.00, 4.00, 12 }, + { 22.00, 3.00, 10 }, + { 25.00, 3.00, 5 }, + { 28.00, 4.00, 2 }, + { 32.00, 4.00, 3 }, + { 36.00, 2.00, 0 }, + { 38.00, 2.00, -2 }, + { 40.00, 3.00, 7 }, + { 43.00, 1.50, 5 }, + { 44.50, 1.50, 3 }, + { 46.00, 2.00, 5 }, + { 48.00, 4.50, 7 }, + { 52.50, 4.00, 3 }, + { 56.50, 3.00, 3 }, }; static const ChartNote w_sitting_curled_notes[] = { { 0.00, 3.00, 6 }, @@ -92,7 +92,7 @@ static const ChartNote w_n_for_time_to_pass_notes[] = { }; static const ChartPhrase CHART[] = { - { "w-whole-line", 0.490, 61.50, 23, w_whole_line_notes }, + { "w-whole-line", 0.490, 59.50, 23, w_whole_line_notes }, { "w-sitting-curled", 0.020, 11.00, 5, w_sitting_curled_notes }, { "w-i-think", 0.020, 3.50, 2, w_i_think_notes }, { "w-of-a-stone", 0.000, 8.00, 3, w_of_a_stone_notes }, diff --git a/pop/loner/vox4/.chart.json b/pop/loner/vox4/.chart.json index 4141b88606..479bc65262 100644 --- a/pop/loner/vox4/.chart.json +++ b/pop/loner/vox4/.chart.json @@ -1,7 +1,7 @@ { "w-whole-line": { "leadIn": 0.49, - "beats": 61.5, + "beats": 59.5, "voiced": [ [ 0.0, @@ -9,39 +9,39 @@ ], [ 8.4993, - 12.9015 + 11.895 ], [ - 13.0032, - 18.7575 + 11.9967, + 17.7612 ], [ - 19.0015, - 25.6505 + 17.995, + 24.6542 ], [ - 25.9962, - 32.696 + 24.9998, + 31.6997 ], [ - 33.001, - 44.896 + 32.0047, + 42.9033 ], [ - 44.9977, - 47.9358 + 43.005, + 45.9432 ], [ - 47.9968, - 49.898 + 46.0042, + 47.8952 ], [ - 49.9997, - 58.0618 + 47.9968, + 56.059 ], [ - 58.255, - 62.3115 + 56.2522, + 60.3087 ] ], "notes": [ @@ -75,132 +75,132 @@ }, { "beat": 8.5, - "dur": 2.5, + "dur": 1.5, "st": 0, "t": "in", "lead": 0.0 }, { - "beat": 11.0, + "beat": 10.0, "dur": 2.0, "st": 5, "t": "myself\u00b7a", "lead": 0.0 }, { - "beat": 13.0, + "beat": 12.0, "dur": 2.0, "st": 2, "t": "myself\u00b7b", "lead": 0.1017 }, { - "beat": 15.0, + "beat": 14.0, "dur": 2.0, "st": -2, "t": "i", "lead": 0.0 }, { - "beat": 17.0, + "beat": 16.0, "dur": 2.0, "st": -5, "t": "think", "lead": 0.0 }, { - "beat": 19.0, + "beat": 18.0, "dur": 4.0, "st": 12, "t": "of", "lead": 0.2033 }, { - "beat": 23.0, + "beat": 22.0, "dur": 3.0, "st": 10, "t": "a", "lead": 0.0 }, { - "beat": 26.0, + "beat": 25.0, "dur": 3.0, "st": 5, "t": "stone", "lead": 0.0508 }, { - "beat": 29.0, + "beat": 28.0, "dur": 4.0, "st": 2, "t": "just", "lead": 0.0 }, { - "beat": 33.0, + "beat": 32.0, "dur": 4.0, "st": 3, "t": "waiting", "lead": 0.244 }, { - "beat": 37.0, + "beat": 36.0, "dur": 2.0, "st": 0, "t": "ve", "lead": 0.0 }, { - "beat": 39.0, + "beat": 38.0, "dur": 2.0, "st": -2, "t": "ry", "lead": 0.0 }, { - "beat": 41.0, - "dur": 4.0, + "beat": 40.0, + "dur": 3.0, "st": 7, "t": "pa", "lead": 0.0 }, { - "beat": 45.0, + "beat": 43.0, "dur": 1.5, "st": 5, "t": "tient", "lead": 0.0915 }, { - "beat": 46.5, + "beat": 44.5, "dur": 1.5, "st": 3, "t": "ly", "lead": 0.0 }, { - "beat": 48.0, + "beat": 46.0, "dur": 2.0, "st": 5, "t": "for", "lead": 0.0508 }, { - "beat": 50.0, + "beat": 48.0, "dur": 4.5, "st": 7, "t": "time", "lead": 0.0712 }, { - "beat": 54.5, + "beat": 52.5, "dur": 4.0, "st": 3, "t": "to", "lead": 0.0 }, { - "beat": 58.5, + "beat": 56.5, "dur": 3.0, "st": 3, "t": "pass", diff --git a/pop/loner/vox4/.manifest.json b/pop/loner/vox4/.manifest.json index db138a5e9f..7f80af88df 100644 --- a/pop/loner/vox4/.manifest.json +++ b/pop/loner/vox4/.manifest.json @@ -2,13 +2,13 @@ "w-whole-line": { "slice": "f-whole-line", "lead_in": 0.49, - "beats": 61.5, + "beats": 59.5, "renders": { - "lead": 31.135, - "8ve-a": 31.135, - "8ve-b": 31.135, - "low3": 31.135, - "low5": 31.135 + "lead": 30.15, + "8ve-a": 30.15, + "8ve-b": 30.15, + "low3": 30.15, + "low5": 30.15 }, "snaps": [ "curled +65ms", -- 2.51.2