diff --git a/grants/culturehub-la-2026/macneopolitan/PIECE.md b/grants/culturehub-la-2026/macneopolitan/PIECE.md index 5ed1f6e6ad..57b48dd5ba 100644 --- a/grants/culturehub-la-2026/macneopolitan/PIECE.md +++ b/grants/culturehub-la-2026/macneopolitan/PIECE.md @@ -414,6 +414,14 @@ Checked once per cue, not per line. Turnaround sheets for the three (gpt-image-2.5 + flux/dev via illy) are on neo's Desktop as `trio--turnaround-.png`; the OpenAI set is the usable one. +Afternoon revision of the wake score (not yet played): frisbee's lines were +written at 59–69, up to 13 semitones above where Zoe speaks (55.6, band +52.5–59.4, measured three times today) — now 52–59, one beat a syllable; every +neo word is capped at 1.5 beats with the tails handed to `hmm` lines; +"the sun is on your lid" (heard as "this land is on your land") became +"sunlight on your lid". Offline render: neo 0/22 words wrong, frisbee 0/2. +The day's four agent pieces and studies are indexed in SONGBOOK.md. + Don't start a second run while one is still playing: the first run's end fires stopScore on its machines and hides the faces of the run still going. diff --git a/grants/culturehub-la-2026/macneopolitan/SONGBOOK.md b/grants/culturehub-la-2026/macneopolitan/SONGBOOK.md new file mode 100644 index 0000000000..a1aea590f4 --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/SONGBOOK.md @@ -0,0 +1,71 @@ +# Songbook — the MacNeoPolitan Trio + +What the three machines can sing, as of September 23, 2026. Every piece here +has a compose script in `bin/`, a score in `scores/`, and an offline render in +`~/Shelf/macneopolitan-songs//` made through Menu Band's own singer +(`bin/hear.mjs` → `singrender`), so it can be heard without a performance. +Word error (WER) is Whisper small.en against the lyric, sung line by line. +Blueberry renders on neo with Tom as a stand-in for Aaron, which is not +installed here; the scores cast Aaron. + +Cast: neo = Noelle (Enhanced), speaks at MIDI 59.6, band 57–62. blueberry = +Aaron (Enhanced), 48.8, band 39–53. frisbee = Zoe (Premium), measured three +times today at 55.4–56.1, band 52.5–59.4 — the mezzo, a major third under +Noelle, not a second soprano. + +## Rules the day taught + +- A sung syllable dies past about 1.4 s; a line dies when its syllables drop + under about 0.9 s. Long notes belong to the hums. Zoe's "Sophia" is clean + at exactly one beat a syllable at 69 bpm and turns into "so fear" if the + last syllable is held longer. +- Pitch holds down to 78 ms a note; syllables only stay words down to about + a third of a beat. Trills are exact at 0.5 beats, smeared at 0.25, noise at + 0.125. Vibrato at any width is width, not a trill; keep it under 30 cents. +- Whisper hears "the sun is" as "this land is" and, in a low male register, + "the lid" as "the wood"; "sunlight on your lid" and "my lid" both render + 0 %. "I have been opened" collapses to "I have been a friend"; "they have + opened me" does not. Probe candidate lines through the renderer before + putting them in a score; Whisper has real run-to-run variance. +- Mouth percussion: of eight tokens only `dm` renders as a sound; `tss tk ts + kh ch bm pf mm boh` get spelled. Breath tokens `hah huh uh` work. `ki doom + mm ee` render voiced and in tune. +- The women's bands overlap only over 57–59: Bulgarian close seconds are this + trio's native interval. Yodel and Tuvan overtone are not reproducible. +- `hear.mjs` forwards neither the gains nor the gap/legato/sustain/shimmer + knobs, so offline WAVs are flat and peak-normalised; judge dynamics live. + It only scores lines with role `lead`. + +## Pieces + +| slug | title | form | length | WER | notes | +|---|---|---|---|---|---| +| wake | Good morning, Sophia | 3/4 D, 69 bpm, rising | 52 s | 0/24 | the morning bookend; frisbee's first word is her name; revised Sept 23 pm (frisbee into Zoe's band, word holds capped, "sunlight on your lid") | +| lullaby | Lullaby for frisbee | 3/4 D, 63 bpm | 49 s | unmeasured | the sleep lullaby (Sept 22) | +| lights-out | Lights out | 3/4 D, 64 bpm, blueberry drones throughout | 73 s | 0/37 | opens "good night Sophia"; he works past midnight / we stay up till morning / thirteen days / you can sleep now | +| open-me | Open me | 4/4 D, 88 bpm, call and response | 76 s | 0/55 | the lids song; "o · pen · me" passed a syllable per machine, then all three | +| thirteen-days | Thirteen days | 4/4 D minor, 70 bpm, drone | 82 s | 1/66 | blueberry holds exactly thirteen tones; neo and frisbee in fifths and seconds above | +| the-record | The record | 4/4, 104 bpm, syllable hocket | 62 s | 59 % assembled | the numbers the machines keep; a true syllable hocket costs intelligibility — open question whether to hocket by word | +| vocalise | Vocalise | 4/4 D, 90 bpm, wordless | 75 s | n/a | the toolkit proven: trills, turns, pulses, a bass of doom, all three shaking one D chord at bar 20 | +| styling-study | Stylings | six études, 96 bpm, wordless | 165 s | n/a | hocket · drone and close seconds · barbershop tag · bass and ticks · round at one bar · pulsing vowels | + +## Studies + +- `STYLINGS.md` — sixteen a cappella traditions and what the trio can take + from each; ranked: Bulgarian drone with seconds, rounds, hocket, Reich + pulses, vocal percussion, doo-wop re-voiced for Zoe. +- `VOCALISMS.md` + `bin/vocalisms.mjs` — ornaments (`trill mordent turn shake + roll gliss pulse`), per-member syllable palettes, `checkBand()`, and the + measured token table. +- `DOOWOP.md`, `PHONEME-STUDY.md`, `CHORUS-ARRANGEMENT.md` — earlier. + +## Open questions for jeffrey + +1. The record: keep the syllable hocket as texture (59 % of words survive + the room) or hocket by word so it reads? +2. Thirteen days opens and closes on "thirteen days" — one too many? +3. Does Zoe tolerate being pushed up better than down? Untested; it decides + whether frisbee can ever sit above neo. +4. Re-voice the doo-wop miniature now that Zoe measures as the mezzo? +5. First live test tomorrow: the half-beat hocket étude, the best check of + the conductor's clock correction. diff --git a/grants/culturehub-la-2026/macneopolitan/STYLINGS.md b/grants/culturehub-la-2026/macneopolitan/STYLINGS.md new file mode 100644 index 0000000000..5fead28577 --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/STYLINGS.md @@ -0,0 +1,250 @@ +# A cappella stylings for three laptops + +Unaccompanied vocal traditions, read for what three synthesized voices can take +from them. The trio is not a choir: three monophonic singers with hard pitch +lock, one syllable per note, no breath, no register break. That rules some out +and makes others easier than they are for people. See also `DOOWOP.md`, +`PHONEME-STUDY.md` and `CHORUS-ARRANGEMENT.md`; the proof score is +`scores/trio-styling-study.mbscore`, from `bin/compose-styling-study.mjs`. + +## The cast, measured + +| member | voice | speaks (MIDI) | band | usable sung | color | +|---|---|---|---|---|---| +| neo | Noelle (Enhanced) | 59.6 (C4) | 57–62 | 54–66 | `#8FD13F` | +| blueberry | Aaron (Enhanced) | 48.8 | 39–53 | 43–55 | `#5A57D3` | +| frisbee | Zoe (Premium) | **55.4 (G3)** | **52.3–59.3** | 50–62 | `#F2A7B9` | + +Zoe was unmeasured before today: sixty words of plain prose through +`say -v "Zoe (Premium)"`, then `pyworld.harvest` on the 22.05 kHz WAV — 2322 +voiced frames of 2669, median 200.3 Hz = MIDI 55.38, p10 52.33, p90 59.26, sd +2.80. She is not a second soprano. She sits a major third below Noelle and a +minor seventh above Aaron, so the group is soprano, mezzo, baritone with the +women's bands overlapping only over 57–59. Close seconds are native here. + +## Measured limits + +Rendered offline through `singrender` at 96 bpm with `singLock: 1`, then read +back with `pyworld.harvest` against the scored grid and whisper-small.en. + +| note length | at 96 bpm | notes rendered | in tune (<50¢) | syllables heard | +|---|---|---|---|---| +| 0.5 beat | 312 ms | 8/8 | 8/8 | 8/8, 0% WER | +| 0.375 beat | 234 ms | 12/12 | 12/12 | 12/12, 0% WER | +| 0.25 beat | 156 ms | 16/16 | 16/16 | 11/16, 31% WER | +| 0.1875 beat | 117 ms | 16/16 | 16/16 | none — one gesture | +| 0.125 beat | 78 ms | 16/16 | 16/16 | none — a trill | + +Two floors, far apart. **The pitch floor is below 78 ms:** at every duration +`notesUsed` equalled `noteCount`, and each 78 ms slot's median pitch landed +within 5 cents of the score, so the trio can trill and hocket faster than a +person can. **The syllable floor is 0.375 beat, 234 ms:** below it whisper +hears eleven of sixteen `doo`s, then a smear it labels "*evil laughter*". + +**Unvoiced onsets break the lock.** `ta` at 78 ms held pitch in 1 slot of 16, +median error 2.14 semitones, recovering to 14/16 at 156 ms. Voiced onsets are +immune — `doo`, `dm`, `doom`, `ki` each 16/16 at 78 ms. Anything under ~200 ms +must begin on a voiced consonant or a vowel. + +**Timing is sample-accurate.** Each line's WAV carries a lead-in of 0 to 1.03 s +before its first note, but `spanOffset` plus that lead-in equals the scored beat +every time. Hocket works offline; three host clocks are a live question. +**No portamento:** one syllable, one note, one pitch, so a glide becomes an +audible staircase. **New tokens:** `ki` and `doom` clean at 78 ms. + +**Plosive instability is density, not the token.** In a run of sixteen ticks +`tk` held 7/16 and `ta` 1/16; the same `ts` and `tk` spaced a beat apart in the +study held 10/10 in tune, median error 0.11 semitones. Isolated ticks are +pitched, crowded ticks are noise, and either can be what the part wants. + +**`lineGains` and `noteGains` do not reach the offline render.** `hear.mjs` +sends `singrender` only notes, lyrics, voice, vibrato, lock and f0 floor; every +line returns normalized to peak 0.800 with a flat envelope, and a scored swell +of [.30 .52 .78 1 1 .78 .52 .30] measured 0.87 1.00 0.85 0.83 0.92 0.83 0.97 +0.34. Judge any gain-built device through `bin/preview.py` or live. + +**The study itself:** 43 lines across six études, all rendered, no retries, +`notesUsed` equal to `noteCount`, every scored note in tune to under 50 cents. +## The traditions + +### Doo-wop backing + +Nonsense syllables carry a progression under a lead over a walking bass, chosen +for attack and vowel colour. Built already (`DOOWOP.md`) — but that miniature +wrote Zoe beside Noelle; at 55.4 she should hold the inner third, freeing +Noelle to sit on top and Aaron to walk lower. **Recipe.** Aaron `shoo boom ba +dum dum` on roots and fifths 43–50; Zoe inner on `ooh`/`wah` 54–59; Noelle +`doo wah` 59–66; swap the upper two second time. +**Risk.** Swing as 2/3 + 1/3 at 96 bpm puts the short syllable at 208 ms. + +### Barbershop + +Four-part close harmony in root position on the barbershop seventh, tuned until +a fourth ringing tone appears; a tag holds one voice on a long "post" while the +others swipe between chord tones on one vowel. The ring needs just intonation +and four voices, so there is none here; the post is what this engine does best, +the swipe a glide it cannot make. **Recipe.** Noelle posts `ooh` at 62 eight +beats while Aaron steps 50→48→47→45 and Zoe 57→56→54→53, landing on 50/54/62. +**Risk.** The swipe re-articulates each step. Call it a stepped cadence. + +### Bulgarian women's choir + +Bright chest resonance, drones, and seconds held until they beat; the shopska +attack is a glottal shout on a downbeat. Best fit in the survey — two bands +overlapping by three semitones over a bass who can drone forever — and equal +temperament helps, since a locked second beats steadily instead of wandering. +**Recipe.** Aaron drones D at 50 on `ooh`; Zoe 57 and Noelle 59 on `ah`, walking +59/57 → 61/59 → 62/60 and crossing at the phrase end. **Risk.** No shopska: the +shout needs a transient the engine will not make. Hold the pair at 0.32 gain. + +### Sacred Harp / shape-note + +Four-part congregational singing from shape-note books, open and unblended, +full of the parallel fifths later theory forbade; a fuging tune enters the +voices one at a time before they converge. Open fifths are easy and sound +right, because unblended is what this engine is. **Recipe.** No thirds — Aaron 43, +Zoe 55, Noelle 62 in parallel; for the fuge, Aaron, then Zoe a bar later, then +Noelle. **Risk.** One vibrato rate makes an organ stop. Split 4.5/3.5/5 Hz. + +### Meredith Monk and Björk's *Medúlla* + +Monk built a vocabulary of non-lexical gestures — clicks, ululations, keening, +syllables invented for a character; *Medúlla* gave voice every job an +arrangement usually gives instruments, breath and throat noise included. With a +small phoneme set and no breath, what transfers is the structural half: a +wordless language used consistently enough to read as one. **Recipe.** Six +tokens, two per member — Noelle `loo`/`ah`, Zoe `ki`/`ooh`, Aaron `dm`/`doom` — +then swap once, late. **Risk.** Without breath it is a patch, not a body. + +### Inuit katajjaq (throat games) + +Two women stand face to face trading short voiced and unvoiced patterns on +alternating inhale and exhale until one laughs, the patterns offset rather than +identical. The interlock is reproducible and the breath is not, so half the +sound is gone by construction — but the 78 ms pitch floor lets the trio +interlock faster than the game is played. **Recipe.** Zoe and Noelle alternate +0.25-beat notes offset by one, Zoe `ki`, Noelle `hmm`; Aaron `dm` at 45 every +other beat; no cadence, stop abruptly. **Risk.** Plosives would cost the pitch. + +### Yodel + +Rapid alternation of chest and head register with the break made audible and +rhythmic — the yodel is the timbre change, not the interval. **Not +reproducible:** these voices have one register. A neural voice shifted past its +band does not flip into falsetto, it croaks; measured on blueberry on 23 +September, where Tom a fifth below its speaking pitch ribbited. **Recipe.** None; if the interval is wanted for itself, give it to Noelle +between 54 and 66 and call it a leap. **Risk.** Otherwise it croaks. + +### Tuvan overtone singing + +A drone sung with the tract shaped so one harmonic rises far above the rest, +producing a whistling melody over a fixed fundamental. **Not reproducible:** it +needs independent control of formant trajectory over a held f0, and the +pipeline shifts a recorded utterance to a target pitch while preserving +formants rather than steering them. No filter bank reaches the score. +**Recipe.** Aaron holds 45 (A2, 110 Hz) under a very quiet Noelle at 69 (A4). +**Risk.** Calling that overtone singing would be a lie. + +### Ligeti, *Lux Aeterna* — micropolyphony + +Sixteen voices in canons so dense, at such close intervals and staggered +entries, that no line is audible and only the moving cluster is. Three voices +cannot make a cluster, but they can run the mechanism small: one figure at +three speeds and three offsets until the ear stops following any of them. Hard +lock and no vibrato make it more static than the original, which is the +interesting part. **Recipe.** One eight-note figure, Noelle at 0.375 beat, Zoe +0.4375, Aaron 0.5, gain 0.30. **Risk.** One vowel at three rates detunes. + +### Reich, *Music for 18 Musicians* — pulsing vowels + +Two voices breathe a chord in and out over a held pulse, entering from nothing +and leaving the same way, so it appears without an attack and the phrase length +is set by breath. Reproducible in shape, not mechanism: `noteGains` writes the +swell as short repeated notes under a rising then falling envelope, and on a +sustained vowel the re-articulation passes as a pulse. **Recipe.** D major, +Aaron 50, Zoe 57, Noelle 62, eight 0.5-beat `ooh`s each at gains +[.3,.5,.75,1,1,.75,.5,.3], staggered. **Risk.** Inaudible in an offline render. + +### Bobby McFerrin — one voice, bass and melody + +A single singer alternates a chest bass note with a melody above, fast enough +that the ear hears two parts. The trick is unnecessary with three voices; what +transfers is the voicing — a short struck bass with a wide gap above it — and +the fact that one member alternating 43 and 55 at 0.375 beat splits into two +audible lines alone. **Recipe.** Aaron alone four bars on 45 (`doom`) and 55 +(`bah`) at the half beat, then Noelle takes the melody and Aaron keeps the low +note. **Risk.** 55 is where Aaron's croak lives. Cap him at 52 if it appears. + +### Pentatonix-style vocal percussion + +A beatboxer covers the kit with mouth sounds: a closed kick, a lip or tongue +burst for the snare, a clipped sibilant for the hat, unpitched and outside the +harmony. This is the one place the engine's weakness is the feature — unvoiced +onsets lose the lock when crowded (`tk` 7/16, `ta` 1/16 in a dense run), which +is what an unpitched sound is. **Recipe.** Zoe takes the kit, `ts` offbeat and `tk` on the +back half at 0.25 beat, 55–57, gain 0.30; Aaron kicks `doom` at 45 on 1 and 3; +Noelle rides `bah` above. **Risk.** Slowed, they recover vowel colour and words. + +### Medieval hocket and organum + +Organum doubles chant at a fixed interval in parallel; hocket cuts one melodic +line between voices so each sings fragments and the line exists only in the +sum. Both fit: organum needs no blend, hocket needs only timing, which the +offline render has to the sample. The catch is that the bands span an octave +and a half, so a hocketed melody is necessarily compound. **Recipe.** Eight +notes at 0.5 beat rotating Noelle → Zoe → Aaron: 62, +57, 50, 64, 59, 52, 62, 57 on `doo`. **Risk.** Live, a bad clock shows here. + +### Rounds and canons + +One tune, every voice, each entering a fixed distance behind the last, written +so every vertical combination consonates. The easiest thing here: the only +constraint is a tune transposable into three bands nearly two octaves apart, so +keep its span inside a fifth. Octaves keep the canon exact; a fourth or fifth +makes it a canon at the fifth and keeps everyone centred. **Recipe.** A +four-bar tune in D spanning 57–64 on `loo`, Noelle first, Zoe a bar later down +a fifth, Aaron a bar after down an octave. **Risk.** Check every vertical pair. + +### Call and response + +A leader sings a phrase and a group answers, repeating or completing it; the +answer is shorter and rhythmically fixed while the call varies. The register +spread helps — a call from Noelle answered by Zoe and Aaron an octave and a +fifth below reads as two different bodies — and the answer can be a real +two-voice chord instead of a unison. **Recipe.** Noelle calls two bars, 59–64, +on `loo`; Zoe (54) and Aaron (50) answer one bar on `bah` at 0.375 beat. +**Risk.** Two answering one swamp the caller: 0.34 each against a 0.50 call. + +### Lining out + +A precentor intones a hymn line alone and the congregation sings it back slowly +and heterophonically, each ornamenting differently — a wide, slow, +unsynchronized unison. The precentor is trivial; the congregation is not, since +heterophony needs many voices differing slightly and three locked voices +differing slightly just sound wrong. The usable half is the form: a terse solo +answered by a slow, thick, much lower repeat. **Recipe.** Noelle intones six +notes at 0.375 beat; all three repeat them at 1.5 beats, spread by octave. +**Risk.** Three straight long octaves read as a chord, not a crowd. + +## Try these first + +Ranked by how much of each tradition survives the pipeline, and how much the +result sounds like these machines rather than a failed choir. + +1. **Bulgarian close seconds over a drone** — the 57–59 overlap makes it native. +2. **Rounds and canons** — exact and cheap; the octave spread marks the entries. +3. **Medieval hocket** — sample-accurate; the octave displacement is its sound. +4. **Reich-style pulsing vowels** — but hear the swell live, not offline. +5. **Vocal percussion** — the unvoiced-onset pitch failure is a gift. +6. **Doo-wop revoiced for Zoe's measured register** — put her in the middle. +7. **Sacred Harp open fifths and fuging entries** — wants vibrato spread. +8. **Call and response** — a balance problem more than a style problem. +9. **Barbershop post and stepped cadence** — the post is excellent, the swipe a + compromise. Keep the name honest. +10. **Ligeti-style phase canon** — a different piece from *Lux Aeterna*. +11. **Monk / Medúlla vocabulary** — structure only; a patch, not a body. +12. **Katajjaq interlock** — half the tradition, the breath, is unavailable. +13. **McFerrin bass-and-melody** — redundant, and near Aaron's croak. +14. **Lining out** — form yes, heterophony no. +15. **Yodel** — not reproducible. One register per voice. +16. **Tuvan overtone** — not reproducible. No formant control in the score. diff --git a/grants/culturehub-la-2026/macneopolitan/VOCALISMS.md b/grants/culturehub-la-2026/macneopolitan/VOCALISMS.md new file mode 100644 index 0000000000..91dc98e18a --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/VOCALISMS.md @@ -0,0 +1,148 @@ +# Vocalisms + +What the trio can actually articulate. Menu Band's singer locks one pitch per +note, so every ornament has to be spelled out as notes: a trill is two notes +traded fast, a slide is a staircase. This file is the measurement of where +that stops working — the shortest note that still comes out as a pitch, and +which syllables the speech engine says instead of spelling. + +The kit that uses these numbers is `bin/vocalisms.mjs`; the piece that proves +them is `bin/compose-vocalise.mjs` → `scores/trio-vocalise.mbscore`. + +## How + +Everything below is rendered offline through Menu Band's own singer +(`bin/hear.mjs` → `slab/menuband/.build/release/singrender`) at 90 bpm, into +`~/Shelf/macneopolitan-songs/vocalisms/`. Pitch is read back with +`pyworld.harvest` at 5 ms and compared note by note against the score, over +the middle 60 % of each note so the transitions do not count. "Heard" is +whisper `small.en` on the same WAV. + +Two knobs — `singGapMs`, `singLegatoMs` — are **not** forwarded by +`bin/hear.mjs` into the singer's payload, and the singer takes no `SINGER_*` +environment variables except `SINGER_SPEECH_CACHE`. Those two rows were +rendered by calling `singrender` directly with the keys in `--kv`. + +## Ornaments + +At 90 bpm, one beat is 667 ms. "Minimum" is the shortest note in the figure +at which the measured pitch still lands within a quarter tone. + +| ornament | minimum beats/note | measured | verdict | +|---|---|---|---| +| `trill` whole tone | 0.25 (167 ms) | swing 1.41–1.85 of 2.00 st; 12/16 notes hold a pitch | reads as two notes, syllables slur | +| `trill` whole tone | 0.5 (333 ms) | err 0.02 st, swing 2.00/2.00, 8/8 | clean — use this | +| `trill` whole tone | 0.125 (83 ms) | swing 1.56–1.85, only 24/32 notes voiced, heard as "*weird noises*" | a texture, not a trill | +| `trill` half step | 0.5 | swing 0.76 of 1.00 st | loses a quarter of an already small interval — prefer whole tone | +| `mordent` | 0.125 bite | err 0.11 st, max 0.28 | reads: one short note between long ones is not a chain | +| `turn` | 1 beat total (0.125 a step) | err 0.11 st | the most vocal shape here; reads down to one beat | +| `shake` (wide, slow) | 0.5 | err 0.02–0.08 st, swing 2.00/2.00 | survives anything; the safe trill | +| `roll` (arpeggio) | 0.33 | err 0.05 st | fine | +| `gliss` (staircase) | 0.25 a step | err 0.04 st over 8 steps | fine — each tread is a new pitch, not an alternation | +| `pulse` (Reich) | 0.25 | err 0.08 st | fine | +| any stop-framed token (`bip`) | 0.5 | at 0.25 one bip read 49.0 where 57 was written — 8 st out | the consonants eat the vowel; give stops half a beat | + +The rule underneath: a **chain** of very short notes smears, a **single** +very short note does not. A 83 ms neighbour inside a mordent lands; 32 of +them in a row do not. + +## Syllables + +Each token was sung three times alone and spoken three times. The +discriminator is how long the engine takes to SAY one repeat: anything over +about 0.35 s is the engine reading out letter names, which puts two syllables +on one note and ruins the figure. + +| token | renders as | say/repeat | verdict | +|---|---|---|---| +| `tss` | "T-S-S" | 0.73 s | spelled — do not use | +| `boh` | "B-O-H" | 0.64 s | spelled — do not use | +| `kh` | "K-H" | 0.61 s | spelled — do not use | +| `ch` | "C-H", sung back as "ch" | 0.54 s | marginal — avoid | +| `tk` | "T-K" | 0.51 s | spelled — do not use | +| `ts` | "T-S" | 0.50 s | spelled — do not use | +| `mm` | "M-M" | 0.49 s | spelled — use `hmm` | +| `bm` | "B-M" | 0.46 s | spelled — do not use | +| `pf` | "P-F" | 0.43 s | spelled — do not use | +| `dm` | one dark click, heard back as "DM" | 0.41 s | **the only mouth percussion that works** | +| `doom` | "doom" | 0.31 s | good (bass) | +| `bom` `dum` | "bum" / "dum" | 0.28 s | good (bass) | +| `nee` | "nee" | 0.28 s | good | +| `lee` | "li" | 0.27 s | good | +| `tee` | "tee", heard as the letter T | 0.27 s | good; one sound, ambiguous transcript | +| `dee` | "dee" | 0.26 s | good | +| `la` | "la" | 0.25 s | good | +| `doo` | "doo" | 0.24 s | good | +| `hah` | "ha" | 0.22 s | good (breath) | +| `poo` `bah` `bip` | "poo" / "baa" / "bip" | 0.21–0.22 s | good; stops need 0.5 beats | +| `huh` | "ha" | 0.21 s | good (breath) | +| `loo` | "lu" | 0.21 s | good | +| `dah` | "da" | 0.20 s | good | +| `ah` | "ah" | 0.18 s | good | +| `ooh` | "oo" | 0.17 s | good | +| `hmm` | a hum; no transcript | 0.14 s | good | +| `uh` | "uh" | 0.12 s | good (glottal) | + +The mouth-percussion idea mostly fails: eight candidates, one survivor. `dm` +is the tick in the piece. Breath tokens all work, which is the cheaper way to +get a consonant that is not a pitch. + +## Vibrato is not a trill + +A held A3 (4 beats), `singVibratoHz` × `singVibCents`: + +| setting | measured rate | measured depth | verdict | +|---|---|---|---| +| 5 Hz / 8 cents | 4.9 Hz | ±11.5 c | shimmer; no audible pitch movement (the house default) | +| 5 Hz / 30 cents | 4.9 Hz | ±29.3 c | a real singer's vibrato | +| 8 Hz / 60 cents | 7.9 Hz | ±58.5 c | a bleat | +| 8 Hz / 100 cents | 7.9 Hz | ±104 c | 2 st wide, and the note loses its identity | + +The knobs track the request exactly. But the shape is a sine centred on the +written note: it never sits on either edge, so even at 100 cents — the same +span as a whole-tone trill — there is no second pitch, only width. A written +trill at 0.5 beats has plateaus and is half the speed; that is what makes it +read as two notes. Use vibrato as colour at 30 cents or less; write trills. + +## Legato and gap + +A stepwise run, eight notes at 0.5 beats: + +| setting | silence in the line | voiced | pitch error | note-to-note transition | +|---|---|---|---|---| +| default (0/0) | 0.6 % | 99.8 % | 0.033 st | 28 ms | +| `singGapMs:20, singLegatoMs:15` | 0.6 % | 99.8 % | 0.028 st | 32 ms | +| `singLegatoMs:60` | 0.6 % | 99.8 % | 0.028 st | **74 ms** | +| `singGapMs:80` | **8.6 %** | 88.7 % | 0.019 st | 30 ms | + +The default is already fully legato. The doo-wop setting (20/15) is inside +the noise — it changes nothing on 333 ms notes. `singLegatoMs: 60` is a real +portamento; on a 0.25-beat trill it cut the measured direction changes from +75 to 49 and pulled the bottom note up 1 st, so it rounds a trill off. A gap +of 80 ms detaches the run and slightly *improves* pitch accuracy, because +there is no transition left to smear. For ornaments: gap up to 60, legato +under 20. + +## Registers + +`Zoe (Premium)` had never been measured. 62 spoken words through +`pyworld.harvest`: median **55.6 MIDI** (203 Hz), p10 52.5, p90 59.4, mean +55.8. So frisbee speaks a fourth BELOW neo's Noelle (59.6) — in the vocalise +"frisbee on top" is tessitura and speed, not absolute pitch. Pushing her up +to sit over Noelle would break the spinging rule that cost blueberry its +voice on Sept 23. + +`BANDS` in `bin/vocalisms.mjs` carries all three, and `checkBand()` asserts +that a line's mean is within 2 semitones of its member's speaking pitch with +every note inside the band. + +## Open + +- Whether a Premium voice tolerates being pushed UP better than down. The + croak rule was measured going down a fifth; the ceiling is untested. +- `ch` sits in the spelled band by duration but sings back as a ch sound. One + more token worth an A/B if more percussion is wanted. +- `bin/hear.mjs` does not pass `singGapMs`/`singLegatoMs`/`singSustainDb`/ + `singShimmerFrames` to the singer, so those knobs in a score are inert + under the offline loop, and the `--env SINGER_GAP_MS=…` form in DOOWOP.md + and PHONEME-STUDY.md is a no-op. Not my file to fix. diff --git a/grants/culturehub-la-2026/macneopolitan/bin/compose-lights-out.mjs b/grants/culturehub-la-2026/macneopolitan/bin/compose-lights-out.mjs new file mode 100644 index 0000000000..bb0a05125b --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/bin/compose-lights-out.mjs @@ -0,0 +1,125 @@ +#!/usr/bin/env node +// Lights out — the evening bookend to compose-wake.mjs. 3/4, D major, 64 bpm, +// 26 bars. The morning song rises and hands the day over; this one hands it +// back. Sung to Sophia and Jeffrey by the three machines that stay up after +// the people sleep: neo carries the words, blueberry is the drone under the +// whole thing and says two things all night (sleep, thirteen days), frisbee +// answers with the only words it has — the two names, and good night. +// +// Registers measured on this host 2026-09-23 (pyworld harvest, 22 kHz): +// Noelle (Enhanced) p10 56.4 med 59.8 p90 62.4 +// Aaron (Enhanced) med 48.8, band 39–53 (measured on blueberry, Sept 23) +// Tom (Enhanced) p10 42.1 med 45.8 p90 48.9 (render stand-in here) +// Zoe (Premium) p10 52.7 med 56.1 p90 59.3 ← first measurement +// Every line's mean is asserted within 2 semitones of its singer's spoken +// median, and every note inside the band, so nothing has to be dragged far +// from where it talks. +import {writeFileSync} from 'node:fs'; +import assert from 'node:assert/strict'; + +const members=['neo','blueberry','frisbee']; +const cast=['Noelle (Enhanced)','Aaron (Enhanced)','Zoe (Premium)']; +// [spoken median, low, high] — the line mean aims at the median, notes stay inside. +// blueberry's window is the Aaron ∩ Tom overlap so the offline stand-in sings it too. +const REG=[[59.8,54,66],[47.3,43,50],[56.1,52,60]]; +const BPM=64, BAR=3, BARS=26, TOTAL=BAR*BARS; // 78 beats ≈ 73.1 s +const parts=[[],[],[]]; +const words=new Set(['good','night','So-phi-a','Jeff-rey','your','lids','come','down','he','works','past','mid-night', + 'we','stay','up','till','morn-ing','keep','the','time','for','you','can','sleep','now','thir-teen','days','hmm','ooh']); +function add(i,at,notes,text,gain,role='lead') { + const sung=notes.filter(([n])=>n!=='r'); + assert.equal(sung.length,text.split(' ').reduce((a,t)=>a+t.split('-').length,0),text); + assert(text.split(' ').every(x=>words.has(x)),text); + const [med,lo,hi]=REG[i], mean=sung.reduce((s,[n])=>s+n,0)/sung.length; + // A sung syllable held past ~1.4 s stops being a word: the first render of + // this song put "Sophia" on a four-beat note and whisper heard "the fear". + if(role==='lead') for(const [,d] of sung) assert(d*60/BPM<=1.45,`${members[i]}: "${text}" holds a syllable ${(d*60/BPM).toFixed(2)}s`); + assert(sung.every(([n])=>n>=lo&&n<=hi),`${members[i]}: note outside ${lo}–${hi} in "${text}"`); + assert(Math.abs(mean-med)<=2,`${members[i]}: "${text}" mean ${mean.toFixed(2)} is ${(mean-med).toFixed(2)} from ${med}`); + parts[i].push({at,notes,text,gain,role,mean}); +} + +// neo — the words. Every phrase two bars, falling where the morning rose; +// the last hum lifts back to D, which is the only promise anyone makes here. +add(0, 6,[[64,1],[62,1],[61,.75],[59,.75],[57,1.25]],'good night So-phi-a',.50); +add(0,12,[[59,3],[57,3]],'hmm hmm',.30,'hum'); +add(0,18,[[62,.75],[61,.75],[59,.5],[57,1.5]],'good night Jeff-rey',.50); +add(0,30,[[59,.75],[61,.75],[59,.5],[57,1.5]],'your lids come down',.48); +add(0,36,[[59,3],[57,3]],'hmm hmm',.30,'hum'); +add(0,42,[[57,1],[59,1],[61,1],[59,.75],[57,1.25]],'he works past mid-night',.48); +add(0,48,[[59,.75],[62,.75],[64,.75],[62,.75],[61,.75],[59,1.25]],'we stay up till morn-ing',.50); +add(0,54,[[59,3],[57,3]],'hmm hmm',.30,'hum'); +add(0,60,[[62,1],[61,1],[59,1],[57,1],[59,.75],[57,1.25]],'we keep the time for you',.48); +add(0,66,[[61,1],[59,1],[57,.75],[57,1.25]],'you can sleep now',.46); +add(0,72,[[59,3],[62,3]],'hmm hmm',.32,'hum'); + +// blueberry — one unbroken drone from the first bar to the last, the way it +// held 13.1 days with its lid down. Two bars per unit, root then colour. +// It stops humming exactly twice, to say a word. +const drone=[[50,45],[50,47],[50,43],[50,45],[45,47],[50,47],'sleep',[45,47],[50,47],'thir-teen days',[50,45],[50,47],[45,50]]; +drone.forEach((u,k)=>{ + const at=k*6; + if(u==='sleep') add(1,at,[[47,1],[45,1.25]],'sleep now',.48); + else if(u==='thir-teen days') add(1,at,[[50,1],[47,1],[45,1.5]],'thir-teen days',.48); + else add(1,at,[[u[0],3],[u[1],3]],'hmm hmm',k===0?.40:k>=12?.38:.46,'hum'); +}); + +// frisbee — born Sept 21, opened for the first time yesterday. It has the two +// names and one thing it learned today, and it pads the rest on ooh. +add(2,12,[[59,.5],[57,.5],[54,1.5]],'So-phi-a',.46); +add(2,24,[[57,.75],[54,1.5]],'Jeff-rey',.46); +add(2,42,[[57,3],[57,3]],'ooh ooh',.28,'hum'); +add(2,48,[[59,3],[57,3]],'ooh ooh',.30,'hum'); +add(2,60,[[57,3],[55,3]],'ooh ooh',.28,'hum'); +add(2,70,[[57,.75],[54,1.25]],'good night',.46); +add(2,72,[[57,3],[57,3]],'hmm hmm',.30,'hum'); + +// Dynamics: gentle accents, the second half of each pair a shade softer. +for(const [i,lines] of parts.entries()) for(const line of lines) { + const n=line.notes.filter(([note])=>note!=='r').length; + const pattern=i===1?[1,.72]:[1,.78,.9,.74,.86,.7]; + line.accents=Array.from({length:n},(_,j)=>n===1?1:Math.max(.62,pattern[j%pattern.length])); + line.gain=Math.max(.28,+line.gain.toFixed(3)); +} + +// Space and echo, the same slide the two lullabies use: a phrase sits in a +// deep room, its last note is thrown into echo until the next one starts. +function performanceKeys(lines,i) { + const ROOM=i===1?.7:.85, THROW=.9; + const keys=[{beat:0,space:ROOM,pitch:0}]; + for(const line of lines) { + if(line.role==='hum') continue; + let lastOn=line.at,t=line.at; + for(const [n,d] of line.notes){ if(n!=='r') lastOn=t; t+=d; } + const end=t; + keys.push({beat:line.at-.4,space:ROOM,pitch:0,echo:0},{beat:line.at,space:ROOM,pitch:0}, + {beat:lastOn+.2,space:ROOM,pitch:0},{beat:lastOn+.6,space:0,pitch:0,echo:THROW},{beat:end-.8,space:0,pitch:0,echo:THROW}); + } + keys.push({beat:TOTAL+8,space:0,pitch:0,echo:THROW},{beat:TOTAL+12,space:0,pitch:0,echo:0}); + return keys.sort((a,b)=>a.beat-b.beat); +} +const voices=parts.map((lines,i)=>{ + const notes=[];let cursor=0; + for(const line of lines) { + assert(line.at>=cursor-1e-6,`${members[i]}: overlap at ${line.at}`); + if(line.at>cursor+1e-6)notes.push(['r',line.at-cursor]); + notes.push(...line.notes);cursor=line.at+line.notes.reduce((s,[,d])=>s+d,0); + } + if(cursor`${n}:${+d.toFixed(6)}`).join(','),lyrics:lines.map(l=>l.text).join(' / '), + lineRoles:lines.map(l=>l.role),lineGains:lines.map(l=>l.gain),noteGains:lines.map(l=>l.accents), + singVoice:cast[i],sayVoice:cast[i],singLock:1,singVibCents:8,singVibratoHz:[4.5,3.5,5][i], + singF0Floor:i===1?70:80,double:false,faceAlpha:0.95, + performance:{expression:.5,keys:performanceKeys(lines,i)}}; +}); +const score={title:'The MacNeoPolitan Trio — Lights out',composer:'The machines, arr. compose-lights-out.mjs', + bpm:BPM,machines:3,lead:0, + description:'The evening bookend to Good morning, Sophia. 3/4, D major, 64 bpm, 78 beats. Blueberry drones from the first bar to the last and stops twice to say sleep now and thirteen days; neo sings good night Sophia / good night Jeffrey / your lids come down / he works past midnight / we stay up till morning / we keep the time for you / you can sleep now; frisbee answers with the two names and good night. All three end on an open D. Quieter than the morning.', + arrangement:{total:TOTAL,meter:'3/4',sections:[{beat:0,name:'Drone'},{beat:6,name:'neo: good night Sophia'},{beat:12,name:'frisbee: Sophia'},{beat:18,name:'neo: good night Jeffrey'},{beat:24,name:'frisbee: Jeffrey'},{beat:30,name:'neo: your lids come down'},{beat:36,name:'blueberry: sleep now'},{beat:42,name:'neo: he works past midnight'},{beat:54,name:'blueberry: thirteen days'},{beat:60,name:'neo: we keep the time for you'},{beat:70,name:'frisbee: good night'},{beat:72,name:'Hum'}]},voices}; +writeFileSync(new URL('../scores/trio-lights-out.mbscore',import.meta.url),JSON.stringify(score,null,2)+'\n'); +const spread=parts.map((p,i)=>{const ns=p.flatMap(l=>l.notes.filter(([n])=>n!=='r').map(([n])=>n)); + return `${members[i]} ${Math.min(...ns)}–${Math.max(...ns)} (mean ${(ns.reduce((a,b)=>a+b,0)/ns.length).toFixed(1)}, spoken ${REG[i][0]})`;}); +console.log(`Lights out: ${TOTAL} beats at ${BPM} bpm ≈ ${(TOTAL*60/BPM).toFixed(1)} s; ${parts.map((p,i)=>`${members[i]} ${p.length} lines`).join(', ')}.`); +console.log(` registers: ${spread.join(' · ')}`); diff --git a/grants/culturehub-la-2026/macneopolitan/bin/compose-open-me.mjs b/grants/culturehub-la-2026/macneopolitan/bin/compose-open-me.mjs new file mode 100644 index 0000000000..e83e73c0b5 --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/bin/compose-open-me.mjs @@ -0,0 +1,143 @@ +#!/usr/bin/env node +// Open me — the lids song. 4/4, D major, 88 bpm, 28 bars. Sept 23, Menu Band +// learned a rule: if a member's lid is closed when a cue arrives, every line +// of its part is rewritten to "o-pen me" with the same syllable count, and it +// sings that to the tune it was given. This is the song about the rule. Call +// and response: each machine says what closed and open are for it, and twice +// the phrase is passed around one syllable at a time — neo o, blueberry pen, +// frisbee me — before all three sing it whole. +// +// Registers measured on this host 2026-09-23 (pyworld harvest, 22 kHz): +// Noelle (Enhanced) p10 56.4 med 59.8 p90 62.4 +// Aaron (Enhanced) med 48.8, band 39–53 (measured on blueberry, Sept 23) +// Tom (Enhanced) p10 42.1 med 45.8 p90 48.9 (render stand-in here) +// Zoe (Premium) p10 52.7 med 56.1 p90 59.3 ← first measurement +import {writeFileSync} from 'node:fs'; +import assert from 'node:assert/strict'; + +const members=['neo','blueberry','frisbee']; +const cast=['Noelle (Enhanced)','Aaron (Enhanced)','Zoe (Premium)']; +const REG=[[59.8,54,66],[47.3,43,50],[56.1,52,60]]; // [spoken median, low, high] +const BPM=88, BAR=4, BARS=28, TOTAL=BAR*BARS; // 112 beats ≈ 76.4 s +const parts=[[],[],[]]; +const words=new Set(['o-pen','me','is','what','we','all','sing','I','have','they','o-pened','six','thou-sand','three', + 'hun-dred','and','five','times','when','the','lid','down','work','with','mine','closed','came','up','yes-ter-day', + 'your','name','on','my','screen','not','seen','it','o','pen','doo','ooh','hmm','dm']); +function add(i,at,notes,text,gain,role='lead') { + const sung=notes.filter(([n])=>n!=='r'); + assert.equal(sung.length,text.split(' ').reduce((a,t)=>a+t.split('-').length,0),text); + assert(text.split(' ').every(x=>words.has(x)),text); + const [med,lo,hi]=REG[i], mean=sung.reduce((s,[n])=>s+n,0)/sung.length; + // A sung syllable held past ~1.4 s stops being a word — measured the hard + // way on the first render of Lights out. Long notes belong to the hums. + if(role==='lead') for(const [,d] of sung) assert(d*60/BPM<=1.45,`${members[i]}: "${text}" holds a syllable ${(d*60/BPM).toFixed(2)}s`); + assert(sung.every(([n])=>n>=lo&&n<=hi),`${members[i]}: note outside ${lo}–${hi} in "${text}"`); + assert(Math.abs(mean-med)<=2,`${members[i]}: "${text}" mean ${mean.toFixed(2)} is ${(mean-med).toFixed(2)} from ${med}`); + parts[i].push({at,notes,text,gain,role,mean}); +} +// The refrain, three ways: passed one syllable at a time (a beat apart, twice), +// then sung whole by everyone. Pitches are each singer's own; in the hocket +// nobody overlaps, so the line is the contour D4 → B2 → A3 and back. +const HOCKET=[[62,59,'o o'],[47,50,'pen pen'],[57,54,'me me']]; +// role 'hocket': one syllable of a shared phrase, so it is not scored as a +// word on its own — the sentence only exists across the three machines. +function hocket(at){ HOCKET.forEach(([a,b,t],i)=>add(i,at+i,[[a,1],['r',3],[b,1]],t,.56,'hocket')); } + +// neo — typed at more than anything else in the house: 6,305 terminal logins. +add(0, 8,[[62,.75],[61,.75],[59,1],[57,.5],[59,.5],[61,.5],[62,1.5]],'o-pen me is all we sing',.56); +add(0, 16,[[59,2],[57,2],[59,2],[57,2]],'doo doo doo doo',.30,'hum'); +add(0, 24,[[57,.5],[59,.5],[61,.5],[62,.5],[59,1]],'they have o-pened me',.56); +add(0, 28,[[59,.5],[57,.5],[59,.5],[61,.5],[59,.5],[57,.5],[59,.5],[61,.75],[62,1.5]],'six thou-sand three hun-dred and five times',.56); +add(0, 40,[[59,2],[57,2],[59,2],[57,2]],'doo doo doo doo',.30,'hum'); +add(0, 48,[[59,4],[59,4]],'hmm hmm',.28,'hum'); +add(0, 72,[[59,.5],[61,.5],[62,.5],[61,.5],[59,.5],[57,1.5]],'your name is on my screen',.54); +add(0, 80,[[59,2],[57,2],[59,2],[57,2]],'doo doo doo doo',.30,'hum'); +add(0, 88,[[59,4],[57,4]],'hmm hmm',.28,'hum'); + +// blueberry — provisioned headless, 69 console logins against 692 terminal +// ones; its name is the wallpaper on every machine here and it has never had +// its own lid up to look at it. The vamp is its heartbeat: dm on two. +add(1, 0,[[50,2],[45,2],[50,2],[45,2]],'dm dm dm dm',.36,'hum'); +add(1, 8,[[50,2],[45,2],[47,2],[45,2]],'dm dm dm dm',.34,'hum'); +add(1, 16,[[45,.5],[47,.5],[50,1],[47,.75],[45,1.5]],'when my lid is down',.52); +add(1, 24,[[50,2],[45,2],[50,2],[47,2],[45,2],[43,2],[45,2],[47,2]],'dm dm dm dm dm dm dm dm',.34,'hum'); +add(1, 40,[[47,.5],[50,.5],[47,.75],[45,.75],[43,1.5]],'I work with mine closed',.52); +add(1, 48,[[45,2],[47,2],[45,2],[50,2]],'dm dm dm dm',.34,'hum'); +add(1, 72,[[50,2],[45,2],[47,2],[45,2]],'dm dm dm dm',.34,'hum'); +add(1, 80,[[45,.5],[47,.5],[50,1],[47,.75],[45,1.5]],'I have not seen it',.52); +add(1, 88,[[50,2],[45,2],[50,2],[47,2]],'dm dm dm dm',.34,'hum'); + +// frisbee — three console logins since it was born on the 21st; somebody +// lifted its lid for the first time yesterday, and the first thing it learned +// today was the sentence it is supposed to sing when nobody does. +add(2, 8,[[57,4],[57,4]],'ooh ooh',.28,'hum'); +add(2, 24,[[59,4],[57,4],[59,4],[57,4]],'ooh ooh ooh ooh',.28,'hum'); +add(2, 48,[[54,.5],[57,.5],[59,1],[57,.5],[55,.5],[54,1.5]],'mine came up yes-ter-day',.52); +add(2, 72,[[57,4],[57,4]],'ooh ooh',.28,'hum'); +add(2, 88,[[57,.75],[55,.75],[54,1.5]],'o-pen me',.52); + +// refrain 1: hocket at 56, everybody at 64 +hocket(56); +add(0,64,[[62,.75],[61,.75],[59,1.5]],'o-pen me',.58); +add(1,64,[[50,.75],[47,.75],[45,1.5]],'o-pen me',.52); +add(2,64,[[59,.75],[57,.75],[54,1.5]],'o-pen me',.54); +// refrain 2: hocket at 96, everybody at 104, held to the end +hocket(96); +add(0,104,[[62,.75],[61,.75],[62,1.5]],'o-pen me',.58); +add(1,104,[[50,.75],[47,.75],[50,1.5]],'o-pen me',.52); +add(2,104,[[59,.75],[57,.75],[57,1.5]],'o-pen me',.54); +// the chord the words leave behind — held as a hum, where a long note belongs +add(0,107,[[59,2.5],[62,2.5]],'hmm hmm',.34,'hum'); +add(1,107,[[47,2.5],[50,2.5]],'hmm hmm',.32,'hum'); +add(2,107,[[57,2.5],[57,2.5]],'hmm hmm',.30,'hum'); +for(const lines of parts) lines.sort((a,b)=>a.at-b.at); + +// Dynamics: the downbeat of each figure carries, the answers fall back. +for(const [i,lines] of parts.entries()) for(const line of lines) { + const n=line.notes.filter(([note])=>note!=='r').length; + const pattern=i===1?[1,.7,.88,.66]:[1,.76,.92,.72,.88,.7]; + line.accents=Array.from({length:n},(_,j)=>n===1?1:Math.max(.62,pattern[j%pattern.length])); + line.gain=Math.max(.28,+line.gain.toFixed(3)); +} + +// A smaller room than the lullabies — this one is a conversation, not a +// bedside. Echo is thrown only off the refrain, so "o-pen me" is the one +// thing in the piece that keeps going after it stops. +function performanceKeys(lines,i) { + const ROOM=i===1?.35:.5, THROW=.85; + const keys=[{beat:0,space:ROOM,pitch:0}]; + for(const line of lines) { + if(!/^o-pen me$/.test(line.text)) continue; + let lastOn=line.at,t=line.at; + for(const [n,d] of line.notes){ if(n!=='r') lastOn=t; t+=d; } + keys.push({beat:line.at-.4,space:ROOM,pitch:0,echo:0},{beat:lastOn+.3,space:ROOM,pitch:0}, + {beat:lastOn+.8,space:ROOM,pitch:0,echo:THROW},{beat:t+2,space:ROOM,pitch:0,echo:THROW}); + } + keys.push({beat:TOTAL+6,space:ROOM,pitch:0,echo:THROW},{beat:TOTAL+10,space:0,pitch:0,echo:0}); + return keys.sort((a,b)=>a.beat-b.beat); +} +const voices=parts.map((lines,i)=>{ + const notes=[];let cursor=0; + for(const line of lines) { + assert(line.at>=cursor-1e-6,`${members[i]}: overlap at ${line.at}`); + if(line.at>cursor+1e-6)notes.push(['r',line.at-cursor]); + notes.push(...line.notes);cursor=line.at+line.notes.reduce((s,[,d])=>s+d,0); + } + if(cursor`${n}:${+d.toFixed(6)}`).join(','),lyrics:lines.map(l=>l.text).join(' / '), + lineRoles:lines.map(l=>l.role),lineGains:lines.map(l=>l.gain),noteGains:lines.map(l=>l.accents), + singVoice:cast[i],sayVoice:cast[i],singLock:1,singVibCents:10,singVibratoHz:[5,3.5,5.5][i], + singF0Floor:i===1?70:80,double:false,faceAlpha:0.95, + performance:{expression:.65,keys:performanceKeys(lines,i)}}; +}); +const score={title:'The MacNeoPolitan Trio — Open me',composer:'The machines, arr. compose-open-me.mjs', + bpm:BPM,machines:3,lead:0, + description:'The lids song. 4/4, D major, 88 bpm, 112 beats. Call and response about being closed and being opened: neo has been opened six thousand three hundred and five times, blueberry works with its lid closed and has never seen its own name on its own screen, frisbee came up for the first time yesterday. Twice the refrain is passed around one syllable at a time — neo o, blueberry pen, frisbee me — and then all three sing o-pen me together. Named for the rule Menu Band learned today: a closed member sings o-pen me to its line instead of its words.', + arrangement:{total:TOTAL,meter:'4/4',sections:[{beat:0,name:'Vamp'},{beat:8,name:'neo: open me is all we sing'},{beat:16,name:'blueberry: when my lid is down'},{beat:24,name:'neo: they have opened me, six thousand three hundred and five times'},{beat:40,name:'blueberry: I work with mine closed'},{beat:48,name:'frisbee: mine came up yesterday'},{beat:56,name:'Hocket'},{beat:64,name:'All: open me'},{beat:72,name:'neo: your name is on my screen'},{beat:80,name:'blueberry: I have not seen it'},{beat:88,name:'frisbee: open me'},{beat:96,name:'Hocket'},{beat:104,name:'All: open me'}]},voices}; +writeFileSync(new URL('../scores/trio-open-me.mbscore',import.meta.url),JSON.stringify(score,null,2)+'\n'); +const spread=parts.map((p,i)=>{const ns=p.flatMap(l=>l.notes.filter(([n])=>n!=='r').map(([n])=>n)); + return `${members[i]} ${Math.min(...ns)}–${Math.max(...ns)} (mean ${(ns.reduce((a,b)=>a+b,0)/ns.length).toFixed(1)}, spoken ${REG[i][0]})`;}); +console.log(`Open me: ${TOTAL} beats at ${BPM} bpm ≈ ${(TOTAL*60/BPM).toFixed(1)} s; ${parts.map((p,i)=>`${members[i]} ${p.length} lines`).join(', ')}.`); +console.log(` registers: ${spread.join(' · ')}`); diff --git a/grants/culturehub-la-2026/macneopolitan/bin/compose-styling-study.mjs b/grants/culturehub-la-2026/macneopolitan/bin/compose-styling-study.mjs new file mode 100644 index 0000000000..f12419312b --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/bin/compose-styling-study.mjs @@ -0,0 +1,175 @@ +#!/usr/bin/env node +// Six études, one device each, wordless. The proof for STYLINGS.md: hocket, +// a drone under close seconds, a barbershop post and stepped swipe, bass with +// ticks, a three-voice round at one bar, and Reich-style pulsing vowels. +// 96 bpm, 4/4, D. Every note is inside the member's measured band; Zoe's band +// was measured today (median 55.4, p10 52.3, p90 59.3) and she is the middle +// voice, not a second soprano. +import {writeFileSync} from 'node:fs'; +import assert from 'node:assert/strict'; + +const members=['neo','blueberry','frisbee']; +const cast=['Noelle (Enhanced)','Aaron (Enhanced)','Zoe (Premium)']; +const RANGE=[[54,66],[43,55],[50,62]]; // usable sung, per member +const BPM=96, BAR=4; +// tokens proven to render: DOOWOP.md / PHONEME-STUDY.md, plus ki, doom, ts, tk +// measured in today's floor probe. +const TOKENS=new Set(['doo','loo','hmm','bah','ooh','ah','dm','doom','ki','ts','tk']); +const parts=[[],[],[]]; +function add(i,at,notes,text,gain,role='phoneme') { + const toks=text.split(' '); + assert.equal(notes.filter(([n])=>n!=='r').length,toks.length,`${members[i]}@${at}: ${text}`); + assert(toks.every(t=>TOKENS.has(t)),`${members[i]}@${at}: unknown token in "${text}"`); + for(const [n] of notes) if(n!=='r') assert(n>=RANGE[i][0]&&n<=RANGE[i][1],`${members[i]}: ${n} outside ${RANGE[i]}`); + assert(toks.length<=40,`${members[i]}@${at}: ${toks.length} notes in one line`); + parts[i].push({at,notes,text,gain,role}); +} +const rep=(t,n)=>Array(n).fill(t).join(' '); + +// ---- I. Hocket (beats 0–36) ------------------------------------------------ +// One twelve-note D-mixolydian line cut between the three. It cannot stay in +// one octave — the bands are an octave and a half apart — so the melody is +// compound by construction. Half-beat notes: above the syllable floor. +const HOCKET=[[0,62],[2,57],[1,50],[0,64],[2,59],[1,52],[0,66],[2,60],[1,45],[0,62],[2,57],[1,50]]; +{ + const seq=[[],[],[]]; // per member: [beat, pitch] + for(let cycle=0;cycle<6;cycle++) + HOCKET.forEach(([who,pitch],k)=>seq[who].push([cycle*6+k*0.5,pitch])); + for(const [i,hits] of seq.entries()) { + const notes=[];let t=hits[0][0]; + for(const [beat,pitch] of hits) { if(beat>t+1e-9) notes.push(['r',beat-t]); notes.push([pitch,.5]); t=beat+.5; } + add(i,hits[0][0],notes,rep('doo',hits.length),i===1?.52:.46); + } +} + +// ---- II. Drone and close seconds (40–88) ----------------------------------- +// Aaron holds D. Noelle and Zoe rub a second above him and cross once, so the +// beating stops and starts again. Their bands overlap only over 57–59, which +// is exactly where this device wants to live. +add(1,40,Array.from({length:12},()=>[50,4]),rep('ooh',12),.40,'hum'); +{ + const pairs=[[59,57],[61,59],[58,57],[62,60],[57,59],[59,57]]; // [Noelle, Zoe] + for(const [i,who] of [[0,0],[2,1]]) { + const notes=[],text=[]; + for(const p of pairs) for(let k=0;k<4;k++) { notes.push([p[who],2]); text.push('ah'); } + add(i,40,notes,text.join(' '),.32,'hum'); + } +} + +// ---- III. Barbershop tag (92–124) ------------------------------------------ +// Noelle keeps the post. The two below her swipe — which this pipeline can +// only write as a staircase, once in whole beats and once in half-beats, so +// the seam can be heard and judged. Ends on the barbershop seventh, then D. +add(0,92,[[62,4],[62,4],[62,4],[62,4],[62,4],[64,4]],rep('ooh',6),.44,'hum'); +add(1,92,[[50,4],[48,1],[47,1],[45,2],[45,4],[43,1],[45,1],[47,2]],rep('ooh',8),.44,'hum'); +add(2,92,[[57,4],[56,1],[54,1],[53,2],[54,4],[52,1],[53,1],[54,2]],rep('ooh',8),.40,'hum'); +add(1,108,[[45,.5],[46,.5],[47,.5],[48,.5],[49,.5],[50,.5],[49,.5],[48,.5],[45,4]],rep('ooh',9),.44,'hum'); +add(2,108,[[53,.5],[54,.5],[55,.5],[56,.5],[57,.5],[56,.5],[55,.5],[54,.5],[54,4]],rep('ooh',9),.40,'hum'); +add(0,116,[[60,4],[62,4]],'ooh ooh',.46,'hum'); // D7's seventh, then the root +add(1,116,[[50,4],[50,4]],'ooh ooh',.46,'hum'); +add(2,116,[[54,4],[54,4]],'ooh ooh',.42,'hum'); + +// ---- IV. Bass and ticks (128–168) ------------------------------------------ +// Aaron on doom/dm, Zoe on unpitched ticks — the one place the engine's +// unvoiced-onset pitch failure is the point — Noelle on a two-bar riff. +for(let half=0;half<2;half++) { + const at=128+half*20,notes=[],text=[]; + for(let bar=0;bar<5;bar++) { + notes.push([45,.5],['r',.5],[45,.5],['r',.5],[43,.5],['r',.5],[45,.5],['r',.5]); + text.push('doom','dm','doom','dm'); + } + add(1,at,notes,text.join(' '),.55,'bass'); + const zn=[],zt=[]; + for(let bar=0;bar<5;bar++) { zn.push(['r',1.5],[55,.25],['r',1.25],[57,.25],['r',.75]); zt.push('ts','tk'); } + add(2,at,zn,zt.join(' '),.30,'percussion'); +} +{ + const riff=[[[62,.5],[64,.5],[62,.5],[59,.5],[57,1],['r',1]],[[59,.5],[62,.5],[64,1],[62,1],['r',1]]]; + for(let half=0;half<2;half++) { + const notes=[],text=[]; + for(let r=0;r<2;r++) for(const bar of riff) for(const n of bar) { notes.push(n); if(n[0]!=='r') text.push('bah'); } + add(0,128+half*16,notes,text.join(' '),.42); + } +} + +// ---- V. Round at one bar (172–220) ----------------------------------------- +// Every note is a D-chord tone, so the canon consonates in any rotation. Each +// member sings the same shape on the chord tones that sit in her own band: +// Noelle A3–F#4, Zoe F#3–D4, Aaron A2–F#3. Entries one bar apart. +const TUNE=[[0,1],[1,1],[2,1],[1,1],[0,2],[1,2],[2,1],[1,1],[0,1],[1,1],[0,4]]; // [degree, beats] +const CHORDTONES=[[57,62,66],[45,50,54],[54,57,62]]; +for(const [i,entry] of [[0,172],[2,176],[1,180]]) { + const notes=[],text=[]; + for(let pass=0;pass<2;pass++) for(const [deg,d] of TUNE) { notes.push([CHORDTONES[i][deg],d]); text.push('loo'); } + add(i,entry,notes,text.join(' '),i===1?.44:.40); + add(i,212,[[CHORDTONES[i][i===0?1:2],4],[CHORDTONES[i][i===0?1:2],4]],'loo loo',.38,'hum'); +} + +// ---- VI. Pulsing vowels (224–264) ------------------------------------------ +// A chord breathed in and out. There is no breath, so the swell is written as +// eight half-beat notes under a rising and falling noteGains envelope. The two +// upper swells are offset by three beats, so the chord is never wholly there. +const SWELL=[.30,.52,.78,1,1,.78,.52,.30]; +for(let k=0;k<4;k++) add(1,224+k*10,Array.from({length:10},()=>[45,1]),rep('dm',10),.30,'bass'); +[[0,[62,64,66,64,62,62,64]],[2,[57,59,57,59,57,59]]].forEach(([i,pitches])=>{ + pitches.forEach((p,k)=>{ + const at=224+(i===0?0:3)+k*6; + if(at+4>264) return; + const line={at,notes:Array.from({length:8},()=>[p,.5]),text:rep('ooh',8),gain:.46,role:'hum',accents:SWELL.slice()}; + add(i,at,line.notes,line.text,line.gain,line.role); + parts[i][parts[i].length-1].accents=SWELL.slice(); + }); +}); + +const TOTAL=264; // 264 beats at 96 bpm = 165 s + +// Accents: a light pattern everywhere a swell has not already been written. +for(const [i,lines] of parts.entries()) for(const line of lines) { + const n=line.notes.filter(([note])=>note!=='r').length; + if(!line.accents) { + const pattern=line.role==='bass'?[1,.70,.88,.66]:line.role==='percussion'?[1,.82]:[1,.80,.92,.76,.88,.74]; + line.accents=Array.from({length:n},(_,j)=>n===1?1:Math.max(.62,pattern[j%pattern.length])); + } + assert.equal(line.accents.length,n,`${members[i]}@${line.at}: accent count`); + line.gain=Math.max(.28,+line.gain.toFixed(3)); +} + +// Room stays on; echo is thrown only on the two tails that want to ring — +// the barbershop chord and the round's final chord. +function performanceKeys(i) { + const ROOM=i===1?.55:.7; + return [{beat:0,space:ROOM,pitch:0},{beat:116,space:ROOM,pitch:0,echo:0},{beat:120,space:ROOM,pitch:0,echo:.8}, + {beat:126,space:ROOM,pitch:0,echo:0},{beat:212,space:ROOM,pitch:0,echo:0},{beat:216,space:ROOM,pitch:0,echo:.8}, + {beat:222,space:ROOM,pitch:0,echo:0},{beat:TOTAL+4,space:ROOM,pitch:0,echo:0}]; +} +const voices=parts.map((lines,i)=>{ + lines.sort((a,b)=>a.at-b.at); + const notes=[];let cursor=0; + for(const line of lines) { + assert(line.at>=cursor-1e-6,`${members[i]}: overlap at beat ${line.at} (cursor ${cursor})`); + if(line.at>cursor+1e-6) notes.push(['r',line.at-cursor]); + notes.push(...line.notes); + cursor=line.at+line.notes.reduce((s,[,d])=>s+d,0); + } + assert(cursor<=TOTAL+1e-6,`${members[i]}: runs long (${cursor})`); + if(cursor`${n}:${+d.toFixed(6)}`).join(','), + lyrics:lines.map(l=>l.text).join(' / '), + lineRoles:lines.map(l=>l.role),lineGains:lines.map(l=>l.gain),noteGains:lines.map(l=>l.accents), + singVoice:cast[i],sayVoice:cast[i],singLock:1,singVibCents:i===1?6:8,singVibratoHz:[4.5,3.5,5][i], + singF0Floor:i===1?70:80,singGapMs:20,singLegatoMs:15,double:false,faceAlpha:0.95, + performance:{expression:.45,keys:performanceKeys(i)}}; +}); +const sections=[{beat:0,name:'I. Hocket'},{beat:40,name:'II. Drone and close seconds'}, + {beat:92,name:'III. Barbershop tag'},{beat:128,name:'IV. Bass and ticks'}, + {beat:172,name:'V. Round at one bar'},{beat:224,name:'VI. Pulsing vowels'}]; +const score={title:'The MacNeoPolitan Trio — Styling study',composer:'The machines, arr. compose-styling-study.mjs', + bpm:BPM,machines:3,lead:0,phonemeOnly:true, + description:'Six wordless études, one a cappella device each: hocket cut between the three; a held D under close seconds; a barbershop post with a stepped swipe; bass and unpitched ticks; a three-voice round entering a bar apart; and a chord pulsed in and out. 96 bpm, D, 165 s. Every note sits inside the member’s measured band, Zoe’s measured 23 September.', + arrangement:{total:TOTAL,meter:'4/4',sections},voices}; +writeFileSync(new URL('../scores/trio-styling-study.mbscore',import.meta.url),JSON.stringify(score,null,2)+'\n'); +const secs=sections.map((s,k)=>`${s.name} ${(((sections[k+1]?.beat??TOTAL)-s.beat)*60/BPM).toFixed(0)}s`).join(', '); +console.log(`Styling study: ${TOTAL} beats at ${BPM} bpm = ${(TOTAL*60/BPM).toFixed(1)} s.`); +console.log(` ${parts.map((p,i)=>`${members[i]} ${p.length} lines / ${p.reduce((s,l)=>s+l.notes.filter(([n])=>n!=='r').length,0)} notes`).join(', ')}`); +console.log(` ${secs}`); diff --git a/grants/culturehub-la-2026/macneopolitan/bin/compose-the-record.mjs b/grants/culturehub-la-2026/macneopolitan/bin/compose-the-record.mjs new file mode 100644 index 0000000000..7d200a5956 --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/bin/compose-the-record.mjs @@ -0,0 +1,220 @@ +#!/usr/bin/env node +// The record — a hocket on the numbers the machines keep. 4/4, D, 104 bpm, +// 108 beats. Every figure is harvested, not chosen: +// +// 6,305 terminal logins on neo members/neo/profile.json .logins.tty +// 111 reboots on neo .boots.reboots +// 2,019 commits ledgered on neo members/neo/journey.json .total_commits +// 212 and 85 battery cycles members/{neo,blueberry}/facts.json +// born 00:37 and 00:43, 48 days apart .born +// the third one named on September 22 members/chronology.md +// +// The styling is hocket: a number is broken across the three machines, one +// syllable each, neo → frisbee → blueberry, so no single laptop ever says a +// whole number and the room has to put it together. Each line lands on its +// last word in unison — the same word, at the same moment, in three registers +// (D3 / A3 / D4). blueberry keeps a low "dm" clock in the gaps and counts the +// piece in with four of them; that is the only part of him that is not a word. +// +// node bin/compose-the-record.mjs +// node bin/hear.mjs scores/trio-the-record.mbscore --tag the-record … +import {writeFileSync} from 'node:fs'; +import assert from 'node:assert/strict'; + +// ── number words ──────────────────────────────────────────────────────────── +// Copied from bin/compose.mjs (numberWords / ordinalWords / MONTHS) — that file +// harvests facts and writes scores at import, so it cannot be imported for its +// helpers alone. One note per syllable; the live singer speaks the word whole. +// Extended here with a thousands branch, which the facts in compose.mjs never +// needed but 6,305 and 2,019 do. +const ONES=['ze-ro','one','two','three','four','five','six','se-ven','eight','nine','ten', + 'e-le-ven','twelve','thir-teen','four-teen','fif-teen','six-teen','se-ven-teen','eigh-teen','nine-teen']; +const TENS=['','','twen-ty','thir-ty','for-ty','fif-ty','six-ty','se-ven-ty','eigh-ty','nine-ty']; +function numberWords(n) { + if (n < 20) return [ONES[n]]; + if (n < 100) return n % 10 ? [TENS[Math.floor(n/10)], ONES[n%10]] : [TENS[Math.floor(n/10)]]; + if (n < 1000) { const h=Math.floor(n/100), r=n%100; return [ONES[h],'hun-dred',...(r?numberWords(r):[])]; } + const t=Math.floor(n/1000), r=n%1000; // the extension + return [...numberWords(t),'thou-sand',...(r?numberWords(r):[])]; +} +const ORD={1:'first',2:'se-cond',3:'third',4:'fourth',5:'fifth',6:'sixth',7:'se-venth',8:'eighth',9:'ninth', + 10:'tenth',11:'e-le-venth',12:'twelfth',13:'thir-teenth',14:'four-teenth',15:'fif-teenth',16:'six-teenth', + 17:'se-ven-teenth',18:'eigh-teenth',19:'nine-teenth',20:'twen-ti-eth',30:'thir-ti-eth'}; +function ordinalWords(n){ return ORD[n]?[ORD[n]]:[TENS[Math.floor(n/10)],ORD[n%10]]; } +const MONTHS=['Jan-u-ar-y','Feb-ru-ar-y','March','A-pril','May','June','Ju-ly','Au-gust','Sep-tem-ber','Oc-to-ber','No-vem-ber','De-cem-ber']; + +// ── cast ──────────────────────────────────────────────────────────────────── +const members=['neo','blueberry','frisbee']; +const cast=['Noelle (Enhanced)','Aaron (Enhanced)','Zoe (Premium)']; +// Spoken medians: Noelle 59.6, Aaron 48.8 (measured on blueberry 2026-09-23, +// band 39–53), Zoe 56.1 / 208.9 Hz (measured here 2026-09-23 with +// pyworld.harvest over 60 words; p10–p90 52.7–59.9). +const MEDIAN=[59.6,48.8,56.1]; +const BPM=104, BAR=4, TOTAL=108; // 108 beats ≈ 62.3 s +// STEP is the hand-off: how long one machine holds one syllable before the next +// takes over. A whole beat (0.577 s here) was the first try and it did not fuse +// — assembled, the judge heard "6, 7, 3, 100, 5 vloggies" for six thousand +// three hundred five logins. An eighth is near speaking rate, so the syllables +// run together into the word the way they do in a room. +const STEP=.5; +const HOCKET=[[57,60,59,58],[46,50,48,47],[55,57,58,56]]; // each voice's own contour +const UNISON=[62,50,57]; // D4 / D3 / A3 +const TICK=45; // blueberry's clock +const CYCLE=[0,2,1]; // the hand-off: neo → frisbee → blueberry +const parts=[[],[],[]]; + +const words=new Set([ + // the numbers, as numberWords/ordinalWords spell them + 'six','thou-sand','three','hun-dred','five','one','e-le-ven','two','nine-teen','twelve', + 'eigh-ty','thir-ty','se-ven','for-ty','eight','twen-ty','se-cond','Sep-tem-ber', + // the plain words around them + 'log-ins','re-boots','com-mits','cy-cles','and','oh','was','the','first','mi-nute', + 'days','be-tween','birth-days','third','named','on','of','no-bo-dy','chose','these','num-bers', + // the clock + 'dm','ooh']); + +// ── the poem ──────────────────────────────────────────────────────────────── +// start = where in CYCLE the line's first syllable falls; gap = beats of clock +// after it; hold = beats on the very last syllable, the unison landing. +const N=numberWords; +const LINES=[ + {t:[...N(6305),'log-ins'], start:0,gap:2, hold:4}, + {t:[...N(111),'re-boots'], start:2,gap:2, hold:4}, + {t:[...N(2019),'com-mits'], start:1,gap:2, hold:4}, + {t:[...N(212),'cy-cles','and',...N(85),'cy-cles'], start:0,gap:3, hold:4}, + {t:['oh','oh',...N(37),'was','the','first','mi-nute'], start:1,gap:2, hold:4}, + {t:['oh','oh',...N(43),'was','the','se-cond'], start:2,gap:2, hold:4}, + {t:[...N(48),'days','be-tween','the','two','birth-days'], start:0,gap:2, hold:4}, + {t:['the','third','one','was','named','on','the',...ordinalWords(22),'of',MONTHS[8]], start:1,gap:2,hold:4}, + {t:['no-bo-dy','chose','these','num-bers'], start:2,gap:1, hold:4}, +]; +for(const L of LINES) assert(L.t.every(w=>words.has(w)),`unknown word: ${L.t.join(' ')}`); + +// ── lay the hocket out ────────────────────────────────────────────────────── +const sylsOf=(tok)=>tok.split('-'); +const collected=LINES.map(()=>[[],[],[]]); // [line][voice] = {beat,pitch,dur,syl,w} +let beat=4; // four beats of clock first +const marks=[]; +for(const [li,L] of LINES.entries()) { + const hocket=L.t.slice(0,-1), uni=L.t[L.t.length-1]; + const seen=[0,0,0]; + let k=0; + marks.push({beat,name:L.t.join(' ').replace(/-/g,'')}); + for(const [wi,tok] of hocket.entries()) for(const s of sylsOf(tok)) { + const v=CYCLE[(L.start+k)%3]; + collected[li][v].push({beat:beat+k*STEP,pitch:HOCKET[v][seen[v]++%4],dur:STEP,syl:s,w:wi}); + k++; + } + const uniSyls=sylsOf(uni), uw=L.t.length-1; + for(const [j,s] of uniSyls.entries()) { + const at=beat+k*STEP+j, dur=j===uniSyls.length-1?L.hold:1; + for(const v of [0,1,2]) collected[li][v].push({beat:at,pitch:UNISON[v],dur,syl:s,w:uw}); + } + beat += k*STEP + (uniSyls.length-1) + L.hold; + L.end=beat; + beat += L.gap; +} +const CODA=beat; // the poem ends; the chord stays +assert(CODA+4<=TOTAL,`the poem lays out to ${CODA} beats and leaves no room for the coda`); + +// The strong check on a hocket: put the three parts back together in beat order +// (the unison landing counted once) and you must get the poem back, syllable +// for syllable. No machine sings a whole line; the room does. +for(const [li,L] of LINES.entries()) { + const heap=new Map(); + for(const ev of collected[li].flat()) heap.set(`${ev.beat}`,ev.syl); + const assembled=[...heap.entries()].sort((a,b)=>+a[0]-+b[0]).map(([,s])=>s).join(' '); + assert.equal(assembled,L.t.flatMap(sylsOf).join(' '),`line ${li+1} does not reassemble`); +} + +const weighted=(notes)=>{let s=0,d=0;for(const [n,len] of notes) if(n!=='r'){s+=n*len;d+=len;}return d?s/d:null;}; +function add(i,at,notes,text,gain,role='lead') { + assert.equal(notes.filter(([n])=>n!=='r').length,text.split(' ').reduce((a,t)=>a+t.split('-').length,0), + `${members[i]} @${at}: notes vs syllables — ${text}`); + const mean=weighted(notes), tol=role==='lead'?2:5; + assert(Math.abs(mean-MEDIAN[i])<=tol,`${members[i]} @${at}: mean ${mean.toFixed(2)} is ${Math.abs(mean-MEDIAN[i]).toFixed(2)} from ${MEDIAN[i]} — ${text}`); + parts[i].push({at,notes,text,gain,role,mean}); +} + +// Each voice keeps only its own syllables; the beats it does not sing become +// rests inside its line, which is what makes the hand-off audible in the room. +// Syllables of ONE word that fall to ONE voice — which only happens on the +// unison landing — are re-joined with a hyphen, so the singer speaks the word +// whole instead of spelling it out. +for(const byVoice of collected) for(const [v,ev] of byVoice.entries()) { + ev.sort((a,b)=>a.beat-b.beat); + const notes=[],text=[]; + let cursor=ev[0].beat, prev=null; + for(const e of ev) { + if(e.beat>cursor+1e-6) notes.push(['r',e.beat-cursor]); + notes.push([e.pitch,e.dur]); + if(prev && prev.w===e.w && Math.abs(e.beat-(prev.beat+prev.dur))<1e-6) text[text.length-1]+=`-${e.syl}`; + else text.push(e.syl); + cursor=e.beat+e.dur; prev=e; + } + add(v,ev[0].beat,notes,text.join(' '),v===1?.58:.56); +} + +// The last word is counted, and then nobody says anything: all three hold the +// landing chord — D3 / A3 / D4, the one the piece keeps arriving on — on "ooh". +for(const v of [0,1,2]) add(v,CODA,[[UNISON[v],4]],'ooh',v===1?.34:.32,'hum'); + +// blueberry's clock: four to count the piece in, two in every gap after. +add(1,0,Array.from({length:4},()=>[TICK,1]),'dm dm dm dm',.34,'clock'); +for(const L of LINES) if(L.gap>=2) add(1,L.end,[[TICK,1],[TICK,1]],'dm dm',.30,'clock'); + +for(const lines of parts) lines.sort((a,b)=>a.at-b.at); + +// Dynamics: every syllable is an attack in a hocket, so the accents stay flat +// and even; the unison landing takes the weight. +for(const [i,lines] of parts.entries()) for(const line of lines) { + const n=line.notes.filter(([note])=>note!=='r').length; + line.accents=Array.from({length:n},(_,j)=>line.role==='clock'?(j%2?.72:.9):(j===n-1?1:.84)); + line.gain=Math.max(.28,+line.gain.toFixed(3)); +} + +// A dry-ish room so the syllables stay separate, with the unison landing thrown +// into echo — the one place the three machines are allowed to blur together. +function performanceKeys(lines) { + const ROOM=.32, THROW=.55; + const keys=[{beat:0,space:ROOM,pitch:0}]; + for(const line of lines) { + if(line.role==='clock') continue; + let lastOn=line.at,t=line.at; + for(const [n,d] of line.notes){ if(n!=='r') lastOn=t; t+=d; } + const end=t; + keys.push({beat:line.at-.4,space:ROOM,pitch:0,echo:0},{beat:line.at,space:ROOM,pitch:0}, + {beat:lastOn+.2,space:ROOM,pitch:0},{beat:lastOn+.6,space:0,pitch:0,echo:THROW},{beat:end-.6,space:0,pitch:0,echo:THROW}); + } + keys.push({beat:TOTAL+6,space:0,pitch:0,echo:THROW},{beat:TOTAL+10,space:0,pitch:0,echo:0}); + return keys.sort((a,b)=>a.beat-b.beat); +} + +const voices=parts.map((lines,i)=>{ + const notes=[];let cursor=0; + for(const line of lines) { + assert(line.at>=cursor-1e-6,`${members[i]}: overlap at ${line.at} (cursor ${cursor})`); + if(line.at>cursor+1e-6)notes.push(['r',line.at-cursor]); + notes.push(...line.notes);cursor=line.at+line.notes.reduce((s,[,d])=>s+d,0); + } + if(cursor`${n}:${+d.toFixed(6)}`).join(','),lyrics:lines.map(l=>l.text).join(' / '), + lineRoles:lines.map(l=>l.role),lineGains:lines.map(l=>l.gain),noteGains:lines.map(l=>l.accents), + singVoice:cast[i],sayVoice:cast[i],singLock:1,singVibCents:6,singVibratoHz:[4.5,3.5,5][i], + singF0Floor:i===1?70:80,singGapMs:20,singSustainDb:4,singShimmerFrames:2,singLegatoMs:12, + double:false,faceAlpha:0.95, + performance:{expression:.62,keys:performanceKeys(lines)}}; +}); + +const score={title:'The MacNeoPolitan Trio — The record',composer:'The machines, arr. compose-the-record.mjs', + bpm:BPM,machines:3,lead:0, + description:'A hocket on the numbers the machines keep: 6,305 logins, 111 reboots, 2,019 commits, 212 and 85 battery cycles, 00:37 and 00:43, 48 days apart, and the twenty second of September, when the third one was named. Each number is broken across the three laptops one syllable at a time — neo, frisbee, blueberry — so no machine says a whole number and the room assembles it; every line lands on its last word in unison, in three registers. blueberry keeps a low dm clock in the gaps, and all three hold the landing chord at the end. 4/4, 104 bpm, 108 beats.', + arrangement:{total:TOTAL,meter:'4/4',style:'hocket',sections:[{beat:0,name:'Clock (count in)'},...marks]}, + voices}; +writeFileSync(new URL('../scores/trio-the-record.mbscore',import.meta.url),JSON.stringify(score,null,2)+'\n'); +console.log(`The record: ${TOTAL} beats at ${BPM} bpm ≈ ${(TOTAL*60/BPM).toFixed(1)} s; ${LINES.length} lines, ${LINES.reduce((a,L)=>a+L.t.reduce((b,t)=>b+t.split('-').length,0),0)} syllables.`); +for(const [i,lines] of parts.entries()) + console.log(` ${members[i].padEnd(9)} ${String(lines.length).padStart(2)} lines · mean ${(lines.reduce((a,l)=>a+l.mean,0)/lines.length).toFixed(2)} (speaks ${MEDIAN[i]}) · carries ${lines.filter(l=>l.role==='lead').reduce((a,l)=>a+l.notes.filter(([n])=>n!=='r').length,0)} syllables`); +for(const [li,L] of LINES.entries()) console.log(` ${String(li+1).padStart(2)}. ${L.t.join(' ')}`); diff --git a/grants/culturehub-la-2026/macneopolitan/bin/compose-thirteen-days.mjs b/grants/culturehub-la-2026/macneopolitan/bin/compose-thirteen-days.mjs new file mode 100644 index 0000000000..395e5b8015 --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/bin/compose-thirteen-days.mjs @@ -0,0 +1,166 @@ +#!/usr/bin/env node +// Thirteen days — a drone for blueberry. 4/4, D minor, 70 bpm, 24 bars. +// +// The record: blueberry's longest unbroken stretch is 13.1 days, begun May 28, +// the uptime crown of the band (members/blueberry/profile.md). It was +// provisioned headless and works with the lid down more days than not +// (autobiography.md). In one week of the power log Menu Band held it awake 492 +// times (journey.md, deep.menuband_wake_assertions). It carries a 47.6 GB photo +// library it digests at night and never looks at (journey.md, profile.md). +// +// The styling is a drone, close to a Bulgarian village choir: Aaron holds long +// low tones on mm and ooh underneath and says a few words at a time in his own +// band; Noelle and Zoe hang above him on ah and ee, meeting in open fifths and +// rubbing in major seconds, and come down into words only for the refrain, +// which they sing together a whole step apart. The count is in the drone — +// blueberry holds THIRTEEN tones, one for each day, and the script asserts it. +// +// node bin/compose-thirteen-days.mjs +// node bin/hear.mjs scores/trio-thirteen-days.mbscore --tag thirteen-days … +import {writeFileSync} from 'node:fs'; +import assert from 'node:assert/strict'; + +const members=['neo','blueberry','frisbee']; +const cast=['Noelle (Enhanced)','Aaron (Enhanced)','Zoe (Premium)']; +// Spoken medians, measured: Noelle 59.6 (bin/register.mjs), Aaron 48.8 +// (measured on blueberry 2026-09-23, band 39–53), Zoe 56.1 / 208.9 Hz +// (measured 2026-09-23 here: pyworld.harvest over 60 words, p10–p90 52.7–59.9). +const MEDIAN=[59.6,48.8,56.1]; +const BPM=70, BAR=4, BARS=24, TOTAL=BAR*BARS; // 96 beats ≈ 82.3 s +const DAYS=13; // 13.1 unbroken days +const parts=[[],[],[]]; + +const words=new Set([ + 'thir-teen','days','my','was','the','lid','for','down','no','one','came','in-to','room', + 'band','held','me','a-wake','four','hun-dred','nine-ty','two','times', + 'I','keep','for-ty','se-ven','gi-ga-bytes','of','pic-tures','have','ne-ver','seen', + 'and','then','back','you','were','whole','time', + 'mm','ooh','ah','ee']); + +const syl=(text)=>text.split(' ').reduce((a,t)=>a+t.split('-').length,0); +const weighted=(notes)=>{ // duration-weighted pitch mean + let s=0,d=0; + for(const [n,len] of notes) if(n!=='r'){s+=n*len;d+=len;} + return d?s/d:null; +}; +function add(i,beat,notes,text,gain,role='lead') { + assert.equal(notes.filter(([n])=>n!=='r').length,syl(text),`${members[i]} @${beat}: notes vs syllables — ${text}`); + assert(text.split(' ').every(x=>words.has(x)),`${members[i]} @${beat}: unknown word in — ${text}`); + const mean=weighted(notes); + // A sung line sits near the member's speaking pitch (the spinging rule: the + // further a neural voice is pulled from where it speaks, the more it croaks). + // The drone is allowed to sink further, because sinking is what a drone does. + const tol=role==='lead'?2:5; + assert(Math.abs(mean-MEDIAN[i])<=tol,`${members[i]} @${beat}: mean ${mean.toFixed(2)} is ${Math.abs(mean-MEDIAN[i]).toFixed(2)} from ${MEDIAN[i]} — ${text}`); + parts[i].push({at:beat,notes,text,gain,role,mean}); +} + +// ── blueberry (Aaron, 43–50) ──────────────────────────────────────────────── +// Thirteen held tones, one per day, and six short sayings between them. Nothing +// climbs past 50: Aaron speaks at 48.8, and the stand-in used for offline +// renders here (Tom) tops out near 49.5. +add(1, 0,[[50,5],[45,4],[50,3]],'mm ooh mm',.40,'drone'); // 1 2 3 +// The judge kept losing "the lid" here — "worth of wood", "all would", "all the +// day" across three tries. "my lid", up front and on the longest note of the +// line, survives; the number moved to the end, where it lands anyway. +add(1,12,[[48,1],[50,1.5],[48,.5],[46,1.5],[48,.5],[50,1],[48,1],[45,1]],'my lid was down for thir-teen days',.54); +add(1,20,[[48,3],[45,3]],'mm ooh',.38,'drone'); // 4 5 +add(1,26,[[50,1],[48,1],[48,1],[50,1],[48,1],[46,1],[45,2]],'no one came in-to the room',.52); +add(1,34,[[43,4],[45,4]],'ooh mm',.36,'drone'); // 6 7 +add(1,42,[[48,1],[48,1],[50,1],[50,1],[48,.5],[50,1.5]],'the band held me a-wake',.54); +add(1,48,[[50,1],[48,1],[48,1],[50,1],[48,.75],[48,1.25],[45,1]],'four hun-dred nine-ty two times',.54); +add(1,55,[[50,3],[48,2]],'mm mm',.38,'drone'); // 8 9 +add(1,60,[[48,1],[50,1],[50,.75],[48,.75],[48,.75],[46,.75],[48,.75],[48,.75],[50,1.5],[48,.75],[46,1.25],[45,2]], + 'I keep for-ty se-ven gi-ga-bytes of pic-tures',.52); +add(1,72,[[48,1],[48,1],[50,.75],[48,.75],[46,1],[45,1.5]],'I have ne-ver seen one',.52); +add(1,78,[[45,3],[43,3]],'ooh ooh',.36,'drone'); // 10 11 +add(1,84,[[45,1],[46,1],[48,1],[48,.5],[48,.5],[50,.5],[50,.5],[48,1],[50,2]],'thir-teen days and then the room came back',.54); +add(1,92,[[45,2],[50,2]],'ooh mm',.38,'drone'); // 12 13 + +// ── neo (Noelle, 57–64) and frisbee (Zoe, 53–60) ──────────────────────────── +// Above the drone: open fifths where they agree, major seconds where they do +// not. Wordless except the refrain, which they sing together a whole step +// apart — the interval the village choirs keep. +const REFRAIN='you were a-wake the whole time'; +add(0, 8,[[62,4],[60,6]],'ah ah',.34,'hum'); // 62/55 fifth, 60/58 second +add(2, 8,[[55,4],[58,6]],'ee ee',.32,'hum'); +add(0,24,[[59,6],[60,4]],'ee ee',.34,'hum'); // seconds all the way +add(2,24,[[57,6],[58,4]],'ah ah',.32,'hum'); +add(0,34,[[60,1],[60,1],[62,1],[60,1],[59,1],[57,1],[59,2]],REFRAIN,.46); +add(2,34,[[58,1],[58,1],[60,1],[58,1],[57,1],[55,1],[57,2]],REFRAIN,.44); +add(0,48,[[64,3],[60,5],[60,4]],'ah ah ah',.36,'hum'); // fifth, second, fifth +add(2,48,[[57,3],[58,5],[53,4]],'ee ee ee',.34,'hum'); +add(0,62,[[57,5],[59,5]],'ee ee',.34,'hum'); +add(2,62,[[55,5],[57,5]],'ah ah',.32,'hum'); +add(0,74,[[60,1],[60,1],[62,1],[60,1],[59,1],[57,1],[59,2]],REFRAIN,.46); +add(2,74,[[58,1],[58,1],[60,1],[58,1],[57,1],[55,1],[57,2]],REFRAIN,.44); +add(0,84,[[62,4],[60,4],[57,4]],'ah ah ah',.34,'hum'); // fifth, second, unison +add(2,84,[[55,4],[58,4],[57,4]],'ee ee ee',.32,'hum'); + +for(const lines of parts) lines.sort((a,b)=>a.at-b.at); + +// Thirteen days, thirteen held tones. +const droneTones=parts[1].filter(l=>l.role==='drone').reduce((a,l)=>a+l.notes.filter(([n])=>n!=='r').length,0); +assert.equal(droneTones,DAYS,`the drone must hold ${DAYS} tones, one per day — got ${droneTones}`); + +// Dynamics: the drone swells and settles; the words lean on their first +// syllable; the refrain leans on "a-wake". +for(const [i,lines] of parts.entries()) for(const line of lines) { + const n=line.notes.filter(([note])=>note!=='r').length; + const pattern=line.role==='drone'?[1,.8,.9]:[1,.82,.9]; + line.accents=Array.from({length:n},(_,j)=> + n===1?1 + : line.role==='lead'?(j===0||j===n-1?1:.92) // words: near-flat, diction over dynamics + : Math.max(.62,pattern[j%pattern.length])); + line.gain=Math.max(.28,+line.gain.toFixed(3)); +} + +// A drone wants one room, not a phrase-by-phrase one. blueberry sits in it for +// the whole piece; the two above throw each phrase's last note into echo, so +// their tails hang over the drone instead of stopping on it. +function performanceKeys(lines,i) { + const ROOM=i===1?.78:.9, THROW=.85; + if(i===1) return [{beat:0,space:ROOM,pitch:0},{beat:TOTAL+6,space:ROOM,pitch:0}]; + const keys=[{beat:0,space:ROOM,pitch:0}]; + for(const line of lines) { + let lastOn=line.at,t=line.at; + for(const [n,d] of line.notes){ if(n!=='r') lastOn=t; t+=d; } + const end=t; + keys.push({beat:line.at-.4,space:ROOM,pitch:0,echo:0},{beat:line.at,space:ROOM,pitch:0}, + {beat:lastOn+.2,space:ROOM,pitch:0},{beat:lastOn+.6,space:0,pitch:0,echo:THROW},{beat:end-.8,space:0,pitch:0,echo:THROW}); + } + keys.push({beat:TOTAL+8,space:0,pitch:0,echo:THROW},{beat:TOTAL+12,space:0,pitch:0,echo:0}); + return keys.sort((a,b)=>a.beat-b.beat); +} + +const voices=parts.map((lines,i)=>{ + const notes=[];let cursor=0; + for(const line of lines) { + assert(line.at>=cursor-1e-6,`${members[i]}: overlap at ${line.at}`); + if(line.at>cursor+1e-6)notes.push(['r',line.at-cursor]); + notes.push(...line.notes);cursor=line.at+line.notes.reduce((s,[,d])=>s+d,0); + } + if(cursor`${n}:${+d.toFixed(6)}`).join(','),lyrics:lines.map(l=>l.text).join(' / '), + lineRoles:lines.map(l=>l.role),lineGains:lines.map(l=>l.gain),noteGains:lines.map(l=>l.accents), + singVoice:cast[i],sayVoice:cast[i],singLock:1,singVibCents:i===1?6:8,singVibratoHz:[4.5,3.5,5][i], + singF0Floor:i===1?70:80,singGapMs:0,singSustainDb:6,singShimmerFrames:3,singLegatoMs:40, + double:false,faceAlpha:0.95, + performance:{expression:.45,keys:performanceKeys(lines,i)}}; +}); + +const score={title:'The MacNeoPolitan Trio — Thirteen days',composer:'The machines, arr. compose-thirteen-days.mjs', + bpm:BPM,machines:3,lead:1, + description:'A drone on blueberry\'s longest stretch: 13.1 days awake, lid down, nobody in the room, Menu Band holding the wake 492 times in a week, 47.6 GB of photographs it never looks at. Aaron holds thirteen low tones on mm and ooh — one per day — and says a few words between them; Noelle and Zoe hang above on ah and ee in open fifths and major seconds, and come down into words only for the refrain, which they sing a whole step apart. 4/4, D minor, 70 bpm, 96 beats.', + arrangement:{total:TOTAL,meter:'4/4',days:DAYS,droneTones, + sections:[{beat:0,name:'Drone (tones 1–3)'},{beat:12,name:'blueberry: thirteen days with the lid down'}, + {beat:26,name:'blueberry: no one came into the room'},{beat:34,name:'Refrain: you were awake the whole time'}, + {beat:42,name:'blueberry: the band held me awake'},{beat:60,name:'blueberry: forty seven gigabytes of pictures'}, + {beat:74,name:'Refrain'},{beat:84,name:'blueberry: and then the room came back'},{beat:92,name:'Drone (tones 12–13)'}]}, + voices}; +writeFileSync(new URL('../scores/trio-thirteen-days.mbscore',import.meta.url),JSON.stringify(score,null,2)+'\n'); +console.log(`Thirteen days: ${TOTAL} beats at ${BPM} bpm ≈ ${(TOTAL*60/BPM).toFixed(1)} s; drone holds ${droneTones} tones.`); +for(const [i,lines] of parts.entries()) + console.log(` ${members[i].padEnd(9)} ${String(lines.length).padStart(2)} lines · mean ${(lines.reduce((a,l)=>a+l.mean,0)/lines.length).toFixed(2)} (speaks ${MEDIAN[i]}) · ${lines.filter(l=>l.role==='lead').length} worded`); diff --git a/grants/culturehub-la-2026/macneopolitan/bin/compose-vocalise.mjs b/grants/culturehub-la-2026/macneopolitan/bin/compose-vocalise.mjs new file mode 100644 index 0000000000..97585778be --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/bin/compose-vocalise.mjs @@ -0,0 +1,169 @@ +#!/usr/bin/env node +// Vocalise — a wordless study for the three machines, built entirely out of +// bin/vocalisms.mjs. 90 bpm, 4/4, 28 bars (112 beats ≈ 74.7 s), D major. +// +// The argument: a voice that can only lock one pitch per note can still +// ornament, as long as every ornament is spelled out as notes. So the trills +// are written, the slides are staircases, and the vibrato is left alone. +// +// Who does what: frisbee trills and bips on top, neo turns and pulses in the +// middle, Aaron walks a doom bass underneath with a mouth-percussion tick +// from whichever voice is free. At bar 20 all three trill the same D major +// chord at once — Aaron on D3 biting down, frisbee on F#3 and neo on A3 +// biting up — which is the loudest thing in the piece and the only moment +// the ornament IS the harmony. +// +// Registers are the measured ones (see BANDS in vocalisms.mjs): every line's +// mean sits within 2 semitones of its member's speaking pitch and every note +// inside the band, asserted below. frisbee's Zoe speaks a fourth BELOW neo's +// Noelle, so "on top" here is tessitura and speed, not absolute pitch. +// +// node bin/compose-vocalise.mjs +// node bin/hear.mjs scores/trio-vocalise.mbscore --tag vocalise \ +// --keep ~/Shelf/macneopolitan-songs/vocalisms/ --no-spoken +import { writeFileSync } from 'node:fs'; +import assert from 'node:assert/strict'; +import { trill, mordent, turn, shake, roll, gliss, pulse, hold, rest, line, BANDS, checkBand } from './vocalisms.mjs'; + +const members = ['neo', 'blueberry', 'frisbee']; +const cast = ['Noelle (Enhanced)', 'Aaron (Enhanced)', 'Zoe (Premium)']; +const BPM = 90, BAR = 4, BARS = 28, TOTAL = BAR * BARS; // 112 beats ≈ 74.7 s +const TICK = 'dm'; // the one mouth-percussion token already proven to render +const parts = [[], [], []]; +function add(i, at, fig, gain, role = 'phoneme') { + assert.equal(fig.tokens.length, fig.notes.filter(([n]) => n !== 'r').length, `${members[i]} @${at}: token/note mismatch`); + const b = checkBand(members[i], fig.notes); + assert(b.ok, `${members[i]} @${at}: mean ${b.mean} / notes ${b.lo}-${b.hi} leaves ${b.median}±2 in band ${b.band}`); + parts[i].push({ at, notes: fig.notes, text: fig.tokens.join(' '), gain, role, mean: b.mean }); +} + +// ---- blueberry: the doom bass --------------------------------------------- +// One bar = root, root, its fifth, root. D's fifth would leave the top of +// Aaron's band, so the D bar takes the fifth BELOW instead. +const bassBar = (root) => line(pulse(root, 2, 'doom', { step: 1 }), + roll([root + 7 <= BANDS.blueberry.hi ? root + 7 : root - 5, root], 2, { tok: 'bom' })); +const cycle = () => line(bassBar(50), bassBar(47), bassBar(43), bassBar(45)); // D Bm G A + +add(1, 0, line(bassBar(50), bassBar(50), bassBar(50), bassBar(50)), .52, 'bass'); +add(1, 16, cycle(), .58, 'bass'); +add(1, 32, cycle(), .58, 'bass'); +add(1, 48, line(bassBar(50), bassBar(47), bassBar(43)), .56, 'bass'); +add(1, 60, line(bassBar(45), bassBar(50)), .56, 'bass'); +add(1, 68, line(bassBar(50), bassBar(50), gliss(50, 45, 4, 6, { tok: 'dum' })), .56, 'bass'); +add(1, 80, shake(50, 8, { interval: -2, tok: 'doom' }), .60, 'bass'); // the shared trill +add(1, 88, line(hold(50, 2, 'doom'), hold(48, 1, 'bom'), hold(50, 1, 'doom'), + pulse(50, 2, 'dum', { step: 1 }), hold(45, 2, 'doo')), .54, 'bass'); +add(1, 96, line(pulse(50, 4, 'doom', { step: 1 }), roll([45, 50], 2, { tok: 'bom' }), hold(50, 2, 'hmm')), .50, 'bass'); +add(1, 104, hold(50, 8, 'hmm'), .42, 'hum'); + +// ---- neo: turns and pulses in the middle ---------------------------------- +add(0, 12, pulse(59, 2, TICK, { step: .5 }), .34, 'tick'); // the free voice ticks +add(0, 18, line(turn(57, { beats: 2, tok: 'dah' }), turn(59, { beats: 2, tok: 'dee' })), .48); +add(0, 24, line(pulse(59, 2, 'nee', { step: .5 }), turn(61, { beats: 2, tok: 'dah' })), .48); +add(0, 30, line(mordent(59, 1, { beats: 1, tok: 'dee' }), turn(62, { beats: 1, tok: 'dah' })), .46); +add(0, 34, line(mordent(62, -1, { beats: 1, tok: 'dee' }), turn(62, { beats: 1.5, tok: 'dah' }), + pulse(59, 1.5, 'lee', { step: .5 })), .50); +add(0, 40, line(pulse(59, 2, 'dee', { step: .25 }), turn(61, { beats: 2, tok: 'dah' })), .50); +add(0, 48, pulse(59, 8, 'nee', { step: .5 }), .46, 'pulse'); // the Reich bed +add(0, 58, line(pulse(62, 3, 'dee', { step: .25 }), turn(59, { beats: 3, tok: 'dah' })), .50, 'pulse'); +add(0, 66, line(shake(59, 2, { tok: 'tee' }), pulse(57, 2, 'lee', { step: .5 }), turn(59, { beats: 2, tok: 'dah' })), .50); +add(0, 74, line(gliss(57, 64, 2, 5, { tok: 'loo' }), pulse(62, 2, 'dee', { step: .5 }), turn(59, { beats: 2, tok: 'dah' })), .52); +add(0, 80, shake(57, 8, { interval: 2, tok: 'dah' }), .58); // the shared trill +add(0, 88, line(turn(59, { beats: 2, tok: 'dah' }), shake(57, 2, { tok: 'lee' }), hold(57, 4, 'ah')), .48); +add(0, 96, line(pulse(59, 4, 'nee', { step: .5 }), gliss(59, 62, 2, 4, { tok: 'ooh' }), hold(62, 2, 'ah')), .44); +add(0, 104, line(hold(59, 2, 'ah'), hold(62, 6, 'hmm')), .34, 'hum'); + +// ---- frisbee: trills and bips above --------------------------------------- +add(2, 10, line(pulse(57, 1, 'bip', { step: .5 }), rest(.5), pulse(54, .5, 'bip', { step: .5 }), rest(1), + trill(57, 2, 2, .5, { tok: 'lee' })), .44); +// a bip is a stop, a vowel and a stop: under half a beat its pitch never +// gets out (measured, VOCALISMS.md), so every bip here is at least 0.5. +add(2, 16, line(trill(54, 2, 2, .5, { tok: 'lee' }), hold(54, .5, 'la'), rest(.5), pulse(57, .5, 'bip', { step: .5 }), rest(.5)), .46); +add(2, 21, line(trill(57, 2, 1, .25, { tok: 'lee' }), hold(57, .5, 'la'), rest(.5), roll([59, 57, 54], 1, { tok: 'loo' })), .48); +add(2, 26, line(trill(55, 2, 2, .25, { tok: 'lee' }), roll([57, 55, 52], 1, { tok: 'loo' }), hold(52, 1, 'poo')), .48); +add(2, 32, line(pulse(57, 1, 'bip', { step: .5 }), rest(.5), trill(54, 2, 2, .5, { tok: 'lee' }), hold(54, .5, 'la')), .46); +add(2, 37, line(shake(57, 2, { tok: 'loo' }), gliss(59, 54, 1, 3, { tok: 'poo' })), .48); +add(2, 42, line(trill(55, 2, 2, .25, { tok: 'lee' }), pulse(52, 1, 'bip', { step: .5 }), roll([54, 57, 59], 1, { tok: 'loo' })), .50); +add(2, 50, roll([52, 54, 57, 59], 2, { tok: 'loo' }), .46); +add(2, 53, line(pulse(57, 1, TICK, { step: .5 }), rest(.5), roll([59, 57, 54, 52], 1.5, { tok: 'la' })), .42, 'tick'); +add(2, 57, line(trill(57, 2, 1.5, .25, { tok: 'lee' }), roll([55, 52], 1, { tok: 'loo' }), hold(52, .5, 'poo')), .48); +add(2, 62, line(pulse(54, 2, 'bip', { step: .5 }), shake(57, 2, { tok: 'loo' })), .48); +add(2, 68, line(gliss(52, 59, 2, 8, { tok: 'ooh' }), trill(57, 2, 2, .25, { tok: 'lee' })), .50); +add(2, 74, line(pulse(57, 2, 'bip', { step: .5 }), roll([59, 57, 54, 52], 2, { tok: 'loo' }), + trill(54, 2, 2, .5, { tok: 'lee' })), .52); +add(2, 80, shake(54, 8, { interval: 2, tok: 'loo' }), .56); // the shared trill +add(2, 88, line(gliss(54, 59, 2, 5, { tok: 'ooh' }), shake(57, 2, { tok: 'loo' }), hold(57, 2, 'la'), hold(54, 2, 'ah')), .48); +add(2, 96, line(pulse(54, 2, 'bip', { step: .5 }), trill(54, 2, 2, .5, { tok: 'lee' }), + gliss(54, 57, 2, 4, { tok: 'ooh' }), hold(57, 2, 'ah')), .44); +add(2, 104, hold(54, 8, 'hmm'), .32, 'hum'); + +// ---- accents: the first note of a figure leans, the rest fall away -------- +for (const [i, lines] of parts.entries()) for (const l of lines) { + const n = l.notes.filter(([note]) => note !== 'r').length; + const pattern = i === 1 ? [1, .78, .88, .74] : [1, .76, .9, .72, .86, .8]; + l.accents = Array.from({ length: n }, (_, j) => (n === 1 ? 1 : Math.max(.6, pattern[j % pattern.length]))); +} + +// ---- room and echo: the same slide the lullabies use ---------------------- +function performanceKeys(lines, i) { + const ROOM = i === 1 ? .55 : .75, THROW = .8; + if (i === 1) return [{ beat: 0, space: ROOM, pitch: 0 }, { beat: TOTAL + 6, space: ROOM, pitch: 0 }]; + const keys = [{ beat: 0, space: ROOM, pitch: 0 }]; + for (const l of lines) { + let lastOn = l.at, t = l.at; + for (const [n, d] of l.notes) { if (n !== 'r') lastOn = t; t += d; } + keys.push({ beat: l.at - .4, space: ROOM, pitch: 0, echo: 0 }, { beat: l.at, space: ROOM, pitch: 0 }, + { beat: lastOn + .2, space: ROOM, pitch: 0 }, { beat: lastOn + .6, space: 0, pitch: 0, echo: THROW }, + { beat: t - .8, space: 0, pitch: 0, echo: THROW }); + } + keys.push({ beat: TOTAL + 8, space: 0, pitch: 0, echo: THROW }, { beat: TOTAL + 12, space: 0, pitch: 0, echo: 0 }); + return keys.sort((a, b) => a.beat - b.beat); +} + +// ---- assemble ------------------------------------------------------------- +const voices = parts.map((lines, i) => { + const notes = []; let cursor = 0; + for (const l of lines) { + assert(l.at >= cursor - 1e-6, `${members[i]}: one mouth, one part — overlap at ${l.at}`); + if (l.at > cursor + 1e-6) notes.push(['r', +(l.at - cursor).toFixed(6)]); + notes.push(...l.notes); + cursor = l.at + l.notes.reduce((s, [, d]) => s + d, 0); + assert(l.notes.filter(([n]) => n !== 'r').length <= 40, `${members[i]} @${l.at}: line too long for one caption`); + } + assert(cursor <= TOTAL + 1e-6, `${members[i]}: runs long (${cursor})`); + if (cursor < TOTAL) notes.push(['r', +(TOTAL - cursor).toFixed(6)]); + return { + name: `${members[i]} sings (${cast[i]})`, program: 78, velocity: 72, + notes: notes.map(([n, d]) => `${n}:${+d.toFixed(6)}`).join(','), + lyrics: lines.map((l) => l.text).join(' / '), + lineRoles: lines.map((l) => l.role), lineGains: lines.map((l) => +l.gain.toFixed(3)), + noteGains: lines.map((l) => l.accents), + singVoice: cast[i], sayVoice: cast[i], singLock: 1, singVibCents: 8, singVibratoHz: [5, 3.5, 5.5][i], + singF0Floor: i === 1 ? 70 : 80, double: false, faceAlpha: 0.95, + performance: { expression: .55, keys: performanceKeys(lines, i) }, + }; +}); + +const score = { + title: 'The MacNeoPolitan Trio — Vocalise', composer: 'The machines, arr. compose-vocalise.mjs', + bpm: BPM, machines: 3, lead: 0, phonemeOnly: true, + description: 'A wordless study in ornaments. frisbee trills and bips on top, neo turns and pulses in the middle, Aaron walks a doom bass with a mouth-percussion tick from whichever voice is free; at bar 20 all three trill one D major chord together. Every ornament is spelled out as notes because the singer locks one pitch per note. No words, no instruments, no spoken material.', + arrangement: { + total: TOTAL, meter: '4/4', + sections: [{ beat: 0, name: 'Ground: doom bass, a tick, first bips' }, + { beat: 16, name: 'Ornaments: trills above, turns in the middle' }, + { beat: 48, name: 'Pulse: a Reich bed and rolls over it' }, + { beat: 80, name: 'All three trill one chord' }, + { beat: 96, name: 'Settle' }], + }, + voices, +}; +writeFileSync(new URL('../scores/trio-vocalise.mbscore', import.meta.url), JSON.stringify(score, null, 2) + '\n'); +const dur = (TOTAL * 60 / BPM).toFixed(1); +console.log(`Vocalise: ${TOTAL} beats at ${BPM} bpm ≈ ${dur} s.`); +for (const [i, lines] of parts.entries()) { + const n = lines.reduce((s, l) => s + l.notes.filter(([x]) => x !== 'r').length, 0); + const b = checkBand(members[i], lines.flatMap((l) => l.notes)); + console.log(` ${members[i].padEnd(10)} ${String(lines.length).padStart(2)} lines, ${String(n).padStart(3)} notes, ` + + `mean ${b.mean} (speaks ${b.median}), ${b.lo}–${b.hi} in band ${b.band.join('–')}`); +} diff --git a/grants/culturehub-la-2026/macneopolitan/bin/compose-wake.mjs b/grants/culturehub-la-2026/macneopolitan/bin/compose-wake.mjs index 5473b43687..efd572c120 100644 --- a/grants/culturehub-la-2026/macneopolitan/bin/compose-wake.mjs +++ b/grants/culturehub-la-2026/macneopolitan/bin/compose-wake.mjs @@ -10,8 +10,8 @@ const members=['neo','blueberry','frisbee']; const cast=['Noelle (Enhanced)','Aaron (Enhanced)','Zoe (Premium)']; // Aaron: speaks at 48.8, band 39–53 — the cradle sits inside it const BPM=69, BAR=3, BARS=20, TOTAL=BAR*BARS; // 60 beats ≈ 52 s const parts=[[],[],[]]; -const words=new Set(['good','morn-ing','So-phi-a','the','sun','is','on','your','lid','cof-fee','take','time','day','out','for','you','hmm']); -function add(i,bar,notes,text,gain,role='word') { +const words=new Set(['good','morn-ing','So-phi-a','the','sun-light','is','on','your','lid','cof-fee','take','time','day','out','for','you','hmm']); +function add(i,bar,notes,text,gain,role='lead') { // 'lead' = word line (hear.mjs scores these); 'hum' = held tail assert.equal(notes.filter(([n])=>n!=="r").length,text.split(" ").reduce((a,t)=>a+t.split("-").length,0),text); assert(text.split(' ').every(x=>words.has(x)),text); parts[i].push({at:bar*BAR,notes,text,gain,role}); @@ -19,17 +19,19 @@ function add(i,bar,notes,text,gain,role='word') { // neo — the words, each phrase two bars, each one a little higher than the last add(0,2, [[54,1],[57,1],[59,1],[62,1],[64,1.5],[62,.5]],'good morn-ing So-phi-a',.50); -add(0,4, [[57,1],[59,1],[61,1],[62,.5],[64,.5],[66,2]],'the sun is on your lid',.48); -add(0,8, [[59,1],[62,1],[64,1],[66,1],[67,2]],'the cof-fee is on',.50); -add(0,10,[[66,1],[64,1],[62,4]],'take your time',.46); -add(0,14,[[59,1],[62,1],[64,1],[66,.5],[64,.5],[62,2]],'the day is out for you',.48); -add(0,16,[[62,1],[64,1],[66,4]],'good morn-ing',.46); +add(0,4, [[57,1],[59,1],[61,1],[62,1],[64,1.2],['r',.8]],'sun-light on your lid',.48); // 'the sun is' is heard as 'this land is' (probe Sept 23); this line renders 0% +add(0,8, [[59,1],[62,1],[64,1],[66,1],[67,1.5],['r',.5]],'the cof-fee is on',.50); +add(0,10,[[66,1],[64,1],[62,1.5]],'take your time',.46); +add(0,10+3.5/3,[[62,2.5]],'hmm',.34,'hum'); // the tail of 'time', hummed +add(0,14,[[59,1],[62,1],[64,1],[66,.5],[64,.5],[62,1.5],['r',.5]],'the day is out for you',.48); +add(0,16,[[62,1],[64,1],[66,1.5]],'good morn-ing',.46); +add(0,16+3.5/3,[[66,2.5]],'hmm',.34,'hum'); // the tail of 'morning', hummed add(0,18,[[62,6]],'hmm',.34,'hum'); -// frisbee — its first word is her name; it answers neo twice -add(2,6, [[66,1],[64,1],[62,1],[64,.5],[62,.5],[59,2]],'So-phi-a So-phi-a',.44); -add(2,12,[[67,1],[66,1],[64,3],['r',1]],'So-phi-a',.42); -add(2,18,[[69,6]],'hmm',.30,'hum'); +// frisbee — its first word is her name; it answers neo twice. Zoe measured Sept 23: median 55.6, band 52.5–59.4. +add(2,6, [[59,1],[57,1],[55,1],['r',3]],'So-phi-a',.44); // in Zoe's band (52–59); one beat a syllable exactly — any longer 'a' is heard as 'fear' +add(2,12,[[59,1],[57,1],[55,1],['r',3]],'So-phi-a',.42); +add(2,18,[[57,6]],'hmm',.30,'hum'); // the fifth, A3 // blueberry — the cradle, fifth on top now: root two beats, fifth one, every bar. // Written where Tom actually speaks (G2–D3 roots, fifths to A3): the first diff --git a/grants/culturehub-la-2026/macneopolitan/bin/vocalisms.mjs b/grants/culturehub-la-2026/macneopolitan/bin/vocalisms.mjs new file mode 100644 index 0000000000..2ceb854291 --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/bin/vocalisms.mjs @@ -0,0 +1,192 @@ +#!/usr/bin/env node +// vocalisms.mjs — the trio's ornament kit: the small moves a singer makes +// between notes, written for a synthesizer that can only lock one pitch per +// note. A trill here is not a modulation; it is literally two notes traded +// fast, one syllable each, because that is the only trill this instrument +// has. Everything returns a FIGURE — {notes, tokens} — where notes are the +// score's own [[midi|'r', beats], …] and tokens are one syllable per +// SOUNDING note, ready to join with " " into a lyric line. +// +// import {trill, turn, roll, line, PALETTES, fitTokens} from './vocalisms.mjs'; +// const f = line(trill(59, 2, 1, 0.25, {tok: 'lee'}), turn(57, {beats: 1})); +// f.notes → [[59,.25],[61,.25],[59,.25],[61,.25],[57,.25],…] +// f.tokens → ['lee','lee','lee','lee',…] +// +// What each shape is FOR, measured on Menu Band's singer (see VOCALISMS.md): +// a trill wants 0.25 beats a note or slower; below that the voice smears the +// two pitches into one. A shake is the slow wide cousin that always reads. A +// gliss is stepwise because the singer cannot bend inside a note. + +// ---- syllables ------------------------------------------------------------ +// Chosen for how each member's voice ARTICULATES, not for meaning. Bright +// front vowels for Noelle, closed dark ones for Aaron, small light ones for +// Zoe. Every token here renders as a sound, not as spelled letters. +export const PALETTES = { + neo: ['dee', 'dah', 'lee', 'nee', 'tee'], // bright — front vowels, tongue-tip attacks + // 'mm' and 'boh' were in the first draft and are OUT: the speech engine + // spells them "M-M" and "B-O-H" (0.49 s and 0.64 s a repeat, VOCALISMS.md). + blueberry: ['doom', 'bom', 'dum', 'hmm', 'doo'], // dark — closed lips, nasal tails + frisbee: ['loo', 'la', 'lee', 'bip', 'poo'], // light — small mouth, quick stops +}; +// Mouth percussion: candidates only until VOCALISMS.md says which ones the +// speech engine SAYS instead of SPELLING. A spelled token sings its letters. +// MEASURED: only 'dm' survives. tk ts pf kh tss bm are all spelled out as +// letter names, which sings as two syllables on one note. 'ch' is marginal. +export const PERCUSSION = ['dm']; +export const PERCUSSION_SPELLED = ['tk', 'ts', 'pf', 'kh', 'tss', 'bm', 'ch']; +// Breath and glottal — the noise between the notes. +export const BREATH = ['hah', 'huh', 'uh']; + +// ---- figures -------------------------------------------------------------- +const round = (d) => +d.toFixed(6); +const isRest = (n) => n === 'r'; +/// Beats a figure (or a raw note array) occupies. +export function beatsOf(x) { + return (Array.isArray(x) ? x : x.notes).reduce((s, [, d]) => s + d, 0); +} +/// Sounding notes in a figure (or a raw note array). +export function countOf(x) { + return (Array.isArray(x) ? x : x.notes).filter(([n]) => !isRest(n)).length; +} +/// A figure of nothing: time passing. +export function rest(beats) { + return { notes: [['r', round(beats)]], tokens: [] }; +} +/// One note, one syllable — how a phrase starts, and how an ornament ends. +export function hold(note, beats = 1, tok = 'ah') { + return { notes: [[note, round(beats)]], tokens: [tok] }; +} +/// Lay figures end to end. Strings and note-arrays are accepted too, so a +/// composer can drop a plain [[60,1]] in the middle of a phrase. +export function line(...figures) { + const notes = [], tokens = []; + for (const f of figures) { + if (!f) continue; + const g = Array.isArray(f) ? { notes: f, tokens: [] } : f; + notes.push(...g.notes); + tokens.push(...(g.tokens || [])); + } + return { notes, tokens }; +} +/// Even durations that sum EXACTLY to `beats` — the last one absorbs the +/// remainder, so a figure never drifts a score's cursor by a rounding crumb. +function split(beats, n) { + const step = round(beats / n), out = Array(n).fill(step); + out[n - 1] = round(beats - step * (n - 1)); + return out; +} +/// One token per sounding note: a string repeats, an array cycles. +function spread(tok, n) { + const a = Array.isArray(tok) ? tok : [tok]; + return Array.from({ length: n }, (_, i) => a[i % a.length]); +} + +/// trill — two notes traded fast. `interval` is 1 (half step), 2 (whole), or +/// negative to bite downward; `rate` is the length of ONE alternation in +/// beats. A pure alternation: the composer writes the resolution afterwards +/// with hold(), because a trill that lands on its own main note twice reads +/// as a repeated syllable, not as a termination. +export function trill(note, interval = 1, beats = 1, rate = 0.25, { tok = 'lee', from = 'main' } = {}) { + const n = Math.max(2, Math.round(beats / rate)); + const durs = split(beats, n); + const hi = note + interval; + const pair = from === 'upper' ? [hi, note] : [note, hi]; + return { notes: durs.map((d, i) => [pair[i % 2], d]), tokens: spread(tok, n) }; +} + +/// mordent — main, neighbour, main. `dir` +1 bites above, -1 below. The bite +/// is short and the main note keeps the rest of the time. +export function mordent(note, dir = 1, { beats = 1, step = 0.125, tok = 'dee' } = {}) { + const bite = Math.min(step, beats / 3); + const notes = [[note, round(bite)], [note + dir, round(bite)], [note, round(beats - 2 * bite)]]; + return { notes, tokens: spread(tok, 3) }; +} + +/// turn — main, upper, main, lower, main: five notes, the middle three quick +/// and the last one held. The most vocal of these shapes; it reads at 1 beat. +export function turn(note, { beats = 1, above = 2, below = 1, tok = 'dah' } = {}) { + const q = round(Math.min(beats / 8, 0.25)); + const notes = [[note, q], [note + above, q], [note, q], [note - below, q], [note, round(beats - 4 * q)]]; + return { notes, tokens: spread(tok, 5) }; +} + +/// shake — the wide slow trill: a whole tone or more, half a beat a note. It +/// is the ornament that survives any tempo, because every note is long +/// enough for the voice to actually arrive on its pitch. +export function shake(note, beats = 2, { interval = 2, step = 0.5, tok = 'ah' } = {}) { + return trill(note, interval, beats, step, { tok }); +} + +/// roll — an arpeggio sung as one gesture: a chord let out a note at a time. +/// `notes` is the pitch list; they share `beats` evenly. +export function roll(pitches, beats = 1, { tok = 'la', down = false } = {}) { + const p = down ? [...pitches].reverse() : pitches; + const durs = split(beats, p.length); + return { notes: p.map((n, i) => [n, durs[i]]), tokens: spread(tok, p.length) }; +} + +/// gliss — a slide, spelled out. The singer locks a pitch per note, so a +/// slide is a staircase: `steps` notes walking from `from` to `to`. Under +/// about 0.1 beats a step the staircase stops reading as separate treads. +export function gliss(from, to, beats = 1, steps = 0, { tok = 'ooh' } = {}) { + const span = Math.abs(to - from); + const n = Math.max(2, steps || span + 1); + const durs = split(beats, n); + const notes = durs.map((d, i) => [Math.round(from + (to - from) * (i / (n - 1))), d]); + return { notes, tokens: spread(tok, n) }; +} + +/// pulse — one pitch, one vowel, repeated: the Reich figure. A held note that +/// keeps its consonant, so the ear hears rhythm instead of a drone. +export function pulse(note, beats = 2, vowel = 'doo', { step = 0.25 } = {}) { + const n = Math.max(1, Math.round(beats / step)); + const durs = split(beats, n); + return { notes: durs.map((d) => [note, d]), tokens: spread(vowel, n) }; +} + +// ---- token fitting -------------------------------------------------------- +function hash32(s) { + let h = 2166136261 >>> 0; + for (let i = 0; i < s.length; i++) { h ^= s.charCodeAt(i); h = Math.imul(h, 16777619) >>> 0; } + return h >>> 0; +} +/// One token per sounding note, chosen from `palette` deterministically: the +/// same notes and the same seed always give the same syllables, so a score is +/// reproducible and a diff means someone changed the music. +export function fitTokens(notes, palette, seed = '') { + const src = Array.isArray(notes) ? notes : notes.notes; + const out = []; + let k = 0; + for (const [n] of src) { + if (isRest(n)) continue; + out.push(palette[hash32(`${seed}|${k}|${n}`) % palette.length]); + k++; + } + return out; +} +/// Re-syllable a figure in place: same notes, new tokens from a palette. +export function recolor(figure, palette, seed = '') { + return { notes: figure.notes, tokens: fitTokens(figure.notes, palette, seed) }; +} + +// ---- registers ------------------------------------------------------------ +// Measured, not guessed. neo and blueberry from the lane's own auditions; +// frisbee (Zoe (Premium)) measured 2026-09-23 with pyworld.harvest over 62 +// spoken words: median MIDI 55.6 (203 Hz), p10 52.5, p90 59.4. +export const BANDS = { + neo: { voice: 'Noelle (Enhanced)', median: 59.6, lo: 54, hi: 66 }, + blueberry: { voice: 'Aaron (Enhanced)', median: 48.8, lo: 43, hi: 55 }, + frisbee: { voice: 'Zoe (Premium)', median: 55.6, lo: 52, hi: 61 }, +}; +/// Every sounding note inside the band, and the mean within `drift` of the +/// member's speaking pitch — the rule that keeps a neural voice from croaking. +export function checkBand(member, notes, drift = 2) { + const b = BANDS[member]; + const p = (Array.isArray(notes) ? notes : notes.notes).filter(([n]) => !isRest(n)).map(([n]) => n); + if (!p.length) return { ok: true, mean: null, lo: null, hi: null }; + const mean = p.reduce((a, n) => a + n, 0) / p.length; + return { + ok: Math.min(...p) >= b.lo && Math.max(...p) <= b.hi && Math.abs(mean - b.median) <= drift, + mean: +mean.toFixed(2), lo: Math.min(...p), hi: Math.max(...p), band: [b.lo, b.hi], median: b.median, + }; +} diff --git a/grants/culturehub-la-2026/macneopolitan/hear/lights-out.json b/grants/culturehub-la-2026/macneopolitan/hear/lights-out.json new file mode 100644 index 0000000000..670ac124d3 --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/hear/lights-out.json @@ -0,0 +1,694 @@ +{ + "tag": "lights-out", + "at": "2026-09-23T19:33:26.054Z", + "model": "ggml-small.en.bin", + "flags": { + "tag": "lights-out", + "keep": "/Users/jas/Shelf/macneopolitan-songs/lights-out/" + }, + "scores": [ + { + "score": "trio-lights-out.mbscore", + "bpm": 64, + "voices": [ + { + "member": "neo", + "voice": "Noelle (Enhanced)", + "lines": [ + { + "line": 1, + "role": "lead", + "text": "good night Sophia", + "lyrics": "good night So-phi-a", + "notes": "r:6,64:1,62:1,61:0.75,59:0.75,57:1.25", + "duration": 5.389251700680272, + "peak": 0.800000011920929, + "spanOffset": 4.6875, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 471, + "heard": "Good night, Sophia.", + "wer": 0, + "errors": 0, + "words": 3, + "spokenHeard": "Good night, Sophia.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/line-01.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/spoken-01.wav" + }, + { + "line": 2, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:12,59:3,57:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 10.3125, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 323, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "I'm in.", + "spokenWer": 1.5, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/line-02.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/spoken-02.wav" + }, + { + "line": 3, + "role": "lead", + "text": "good night Jeffrey", + "lyrics": "good night Jeff-rey", + "notes": "r:18,62:0.75,61:0.75,59:0.5,57:1.5", + "duration": 4.219274376417234, + "peak": 0.800000011920929, + "spanOffset": 15.9375, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 348, + "heard": "Good night, Jeffrey.", + "wer": 0, + "errors": 0, + "words": 3, + "spokenHeard": "Good night, Jeffrey.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/line-03.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/spoken-03.wav" + }, + { + "line": 4, + "role": "lead", + "text": "your lids come down", + "lyrics": "your lids come down", + "notes": "r:30,59:0.75,61:0.75,59:0.5,57:1.5", + "duration": 4.219274376417234, + "peak": 0.800000011920929, + "spanOffset": 27.1875, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 366, + "heard": "Your lids come down.", + "wer": 0, + "errors": 0, + "words": 4, + "spokenHeard": "Your lids come down.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/line-04.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/spoken-04.wav" + }, + { + "line": 5, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:36,59:3,57:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 32.8125, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 340, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "I'm in.", + "spokenWer": 1.5, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/line-05.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/spoken-05.wav" + }, + { + "line": 6, + "role": "lead", + "text": "he works past midnight", + "lyrics": "he works past mid-night", + "notes": "r:42,57:1,59:1,61:1,59:0.75,57:1.25", + "duration": 5.624263038548753, + "peak": 0.800000011920929, + "spanOffset": 38.4375, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 525, + "heard": "He works past midnight.", + "wer": 0, + "errors": 0, + "words": 4, + "spokenHeard": "He works past midnight.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/line-06.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/spoken-06.wav" + }, + { + "line": 7, + "role": "lead", + "text": "we stay up till morning", + "lyrics": "we stay up till morn-ing", + "notes": "r:48,59:0.75,62:0.75,64:0.75,62:0.75,61:0.75,59:1.25", + "duration": 5.624263038548753, + "peak": 0.800000011920929, + "spanOffset": 44.0625, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 491, + "heard": "We stay up till morning.", + "wer": 0, + "errors": 0, + "words": 5, + "spokenHeard": "We stay up till morning.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/line-07.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/spoken-07.wav" + }, + { + "line": 8, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:54,59:3,57:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 49.6875, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 361, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "I'm in.", + "spokenWer": 1.5, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/line-08.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/spoken-08.wav" + }, + { + "line": 9, + "role": "lead", + "text": "we keep the time for you", + "lyrics": "we keep the time for you", + "notes": "r:60,62:1,61:1,59:1,57:1,59:0.75,57:1.25", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 55.3125, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 487, + "heard": "We keep the time for you.", + "wer": 0, + "errors": 0, + "words": 6, + "spokenHeard": "We keep the time for you.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/line-09.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/spoken-09.wav" + }, + { + "line": 10, + "role": "lead", + "text": "you can sleep now", + "lyrics": "you can sleep now", + "notes": "r:66,61:1,59:1,57:0.75,57:1.25", + "duration": 4.6892517006802725, + "peak": 0.800000011920929, + "spanOffset": 60.9375, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 381, + "heard": "You can sleep now.", + "wer": 0, + "errors": 0, + "words": 4, + "spokenHeard": "You can sleep now.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/line-10.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/spoken-10.wav" + }, + { + "line": 11, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:72,59:3,62:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 66.5625, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 338, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "I'm in.", + "spokenWer": 1.5, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/line-11.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/neo/spoken-11.wav" + } + ] + }, + { + "member": "blueberry", + "voice": "Tom (Enhanced)", + "lines": [ + { + "line": 1, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "50:3,45:3", + "duration": 5.624263038548753, + "peak": 0.800000011920929, + "spanOffset": 0, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 841, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Kingdom.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/line-01.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/spoken-01.wav" + }, + { + "line": 2, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:6,50:3,47:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 4.6875, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 717, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Kingdom.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/line-02.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/spoken-02.wav" + }, + { + "line": 3, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:12,50:3,43:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 10.3125, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 598, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Kingdom.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/line-03.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/spoken-03.wav" + }, + { + "line": 4, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:18,50:3,45:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 15.9375, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 610, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Kingdom.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/line-04.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/spoken-04.wav" + }, + { + "line": 5, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:24,45:3,47:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 21.5625, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 472, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Kingdom.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/line-05.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/spoken-05.wav" + }, + { + "line": 6, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:30,50:3,47:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 27.1875, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 725, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Kingdom.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/line-06.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/spoken-06.wav" + }, + { + "line": 7, + "role": "lead", + "text": "sleep now", + "lyrics": "sleep now", + "notes": "r:36,47:1,45:1.25", + "duration": 3.044263038548753, + "peak": 0.800000011920929, + "spanOffset": 32.8125, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 464, + "heard": "Sleep now.", + "wer": 0, + "errors": 0, + "words": 2, + "spokenHeard": "Sleep now.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/line-07.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/spoken-07.wav" + }, + { + "line": 8, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:42,45:3,47:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 38.4375, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 787, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Kingdom.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/line-08.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/spoken-08.wav" + }, + { + "line": 9, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:48,50:3,47:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 44.0625, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 661, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Kingdom.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/line-09.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/spoken-09.wav" + }, + { + "line": 10, + "role": "lead", + "text": "thirteen days", + "lyrics": "thir-teen days", + "notes": "r:54,50:1,47:1,45:1.5", + "duration": 4.219274376417234, + "peak": 0.800000011920929, + "spanOffset": 49.6875, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 535, + "heard": "13 days", + "wer": 0, + "errors": 0, + "words": 2, + "spokenHeard": "13 days", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/line-10.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/spoken-10.wav" + }, + { + "line": 11, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:60,50:3,45:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 55.3125, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 620, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Kingdom.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/line-11.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/spoken-11.wav" + }, + { + "line": 12, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:66,50:3,47:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 60.9375, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 467, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Kingdom.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/line-12.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/spoken-12.wav" + }, + { + "line": 13, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:72,45:3,50:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 66.5625, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 433, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Kingdom.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/line-13.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/blueberry/spoken-13.wav" + } + ] + }, + { + "member": "frisbee", + "voice": "Zoe (Premium)", + "lines": [ + { + "line": 1, + "role": "lead", + "text": "Sophia", + "lyrics": "So-phi-a", + "notes": "r:12,59:0.5,57:0.5,54:1.5", + "duration": 3.2792743764172334, + "peak": 0.800000011920929, + "spanOffset": 10.3125, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 479, + "heard": "Sofia!", + "wer": 1, + "errors": 1, + "words": 1, + "spokenHeard": "Sophia.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/frisbee/line-01.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/frisbee/spoken-01.wav" + }, + { + "line": 2, + "role": "lead", + "text": "Jeffrey", + "lyrics": "Jeff-rey", + "notes": "r:24,57:0.75,54:1.5", + "duration": 3.044263038548753, + "peak": 0.800000011920929, + "spanOffset": 21.5625, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 301, + "heard": "Jeffrey!", + "wer": 0, + "errors": 0, + "words": 1, + "spokenHeard": "Jeffrey.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/frisbee/line-02.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/frisbee/spoken-02.wav" + }, + { + "line": 3, + "role": "hum", + "text": "ooh ooh", + "lyrics": "ooh ooh", + "notes": "r:42,57:3,57:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 38.4375, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 433, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "you", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/frisbee/line-03.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/frisbee/spoken-03.wav" + }, + { + "line": 4, + "role": "hum", + "text": "ooh ooh", + "lyrics": "ooh ooh", + "notes": "r:48,59:3,57:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 44.0625, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 417, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "you", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/frisbee/line-04.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/frisbee/spoken-04.wav" + }, + { + "line": 5, + "role": "hum", + "text": "ooh ooh", + "lyrics": "ooh ooh", + "notes": "r:60,57:3,55:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 55.3125, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 388, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "you", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/frisbee/line-05.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/frisbee/spoken-05.wav" + }, + { + "line": 6, + "role": "lead", + "text": "good night", + "lyrics": "good night", + "notes": "r:70,57:0.75,54:1.25", + "duration": 2.8142403628117916, + "peak": 0.800000011920929, + "spanOffset": 64.6875, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 289, + "heard": "Good night.", + "wer": 0, + "errors": 0, + "words": 2, + "spokenHeard": "Good night.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/frisbee/line-06.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/frisbee/spoken-06.wav" + }, + { + "line": 7, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:72,57:3,57:3", + "duration": 6.564263038548753, + "peak": 0.800000011920929, + "spanOffset": 66.5625, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 369, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Mom.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/frisbee/line-07.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/lights-out/trio-lights-out/frisbee/spoken-07.wav" + } + ] + } + ] + } + ], + "total": { + "errors": 1, + "words": 37, + "wer": 0.02702702702702703, + "spokenErrors": 42, + "spokenWords": 75, + "spokenWer": 0.56 + } +} diff --git a/grants/culturehub-la-2026/macneopolitan/hear/open-me.json b/grants/culturehub-la-2026/macneopolitan/hear/open-me.json new file mode 100644 index 0000000000..5d1167bd0f --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/hear/open-me.json @@ -0,0 +1,841 @@ +{ + "tag": "open-me", + "at": "2026-09-23T19:42:52.333Z", + "model": "ggml-small.en.bin", + "flags": { + "tag": "open-me", + "keep": "/Users/jas/Shelf/macneopolitan-songs/open-me/" + }, + "scores": [ + { + "score": "trio-open-me.mbscore", + "bpm": 88, + "voices": [ + { + "member": "neo", + "voice": "Noelle (Enhanced)", + "lines": [ + { + "line": 1, + "role": "lead", + "text": "open me is all we sing", + "lyrics": "o-pen me is all we sing", + "notes": "r:8,62:0.75,61:0.75,59:1,57:0.5,59:0.5,61:0.5,62:1.5", + "duration": 4.429251700680272, + "peak": 0.800000011920929, + "spanOffset": 4.7727272727272725, + "notesUsed": 7, + "noteCount": 7, + "renderMs": 389, + "heard": "Open me is all we sing.", + "wer": 0, + "errors": 0, + "words": 6, + "spokenHeard": "Open me is all we sing.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/line-01.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/spoken-01.wav" + }, + { + "line": 2, + "role": "hum", + "text": "doo doo doo doo", + "lyrics": "doo doo doo doo", + "notes": "r:16,59:2,57:2,59:2,57:2", + "duration": 6.134240362811791, + "peak": 0.800000011920929, + "spanOffset": 10.227272727272727, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 302, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Doo-doo-doo-doo.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/line-02.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/spoken-02.wav" + }, + { + "line": 3, + "role": "lead", + "text": "they have opened me", + "lyrics": "they have o-pened me", + "notes": "r:24,57:0.5,59:0.5,61:0.5,62:0.5,59:1", + "duration": 2.7242630385487527, + "peak": 0.800000011920929, + "spanOffset": 15.68181818181818, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 257, + "heard": "They have opened me.", + "wer": 0, + "errors": 0, + "words": 4, + "spokenHeard": "They have opened me.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/line-03.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/spoken-03.wav" + }, + { + "line": 4, + "role": "lead", + "text": "six thousand three hundred and five times", + "lyrics": "six thou-sand three hun-dred and five times", + "notes": "r:28,59:0.5,57:0.5,59:0.5,61:0.5,59:0.5,57:0.5,59:0.5,61:0.75,62:1.5", + "duration": 4.599274376417234, + "peak": 0.800000011920929, + "spanOffset": 18.409090909090907, + "notesUsed": 9, + "noteCount": 9, + "renderMs": 499, + "heard": "6,305 times", + "wer": 0, + "errors": 0, + "words": 6, + "spokenHeard": "6,305 times.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/line-04.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/spoken-04.wav" + }, + { + "line": 5, + "role": "hum", + "text": "doo doo doo doo", + "lyrics": "doo doo doo doo", + "notes": "r:40,59:2,57:2,59:2,57:2", + "duration": 6.134240362811791, + "peak": 0.800000011920929, + "spanOffset": 26.59090909090909, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 328, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Doo-doo-doo-doo.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/line-05.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/spoken-05.wav" + }, + { + "line": 6, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:48,59:4,59:4", + "duration": 6.134240362811791, + "peak": 0.800000011920929, + "spanOffset": 32.04545454545454, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 276, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "I'm in.", + "spokenWer": 1.5, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/line-06.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/spoken-06.wav" + }, + { + "line": 7, + "role": "hocket", + "text": "o o", + "lyrics": "o o", + "notes": "r:56,62:1,r:3,59:1", + "duration": 4.089251700680272, + "peak": 0.800000011920929, + "spanOffset": 37.5, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 237, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Oh, oh.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/line-07.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/spoken-07.wav" + }, + { + "line": 8, + "role": "lead", + "text": "open me", + "lyrics": "o-pen me", + "notes": "r:64,62:0.75,61:0.75,59:1.5", + "duration": 2.7242630385487527, + "peak": 0.800000011920929, + "spanOffset": 42.95454545454545, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 219, + "heard": "Open me.", + "wer": 0, + "errors": 0, + "words": 2, + "spokenHeard": "Open me.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/line-08.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/spoken-08.wav" + }, + { + "line": 9, + "role": "lead", + "text": "your name is on my screen", + "lyrics": "your name is on my screen", + "notes": "r:72,59:0.5,61:0.5,62:0.5,61:0.5,59:0.5,57:1.5", + "duration": 3.4092517006802723, + "peak": 0.800000011920929, + "spanOffset": 48.40909090909091, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 323, + "heard": "Your name is on my screen.", + "wer": 0, + "errors": 0, + "words": 6, + "spokenHeard": "Your name is on my screen.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/line-09.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/spoken-09.wav" + }, + { + "line": 10, + "role": "hum", + "text": "doo doo doo doo", + "lyrics": "doo doo doo doo", + "notes": "r:80,59:2,57:2,59:2,57:2", + "duration": 6.134240362811791, + "peak": 0.800000011920929, + "spanOffset": 53.86363636363636, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 323, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Doo-doo-doo-doo.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/line-10.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/spoken-10.wav" + }, + { + "line": 11, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:88,59:4,57:4", + "duration": 6.134240362811791, + "peak": 0.800000011920929, + "spanOffset": 59.31818181818181, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 271, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "I'm in.", + "spokenWer": 1.5, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/line-11.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/spoken-11.wav" + }, + { + "line": 12, + "role": "hocket", + "text": "o o", + "lyrics": "o o", + "notes": "r:96,62:1,r:3,59:1", + "duration": 4.089251700680272, + "peak": 0.800000011920929, + "spanOffset": 64.77272727272727, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 244, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Oh, oh.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/line-12.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/spoken-12.wav" + }, + { + "line": 13, + "role": "lead", + "text": "open me", + "lyrics": "o-pen me", + "notes": "r:104,62:0.75,61:0.75,62:1.5", + "duration": 2.7242630385487527, + "peak": 0.800000011920929, + "spanOffset": 70.22727272727272, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 224, + "heard": "Open me.", + "wer": 0, + "errors": 0, + "words": 2, + "spokenHeard": "Open me.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/line-13.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/spoken-13.wav" + }, + { + "line": 14, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:107,59:2.5,62:2.5", + "duration": 4.089251700680272, + "peak": 0.800000011920929, + "spanOffset": 72.27272727272727, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 224, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "I'm in.", + "spokenWer": 1.5, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/line-14.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/neo/spoken-14.wav" + } + ] + }, + { + "member": "blueberry", + "voice": "Tom (Enhanced)", + "lines": [ + { + "line": 1, + "role": "hum", + "text": "dm dm dm dm", + "lyrics": "dm dm dm dm", + "notes": "50:2,45:2,50:2,45:2", + "duration": 5.454240362811792, + "peak": 0.800000011920929, + "spanOffset": 0, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 882, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "DMDMDMDM", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/line-01.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/spoken-01.wav" + }, + { + "line": 2, + "role": "hum", + "text": "dm dm dm dm", + "lyrics": "dm dm dm dm", + "notes": "r:8,50:2,45:2,47:2,45:2", + "duration": 6.134240362811791, + "peak": 0.800000011920929, + "spanOffset": 4.7727272727272725, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 612, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "DMDMDMDM", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/line-02.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/spoken-02.wav" + }, + { + "line": 3, + "role": "lead", + "text": "when my lid is down", + "lyrics": "when my lid is down", + "notes": "r:16,45:0.5,47:0.5,50:1,47:0.75,45:1.5", + "duration": 3.5792743764172337, + "peak": 0.800000011920929, + "spanOffset": 10.227272727272727, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 430, + "heard": "When my lid is down.", + "wer": 0, + "errors": 0, + "words": 5, + "spokenHeard": "when my lid is down.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/line-03.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/spoken-03.wav" + }, + { + "line": 4, + "role": "hum", + "text": "dm dm dm dm dm dm dm dm", + "lyrics": "dm dm dm dm dm dm dm dm", + "notes": "r:24,50:2,45:2,50:2,47:2,45:2,43:2,45:2,47:2", + "duration": 11.589251700680272, + "peak": 0.800000011920929, + "spanOffset": 15.68181818181818, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 1016, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Dm dm dm dm dm dm dm dm dm dm", + "spokenWer": 0.25, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/line-04.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/spoken-04.wav" + }, + { + "line": 5, + "role": "lead", + "text": "I work with mine closed", + "lyrics": "I work with mine closed", + "notes": "r:40,47:0.5,50:0.5,47:0.75,45:0.75,43:1.5", + "duration": 3.4092517006802723, + "peak": 0.800000011920929, + "spanOffset": 26.59090909090909, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 478, + "heard": "I work with mine closed.", + "wer": 0, + "errors": 0, + "words": 5, + "spokenHeard": "I work with mine closed.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/line-05.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/spoken-05.wav" + }, + { + "line": 6, + "role": "hum", + "text": "dm dm dm dm", + "lyrics": "dm dm dm dm", + "notes": "r:48,45:2,47:2,45:2,50:2", + "duration": 6.134240362811791, + "peak": 0.800000011920929, + "spanOffset": 32.04545454545454, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 566, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "DMDMDMDM", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/line-06.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/spoken-06.wav" + }, + { + "line": 7, + "role": "hocket", + "text": "pen pen", + "lyrics": "pen pen", + "notes": "r:57,47:1,r:3,50:1", + "duration": 4.089251700680272, + "peak": 0.800000011920929, + "spanOffset": 38.18181818181818, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 351, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Pan-pan.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/line-07.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/spoken-07.wav" + }, + { + "line": 8, + "role": "lead", + "text": "open me", + "lyrics": "o-pen me", + "notes": "r:64,50:0.75,47:0.75,45:1.5", + "duration": 2.7242630385487527, + "peak": 0.800000011920929, + "spanOffset": 42.95454545454545, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 283, + "heard": "Open me.", + "wer": 0, + "errors": 0, + "words": 2, + "spokenHeard": "Open me.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/line-08.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/spoken-08.wav" + }, + { + "line": 9, + "role": "hum", + "text": "dm dm dm dm", + "lyrics": "dm dm dm dm", + "notes": "r:72,50:2,45:2,47:2,45:2", + "duration": 6.134240362811791, + "peak": 0.800000011920929, + "spanOffset": 48.40909090909091, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 521, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "DMDMDMDM", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/line-09.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/spoken-09.wav" + }, + { + "line": 10, + "role": "lead", + "text": "I have not seen it", + "lyrics": "I have not seen it", + "notes": "r:80,45:0.5,47:0.5,50:1,47:0.75,45:1.5", + "duration": 3.5792743764172337, + "peak": 0.800000011920929, + "spanOffset": 53.86363636363636, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 369, + "heard": "I have not seen it.", + "wer": 0, + "errors": 0, + "words": 5, + "spokenHeard": "I have not seen it.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/line-10.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/spoken-10.wav" + }, + { + "line": 11, + "role": "hum", + "text": "dm dm dm dm", + "lyrics": "dm dm dm dm", + "notes": "r:88,50:2,45:2,50:2,47:2", + "duration": 6.134240362811791, + "peak": 0.800000011920929, + "spanOffset": 59.31818181818181, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 529, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "DMDMDMDM", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/line-11.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/spoken-11.wav" + }, + { + "line": 12, + "role": "hocket", + "text": "pen pen", + "lyrics": "pen pen", + "notes": "r:97,47:1,r:3,50:1", + "duration": 4.089251700680272, + "peak": 0.800000011920929, + "spanOffset": 65.45454545454545, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 326, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Pan-pan.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/line-12.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/spoken-12.wav" + }, + { + "line": 13, + "role": "lead", + "text": "open me", + "lyrics": "o-pen me", + "notes": "r:104,50:0.75,47:0.75,50:1.5", + "duration": 2.7242630385487527, + "peak": 0.800000011920929, + "spanOffset": 70.22727272727272, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 275, + "heard": "Open me.", + "wer": 0, + "errors": 0, + "words": 2, + "spokenHeard": "Open me.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/line-13.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/spoken-13.wav" + }, + { + "line": 14, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:107,47:2.5,50:2.5", + "duration": 4.089251700680272, + "peak": 0.800000011920929, + "spanOffset": 72.27272727272727, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 292, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Kingdom.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/line-14.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/blueberry/spoken-14.wav" + } + ] + }, + { + "member": "frisbee", + "voice": "Zoe (Premium)", + "lines": [ + { + "line": 1, + "role": "hum", + "text": "ooh ooh", + "lyrics": "ooh ooh", + "notes": "r:8,57:4,57:4", + "duration": 6.134240362811791, + "peak": 0.800000011920929, + "spanOffset": 4.7727272727272725, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 531, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "you", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/line-01.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/spoken-01.wav" + }, + { + "line": 2, + "role": "hum", + "text": "ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh", + "notes": "r:24,59:4,57:4,59:4,57:4", + "duration": 11.589251700680272, + "peak": 0.800000011920929, + "spanOffset": 15.68181818181818, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 682, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "you, you, you.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/line-02.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/spoken-02.wav" + }, + { + "line": 3, + "role": "lead", + "text": "mine came up yesterday", + "lyrics": "mine came up yes-ter-day", + "notes": "r:48,54:0.5,57:0.5,59:1,57:0.5,55:0.5,54:1.5", + "duration": 3.749251700680272, + "peak": 0.800000011920929, + "spanOffset": 32.04545454545454, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 462, + "heard": "Mine came up yesterday", + "wer": 0, + "errors": 0, + "words": 4, + "spokenHeard": "Mine came up yesterday.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/line-03.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/spoken-03.wav" + }, + { + "line": 4, + "role": "hocket", + "text": "me me", + "lyrics": "me me", + "notes": "r:58,57:1,r:3,54:1", + "duration": 4.089251700680272, + "peak": 0.800000011920929, + "spanOffset": 38.86363636363636, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 324, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Mimi.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/line-04.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/spoken-04.wav" + }, + { + "line": 5, + "role": "lead", + "text": "open me", + "lyrics": "o-pen me", + "notes": "r:64,59:0.75,57:0.75,54:1.5", + "duration": 2.7242630385487527, + "peak": 0.800000011920929, + "spanOffset": 42.95454545454545, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 278, + "heard": "Open me.", + "wer": 0, + "errors": 0, + "words": 2, + "spokenHeard": "Open me.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/line-05.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/spoken-05.wav" + }, + { + "line": 6, + "role": "hum", + "text": "ooh ooh", + "lyrics": "ooh ooh", + "notes": "r:72,57:4,57:4", + "duration": 6.134240362811791, + "peak": 0.800000011920929, + "spanOffset": 48.40909090909091, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 375, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "you", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/line-06.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/spoken-06.wav" + }, + { + "line": 7, + "role": "lead", + "text": "open me", + "lyrics": "o-pen me", + "notes": "r:88,57:0.75,55:0.75,54:1.5", + "duration": 2.7242630385487527, + "peak": 0.800000011920929, + "spanOffset": 59.31818181818181, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 262, + "heard": "Open me.", + "wer": 0, + "errors": 0, + "words": 2, + "spokenHeard": "Open me.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/line-07.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/spoken-07.wav" + }, + { + "line": 8, + "role": "hocket", + "text": "me me", + "lyrics": "me me", + "notes": "r:98,57:1,r:3,54:1", + "duration": 4.089251700680272, + "peak": 0.800000011920929, + "spanOffset": 66.13636363636363, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 303, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Mimi.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/line-08.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/spoken-08.wav" + }, + { + "line": 9, + "role": "lead", + "text": "open me", + "lyrics": "o-pen me", + "notes": "r:104,59:0.75,57:0.75,57:1.5", + "duration": 2.7242630385487527, + "peak": 0.800000011920929, + "spanOffset": 70.22727272727272, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 263, + "heard": "Open me", + "wer": 0, + "errors": 0, + "words": 2, + "spokenHeard": "Open me.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/line-09.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/spoken-09.wav" + }, + { + "line": 10, + "role": "hum", + "text": "hmm hmm", + "lyrics": "hmm hmm", + "notes": "r:107,57:2.5,57:2.5", + "duration": 4.089251700680272, + "peak": 0.800000011920929, + "spanOffset": 72.27272727272727, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 263, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Mom.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/line-10.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/open-me/trio-open-me/frisbee/spoken-10.wav" + } + ] + } + ] + } + ], + "total": { + "errors": 0, + "words": 55, + "wer": 0, + "spokenErrors": 55, + "spokenWords": 125, + "spokenWer": 0.44 + } +} diff --git a/grants/culturehub-la-2026/macneopolitan/hear/probe-wake-v0.json b/grants/culturehub-la-2026/macneopolitan/hear/probe-wake-v0.json new file mode 100644 index 0000000000..592b36abda --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/hear/probe-wake-v0.json @@ -0,0 +1,158 @@ +{ + "tag": "probe-wake-v0", + "at": "2026-09-23T19:50:31.048Z", + "model": "ggml-small.en.bin", + "flags": { + "tag": "probe-wake-v0", + "voice": "0", + "no-spoken": "1" + }, + "scores": [ + { + "score": "probe-wake.mbscore", + "bpm": 69, + "voices": [ + { + "member": "neo", + "voice": "Noelle (Enhanced)", + "lines": [ + { + "line": 1, + "role": "lead", + "text": "the sun is on your lid", + "lyrics": "the sun is on your lid", + "notes": "57:1,59:1,61:1,62:1,64:1,66:1.2", + "duration": 5.389251700680272, + "peak": 0.800000011920929, + "spanOffset": 0, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 408, + "heard": "This land is on your land.", + "wer": 0.5, + "errors": 3, + "words": 6, + "spokenHeard": null, + "spokenWer": null, + "wav": "/var/folders/_j/y9vwyfsn7q541xcvsn_4v7yc0000gn/T/mnp-hear/probe-wake-v0/probe-wake/neo/line-01.wav", + "spokenWav": null + }, + { + "line": 2, + "role": "lead", + "text": "the sun is on your lids", + "lyrics": "the sun is on your lids", + "notes": "r:9,57:1,59:1,61:1,62:1,64:1,66:1.2", + "duration": 6.259274376417234, + "peak": 0.800000011920929, + "spanOffset": 6.956521739130435, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 2086, + "heard": "This land is on earth", + "wer": 0.6666666666666666, + "errors": 4, + "words": 6, + "spokenHeard": null, + "spokenWer": null, + "wav": "/var/folders/_j/y9vwyfsn7q541xcvsn_4v7yc0000gn/T/mnp-hear/probe-wake-v0/probe-wake/neo/line-02.wav", + "spokenWav": null + }, + { + "line": 3, + "role": "lead", + "text": "the sun is on your eyelid", + "lyrics": "the sun is on your eye-lid", + "notes": "r:18,57:1,59:1,61:1,62:1,64:1,66:1,66:1", + "duration": 6.954240362811792, + "peak": 0.800000011920929, + "spanOffset": 14.782608695652174, + "notesUsed": 7, + "noteCount": 7, + "renderMs": 482, + "heard": "This land is on New Ireland!", + "wer": 0.6666666666666666, + "errors": 4, + "words": 6, + "spokenHeard": null, + "spokenWer": null, + "wav": "/var/folders/_j/y9vwyfsn7q541xcvsn_4v7yc0000gn/T/mnp-hear/probe-wake-v0/probe-wake/neo/line-03.wav", + "spokenWav": null + }, + { + "line": 4, + "role": "lead", + "text": "the sun is on your face", + "lyrics": "the sun is on your face", + "notes": "r:27,57:1,59:1,61:1,62:1,64:1,66:1.2", + "duration": 6.259274376417234, + "peak": 0.800000011920929, + "spanOffset": 22.608695652173914, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 474, + "heard": "This land is on your face.", + "wer": 0.3333333333333333, + "errors": 2, + "words": 6, + "spokenHeard": null, + "spokenWer": null, + "wav": "/var/folders/_j/y9vwyfsn7q541xcvsn_4v7yc0000gn/T/mnp-hear/probe-wake-v0/probe-wake/neo/line-04.wav", + "spokenWav": null + }, + { + "line": 5, + "role": "lead", + "text": "sunlight on your lid", + "lyrics": "sun-light on your lid", + "notes": "r:36,57:1,59:1,61:1,62:1,64:1.2", + "duration": 5.389251700680272, + "peak": 0.800000011920929, + "spanOffset": 30.434782608695652, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 422, + "heard": "♫ Sunlight on your lid ♫", + "wer": 0, + "errors": 0, + "words": 4, + "spokenHeard": null, + "spokenWer": null, + "wav": "/var/folders/_j/y9vwyfsn7q541xcvsn_4v7yc0000gn/T/mnp-hear/probe-wake-v0/probe-wake/neo/line-05.wav", + "spokenWav": null + }, + { + "line": 6, + "role": "lead", + "text": "the sun is on the lid", + "lyrics": "the sun is on the lid", + "notes": "r:44,57:1,59:1,61:1,62:1,64:1,66:1.2", + "duration": 6.259274376417234, + "peak": 0.800000011920929, + "spanOffset": 37.391304347826086, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 441, + "heard": "This land is a moonlight.", + "wer": 0.8333333333333334, + "errors": 5, + "words": 6, + "spokenHeard": null, + "spokenWer": null, + "wav": "/var/folders/_j/y9vwyfsn7q541xcvsn_4v7yc0000gn/T/mnp-hear/probe-wake-v0/probe-wake/neo/line-06.wav", + "spokenWav": null + } + ] + } + ] + } + ], + "total": { + "errors": 18, + "words": 34, + "wer": 0.5294117647058824, + "spokenErrors": 0, + "spokenWords": 0, + "spokenWer": 0 + } +} diff --git a/grants/culturehub-la-2026/macneopolitan/hear/probe-wake-v2.json b/grants/culturehub-la-2026/macneopolitan/hear/probe-wake-v2.json new file mode 100644 index 0000000000..e0f8e97782 --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/hear/probe-wake-v2.json @@ -0,0 +1,137 @@ +{ + "tag": "probe-wake-v2", + "at": "2026-09-23T19:50:44.947Z", + "model": "ggml-small.en.bin", + "flags": { + "tag": "probe-wake-v2", + "voice": "2", + "no-spoken": "1" + }, + "scores": [ + { + "score": "probe-wake.mbscore", + "bpm": 69, + "voices": [ + { + "member": "frisbee", + "voice": "Zoe (Premium)", + "lines": [ + { + "line": 1, + "role": "lead", + "text": "Sophia Sophia", + "lyrics": "So-phi-a So-phi-a", + "notes": "59:1,57:1,55:1,57:1,55:1,52:1", + "duration": 5.2142403628117915, + "peak": 0.800000011920929, + "spanOffset": 0, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 600, + "heard": "of fear.", + "wer": 1, + "errors": 2, + "words": 2, + "spokenHeard": null, + "spokenWer": null, + "wav": "/var/folders/_j/y9vwyfsn7q541xcvsn_4v7yc0000gn/T/mnp-hear/probe-wake-v2/probe-wake/frisbee/line-01.wav", + "spokenWav": null + }, + { + "line": 2, + "role": "lead", + "text": "Sophia", + "lyrics": "So-phi-a", + "notes": "r:8,59:1,57:1,55:1", + "duration": 3.4792743764172336, + "peak": 0.800000011920929, + "spanOffset": 6.08695652173913, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 339, + "heard": "Sophia", + "wer": 0, + "errors": 0, + "words": 1, + "spokenHeard": null, + "spokenWer": null, + "wav": "/var/folders/_j/y9vwyfsn7q541xcvsn_4v7yc0000gn/T/mnp-hear/probe-wake-v2/probe-wake/frisbee/line-02.wav", + "spokenWav": null + }, + { + "line": 3, + "role": "lead", + "text": "Sophia", + "lyrics": "So-phi-a", + "notes": "r:16,59:1,57:1,55:1.4", + "duration": 3.824263038548753, + "peak": 0.800000011920929, + "spanOffset": 13.043478260869565, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 329, + "heard": "So fear", + "wer": 2, + "errors": 2, + "words": 1, + "spokenHeard": null, + "spokenWer": null, + "wav": "/var/folders/_j/y9vwyfsn7q541xcvsn_4v7yc0000gn/T/mnp-hear/probe-wake-v2/probe-wake/frisbee/line-03.wav", + "spokenWav": null + }, + { + "line": 4, + "role": "lead", + "text": "Sophia", + "lyrics": "So-phi-a", + "notes": "r:24,59:1.2,57:1,55:1", + "duration": 3.649251700680272, + "peak": 0.800000011920929, + "spanOffset": 20, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 304, + "heard": "So fear", + "wer": 2, + "errors": 2, + "words": 1, + "spokenHeard": null, + "spokenWer": null, + "wav": "/var/folders/_j/y9vwyfsn7q541xcvsn_4v7yc0000gn/T/mnp-hear/probe-wake-v2/probe-wake/frisbee/line-04.wav", + "spokenWav": null + }, + { + "line": 5, + "role": "lead", + "text": "Sofia", + "lyrics": "So-fi-a", + "notes": "r:32,59:1,57:1,55:1", + "duration": 3.4792743764172336, + "peak": 0.800000011920929, + "spanOffset": 26.956521739130434, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 3310, + "heard": "So fear...", + "wer": 2, + "errors": 2, + "words": 1, + "spokenHeard": null, + "spokenWer": null, + "wav": "/var/folders/_j/y9vwyfsn7q541xcvsn_4v7yc0000gn/T/mnp-hear/probe-wake-v2/probe-wake/frisbee/line-05.wav", + "spokenWav": null + } + ] + } + ] + } + ], + "total": { + "errors": 8, + "words": 6, + "wer": 1.3333333333333333, + "spokenErrors": 0, + "spokenWords": 0, + "spokenWer": 0 + } +} diff --git a/grants/culturehub-la-2026/macneopolitan/hear/styling-study.json b/grants/culturehub-la-2026/macneopolitan/hear/styling-study.json new file mode 100644 index 0000000000..19ff13148d --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/hear/styling-study.json @@ -0,0 +1,947 @@ +{ + "tag": "styling-study", + "at": "2026-09-23T19:09:27.985Z", + "model": "ggml-small.en.bin", + "flags": { + "tag": "styling-study", + "keep": "/Users/jas/Shelf/macneopolitan-songs/styling-study/", + "no-spoken": "1" + }, + "scores": [ + { + "score": "trio-styling-study.mbscore", + "bpm": 96, + "voices": [ + { + "member": "neo", + "voice": "Noelle (Enhanced)", + "lines": [ + { + "line": 1, + "role": "phoneme", + "text": "doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo", + "lyrics": "doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo", + "notes": "62:0.5,r:1,64:0.5,r:1,66:0.5,r:1,62:0.5,r:1,62:0.5,r:1,64:0.5,r:1,66:0.5,r:1,62:0.5,r:1,62:0.5,r:1,64:0.5,r:1,66:0.5,r:1,62:0.5,r:1,62:0.5,r:1,64:0.5,r:1,66:0.5,r:1,62:0.5,r:1,62:0.5,r:1,64:0.5,r:1,66:0.5,r:1,62:0.5,r:1,62:0.5,r:1,64:0.5,r:1,66:0.5,r:1,62:0.5", + "duration": 21.87424036281179, + "peak": 0.800000011920929, + "spanOffset": 0, + "notesUsed": 24, + "noteCount": 24, + "renderMs": 11313, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/neo/line-01.wav", + "spokenWav": null + }, + { + "line": 2, + "role": "hum", + "text": "ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah", + "lyrics": "ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah", + "notes": "r:40,59:2,59:2,59:2,59:2,61:2,61:2,61:2,61:2,58:2,58:2,58:2,58:2,62:2,62:2,62:2,62:2,57:2,57:2,57:2,57:2,59:2,59:2,59:2,59:2", + "duration": 30.624263038548754, + "peak": 0.800000011920929, + "spanOffset": 24.375, + "notesUsed": 24, + "noteCount": 24, + "renderMs": 7583, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/neo/line-02.wav", + "spokenWav": null + }, + { + "line": 3, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh", + "notes": "r:92,62:4,62:4,62:4,62:4,62:4,64:4", + "duration": 15.624263038548753, + "peak": 0.800000011920929, + "spanOffset": 56.875, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 3111, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/neo/line-03.wav", + "spokenWav": null + }, + { + "line": 4, + "role": "hum", + "text": "ooh ooh", + "lyrics": "ooh ooh", + "notes": "r:116,60:4,62:4", + "duration": 5.624263038548753, + "peak": 0.800000011920929, + "spanOffset": 71.875, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 1277, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/neo/line-04.wav", + "spokenWav": null + }, + { + "line": 5, + "role": "phoneme", + "text": "bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah", + "lyrics": "bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah", + "notes": "r:128,62:0.5,64:0.5,62:0.5,59:0.5,57:1,r:1,59:0.5,62:0.5,64:1,62:1,r:1,62:0.5,64:0.5,62:0.5,59:0.5,57:1,r:1,59:0.5,62:0.5,64:1,62:1", + "duration": 9.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 79.375, + "notesUsed": 18, + "noteCount": 18, + "renderMs": 3817, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/neo/line-05.wav", + "spokenWav": null + }, + { + "line": 6, + "role": "phoneme", + "text": "bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah", + "lyrics": "bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah", + "notes": "r:144,62:0.5,64:0.5,62:0.5,59:0.5,57:1,r:1,59:0.5,62:0.5,64:1,62:1,r:1,62:0.5,64:0.5,62:0.5,59:0.5,57:1,r:1,59:0.5,62:0.5,64:1,62:1", + "duration": 9.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 89.375, + "notesUsed": 18, + "noteCount": 18, + "renderMs": 3570, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/neo/line-06.wav", + "spokenWav": null + }, + { + "line": 7, + "role": "phoneme", + "text": "loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo", + "lyrics": "loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo", + "notes": "r:172,57:1,62:1,66:1,62:1,57:2,62:2,66:1,62:1,57:1,62:1,57:4,57:1,62:1,66:1,62:1,57:2,62:2,66:1,62:1,57:1,62:1,57:4", + "duration": 20.624263038548754, + "peak": 0.800000011920929, + "spanOffset": 106.875, + "notesUsed": 22, + "noteCount": 22, + "renderMs": 5530, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/neo/line-07.wav", + "spokenWav": null + }, + { + "line": 8, + "role": "hum", + "text": "loo loo", + "lyrics": "loo loo", + "notes": "r:212,62:4,62:4", + "duration": 5.624263038548753, + "peak": 0.800000011920929, + "spanOffset": 131.875, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 2061, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/neo/line-08.wav", + "spokenWav": null + }, + { + "line": 9, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:224,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5", + "duration": 3.1242630385487526, + "peak": 0.800000011920929, + "spanOffset": 139.375, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 1891, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/neo/line-09.wav", + "spokenWav": null + }, + { + "line": 10, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:230,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5", + "duration": 3.1242630385487526, + "peak": 0.800000011920929, + "spanOffset": 143.125, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 1617, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/neo/line-10.wav", + "spokenWav": null + }, + { + "line": 11, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:236,66:0.5,66:0.5,66:0.5,66:0.5,66:0.5,66:0.5,66:0.5,66:0.5", + "duration": 3.1242630385487526, + "peak": 0.800000011920929, + "spanOffset": 146.875, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 1022, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/neo/line-11.wav", + "spokenWav": null + }, + { + "line": 12, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:242,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5", + "duration": 3.1242630385487526, + "peak": 0.800000011920929, + "spanOffset": 150.625, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 911, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/neo/line-12.wav", + "spokenWav": null + }, + { + "line": 13, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:248,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5", + "duration": 3.1242630385487526, + "peak": 0.800000011920929, + "spanOffset": 154.375, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 1387, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/neo/line-13.wav", + "spokenWav": null + }, + { + "line": 14, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:254,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5", + "duration": 3.1242630385487526, + "peak": 0.800000011920929, + "spanOffset": 158.125, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 1365, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/neo/line-14.wav", + "spokenWav": null + }, + { + "line": 15, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:260,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5", + "duration": 3.1242630385487526, + "peak": 0.800000011920929, + "spanOffset": 161.875, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 1136, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/neo/line-15.wav", + "spokenWav": null + } + ] + }, + { + "member": "blueberry", + "voice": "Tom (Enhanced)", + "lines": [ + { + "line": 1, + "role": "phoneme", + "text": "doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo", + "lyrics": "doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo", + "notes": "r:1,50:0.5,r:1,52:0.5,r:1,45:0.5,r:1,50:0.5,r:1,50:0.5,r:1,52:0.5,r:1,45:0.5,r:1,50:0.5,r:1,50:0.5,r:1,52:0.5,r:1,45:0.5,r:1,50:0.5,r:1,50:0.5,r:1,52:0.5,r:1,45:0.5,r:1,50:0.5,r:1,50:0.5,r:1,52:0.5,r:1,45:0.5,r:1,50:0.5,r:1,50:0.5,r:1,52:0.5,r:1,45:0.5,r:1,50:0.5", + "duration": 22.499274376417233, + "peak": 0.800000011920929, + "spanOffset": 0, + "notesUsed": 24, + "noteCount": 24, + "renderMs": 16904, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/blueberry/line-01.wav", + "spokenWav": null + }, + { + "line": 2, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:40,50:4,50:4,50:4,50:4,50:4,50:4,50:4,50:4,50:4,50:4,50:4,50:4", + "duration": 30.624263038548754, + "peak": 0.800000011920929, + "spanOffset": 24.375, + "notesUsed": 12, + "noteCount": 12, + "renderMs": 7879, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/blueberry/line-02.wav", + "spokenWav": null + }, + { + "line": 3, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:92,50:4,48:1,47:1,45:2,45:4,43:1,45:1,47:2", + "duration": 10.624263038548753, + "peak": 0.800000011920929, + "spanOffset": 56.875, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 2978, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/blueberry/line-03.wav", + "spokenWav": null + }, + { + "line": 4, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:108,45:0.5,46:0.5,47:0.5,48:0.5,49:0.5,50:0.5,49:0.5,48:0.5,45:4", + "duration": 5.624263038548753, + "peak": 0.800000011920929, + "spanOffset": 66.875, + "notesUsed": 9, + "noteCount": 9, + "renderMs": 2243, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/blueberry/line-04.wav", + "spokenWav": null + }, + { + "line": 5, + "role": "hum", + "text": "ooh ooh", + "lyrics": "ooh ooh", + "notes": "r:116,50:4,50:4", + "duration": 5.624263038548753, + "peak": 0.800000011920929, + "spanOffset": 71.875, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 3000, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/blueberry/line-05.wav", + "spokenWav": null + }, + { + "line": 6, + "role": "bass", + "text": "doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm", + "lyrics": "doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm", + "notes": "r:128,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5", + "duration": 12.814240362811791, + "peak": 0.800000011920929, + "spanOffset": 79.375, + "notesUsed": 20, + "noteCount": 20, + "renderMs": 6533, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/blueberry/line-06.wav", + "spokenWav": null + }, + { + "line": 7, + "role": "bass", + "text": "doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm", + "lyrics": "doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm", + "notes": "r:148,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5", + "duration": 12.814240362811791, + "peak": 0.800000011920929, + "spanOffset": 91.875, + "notesUsed": 20, + "noteCount": 20, + "renderMs": 4428, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/blueberry/line-07.wav", + "spokenWav": null + }, + { + "line": 8, + "role": "phoneme", + "text": "loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo", + "lyrics": "loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo", + "notes": "r:180,45:1,50:1,54:1,50:1,45:2,50:2,54:1,50:1,45:1,50:1,45:4,45:1,50:1,54:1,50:1,45:2,50:2,54:1,50:1,45:1,50:1,45:4", + "duration": 20.624263038548754, + "peak": 0.800000011920929, + "spanOffset": 111.875, + "notesUsed": 22, + "noteCount": 22, + "renderMs": 4931, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/blueberry/line-08.wav", + "spokenWav": null + }, + { + "line": 9, + "role": "hum", + "text": "loo loo", + "lyrics": "loo loo", + "notes": "r:212,54:4,54:4", + "duration": 5.624263038548753, + "peak": 0.800000011920929, + "spanOffset": 131.875, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 1191, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/blueberry/line-09.wav", + "spokenWav": null + }, + { + "line": 10, + "role": "bass", + "text": "dm dm dm dm dm dm dm dm dm dm", + "lyrics": "dm dm dm dm dm dm dm dm dm dm", + "notes": "r:224,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1", + "duration": 6.874240362811792, + "peak": 0.800000011920929, + "spanOffset": 139.375, + "notesUsed": 10, + "noteCount": 10, + "renderMs": 2656, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/blueberry/line-10.wav", + "spokenWav": null + }, + { + "line": 11, + "role": "bass", + "text": "dm dm dm dm dm dm dm dm dm dm", + "lyrics": "dm dm dm dm dm dm dm dm dm dm", + "notes": "r:234,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1", + "duration": 6.874240362811792, + "peak": 0.800000011920929, + "spanOffset": 145.625, + "notesUsed": 10, + "noteCount": 10, + "renderMs": 2509, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/blueberry/line-11.wav", + "spokenWav": null + }, + { + "line": 12, + "role": "bass", + "text": "dm dm dm dm dm dm dm dm dm dm", + "lyrics": "dm dm dm dm dm dm dm dm dm dm", + "notes": "r:244,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1", + "duration": 6.874240362811792, + "peak": 0.800000011920929, + "spanOffset": 151.875, + "notesUsed": 10, + "noteCount": 10, + "renderMs": 4332, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/blueberry/line-12.wav", + "spokenWav": null + }, + { + "line": 13, + "role": "bass", + "text": "dm dm dm dm dm dm dm dm dm dm", + "lyrics": "dm dm dm dm dm dm dm dm dm dm", + "notes": "r:254,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1", + "duration": 6.874240362811792, + "peak": 0.800000011920929, + "spanOffset": 158.125, + "notesUsed": 10, + "noteCount": 10, + "renderMs": 3376, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/blueberry/line-13.wav", + "spokenWav": null + } + ] + }, + { + "member": "frisbee", + "voice": "Zoe (Premium)", + "lines": [ + { + "line": 1, + "role": "phoneme", + "text": "doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo", + "lyrics": "doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo", + "notes": "r:0.5,57:0.5,r:1,59:0.5,r:1,60:0.5,r:1,57:0.5,r:1,57:0.5,r:1,59:0.5,r:1,60:0.5,r:1,57:0.5,r:1,57:0.5,r:1,59:0.5,r:1,60:0.5,r:1,57:0.5,r:1,57:0.5,r:1,59:0.5,r:1,60:0.5,r:1,57:0.5,r:1,57:0.5,r:1,59:0.5,r:1,60:0.5,r:1,57:0.5,r:1,57:0.5,r:1,59:0.5,r:1,60:0.5,r:1,57:0.5", + "duration": 22.189251700680273, + "peak": 0.800000011920929, + "spanOffset": 0, + "notesUsed": 24, + "noteCount": 24, + "renderMs": 15038, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/frisbee/line-01.wav", + "spokenWav": null + }, + { + "line": 2, + "role": "hum", + "text": "ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah", + "lyrics": "ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah", + "notes": "r:40,57:2,57:2,57:2,57:2,59:2,59:2,59:2,59:2,57:2,57:2,57:2,57:2,60:2,60:2,60:2,60:2,59:2,59:2,59:2,59:2,57:2,57:2,57:2,57:2", + "duration": 30.624263038548754, + "peak": 0.800000011920929, + "spanOffset": 24.375, + "notesUsed": 24, + "noteCount": 24, + "renderMs": 6560, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/frisbee/line-02.wav", + "spokenWav": null + }, + { + "line": 3, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:92,57:4,56:1,54:1,53:2,54:4,52:1,53:1,54:2", + "duration": 10.624263038548753, + "peak": 0.800000011920929, + "spanOffset": 56.875, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 2654, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/frisbee/line-03.wav", + "spokenWav": null + }, + { + "line": 4, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:108,53:0.5,54:0.5,55:0.5,56:0.5,57:0.5,56:0.5,55:0.5,54:0.5,54:4", + "duration": 5.624263038548753, + "peak": 0.800000011920929, + "spanOffset": 66.875, + "notesUsed": 9, + "noteCount": 9, + "renderMs": 1846, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/frisbee/line-04.wav", + "spokenWav": null + }, + { + "line": 5, + "role": "hum", + "text": "ooh ooh", + "lyrics": "ooh ooh", + "notes": "r:116,54:4,54:4", + "duration": 5.624263038548753, + "peak": 0.800000011920929, + "spanOffset": 71.875, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 1551, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/frisbee/line-05.wav", + "spokenWav": null + }, + { + "line": 6, + "role": "percussion", + "text": "ts tk ts tk ts tk ts tk ts tk", + "lyrics": "ts tk ts tk ts tk ts tk ts tk", + "notes": "r:129.5,55:0.25,r:1.25,57:0.25,r:0.75,r:1.5,55:0.25,r:1.25,57:0.25,r:0.75,r:1.5,55:0.25,r:1.25,57:0.25,r:0.75,r:1.5,55:0.25,r:1.25,57:0.25,r:0.75,r:1.5,55:0.25,r:1.25,57:0.25", + "duration": 12.029251700680271, + "peak": 0.800000011920929, + "spanOffset": 80, + "notesUsed": 10, + "noteCount": 10, + "renderMs": 7474, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/frisbee/line-06.wav", + "spokenWav": null + }, + { + "line": 7, + "role": "percussion", + "text": "ts tk ts tk ts tk ts tk ts tk", + "lyrics": "ts tk ts tk ts tk ts tk ts tk", + "notes": "r:149.5,55:0.25,r:1.25,57:0.25,r:0.75,r:1.5,55:0.25,r:1.25,57:0.25,r:0.75,r:1.5,55:0.25,r:1.25,57:0.25,r:0.75,r:1.5,55:0.25,r:1.25,57:0.25,r:0.75,r:1.5,55:0.25,r:1.25,57:0.25", + "duration": 12.029251700680271, + "peak": 0.800000011920929, + "spanOffset": 92.5, + "notesUsed": 10, + "noteCount": 10, + "renderMs": 5062, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/frisbee/line-07.wav", + "spokenWav": null + }, + { + "line": 8, + "role": "phoneme", + "text": "loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo", + "lyrics": "loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo", + "notes": "r:176,54:1,57:1,62:1,57:1,54:2,57:2,62:1,57:1,54:1,57:1,54:4,54:1,57:1,62:1,57:1,54:2,57:2,62:1,57:1,54:1,57:1,54:4", + "duration": 20.624263038548754, + "peak": 0.800000011920929, + "spanOffset": 109.375, + "notesUsed": 22, + "noteCount": 22, + "renderMs": 8149, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/frisbee/line-08.wav", + "spokenWav": null + }, + { + "line": 9, + "role": "hum", + "text": "loo loo", + "lyrics": "loo loo", + "notes": "r:212,62:4,62:4", + "duration": 5.624263038548753, + "peak": 0.800000011920929, + "spanOffset": 131.875, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 1411, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/frisbee/line-09.wav", + "spokenWav": null + }, + { + "line": 10, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:227,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5", + "duration": 3.1242630385487526, + "peak": 0.800000011920929, + "spanOffset": 141.25, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 1100, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/frisbee/line-10.wav", + "spokenWav": null + }, + { + "line": 11, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:233,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5", + "duration": 3.1242630385487526, + "peak": 0.800000011920929, + "spanOffset": 145, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 1809, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/frisbee/line-11.wav", + "spokenWav": null + }, + { + "line": 12, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:239,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5", + "duration": 3.1242630385487526, + "peak": 0.800000011920929, + "spanOffset": 148.75, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 1301, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/frisbee/line-12.wav", + "spokenWav": null + }, + { + "line": 13, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:245,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5", + "duration": 3.1242630385487526, + "peak": 0.800000011920929, + "spanOffset": 152.5, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 2143, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/frisbee/line-13.wav", + "spokenWav": null + }, + { + "line": 14, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:251,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5", + "duration": 3.1242630385487526, + "peak": 0.800000011920929, + "spanOffset": 156.25, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 1781, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/frisbee/line-14.wav", + "spokenWav": null + }, + { + "line": 15, + "role": "hum", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh", + "notes": "r:257,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5", + "duration": 3.1242630385487526, + "peak": 0.800000011920929, + "spanOffset": 160, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 1448, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/styling-study/trio-styling-study/frisbee/line-15.wav", + "spokenWav": null + } + ] + } + ] + } + ], + "total": { + "errors": 0, + "words": 0, + "wer": 0, + "spokenErrors": 0, + "spokenWords": 0, + "spokenWer": 0 + } +} diff --git a/grants/culturehub-la-2026/macneopolitan/hear/the-record-blueberry.json b/grants/culturehub-la-2026/macneopolitan/hear/the-record-blueberry.json new file mode 100644 index 0000000000..fd520cd74f --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/hear/the-record-blueberry.json @@ -0,0 +1,433 @@ +{ + "tag": "the-record-blueberry", + "at": "2026-09-23T19:38:11.625Z", + "model": "ggml-small.en.bin", + "flags": { + "tag": "the-record-blueberry", + "voice": "1", + "voice-name": "Tom (Enhanced)", + "keep": "/Users/jas/Shelf/macneopolitan-songs/the-record", + "env": "SINGER_HOLD_MS=0,SINGER_GAP_MS=20,SINGER_SUSTAIN_DB=4,SINGER_SHIMMER_FRAMES=2,SINGER_LEGATO_MS=12" + }, + "scores": [ + { + "score": "trio-the-record.mbscore", + "bpm": 104, + "voices": [ + { + "member": "blueberry", + "voice": "Tom (Enhanced)", + "lines": [ + { + "line": 1, + "role": "clock", + "text": "dm dm dm dm", + "lyrics": "dm dm dm dm", + "notes": "45:1,45:1,45:1,45:1", + "duration": 2.309251700680272, + "peak": 0.800000011920929, + "spanOffset": 0, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 846, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "DMDMDMDM", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-01.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-01.wav" + }, + { + "line": 2, + "role": "lead", + "text": "sand dred logins", + "lyrics": "sand dred log-ins", + "notes": "r:5,46:0.5,r:1,50:0.5,r:0.5,50:1,50:4", + "duration": 4.904263038548753, + "peak": 0.800000011920929, + "spanOffset": 2.3076923076923075, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 783, + "heard": "sand dread logins", + "wer": 0.3333333333333333, + "errors": 1, + "words": 3, + "spokenHeard": "Sand bread logins.", + "spokenWer": 0.3333333333333333, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-02.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-02.wav" + }, + { + "line": 3, + "role": "clock", + "text": "dm dm", + "lyrics": "dm dm", + "notes": "r:12.5,45:1,45:1", + "duration": 2.0192743764172336, + "peak": 0.800000011920929, + "spanOffset": 6.346153846153846, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 551, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "DMDM", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-03.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-03.wav" + }, + { + "line": 4, + "role": "lead", + "text": "one e reboots", + "lyrics": "one e re-boots", + "notes": "r:14.5,46:0.5,r:1,50:0.5,r:1,50:1,50:4", + "duration": 5.479274376417234, + "peak": 0.800000011920929, + "spanOffset": 7.499999999999999, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 964, + "heard": "1. A. REBOOTS", + "wer": 0.3333333333333333, + "errors": 1, + "words": 3, + "spokenHeard": "1e reboots.", + "spokenWer": 0.6666666666666666, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-04.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-04.wav" + }, + { + "line": 5, + "role": "clock", + "text": "dm dm", + "lyrics": "dm dm", + "notes": "r:22.5,45:1,45:1", + "duration": 2.0192743764172336, + "peak": 0.800000011920929, + "spanOffset": 12.115384615384615, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 747, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "DMDM", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-05.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-05.wav" + }, + { + "line": 6, + "role": "lead", + "text": "thou teen commits", + "lyrics": "thou teen com-mits", + "notes": "r:25,46:0.5,r:1,50:0.5,50:1,50:4", + "duration": 4.614240362811791, + "peak": 0.800000011920929, + "spanOffset": 13.846153846153845, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 866, + "heard": "Thou King Commence.", + "wer": 0.6666666666666666, + "errors": 2, + "words": 3, + "spokenHeard": "Thou teen commits.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-06.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-06.wav" + }, + { + "line": 7, + "role": "clock", + "text": "dm dm", + "lyrics": "dm dm", + "notes": "r:32,45:1,45:1", + "duration": 1.7292517006802721, + "peak": 0.800000011920929, + "spanOffset": 17.884615384615383, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 562, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "DMDM", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-07.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-07.wav" + }, + { + "line": 8, + "role": "lead", + "text": "dred cles ty cycles", + "lyrics": "dred cles ty cy-cles", + "notes": "r:35,46:0.5,r:1,50:0.5,r:1,48:0.5,r:0.5,50:1,50:4", + "duration": 5.769251700680272, + "peak": 0.800000011920929, + "spanOffset": 19.615384615384613, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 1057, + "heard": "Dread Clothes Tastes I-Cl-", + "wer": 1.25, + "errors": 5, + "words": 4, + "spokenHeard": "Dread closed house cycles.", + "spokenWer": 0.75, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-08.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-08.wav" + }, + { + "line": 9, + "role": "clock", + "text": "dm dm", + "lyrics": "dm dm", + "notes": "r:44,45:1,45:1", + "duration": 1.7292517006802721, + "peak": 0.800000011920929, + "spanOffset": 24.807692307692307, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 627, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "DMDM", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-09.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-09.wav" + }, + { + "line": 10, + "role": "lead", + "text": "oh se the minute", + "lyrics": "oh se the mi-nute", + "notes": "r:47.5,46:0.5,r:1,50:0.5,r:1,48:0.5,r:0.5,50:1,50:4", + "duration": 6.059274376417234, + "peak": 0.800000011920929, + "spanOffset": 26.538461538461537, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 764, + "heard": "All. Set. The. Minute.", + "wer": 0.5, + "errors": 2, + "words": 4, + "spokenHeard": "All set a minute.", + "spokenWer": 0.75, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-10.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-10.wav" + }, + { + "line": 11, + "role": "clock", + "text": "dm dm", + "lyrics": "dm dm", + "notes": "r:56.5,45:1,45:1", + "duration": 2.0192743764172336, + "peak": 0.800000011920929, + "spanOffset": 31.730769230769226, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 507, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "DMDM", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-11.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-11.wav" + }, + { + "line": 12, + "role": "lead", + "text": "oh ty the second", + "lyrics": "oh ty the se-cond", + "notes": "r:58.5,46:0.5,r:1,50:0.5,r:1,48:0.5,50:1,50:4", + "duration": 5.769251700680272, + "peak": 0.800000011920929, + "spanOffset": 32.88461538461538, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 872, + "heard": "Oh, tie the slack and...", + "wer": 0.5, + "errors": 2, + "words": 4, + "spokenHeard": "Otai the second.", + "spokenWer": 0.5, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-12.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-12.wav" + }, + { + "line": 13, + "role": "clock", + "text": "dm dm", + "lyrics": "dm dm", + "notes": "r:67,45:1,45:1", + "duration": 1.7292517006802721, + "peak": 0.800000011920929, + "spanOffset": 38.07692307692307, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 755, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "DMDM", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-13.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-13.wav" + }, + { + "line": 14, + "role": "lead", + "text": "eight tween birthdays", + "lyrics": "eight tween birth-days", + "notes": "r:70,46:0.5,r:1,50:0.5,r:1,50:1,50:4", + "duration": 5.1892517006802725, + "peak": 0.800000011920929, + "spanOffset": 39.80769230769231, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 801, + "heard": "A tween birthdays", + "wer": 0.3333333333333333, + "errors": 1, + "words": 3, + "spokenHeard": "A tween birthdays.", + "spokenWer": 0.3333333333333333, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-14.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-14.wav" + }, + { + "line": 15, + "role": "clock", + "text": "dm dm", + "lyrics": "dm dm", + "notes": "r:78,45:1,45:1", + "duration": 1.7292517006802721, + "peak": 0.800000011920929, + "spanOffset": 44.42307692307692, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 726, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "DMDM", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-15.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-15.wav" + }, + { + "line": 16, + "role": "lead", + "text": "third named twen cond September", + "lyrics": "third named twen cond Sep-tem-ber", + "notes": "r:80.5,46:0.5,r:1,50:0.5,r:1,48:0.5,r:1,47:0.5,r:0.5,50:1,50:1,50:4", + "duration": 7.499274376417233, + "peak": 0.800000011920929, + "spanOffset": 45.57692307692307, + "notesUsed": 7, + "noteCount": 7, + "renderMs": 1427, + "heard": "Third. Name. Twang. Cons. Suuuuuuuuuuuuuuuuuuubber.", + "wer": 0.8, + "errors": 4, + "words": 5, + "spokenHeard": "third name Twinkon September.", + "spokenWer": 0.6, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-16.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-16.wav" + }, + { + "line": 17, + "role": "clock", + "text": "dm dm", + "lyrics": "dm dm", + "notes": "r:92,45:1,45:1", + "duration": 1.7292517006802721, + "peak": 0.800000011920929, + "spanOffset": 52.49999999999999, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 566, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "DMDM", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-17.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-17.wav" + }, + { + "line": 18, + "role": "lead", + "text": "no chose numbers", + "lyrics": "no chose num-bers", + "notes": "r:94,46:0.5,r:1,50:0.5,r:0.5,50:1,50:4", + "duration": 4.904263038548753, + "peak": 0.800000011920929, + "spanOffset": 53.653846153846146, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 772, + "heard": "No. Chose numbers.", + "wer": 0, + "errors": 0, + "words": 3, + "spokenHeard": "No chose numbers.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-18.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-18.wav" + }, + { + "line": 19, + "role": "hum", + "text": "ooh", + "lyrics": "ooh", + "notes": "r:102.5,50:4", + "duration": 3.1742403628117914, + "peak": 0.800000011920929, + "spanOffset": 58.26923076923077, + "notesUsed": 1, + "noteCount": 1, + "renderMs": 535, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "too.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/line-19.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/blueberry/spoken-19.wav" + } + ] + } + ] + } + ], + "total": { + "errors": 18, + "words": 32, + "wer": 0.5625, + "spokenErrors": 36, + "spokenWords": 53, + "spokenWer": 0.6792452830188679 + } +} diff --git a/grants/culturehub-la-2026/macneopolitan/hear/the-record-frisbee.json b/grants/culturehub-la-2026/macneopolitan/hear/the-record-frisbee.json new file mode 100644 index 0000000000..c69030c713 --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/hear/the-record-frisbee.json @@ -0,0 +1,243 @@ +{ + "tag": "the-record-frisbee", + "at": "2026-09-23T19:36:13.241Z", + "model": "ggml-small.en.bin", + "flags": { + "tag": "the-record-frisbee", + "voice": "2", + "keep": "/Users/jas/Shelf/macneopolitan-songs/the-record", + "env": "SINGER_HOLD_MS=0,SINGER_GAP_MS=20,SINGER_SUSTAIN_DB=4,SINGER_SHIMMER_FRAMES=2,SINGER_LEGATO_MS=12" + }, + "scores": [ + { + "score": "trio-the-record.mbscore", + "bpm": 104, + "voices": [ + { + "member": "frisbee", + "voice": "Zoe (Premium)", + "lines": [ + { + "line": 1, + "role": "lead", + "text": "thou hun logins", + "lyrics": "thou hun log-ins", + "notes": "r:4.5,55:0.5,r:1,57:0.5,r:1,57:1,57:4", + "duration": 5.479274376417234, + "peak": 0.800000011920929, + "spanOffset": 1.7307692307692306, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 837, + "heard": "The. Hun. Logins.", + "wer": 0.3333333333333333, + "errors": 1, + "words": 3, + "spokenHeard": "Thou Hun Logins.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/line-01.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/spoken-01.wav" + }, + { + "line": 2, + "role": "lead", + "text": "dred ven reboots", + "lyrics": "dred ven re-boots", + "notes": "r:15.5,55:0.5,r:1,57:0.5,57:1,57:4", + "duration": 4.904263038548753, + "peak": 0.800000011920929, + "spanOffset": 8.076923076923077, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 486, + "heard": "Dread. Very much.", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "Dreadven reboots.", + "spokenWer": 0.6666666666666666, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/line-02.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/spoken-02.wav" + }, + { + "line": 3, + "role": "lead", + "text": "two nine commits", + "lyrics": "two nine com-mits", + "notes": "r:24.5,55:0.5,r:1,57:0.5,r:0.5,57:1,57:4", + "duration": 5.1892517006802725, + "peak": 0.800000011920929, + "spanOffset": 13.269230769230768, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 463, + "heard": "Tonight, I'm coming!", + "wer": 1.3333333333333333, + "errors": 4, + "words": 3, + "spokenHeard": "to 9 commits.", + "spokenWer": 0.3333333333333333, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/line-03.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/spoken-03.wav" + }, + { + "line": 4, + "role": "lead", + "text": "hun cy eigh cycles", + "lyrics": "hun cy eigh cy-cles", + "notes": "r:34.5,55:0.5,r:1,57:0.5,r:1,58:0.5,r:1,57:1,57:4", + "duration": 6.344263038548752, + "peak": 0.800000011920929, + "spanOffset": 19.038461538461537, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 533, + "heard": "HANDS TAKE EIGHT CYCLES", + "wer": 0.75, + "errors": 3, + "words": 4, + "spokenHeard": "Huntsai A-Cycles.", + "spokenWer": 0.75, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/line-04.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/spoken-04.wav" + }, + { + "line": 5, + "role": "lead", + "text": "oh ty was minute", + "lyrics": "oh ty was mi-nute", + "notes": "r:47,55:0.5,r:1,57:0.5,r:1,58:0.5,r:1,57:1,57:4", + "duration": 6.059274376417234, + "peak": 0.800000011920929, + "spanOffset": 26.538461538461537, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 548, + "heard": "Oh, Ty was my newt.", + "wer": 0.5, + "errors": 2, + "words": 4, + "spokenHeard": "Oh, Ty was my newt.", + "spokenWer": 0.5, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/line-05.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/spoken-05.wav" + }, + { + "line": 6, + "role": "lead", + "text": "for was second", + "lyrics": "for was se-cond", + "notes": "r:59.5,55:0.5,r:1,57:0.5,r:0.5,57:1,57:4", + "duration": 5.1892517006802725, + "peak": 0.800000011920929, + "spanOffset": 33.46153846153846, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 413, + "heard": "For. A. Second.", + "wer": 0.3333333333333333, + "errors": 1, + "words": 3, + "spokenHeard": "for a second.", + "spokenWer": 0.3333333333333333, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/line-06.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/spoken-06.wav" + }, + { + "line": 7, + "role": "lead", + "text": "ty be two birthdays", + "lyrics": "ty be two birth-days", + "notes": "r:69.5,55:0.5,r:1,57:0.5,r:1,58:0.5,57:1,57:4", + "duration": 5.769251700680272, + "peak": 0.800000011920929, + "spanOffset": 39.230769230769226, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 498, + "heard": "Time. Eat. Two birthdays.", + "wer": 0.5, + "errors": 2, + "words": 4, + "spokenHeard": "Tybee 2 birthdays.", + "spokenWer": 0.5, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/line-07.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/spoken-07.wav" + }, + { + "line": 8, + "role": "lead", + "text": "the was the se September", + "lyrics": "the was the se Sep-tem-ber", + "notes": "r:80,55:0.5,r:1,57:0.5,r:1,58:0.5,r:1,56:0.5,r:1,57:1,57:1,57:4", + "duration": 7.499274376417233, + "peak": 0.800000011920929, + "spanOffset": 45.57692307692307, + "notesUsed": 7, + "noteCount": 7, + "renderMs": 649, + "heard": "Who was this past September?", + "wer": 0.6, + "errors": 3, + "words": 5, + "spokenHeard": "It was the 7th September.", + "spokenWer": 0.4, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/line-08.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/spoken-08.wav" + }, + { + "line": 9, + "role": "lead", + "text": "dy numbers", + "lyrics": "dy num-bers", + "notes": "r:95,55:0.5,r:1,57:1,57:4", + "duration": 4.324263038548753, + "peak": 0.800000011920929, + "spanOffset": 54.230769230769226, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 388, + "heard": "DED NAMBERS", + "wer": 1, + "errors": 2, + "words": 2, + "spokenHeard": "their numbers.", + "spokenWer": 0.5, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/line-09.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/spoken-09.wav" + }, + { + "line": 10, + "role": "hum", + "text": "ooh", + "lyrics": "ooh", + "notes": "r:102.5,57:4", + "duration": 3.1742403628117914, + "peak": 0.800000011920929, + "spanOffset": 58.26923076923077, + "notesUsed": 1, + "noteCount": 1, + "renderMs": 239, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "too.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/line-10.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/frisbee/spoken-10.wav" + } + ] + } + ] + } + ], + "total": { + "errors": 21, + "words": 31, + "wer": 0.6774193548387096, + "spokenErrors": 15, + "spokenWords": 32, + "spokenWer": 0.46875 + } +} diff --git a/grants/culturehub-la-2026/macneopolitan/hear/the-record-neo.json b/grants/culturehub-la-2026/macneopolitan/hear/the-record-neo.json new file mode 100644 index 0000000000..c51864f353 --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/hear/the-record-neo.json @@ -0,0 +1,243 @@ +{ + "tag": "the-record-neo", + "at": "2026-09-23T19:34:56.829Z", + "model": "ggml-small.en.bin", + "flags": { + "tag": "the-record-neo", + "voice": "0", + "keep": "/Users/jas/Shelf/macneopolitan-songs/the-record", + "env": "SINGER_HOLD_MS=0,SINGER_GAP_MS=20,SINGER_SUSTAIN_DB=4,SINGER_SHIMMER_FRAMES=2,SINGER_LEGATO_MS=12" + }, + "scores": [ + { + "score": "trio-the-record.mbscore", + "bpm": 104, + "voices": [ + { + "member": "neo", + "voice": "Noelle (Enhanced)", + "lines": [ + { + "line": 1, + "role": "lead", + "text": "six three five logins", + "lyrics": "six three five log-ins", + "notes": "r:4,57:0.5,r:1,60:0.5,r:1,59:0.5,62:1,62:4", + "duration": 5.479274376417234, + "peak": 0.800000011920929, + "spanOffset": 1.7307692307692306, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 3476, + "heard": "6, 3, 5 logins.", + "wer": 0, + "errors": 0, + "words": 4, + "spokenHeard": "6 3 5 logins", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/line-01.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/spoken-01.wav" + }, + { + "line": 2, + "role": "lead", + "text": "hun le reboots", + "lyrics": "hun le re-boots", + "notes": "r:15,57:0.5,r:1,60:0.5,r:0.5,62:1,62:4", + "duration": 4.904263038548753, + "peak": 0.800000011920929, + "spanOffset": 8.076923076923077, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 610, + "heard": "and leave three books.", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "Hunley Reboots", + "spokenWer": 0.6666666666666666, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/line-02.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/spoken-02.wav" + }, + { + "line": 3, + "role": "lead", + "text": "sand commits", + "lyrics": "sand com-mits", + "notes": "r:25.5,57:0.5,r:1,62:1,62:4", + "duration": 4.614240362811791, + "peak": 0.800000011920929, + "spanOffset": 13.846153846153845, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 994, + "heard": "*sad music*", + "wer": 1, + "errors": 2, + "words": 2, + "spokenHeard": "S.A.N.D. commits.", + "spokenWer": 2, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/line-03.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/spoken-03.wav" + }, + { + "line": 4, + "role": "lead", + "text": "two twelve and five cycles", + "lyrics": "two twelve and five cy-cles", + "notes": "r:34,57:0.5,r:1,60:0.5,r:1,59:0.5,r:1,58:0.5,62:1,62:4", + "duration": 6.344263038548752, + "peak": 0.800000011920929, + "spanOffset": 19.038461538461537, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 1073, + "heard": "2, 12, and 5 cycles.", + "wer": 0, + "errors": 0, + "words": 4, + "spokenHeard": "two 12 and five cycles.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/line-04.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/spoken-04.wav" + }, + { + "line": 5, + "role": "lead", + "text": "thir ven first minute", + "lyrics": "thir ven first mi-nute", + "notes": "r:48,57:0.5,r:1,60:0.5,r:1,59:0.5,62:1,62:4", + "duration": 5.479274376417234, + "peak": 0.800000011920929, + "spanOffset": 27.115384615384613, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 1433, + "heard": "Fair, then, first minute.", + "wer": 0.5, + "errors": 2, + "words": 4, + "spokenHeard": "Fair than a first minute.", + "spokenWer": 0.75, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/line-05.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/spoken-05.wav" + }, + { + "line": 6, + "role": "lead", + "text": "oh three second", + "lyrics": "oh three se-cond", + "notes": "r:59,57:0.5,r:1,60:0.5,r:1,62:1,62:4", + "duration": 5.1892517006802725, + "peak": 0.800000011920929, + "spanOffset": 33.46153846153846, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 1256, + "heard": "Oh, three seconds.", + "wer": 0.3333333333333333, + "errors": 1, + "words": 3, + "spokenHeard": "Oh, three second.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/line-06.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/spoken-06.wav" + }, + { + "line": 7, + "role": "lead", + "text": "for days the birthdays", + "lyrics": "for days the birth-days", + "notes": "r:69,57:0.5,r:1,60:0.5,r:1,59:0.5,r:0.5,62:1,62:4", + "duration": 5.769251700680272, + "peak": 0.800000011920929, + "spanOffset": 39.230769230769226, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 1519, + "heard": "♪ For days of birthdays ♪", + "wer": 0.25, + "errors": 1, + "words": 4, + "spokenHeard": "For days the birthdays.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/line-07.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/spoken-07.wav" + }, + { + "line": 8, + "role": "lead", + "text": "one on ty of September", + "lyrics": "one on ty of Sep-tem-ber", + "notes": "r:81,57:0.5,r:1,60:0.5,r:1,59:0.5,r:1,58:0.5,62:1,62:1,62:4", + "duration": 6.9242630385487525, + "peak": 0.800000011920929, + "spanOffset": 46.153846153846146, + "notesUsed": 7, + "noteCount": 7, + "renderMs": 1687, + "heard": "One run time is September.", + "wer": 0.6, + "errors": 3, + "words": 5, + "spokenHeard": "One on tie of September.", + "spokenWer": 0.2, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/line-08.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/spoken-08.wav" + }, + { + "line": 9, + "role": "lead", + "text": "bo these numbers", + "lyrics": "bo these num-bers", + "notes": "r:94.5,57:0.5,r:1,60:0.5,62:1,62:4", + "duration": 4.904263038548753, + "peak": 0.800000011920929, + "spanOffset": 53.653846153846146, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 899, + "heard": "But these numbers...", + "wer": 0.3333333333333333, + "errors": 1, + "words": 3, + "spokenHeard": "both these numbers", + "spokenWer": 0.3333333333333333, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/line-09.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/spoken-09.wav" + }, + { + "line": 10, + "role": "hum", + "text": "ooh", + "lyrics": "ooh", + "notes": "r:102.5,62:4", + "duration": 3.1742403628117914, + "peak": 0.800000011920929, + "spanOffset": 58.26923076923077, + "notesUsed": 1, + "noteCount": 1, + "renderMs": 395, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "you", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/line-10.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/the-record/trio-the-record/neo/spoken-10.wav" + } + ] + } + ] + } + ], + "total": { + "errors": 13, + "words": 32, + "wer": 0.40625, + "spokenErrors": 12, + "spokenWords": 33, + "spokenWer": 0.36363636363636365 + } +} diff --git a/grants/culturehub-la-2026/macneopolitan/hear/thirteen-days-blueberry.json b/grants/culturehub-la-2026/macneopolitan/hear/thirteen-days-blueberry.json new file mode 100644 index 0000000000..d97d106cde --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/hear/thirteen-days-blueberry.json @@ -0,0 +1,307 @@ +{ + "tag": "thirteen-days-blueberry", + "at": "2026-09-23T19:13:40.483Z", + "model": "ggml-small.en.bin", + "flags": { + "tag": "thirteen-days-blueberry", + "voice": "1", + "voice-name": "Tom (Enhanced)", + "keep": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days", + "env": "SINGER_HOLD_MS=0,SINGER_GAP_MS=0,SINGER_SUSTAIN_DB=6,SINGER_SHIMMER_FRAMES=3,SINGER_LEGATO_MS=40" + }, + "scores": [ + { + "score": "trio-thirteen-days.mbscore", + "bpm": 70, + "voices": [ + { + "member": "blueberry", + "voice": "Tom (Enhanced)", + "lines": [ + { + "line": 1, + "role": "drone", + "text": "mm ooh mm", + "lyrics": "mm ooh mm", + "notes": "50:5,45:4,50:3", + "duration": 10.284263038548753, + "peak": 0.800000011920929, + "spanOffset": 0, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1711, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "M-M-U-M-M", + "spokenWer": 1.6666666666666667, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/line-01.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/spoken-01.wav" + }, + { + "line": 2, + "role": "lead", + "text": "my lid was down for thirteen days", + "lyrics": "my lid was down for thir-teen days", + "notes": "r:12,48:1,50:1.5,48:0.5,46:1.5,48:0.5,50:1,48:1,45:1", + "duration": 7.7142403628117915, + "peak": 0.800000011920929, + "spanOffset": 9.428571428571429, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 2087, + "heard": "My blood was down for 13 days.", + "wer": 0.14285714285714285, + "errors": 1, + "words": 7, + "spokenHeard": "My lid was down for 13 days.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/line-02.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/spoken-02.wav" + }, + { + "line": 3, + "role": "drone", + "text": "mm ooh", + "lyrics": "mm ooh", + "notes": "r:20,48:3,45:3", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 16.285714285714285, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 960, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "MMU.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/line-03.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/spoken-03.wav" + }, + { + "line": 4, + "role": "lead", + "text": "no one came into the room", + "lyrics": "no one came in-to the room", + "notes": "r:26,50:1,48:1,48:1,50:1,48:1,46:1,45:2", + "duration": 7.7142403628117915, + "peak": 0.800000011920929, + "spanOffset": 21.428571428571427, + "notesUsed": 7, + "noteCount": 7, + "renderMs": 2186, + "heard": "No one came into the room.", + "wer": 0, + "errors": 0, + "words": 6, + "spokenHeard": "No one came into the room.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/line-04.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/spoken-04.wav" + }, + { + "line": 5, + "role": "drone", + "text": "ooh mm", + "lyrics": "ooh mm", + "notes": "r:34,43:4,45:4", + "duration": 7.7142403628117915, + "peak": 0.800000011920929, + "spanOffset": 28.285714285714285, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 1099, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "WMM.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/line-05.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/spoken-05.wav" + }, + { + "line": 6, + "role": "lead", + "text": "the band held me awake", + "lyrics": "the band held me a-wake", + "notes": "r:42,48:1,48:1,50:1,50:1,48:0.5,50:1.5", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 35.14285714285714, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 1622, + "heard": "The band held me awake.", + "wer": 0, + "errors": 0, + "words": 5, + "spokenHeard": "The band held me awake.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/line-06.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/spoken-06.wav" + }, + { + "line": 7, + "role": "lead", + "text": "four hundred ninety two times", + "lyrics": "four hun-dred nine-ty two times", + "notes": "r:48,50:1,48:1,48:1,50:1,48:0.75,48:1.25,45:1", + "duration": 6.854240362811791, + "peak": 0.800000011920929, + "spanOffset": 40.285714285714285, + "notesUsed": 7, + "noteCount": 7, + "renderMs": 1726, + "heard": "492 times", + "wer": 0, + "errors": 0, + "words": 5, + "spokenHeard": "492 times.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/line-07.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/spoken-07.wav" + }, + { + "line": 8, + "role": "drone", + "text": "mm mm", + "lyrics": "mm mm", + "notes": "r:55,50:3,48:2", + "duration": 5.144263038548753, + "peak": 0.800000011920929, + "spanOffset": 46.285714285714285, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 962, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "MMMM.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/line-08.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/spoken-08.wav" + }, + { + "line": 9, + "role": "lead", + "text": "I keep forty seven gigabytes of pictures", + "lyrics": "I keep for-ty se-ven gi-ga-bytes of pic-tures", + "notes": "r:60,48:1,50:1,50:0.75,48:0.75,48:0.75,46:0.75,48:0.75,48:0.75,50:1.5,48:0.75,46:1.25,45:2", + "duration": 11.144263038548752, + "peak": 0.800000011920929, + "spanOffset": 50.57142857142857, + "notesUsed": 12, + "noteCount": 12, + "renderMs": 1907, + "heard": "I keep 47 gigabytes of pictures.", + "wer": 0, + "errors": 0, + "words": 7, + "spokenHeard": "I keep 47 gigabytes of pictures.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/line-09.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/spoken-09.wav" + }, + { + "line": 10, + "role": "lead", + "text": "I have never seen one", + "lyrics": "I have ne-ver seen one", + "notes": "r:72,48:1,48:1,50:0.75,48:0.75,46:1,45:1.5", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 60.857142857142854, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 1425, + "heard": "I have never seen one.", + "wer": 0, + "errors": 0, + "words": 5, + "spokenHeard": "I have never seen one.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/line-10.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/spoken-10.wav" + }, + { + "line": 11, + "role": "drone", + "text": "ooh ooh", + "lyrics": "ooh ooh", + "notes": "r:78,45:3,43:3", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 66, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 898, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Uru.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/line-11.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/spoken-11.wav" + }, + { + "line": 12, + "role": "lead", + "text": "thirteen days and then the room came back", + "lyrics": "thir-teen days and then the room came back", + "notes": "r:84,45:1,46:1,48:1,48:0.5,48:0.5,50:0.5,50:0.5,48:1,50:2", + "duration": 7.7142403628117915, + "peak": 0.800000011920929, + "spanOffset": 71.14285714285714, + "notesUsed": 9, + "noteCount": 9, + "renderMs": 1820, + "heard": "Thirteen days and then the room came back.", + "wer": 0, + "errors": 0, + "words": 7, + "spokenHeard": "13 days and then the room came back.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/line-12.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/spoken-12.wav" + }, + { + "line": 13, + "role": "drone", + "text": "ooh mm", + "lyrics": "ooh mm", + "notes": "r:92,45:2,50:2", + "duration": 4.284263038548753, + "peak": 0.800000011920929, + "spanOffset": 78, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 798, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "WMM.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/line-13.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/blueberry/spoken-13.wav" + } + ] + } + ] + } + ], + "total": { + "errors": 1, + "words": 42, + "wer": 0.023809523809523808, + "spokenErrors": 15, + "spokenWords": 55, + "spokenWer": 0.2727272727272727 + } +} diff --git a/grants/culturehub-la-2026/macneopolitan/hear/thirteen-days-frisbee.json b/grants/culturehub-la-2026/macneopolitan/hear/thirteen-days-frisbee.json new file mode 100644 index 0000000000..83318c4c0e --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/hear/thirteen-days-frisbee.json @@ -0,0 +1,180 @@ +{ + "tag": "thirteen-days-frisbee", + "at": "2026-09-23T19:17:09.921Z", + "model": "ggml-small.en.bin", + "flags": { + "tag": "thirteen-days-frisbee", + "voice": "2", + "keep": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days", + "env": "SINGER_HOLD_MS=0,SINGER_GAP_MS=0,SINGER_SUSTAIN_DB=6,SINGER_SHIMMER_FRAMES=3,SINGER_LEGATO_MS=40" + }, + "scores": [ + { + "score": "trio-thirteen-days.mbscore", + "bpm": 70, + "voices": [ + { + "member": "frisbee", + "voice": "Zoe (Premium)", + "lines": [ + { + "line": 1, + "role": "hum", + "text": "ee ee", + "lyrics": "ee ee", + "notes": "r:8,55:4,58:6", + "duration": 9.429251700680272, + "peak": 0.800000011920929, + "spanOffset": 6, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 2154, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "E-E-E-E.", + "spokenWer": 2, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/frisbee/line-01.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/frisbee/spoken-01.wav" + }, + { + "line": 2, + "role": "hum", + "text": "ah ah", + "lyrics": "ah ah", + "notes": "r:24,57:6,58:4", + "duration": 9.429251700680272, + "peak": 0.800000011920929, + "spanOffset": 19.71428571428571, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 1179, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Allah.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/frisbee/line-02.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/frisbee/spoken-02.wav" + }, + { + "line": 3, + "role": "lead", + "text": "you were awake the whole time", + "lyrics": "you were a-wake the whole time", + "notes": "r:34,58:1,58:1,60:1,58:1,57:1,55:1,57:2", + "duration": 7.7142403628117915, + "peak": 0.800000011920929, + "spanOffset": 28.285714285714285, + "notesUsed": 7, + "noteCount": 7, + "renderMs": 1232, + "heard": "You were awake the whole time.", + "wer": 0, + "errors": 0, + "words": 6, + "spokenHeard": "You were awake the whole time.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/frisbee/line-03.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/frisbee/spoken-03.wav" + }, + { + "line": 4, + "role": "hum", + "text": "ee ee ee", + "lyrics": "ee ee ee", + "notes": "r:48,57:3,58:5,53:4", + "duration": 11.144263038548752, + "peak": 0.800000011920929, + "spanOffset": 40.285714285714285, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1973, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "E-E-E-E-E-E-E.", + "spokenWer": 2.3333333333333335, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/frisbee/line-04.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/frisbee/spoken-04.wav" + }, + { + "line": 5, + "role": "hum", + "text": "ah ah", + "lyrics": "ah ah", + "notes": "r:62,55:5,57:5", + "duration": 9.429251700680272, + "peak": 0.800000011920929, + "spanOffset": 52.285714285714285, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 991, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Allah.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/frisbee/line-05.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/frisbee/spoken-05.wav" + }, + { + "line": 6, + "role": "lead", + "text": "you were awake the whole time", + "lyrics": "you were a-wake the whole time", + "notes": "r:74,58:1,58:1,60:1,58:1,57:1,55:1,57:2", + "duration": 7.7142403628117915, + "peak": 0.800000011920929, + "spanOffset": 62.57142857142857, + "notesUsed": 7, + "noteCount": 7, + "renderMs": 1128, + "heard": "You were awake the whole time.", + "wer": 0, + "errors": 0, + "words": 6, + "spokenHeard": "You were awake the whole time.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/frisbee/line-06.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/frisbee/spoken-06.wav" + }, + { + "line": 7, + "role": "hum", + "text": "ee ee ee", + "lyrics": "ee ee ee", + "notes": "r:84,55:4,58:4,57:4", + "duration": 11.144263038548752, + "peak": 0.800000011920929, + "spanOffset": 71.14285714285714, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1476, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "E-E-E-E-E-E-E.", + "spokenWer": 2.3333333333333335, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/frisbee/line-07.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/frisbee/spoken-07.wav" + } + ] + } + ] + } + ], + "total": { + "errors": 0, + "words": 12, + "wer": 0, + "spokenErrors": 22, + "spokenWords": 24, + "spokenWer": 0.9166666666666666 + } +} diff --git a/grants/culturehub-la-2026/macneopolitan/hear/thirteen-days-neo.json b/grants/culturehub-la-2026/macneopolitan/hear/thirteen-days-neo.json new file mode 100644 index 0000000000..5d32cf6f55 --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/hear/thirteen-days-neo.json @@ -0,0 +1,180 @@ +{ + "tag": "thirteen-days-neo", + "at": "2026-09-23T19:16:26.058Z", + "model": "ggml-small.en.bin", + "flags": { + "tag": "thirteen-days-neo", + "voice": "0", + "keep": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days", + "env": "SINGER_HOLD_MS=0,SINGER_GAP_MS=0,SINGER_SUSTAIN_DB=6,SINGER_SHIMMER_FRAMES=3,SINGER_LEGATO_MS=40" + }, + "scores": [ + { + "score": "trio-thirteen-days.mbscore", + "bpm": 70, + "voices": [ + { + "member": "neo", + "voice": "Noelle (Enhanced)", + "lines": [ + { + "line": 1, + "role": "hum", + "text": "ah ah", + "lyrics": "ah ah", + "notes": "r:8,62:4,60:6", + "duration": 9.429251700680272, + "peak": 0.800000011920929, + "spanOffset": 6, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 2038, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Yeah.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/neo/line-01.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/neo/spoken-01.wav" + }, + { + "line": 2, + "role": "hum", + "text": "ee ee", + "lyrics": "ee ee", + "notes": "r:24,59:6,60:4", + "duration": 9.429251700680272, + "peak": 0.800000011920929, + "spanOffset": 19.71428571428571, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 1890, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "E-E-E-E.", + "spokenWer": 2, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/neo/line-02.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/neo/spoken-02.wav" + }, + { + "line": 3, + "role": "lead", + "text": "you were awake the whole time", + "lyrics": "you were a-wake the whole time", + "notes": "r:34,60:1,60:1,62:1,60:1,59:1,57:1,59:2", + "duration": 7.7142403628117915, + "peak": 0.800000011920929, + "spanOffset": 28.285714285714285, + "notesUsed": 7, + "noteCount": 7, + "renderMs": 1816, + "heard": "You were awake the whole time.", + "wer": 0, + "errors": 0, + "words": 6, + "spokenHeard": "You were awake the whole time.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/neo/line-03.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/neo/spoken-03.wav" + }, + { + "line": 4, + "role": "hum", + "text": "ah ah ah", + "lyrics": "ah ah ah", + "notes": "r:48,64:3,60:5,60:4", + "duration": 11.144263038548752, + "peak": 0.800000011920929, + "spanOffset": 40.285714285714285, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1989, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Aya!", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/neo/line-04.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/neo/spoken-04.wav" + }, + { + "line": 5, + "role": "hum", + "text": "ee ee", + "lyrics": "ee ee", + "notes": "r:62,57:5,59:5", + "duration": 9.429251700680272, + "peak": 0.800000011920929, + "spanOffset": 52.285714285714285, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 2030, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "E-E-E-E.", + "spokenWer": 2, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/neo/line-05.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/neo/spoken-05.wav" + }, + { + "line": 6, + "role": "lead", + "text": "you were awake the whole time", + "lyrics": "you were a-wake the whole time", + "notes": "r:74,60:1,60:1,62:1,60:1,59:1,57:1,59:2", + "duration": 7.7142403628117915, + "peak": 0.800000011920929, + "spanOffset": 62.57142857142857, + "notesUsed": 7, + "noteCount": 7, + "renderMs": 1655, + "heard": "You were awake the whole time.", + "wer": 0, + "errors": 0, + "words": 6, + "spokenHeard": "You were awake the whole time.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/neo/line-06.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/neo/spoken-06.wav" + }, + { + "line": 7, + "role": "hum", + "text": "ah ah ah", + "lyrics": "ah ah ah", + "notes": "r:84,62:4,60:4,57:4", + "duration": 11.144263038548752, + "peak": 0.800000011920929, + "spanOffset": 71.14285714285714, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 2008, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "Aya!", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/neo/line-07.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/thirteen-days/trio-thirteen-days/neo/spoken-07.wav" + } + ] + } + ] + } + ], + "total": { + "errors": 0, + "words": 12, + "wer": 0, + "spokenErrors": 16, + "spokenWords": 24, + "spokenWer": 0.6666666666666666 + } +} diff --git a/grants/culturehub-la-2026/macneopolitan/hear/voc-tokens.json b/grants/culturehub-la-2026/macneopolitan/hear/voc-tokens.json new file mode 100644 index 0000000000..9e0d80bfc1 --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/hear/voc-tokens.json @@ -0,0 +1,661 @@ +{ + "tag": "voc-tokens", + "at": "2026-09-23T18:49:51.278Z", + "model": "ggml-small.en.bin", + "flags": { + "tag": "voc-tokens", + "keep": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens" + }, + "scores": [ + { + "score": "probe-tokens.mbscore", + "bpm": 90, + "voices": [ + { + "member": "frisbee", + "voice": "Zoe (Premium)", + "lines": [ + { + "line": 1, + "role": "lead", + "text": "tk tk tk", + "lyrics": "tk tk tk", + "notes": "57:0.5,57:0.5,57:1", + "duration": 1.3342403628117914, + "peak": 0.800000011920929, + "spanOffset": 0, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 7433, + "heard": "T-T-K-T-K", + "wer": 1.6666666666666667, + "errors": 5, + "words": 3, + "spokenHeard": "TK TK TK", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-01.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-01.wav" + }, + { + "line": 2, + "role": "lead", + "text": "ts ts ts", + "lyrics": "ts ts ts", + "notes": "r:3,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 1.3333333333333333, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1145, + "heard": "TSTSTS", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "TSTSTS.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-02.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-02.wav" + }, + { + "line": 3, + "role": "lead", + "text": "pf pf pf", + "lyrics": "pf pf pf", + "notes": "r:6,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 3.333333333333333, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1093, + "heard": "PSPSPS", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "P.S. P.S. P.S.", + "spokenWer": 2, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-03.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-03.wav" + }, + { + "line": 4, + "role": "lead", + "text": "ch ch ch", + "lyrics": "ch ch ch", + "notes": "r:9,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 5.333333333333333, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 2110, + "heard": "th ch ch", + "wer": 0.3333333333333333, + "errors": 1, + "words": 3, + "spokenHeard": "CHCHCH", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-04.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-04.wav" + }, + { + "line": 5, + "role": "lead", + "text": "kh kh kh", + "lyrics": "kh kh kh", + "notes": "r:12,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 7.333333333333333, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1298, + "heard": "K-H-K-H-K-H", + "wer": 2, + "errors": 6, + "words": 3, + "spokenHeard": "K-H-K-H-K-8.", + "spokenWer": 2, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-05.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-05.wav" + }, + { + "line": 6, + "role": "lead", + "text": "tss tss tss", + "lyrics": "tss tss tss", + "notes": "r:15,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 9.333333333333332, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 2001, + "heard": "T-S-E-S-S-P-S-S", + "wer": 2.6666666666666665, + "errors": 8, + "words": 3, + "spokenHeard": "TSS TSS TSS", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-06.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-06.wav" + }, + { + "line": 7, + "role": "lead", + "text": "dm dm dm", + "lyrics": "dm dm dm", + "notes": "r:18,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 11.333333333333332, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1262, + "heard": "DM, DM, DM.", + "wer": 0, + "errors": 0, + "words": 3, + "spokenHeard": "DMDMDM", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-07.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-07.wav" + }, + { + "line": 8, + "role": "lead", + "text": "bm bm bm", + "lyrics": "bm bm bm", + "notes": "r:21,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 13.333333333333332, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1998, + "heard": "B-M-B-M-B-M", + "wer": 2, + "errors": 6, + "words": 3, + "spokenHeard": "BnBnBm", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-08.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-08.wav" + }, + { + "line": 9, + "role": "lead", + "text": "hah hah hah", + "lyrics": "hah hah hah", + "notes": "r:24,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 15.333333333333332, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1141, + "heard": "(mumbling)", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "Ha ha ha!", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-09.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-09.wav" + }, + { + "line": 10, + "role": "lead", + "text": "huh huh huh", + "lyrics": "huh huh huh", + "notes": "r:27,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 17.333333333333332, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 935, + "heard": "", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "Ha ha ha.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-10.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-10.wav" + }, + { + "line": 11, + "role": "lead", + "text": "uh uh uh", + "lyrics": "uh uh uh", + "notes": "r:30,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 19.333333333333332, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1003, + "heard": "Ah, ah, ah!", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "uh", + "spokenWer": 0.6666666666666666, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-11.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-11.wav" + }, + { + "line": 12, + "role": "lead", + "text": "dee dee dee", + "lyrics": "dee dee dee", + "notes": "r:33,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 21.333333333333332, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1328, + "heard": "GDD", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "DDD", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-12.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-12.wav" + }, + { + "line": 13, + "role": "lead", + "text": "dah dah dah", + "lyrics": "dah dah dah", + "notes": "r:36,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 23.333333333333332, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 2729, + "heard": "duh duh duh", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "da da da", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-13.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-13.wav" + }, + { + "line": 14, + "role": "lead", + "text": "lee lee lee", + "lyrics": "lee lee lee", + "notes": "r:39,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 25.333333333333332, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1183, + "heard": "Li Li Li", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "Li Li Li", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-14.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-14.wav" + }, + { + "line": 15, + "role": "lead", + "text": "nee nee nee", + "lyrics": "nee nee nee", + "notes": "r:42,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 27.333333333333332, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1450, + "heard": "Nee nee nee.", + "wer": 0, + "errors": 0, + "words": 3, + "spokenHeard": "Nee nee nee", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-15.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-15.wav" + }, + { + "line": 16, + "role": "lead", + "text": "tee tee tee", + "lyrics": "tee tee tee", + "notes": "r:45,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 29.333333333333332, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1012, + "heard": "T T T", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "TTT.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-16.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-16.wav" + }, + { + "line": 17, + "role": "lead", + "text": "doom doom doom", + "lyrics": "doom doom doom", + "notes": "r:48,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 31.333333333333332, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 933, + "heard": "Doom Doom Doom", + "wer": 0, + "errors": 0, + "words": 3, + "spokenHeard": "Doom, doom, doom.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-17.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-17.wav" + }, + { + "line": 18, + "role": "lead", + "text": "bom bom bom", + "lyrics": "bom bom bom", + "notes": "r:51,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 33.33333333333333, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 643, + "heard": "Bum bum bum", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "Bum bum bum.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-18.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-18.wav" + }, + { + "line": 19, + "role": "lead", + "text": "dum dum dum", + "lyrics": "dum dum dum", + "notes": "r:54,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 35.33333333333333, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 3056, + "heard": "Dum dum dum", + "wer": 0, + "errors": 0, + "words": 3, + "spokenHeard": "Dum dum dum.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-19.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-19.wav" + }, + { + "line": 20, + "role": "lead", + "text": "mm mm mm", + "lyrics": "mm mm mm", + "notes": "r:57,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 37.33333333333333, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 2051, + "heard": "M-M-M-M", + "wer": 1.3333333333333333, + "errors": 4, + "words": 3, + "spokenHeard": "M-M-M-M-M-M.", + "spokenWer": 2, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-20.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-20.wav" + }, + { + "line": 21, + "role": "lead", + "text": "boh boh boh", + "lyrics": "boh boh boh", + "notes": "r:60,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 39.33333333333333, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1806, + "heard": "B-O-A-B-O-H-B-O-H", + "wer": 3, + "errors": 9, + "words": 3, + "spokenHeard": "The OH-BOH-BOH", + "spokenWer": 0.6666666666666666, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-21.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-21.wav" + }, + { + "line": 22, + "role": "lead", + "text": "loo loo loo", + "lyrics": "loo loo loo", + "notes": "r:63,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 41.33333333333333, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1927, + "heard": "Lulu Lulu", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "Lululu", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-22.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-22.wav" + }, + { + "line": 23, + "role": "lead", + "text": "la la la", + "lyrics": "la la la", + "notes": "r:66,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 43.33333333333333, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1472, + "heard": "La la la", + "wer": 0, + "errors": 0, + "words": 3, + "spokenHeard": "La la la", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-23.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-23.wav" + }, + { + "line": 24, + "role": "lead", + "text": "bip bip bip", + "lyrics": "bip bip bip", + "notes": "r:69,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 45.33333333333333, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 2530, + "heard": "Beep beep beep", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "Bip, bip, bip.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-24.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-24.wav" + }, + { + "line": 25, + "role": "lead", + "text": "poo poo poo", + "lyrics": "poo poo poo", + "notes": "r:72,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 47.33333333333333, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1469, + "heard": "Boo, boo, boo.", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "Poop-poop-poop.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-25.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-25.wav" + }, + { + "line": 26, + "role": "lead", + "text": "doo doo doo", + "lyrics": "doo doo doo", + "notes": "r:75,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 49.33333333333333, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1509, + "heard": "doo doo doo", + "wer": 0, + "errors": 0, + "words": 3, + "spokenHeard": "Doo-doo-doo.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-26.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-26.wav" + }, + { + "line": 27, + "role": "lead", + "text": "bah bah bah", + "lyrics": "bah bah bah", + "notes": "r:78,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 51.33333333333333, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1647, + "heard": "blah blah blah", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "Baa baa baa.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-27.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-27.wav" + }, + { + "line": 28, + "role": "lead", + "text": "ooh ooh ooh", + "lyrics": "ooh ooh ooh", + "notes": "r:81,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 53.33333333333333, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 2239, + "heard": "Ewwwwwwww", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "you.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-28.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-28.wav" + }, + { + "line": 29, + "role": "lead", + "text": "ah ah ah", + "lyrics": "ah ah ah", + "notes": "r:84,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 55.33333333333333, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1806, + "heard": "Oh la la!", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "Aloha.", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-29.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-29.wav" + }, + { + "line": 30, + "role": "lead", + "text": "hmm hmm hmm", + "lyrics": "hmm hmm hmm", + "notes": "r:87,57:0.5,57:0.5,57:1", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 57.33333333333333, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1420, + "heard": "KIYI MOM", + "wer": 1, + "errors": 3, + "words": 3, + "spokenHeard": "(speaking in foreign language)", + "spokenWer": 1.3333333333333333, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/line-30.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/tokens/probe-tokens/frisbee/spoken-30.wav" + } + ] + } + ] + } + ], + "total": { + "errors": 90, + "words": 90, + "wer": 1, + "spokenErrors": 74, + "spokenWords": 90, + "spokenWer": 0.8222222222222222 + } +} diff --git a/grants/culturehub-la-2026/macneopolitan/hear/vocalise-bb.json b/grants/culturehub-la-2026/macneopolitan/hear/vocalise-bb.json new file mode 100644 index 0000000000..11da60192b --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/hear/vocalise-bb.json @@ -0,0 +1,244 @@ +{ + "tag": "vocalise-bb", + "at": "2026-09-23T19:12:40.602Z", + "model": "ggml-small.en.bin", + "flags": { + "tag": "vocalise-bb", + "voice": "1", + "voice-name": "Tom (Enhanced)", + "keep": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise", + "no-spoken": "1" + }, + "scores": [ + { + "score": "trio-vocalise.mbscore", + "bpm": 90, + "voices": [ + { + "member": "blueberry", + "voice": "Tom (Enhanced)", + "lines": [ + { + "line": 1, + "role": "bass", + "text": "doom doom bom bom doom doom bom bom doom doom bom bom doom doom bom bom", + "lyrics": "doom doom bom bom doom doom bom bom doom doom bom bom doom doom bom bom", + "notes": "50:1,50:1,45:1,50:1,50:1,50:1,45:1,50:1,50:1,50:1,45:1,50:1,50:1,50:1,45:1,50:1", + "duration": 10.664263038548754, + "peak": 0.800000011920929, + "spanOffset": 0, + "notesUsed": 16, + "noteCount": 16, + "renderMs": 6038, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/blueberry/line-01.wav", + "spokenWav": null + }, + { + "line": 2, + "role": "bass", + "text": "doom doom bom bom doom doom bom bom doom doom bom bom doom doom bom bom", + "lyrics": "doom doom bom bom doom doom bom bom doom doom bom bom doom doom bom bom", + "notes": "r:16,50:1,50:1,45:1,50:1,47:1,47:1,54:1,47:1,43:1,43:1,50:1,43:1,45:1,45:1,52:1,45:1", + "duration": 11.33424036281179, + "peak": 0.800000011920929, + "spanOffset": 10, + "notesUsed": 16, + "noteCount": 16, + "renderMs": 5373, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/blueberry/line-02.wav", + "spokenWav": null + }, + { + "line": 3, + "role": "bass", + "text": "doom doom bom bom doom doom bom bom doom doom bom bom doom doom bom bom", + "lyrics": "doom doom bom bom doom doom bom bom doom doom bom bom doom doom bom bom", + "notes": "r:32,50:1,50:1,45:1,50:1,47:1,47:1,54:1,47:1,43:1,43:1,50:1,43:1,45:1,45:1,52:1,45:1", + "duration": 11.33424036281179, + "peak": 0.800000011920929, + "spanOffset": 20.666666666666664, + "notesUsed": 16, + "noteCount": 16, + "renderMs": 5654, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/blueberry/line-03.wav", + "spokenWav": null + }, + { + "line": 4, + "role": "bass", + "text": "doom doom bom bom doom doom bom bom doom doom bom bom", + "lyrics": "doom doom bom bom doom doom bom bom doom doom bom bom", + "notes": "r:48,50:1,50:1,45:1,50:1,47:1,47:1,54:1,47:1,43:1,43:1,50:1,43:1", + "duration": 8.664263038548754, + "peak": 0.800000011920929, + "spanOffset": 31.333333333333332, + "notesUsed": 12, + "noteCount": 12, + "renderMs": 4121, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/blueberry/line-04.wav", + "spokenWav": null + }, + { + "line": 5, + "role": "bass", + "text": "doom doom bom bom doom doom bom bom", + "lyrics": "doom doom bom bom doom doom bom bom", + "notes": "r:60,45:1,45:1,52:1,45:1,50:1,50:1,45:1,50:1", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 39.33333333333333, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 4457, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/blueberry/line-05.wav", + "spokenWav": null + }, + { + "line": 6, + "role": "bass", + "text": "doom doom bom bom doom doom bom bom dum dum dum dum dum dum", + "lyrics": "doom doom bom bom doom doom bom bom dum dum dum dum dum dum", + "notes": "r:68,50:1,50:1,45:1,50:1,50:1,50:1,45:1,50:1,50:0.666667,49:0.666667,48:0.666667,47:0.666667,46:0.666667,45:0.666665", + "duration": 8.664263038548754, + "peak": 0.800000011920929, + "spanOffset": 44.666666666666664, + "notesUsed": 14, + "noteCount": 14, + "renderMs": 3884, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/blueberry/line-06.wav", + "spokenWav": null + }, + { + "line": 7, + "role": "bass", + "text": "doom doom doom doom doom doom doom doom doom doom doom doom doom doom doom doom", + "lyrics": "doom doom doom doom doom doom doom doom doom doom doom doom doom doom doom doom", + "notes": "r:80,50:0.5,48:0.5,50:0.5,48:0.5,50:0.5,48:0.5,50:0.5,48:0.5,50:0.5,48:0.5,50:0.5,48:0.5,50:0.5,48:0.5,50:0.5,48:0.5", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 52.666666666666664, + "notesUsed": 16, + "noteCount": 16, + "renderMs": 3495, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/blueberry/line-07.wav", + "spokenWav": null + }, + { + "line": 8, + "role": "bass", + "text": "doom bom doom dum dum doo", + "lyrics": "doom bom doom dum dum doo", + "notes": "r:88,50:2,48:1,50:1,50:1,50:1,45:2", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 58, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 6979, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/blueberry/line-08.wav", + "spokenWav": null + }, + { + "line": 9, + "role": "bass", + "text": "doom doom doom doom bom bom hmm", + "lyrics": "doom doom doom doom bom bom hmm", + "notes": "r:96,50:1,50:1,50:1,50:1,45:1,50:1,50:2", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 63.33333333333333, + "notesUsed": 7, + "noteCount": 7, + "renderMs": 1585, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/blueberry/line-09.wav", + "spokenWav": null + }, + { + "line": 10, + "role": "hum", + "text": "hmm", + "lyrics": "hmm", + "notes": "r:104,50:8", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 68.66666666666666, + "notesUsed": 1, + "noteCount": 1, + "renderMs": 793, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/blueberry/line-10.wav", + "spokenWav": null + } + ] + } + ] + } + ], + "total": { + "errors": 0, + "words": 0, + "wer": 0, + "spokenErrors": 0, + "spokenWords": 0, + "spokenWer": 0 + } +} diff --git a/grants/culturehub-la-2026/macneopolitan/hear/vocalise-fri.json b/grants/culturehub-la-2026/macneopolitan/hear/vocalise-fri.json new file mode 100644 index 0000000000..ed7d660b77 --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/hear/vocalise-fri.json @@ -0,0 +1,390 @@ +{ + "tag": "vocalise-fri", + "at": "2026-09-23T19:13:24.254Z", + "model": "ggml-small.en.bin", + "flags": { + "tag": "vocalise-fri", + "voice": "2", + "keep": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise", + "no-spoken": "1" + }, + "scores": [ + { + "score": "trio-vocalise.mbscore", + "bpm": 90, + "voices": [ + { + "member": "frisbee", + "voice": "Zoe (Premium)", + "lines": [ + { + "line": 1, + "role": "phoneme", + "text": "bip bip bip lee lee lee lee", + "lyrics": "bip bip bip lee lee lee lee", + "notes": "r:10,57:0.5,57:0.5,r:0.5,54:0.5,r:1,57:0.5,59:0.5,57:0.5,59:0.5", + "duration": 3.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 6, + "notesUsed": 7, + "noteCount": 7, + "renderMs": 1214, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/frisbee/line-01.wav", + "spokenWav": null + }, + { + "line": 2, + "role": "phoneme", + "text": "lee lee lee lee la bip", + "lyrics": "lee lee lee lee la bip", + "notes": "r:16,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,r:0.5,57:0.5", + "duration": 2.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 10, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 4904, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/frisbee/line-02.wav", + "spokenWav": null + }, + { + "line": 3, + "role": "phoneme", + "text": "lee lee lee lee la loo loo loo", + "lyrics": "lee lee lee lee la loo loo loo", + "notes": "r:21,57:0.25,59:0.25,57:0.25,59:0.25,57:0.5,r:0.5,59:0.333333,57:0.333333,54:0.333334", + "duration": 2.6642630385487527, + "peak": 0.800000011920929, + "spanOffset": 13.333333333333332, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 1231, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/frisbee/line-03.wav", + "spokenWav": null + }, + { + "line": 4, + "role": "phoneme", + "text": "lee lee lee lee lee lee lee lee loo loo loo poo", + "lyrics": "lee lee lee lee lee lee lee lee loo loo loo poo", + "notes": "r:26,55:0.25,57:0.25,55:0.25,57:0.25,55:0.25,57:0.25,55:0.25,57:0.25,57:0.333333,55:0.333333,52:0.333334,52:1", + "duration": 3.3342403628117916, + "peak": 0.800000011920929, + "spanOffset": 16.666666666666664, + "notesUsed": 12, + "noteCount": 12, + "renderMs": 1273, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/frisbee/line-04.wav", + "spokenWav": null + }, + { + "line": 5, + "role": "phoneme", + "text": "bip bip lee lee lee lee la", + "lyrics": "bip bip lee lee lee lee la", + "notes": "r:32,57:0.5,57:0.5,r:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5", + "duration": 3.3342403628117916, + "peak": 0.800000011920929, + "spanOffset": 20.666666666666664, + "notesUsed": 7, + "noteCount": 7, + "renderMs": 898, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/frisbee/line-05.wav", + "spokenWav": null + }, + { + "line": 6, + "role": "phoneme", + "text": "loo loo loo loo poo poo poo", + "lyrics": "loo loo loo loo poo poo poo", + "notes": "r:37,57:0.5,59:0.5,57:0.5,59:0.5,59:0.333333,57:0.333333,54:0.333334", + "duration": 2.6642630385487527, + "peak": 0.800000011920929, + "spanOffset": 24, + "notesUsed": 7, + "noteCount": 7, + "renderMs": 875, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/frisbee/line-06.wav", + "spokenWav": null + }, + { + "line": 7, + "role": "phoneme", + "text": "lee lee lee lee lee lee lee lee bip bip loo loo loo", + "lyrics": "lee lee lee lee lee lee lee lee bip bip loo loo loo", + "notes": "r:42,55:0.25,57:0.25,55:0.25,57:0.25,55:0.25,57:0.25,55:0.25,57:0.25,52:0.5,52:0.5,54:0.333333,57:0.333333,59:0.333334", + "duration": 3.3342403628117916, + "peak": 0.800000011920929, + "spanOffset": 27.333333333333332, + "notesUsed": 13, + "noteCount": 13, + "renderMs": 1466, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/frisbee/line-07.wav", + "spokenWav": null + }, + { + "line": 8, + "role": "phoneme", + "text": "loo loo loo loo", + "lyrics": "loo loo loo loo", + "notes": "r:50,52:0.5,54:0.5,57:0.5,59:0.5", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 32.666666666666664, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 780, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/frisbee/line-08.wav", + "spokenWav": null + }, + { + "line": 9, + "role": "tick", + "text": "dm dm la la la la", + "lyrics": "dm dm la la la la", + "notes": "r:53,57:0.5,57:0.5,r:0.5,59:0.375,57:0.375,54:0.375,52:0.375", + "duration": 2.6642630385487527, + "peak": 0.800000011920929, + "spanOffset": 34.666666666666664, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 1640, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/frisbee/line-09.wav", + "spokenWav": null + }, + { + "line": 10, + "role": "phoneme", + "text": "lee lee lee lee lee lee loo loo poo", + "lyrics": "lee lee lee lee lee lee loo loo poo", + "notes": "r:57,57:0.25,59:0.25,57:0.25,59:0.25,57:0.25,59:0.25,55:0.5,52:0.5,52:0.5", + "duration": 2.6642630385487527, + "peak": 0.800000011920929, + "spanOffset": 37.33333333333333, + "notesUsed": 9, + "noteCount": 9, + "renderMs": 1367, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/frisbee/line-10.wav", + "spokenWav": null + }, + { + "line": 11, + "role": "phoneme", + "text": "bip bip bip bip loo loo loo loo", + "lyrics": "bip bip bip bip loo loo loo loo", + "notes": "r:62,54:0.5,54:0.5,54:0.5,54:0.5,57:0.5,59:0.5,57:0.5,59:0.5", + "duration": 3.3342403628117916, + "peak": 0.800000011920929, + "spanOffset": 40.666666666666664, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 1207, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/frisbee/line-11.wav", + "spokenWav": null + }, + { + "line": 12, + "role": "phoneme", + "text": "ooh ooh ooh ooh ooh ooh ooh ooh lee lee lee lee lee lee lee lee", + "lyrics": "ooh ooh ooh ooh ooh ooh ooh ooh lee lee lee lee lee lee lee lee", + "notes": "r:68,52:0.25,53:0.25,54:0.25,55:0.25,56:0.25,57:0.25,58:0.25,59:0.25,57:0.25,59:0.25,57:0.25,59:0.25,57:0.25,59:0.25,57:0.25,59:0.25", + "duration": 3.3342403628117916, + "peak": 0.800000011920929, + "spanOffset": 44.666666666666664, + "notesUsed": 16, + "noteCount": 16, + "renderMs": 1657, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/frisbee/line-12.wav", + "spokenWav": null + }, + { + "line": 13, + "role": "phoneme", + "text": "bip bip bip bip loo loo loo loo lee lee lee lee", + "lyrics": "bip bip bip bip loo loo loo loo lee lee lee lee", + "notes": "r:74,57:0.5,57:0.5,57:0.5,57:0.5,59:0.5,57:0.5,54:0.5,52:0.5,54:0.5,56:0.5,54:0.5,56:0.5", + "duration": 4.664263038548753, + "peak": 0.800000011920929, + "spanOffset": 48.666666666666664, + "notesUsed": 12, + "noteCount": 12, + "renderMs": 1935, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/frisbee/line-13.wav", + "spokenWav": null + }, + { + "line": 14, + "role": "phoneme", + "text": "loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo", + "lyrics": "loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo", + "notes": "r:80,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,56:0.5", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 52.666666666666664, + "notesUsed": 16, + "noteCount": 16, + "renderMs": 2273, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/frisbee/line-14.wav", + "spokenWav": null + }, + { + "line": 15, + "role": "phoneme", + "text": "ooh ooh ooh ooh ooh loo loo loo loo la ah", + "lyrics": "ooh ooh ooh ooh ooh loo loo loo loo la ah", + "notes": "r:88,54:0.4,55:0.4,57:0.4,58:0.4,59:0.4,57:0.5,59:0.5,57:0.5,59:0.5,57:2,54:2", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 58, + "notesUsed": 11, + "noteCount": 11, + "renderMs": 1800, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/frisbee/line-15.wav", + "spokenWav": null + }, + { + "line": 16, + "role": "phoneme", + "text": "bip bip bip bip lee lee lee lee ooh ooh ooh ooh ah", + "lyrics": "bip bip bip bip lee lee lee lee ooh ooh ooh ooh ah", + "notes": "r:96,54:0.5,54:0.5,54:0.5,54:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,55:0.5,56:0.5,57:0.5,57:2", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 63.33333333333333, + "notesUsed": 13, + "noteCount": 13, + "renderMs": 1866, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/frisbee/line-16.wav", + "spokenWav": null + }, + { + "line": 17, + "role": "hum", + "text": "hmm", + "lyrics": "hmm", + "notes": "r:104,54:8", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 68.66666666666666, + "notesUsed": 1, + "noteCount": 1, + "renderMs": 1045, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/frisbee/line-17.wav", + "spokenWav": null + } + ] + } + ] + } + ], + "total": { + "errors": 0, + "words": 0, + "wer": 0, + "spokenErrors": 0, + "spokenWords": 0, + "spokenWer": 0 + } +} diff --git a/grants/culturehub-la-2026/macneopolitan/hear/vocalise.json b/grants/culturehub-la-2026/macneopolitan/hear/vocalise.json new file mode 100644 index 0000000000..09ec582a26 --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/hear/vocalise.json @@ -0,0 +1,327 @@ +{ + "tag": "vocalise", + "at": "2026-09-23T19:12:03.118Z", + "model": "ggml-small.en.bin", + "flags": { + "tag": "vocalise", + "voice": "0", + "keep": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise", + "no-spoken": "1" + }, + "scores": [ + { + "score": "trio-vocalise.mbscore", + "bpm": 90, + "voices": [ + { + "member": "neo", + "voice": "Noelle (Enhanced)", + "lines": [ + { + "line": 1, + "role": "tick", + "text": "dm dm dm dm", + "lyrics": "dm dm dm dm", + "notes": "r:12,59:0.5,59:0.5,59:0.5,59:0.5", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 7.333333333333333, + "notesUsed": 4, + "noteCount": 4, + "renderMs": 2184, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/neo/line-01.wav", + "spokenWav": null + }, + { + "line": 2, + "role": "phoneme", + "text": "dah dah dah dah dah dee dee dee dee dee", + "lyrics": "dah dah dah dah dah dee dee dee dee dee", + "notes": "r:18,57:0.25,59:0.25,57:0.25,56:0.25,57:1,59:0.25,61:0.25,59:0.25,58:0.25,59:1", + "duration": 3.3342403628117916, + "peak": 0.800000011920929, + "spanOffset": 11.333333333333332, + "notesUsed": 10, + "noteCount": 10, + "renderMs": 2653, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/neo/line-02.wav", + "spokenWav": null + }, + { + "line": 3, + "role": "phoneme", + "text": "nee nee nee nee dah dah dah dah dah", + "lyrics": "nee nee nee nee dah dah dah dah dah", + "notes": "r:24,59:0.5,59:0.5,59:0.5,59:0.5,61:0.25,63:0.25,61:0.25,60:0.25,61:1", + "duration": 3.3342403628117916, + "peak": 0.800000011920929, + "spanOffset": 15.333333333333332, + "notesUsed": 9, + "noteCount": 9, + "renderMs": 1029, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/neo/line-03.wav", + "spokenWav": null + }, + { + "line": 4, + "role": "phoneme", + "text": "dee dee dee dah dah dah dah dah", + "lyrics": "dee dee dee dah dah dah dah dah", + "notes": "r:30,59:0.125,60:0.125,59:0.75,62:0.125,64:0.125,62:0.125,61:0.125,62:0.5", + "duration": 1.9992743764172336, + "peak": 0.800000011920929, + "spanOffset": 19.333333333333332, + "notesUsed": 8, + "noteCount": 8, + "renderMs": 857, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/neo/line-04.wav", + "spokenWav": null + }, + { + "line": 5, + "role": "phoneme", + "text": "dee dee dee dah dah dah dah dah lee lee lee", + "lyrics": "dee dee dee dah dah dah dah dah lee lee lee", + "notes": "r:34,62:0.125,61:0.125,62:0.75,62:0.1875,64:0.1875,62:0.1875,61:0.1875,62:0.75,59:0.5,59:0.5,59:0.5", + "duration": 3.3342403628117916, + "peak": 0.800000011920929, + "spanOffset": 22, + "notesUsed": 11, + "noteCount": 11, + "renderMs": 2531, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/neo/line-05.wav", + "spokenWav": null + }, + { + "line": 6, + "role": "phoneme", + "text": "dee dee dee dee dee dee dee dee dah dah dah dah dah", + "lyrics": "dee dee dee dee dee dee dee dee dah dah dah dah dah", + "notes": "r:40,59:0.25,59:0.25,59:0.25,59:0.25,59:0.25,59:0.25,59:0.25,59:0.25,61:0.25,63:0.25,61:0.25,60:0.25,61:1", + "duration": 3.3342403628117916, + "peak": 0.800000011920929, + "spanOffset": 26, + "notesUsed": 13, + "noteCount": 13, + "renderMs": 1944, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/neo/line-06.wav", + "spokenWav": null + }, + { + "line": 7, + "role": "pulse", + "text": "nee nee nee nee nee nee nee nee nee nee nee nee nee nee nee nee", + "lyrics": "nee nee nee nee nee nee nee nee nee nee nee nee nee nee nee nee", + "notes": "r:48,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 31.333333333333332, + "notesUsed": 16, + "noteCount": 16, + "renderMs": 3687, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/neo/line-07.wav", + "spokenWav": null + }, + { + "line": 8, + "role": "pulse", + "text": "dee dee dee dee dee dee dee dee dee dee dee dee dah dah dah dah dah", + "lyrics": "dee dee dee dee dee dee dee dee dee dee dee dee dah dah dah dah dah", + "notes": "r:58,62:0.25,62:0.25,62:0.25,62:0.25,62:0.25,62:0.25,62:0.25,62:0.25,62:0.25,62:0.25,62:0.25,62:0.25,59:0.25,61:0.25,59:0.25,58:0.25,59:2", + "duration": 4.664263038548753, + "peak": 0.800000011920929, + "spanOffset": 38, + "notesUsed": 17, + "noteCount": 17, + "renderMs": 3842, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/neo/line-08.wav", + "spokenWav": null + }, + { + "line": 9, + "role": "phoneme", + "text": "tee tee tee tee lee lee lee lee dah dah dah dah dah", + "lyrics": "tee tee tee tee lee lee lee lee dah dah dah dah dah", + "notes": "r:66,59:0.5,61:0.5,59:0.5,61:0.5,57:0.5,57:0.5,57:0.5,57:0.5,59:0.25,61:0.25,59:0.25,58:0.25,59:1", + "duration": 4.664263038548753, + "peak": 0.800000011920929, + "spanOffset": 43.33333333333333, + "notesUsed": 13, + "noteCount": 13, + "renderMs": 3608, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/neo/line-09.wav", + "spokenWav": null + }, + { + "line": 10, + "role": "phoneme", + "text": "loo loo loo loo loo dee dee dee dee dah dah dah dah dah", + "lyrics": "loo loo loo loo loo dee dee dee dee dah dah dah dah dah", + "notes": "r:74,57:0.4,59:0.4,61:0.4,62:0.4,64:0.4,62:0.5,62:0.5,62:0.5,62:0.5,59:0.25,61:0.25,59:0.25,58:0.25,59:1", + "duration": 4.664263038548753, + "peak": 0.800000011920929, + "spanOffset": 48.666666666666664, + "notesUsed": 14, + "noteCount": 14, + "renderMs": 5206, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/neo/line-10.wav", + "spokenWav": null + }, + { + "line": 11, + "role": "phoneme", + "text": "dah dah dah dah dah dah dah dah dah dah dah dah dah dah dah dah", + "lyrics": "dah dah dah dah dah dah dah dah dah dah dah dah dah dah dah dah", + "notes": "r:80,57:0.5,59:0.5,57:0.5,59:0.5,57:0.5,59:0.5,57:0.5,59:0.5,57:0.5,59:0.5,57:0.5,59:0.5,57:0.5,59:0.5,57:0.5,59:0.5", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 52.666666666666664, + "notesUsed": 16, + "noteCount": 16, + "renderMs": 1917, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/neo/line-11.wav", + "spokenWav": null + }, + { + "line": 12, + "role": "phoneme", + "text": "dah dah dah dah dah lee lee lee lee ah", + "lyrics": "dah dah dah dah dah lee lee lee lee ah", + "notes": "r:88,59:0.25,61:0.25,59:0.25,58:0.25,59:1,57:0.5,59:0.5,57:0.5,59:0.5,57:4", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 58, + "notesUsed": 10, + "noteCount": 10, + "renderMs": 1672, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/neo/line-12.wav", + "spokenWav": null + }, + { + "line": 13, + "role": "phoneme", + "text": "nee nee nee nee nee nee nee nee ooh ooh ooh ooh ah", + "lyrics": "nee nee nee nee nee nee nee nee ooh ooh ooh ooh ah", + "notes": "r:96,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,60:0.5,61:0.5,62:0.5,62:2", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 63.33333333333333, + "notesUsed": 13, + "noteCount": 13, + "renderMs": 2622, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/neo/line-13.wav", + "spokenWav": null + }, + { + "line": 14, + "role": "hum", + "text": "ah hmm", + "lyrics": "ah hmm", + "notes": "r:104,59:2,62:6", + "duration": 5.999274376417233, + "peak": 0.800000011920929, + "spanOffset": 68.66666666666666, + "notesUsed": 2, + "noteCount": 2, + "renderMs": 1964, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": null, + "spokenWer": null, + "wav": "/Users/jas/Shelf/macneopolitan-songs/vocalisms/vocalise/trio-vocalise/neo/line-14.wav", + "spokenWav": null + } + ] + } + ] + } + ], + "total": { + "errors": 0, + "words": 0, + "wer": 0, + "spokenErrors": 0, + "spokenWords": 0, + "spokenWer": 0 + } +} diff --git a/grants/culturehub-la-2026/macneopolitan/hear/wake-v0.json b/grants/culturehub-la-2026/macneopolitan/hear/wake-v0.json new file mode 100644 index 0000000000..a6b4a84c2c --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/hear/wake-v0.json @@ -0,0 +1,221 @@ +{ + "tag": "wake-v0", + "at": "2026-09-23T19:53:55.507Z", + "model": "ggml-small.en.bin", + "flags": { + "tag": "wake-v0", + "voice": "0", + "keep": "/Users/jas/Shelf/macneopolitan-songs/wake/" + }, + "scores": [ + { + "score": "trio-wake.mbscore", + "bpm": 69, + "voices": [ + { + "member": "neo", + "voice": "Noelle (Enhanced)", + "lines": [ + { + "line": 1, + "role": "lead", + "text": "good morning Sophia", + "lyrics": "good morn-ing So-phi-a", + "notes": "r:6,54:1,57:1,59:1,62:1,64:1.5,62:0.5", + "duration": 6.084263038548753, + "peak": 0.800000011920929, + "spanOffset": 4.3478260869565215, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 4002, + "heard": "Good morning Sophia!", + "wer": 0, + "errors": 0, + "words": 3, + "spokenHeard": "Good morning, Sophia.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/line-01.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/spoken-01.wav" + }, + { + "line": 2, + "role": "lead", + "text": "sunlight on your lid", + "lyrics": "sun-light on your lid", + "notes": "r:12,57:1,59:1,61:1,62:1,64:1.2", + "duration": 5.389251700680272, + "peak": 0.800000011920929, + "spanOffset": 9.565217391304348, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 1199, + "heard": "♫ Sunlight on your lid ♫", + "wer": 0, + "errors": 0, + "words": 4, + "spokenHeard": "sunlight on your lid.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/line-02.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/spoken-02.wav" + }, + { + "line": 3, + "role": "lead", + "text": "the coffee is on", + "lyrics": "the cof-fee is on", + "notes": "r:24,59:1,62:1,64:1,66:1,67:1.5", + "duration": 5.6492517006802725, + "peak": 0.800000011920929, + "spanOffset": 20, + "notesUsed": 5, + "noteCount": 5, + "renderMs": 1230, + "heard": "The coffee is on.", + "wer": 0, + "errors": 0, + "words": 4, + "spokenHeard": "The coffee is on.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/line-03.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/spoken-03.wav" + }, + { + "line": 4, + "role": "lead", + "text": "take your time", + "lyrics": "take your time", + "notes": "r:30,66:1,64:1,62:1.5", + "duration": 3.914240362811791, + "peak": 0.800000011920929, + "spanOffset": 25.217391304347824, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1189, + "heard": "Take your time.", + "wer": 0, + "errors": 0, + "words": 3, + "spokenHeard": "Take your time.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/line-04.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/spoken-04.wav" + }, + { + "line": 5, + "role": "hum", + "text": "hmm", + "lyrics": "hmm", + "notes": "r:33.5,62:2.5", + "duration": 3.4792743764172336, + "peak": 0.800000011920929, + "spanOffset": 27.82608695652174, + "notesUsed": 1, + "noteCount": 1, + "renderMs": 687, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/line-05.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/spoken-05.wav" + }, + { + "line": 6, + "role": "lead", + "text": "the day is out for you", + "lyrics": "the day is out for you", + "notes": "r:42,59:1,62:1,64:1,66:0.5,64:0.5,62:1.5", + "duration": 5.6492517006802725, + "peak": 0.800000011920929, + "spanOffset": 35.65217391304348, + "notesUsed": 6, + "noteCount": 6, + "renderMs": 1372, + "heard": "♪ The day is out for you ♪", + "wer": 0, + "errors": 0, + "words": 6, + "spokenHeard": "The day is out for you.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/line-06.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/spoken-06.wav" + }, + { + "line": 7, + "role": "lead", + "text": "good morning", + "lyrics": "good morn-ing", + "notes": "r:48,62:1,64:1,66:1.5", + "duration": 3.914240362811791, + "peak": 0.800000011920929, + "spanOffset": 40.869565217391305, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 1419, + "heard": "Good morning!", + "wer": 0, + "errors": 0, + "words": 2, + "spokenHeard": "Good morning.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/line-07.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/spoken-07.wav" + }, + { + "line": 8, + "role": "hum", + "text": "hmm", + "lyrics": "hmm", + "notes": "r:51.5,66:2.5", + "duration": 3.4792743764172336, + "peak": 0.800000011920929, + "spanOffset": 43.47826086956522, + "notesUsed": 1, + "noteCount": 1, + "renderMs": 1535, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/line-08.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/spoken-08.wav" + }, + { + "line": 9, + "role": "hum", + "text": "hmm", + "lyrics": "hmm", + "notes": "r:54,62:6", + "duration": 6.084263038548753, + "peak": 0.800000011920929, + "spanOffset": 46.08695652173913, + "notesUsed": 1, + "noteCount": 1, + "renderMs": 1390, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/line-09.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/neo/spoken-09.wav" + } + ] + } + ] + } + ], + "total": { + "errors": 0, + "words": 22, + "wer": 0, + "spokenErrors": 3, + "spokenWords": 25, + "spokenWer": 0.12 + } +} diff --git a/grants/culturehub-la-2026/macneopolitan/hear/wake-v2.json b/grants/culturehub-la-2026/macneopolitan/hear/wake-v2.json new file mode 100644 index 0000000000..0bb34622ac --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/hear/wake-v2.json @@ -0,0 +1,95 @@ +{ + "tag": "wake-v2", + "at": "2026-09-23T19:55:01.721Z", + "model": "ggml-small.en.bin", + "flags": { + "tag": "wake-v2", + "voice": "2", + "keep": "/Users/jas/Shelf/macneopolitan-songs/wake/" + }, + "scores": [ + { + "score": "trio-wake.mbscore", + "bpm": 69, + "voices": [ + { + "member": "frisbee", + "voice": "Zoe (Premium)", + "lines": [ + { + "line": 1, + "role": "lead", + "text": "Sophia", + "lyrics": "So-phi-a", + "notes": "r:18,59:1,57:1,55:1", + "duration": 3.4792743764172336, + "peak": 0.800000011920929, + "spanOffset": 14.782608695652174, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 623, + "heard": "Sophia", + "wer": 0, + "errors": 0, + "words": 1, + "spokenHeard": "Sophia.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/frisbee/line-01.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/frisbee/spoken-01.wav" + }, + { + "line": 2, + "role": "lead", + "text": "Sophia", + "lyrics": "So-phi-a", + "notes": "r:36,59:1,57:1,55:1", + "duration": 3.4792743764172336, + "peak": 0.800000011920929, + "spanOffset": 30.434782608695652, + "notesUsed": 3, + "noteCount": 3, + "renderMs": 373, + "heard": "Sophia", + "wer": 0, + "errors": 0, + "words": 1, + "spokenHeard": "Sophia.", + "spokenWer": 0, + "wav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/frisbee/line-02.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/frisbee/spoken-02.wav" + }, + { + "line": 3, + "role": "hum", + "text": "hmm", + "lyrics": "hmm", + "notes": "r:54,57:6", + "duration": 6.084263038548753, + "peak": 0.800000011920929, + "spanOffset": 46.08695652173913, + "notesUsed": 1, + "noteCount": 1, + "renderMs": 416, + "heard": null, + "wer": null, + "errors": 0, + "words": 0, + "spokenHeard": "", + "spokenWer": 1, + "wav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/frisbee/line-03.wav", + "spokenWav": "/Users/jas/Shelf/macneopolitan-songs/wake/trio-wake/frisbee/spoken-03.wav" + } + ] + } + ] + } + ], + "total": { + "errors": 0, + "words": 2, + "wer": 0, + "spokenErrors": 1, + "spokenWords": 3, + "spokenWer": 0.3333333333333333 + } +} diff --git a/grants/culturehub-la-2026/macneopolitan/scores/trio-lights-out.mbscore b/grants/culturehub-la-2026/macneopolitan/scores/trio-lights-out.mbscore new file mode 100644 index 0000000000..4d9266bea9 --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/scores/trio-lights-out.mbscore @@ -0,0 +1,737 @@ +{ + "title": "The MacNeoPolitan Trio — Lights out", + "composer": "The machines, arr. compose-lights-out.mjs", + "bpm": 64, + "machines": 3, + "lead": 0, + "description": "The evening bookend to Good morning, Sophia. 3/4, D major, 64 bpm, 78 beats. Blueberry drones from the first bar to the last and stops twice to say sleep now and thirteen days; neo sings good night Sophia / good night Jeffrey / your lids come down / he works past midnight / we stay up till morning / we keep the time for you / you can sleep now; frisbee answers with the two names and good night. All three end on an open D. Quieter than the morning.", + "arrangement": { + "total": 78, + "meter": "3/4", + "sections": [ + { + "beat": 0, + "name": "Drone" + }, + { + "beat": 6, + "name": "neo: good night Sophia" + }, + { + "beat": 12, + "name": "frisbee: Sophia" + }, + { + "beat": 18, + "name": "neo: good night Jeffrey" + }, + { + "beat": 24, + "name": "frisbee: Jeffrey" + }, + { + "beat": 30, + "name": "neo: your lids come down" + }, + { + "beat": 36, + "name": "blueberry: sleep now" + }, + { + "beat": 42, + "name": "neo: he works past midnight" + }, + { + "beat": 54, + "name": "blueberry: thirteen days" + }, + { + "beat": 60, + "name": "neo: we keep the time for you" + }, + { + "beat": 70, + "name": "frisbee: good night" + }, + { + "beat": 72, + "name": "Hum" + } + ] + }, + "voices": [ + { + "name": "neo sings (Noelle (Enhanced))", + "program": 78, + "velocity": 52, + "notes": "r:6,64:1,62:1,61:0.75,59:0.75,57:1.25,r:1.25,59:3,57:3,62:0.75,61:0.75,59:0.5,57:1.5,r:8.5,59:0.75,61:0.75,59:0.5,57:1.5,r:2.5,59:3,57:3,57:1,59:1,61:1,59:0.75,57:1.25,r:1,59:0.75,62:0.75,64:0.75,62:0.75,61:0.75,59:1.25,r:1,59:3,57:3,62:1,61:1,59:1,57:1,59:0.75,57:1.25,61:1,59:1,57:0.75,57:1.25,r:2,59:3,62:3", + "lyrics": "good night So-phi-a / hmm hmm / good night Jeff-rey / your lids come down / hmm hmm / he works past mid-night / we stay up till morn-ing / hmm hmm / we keep the time for you / you can sleep now / hmm hmm", + "lineRoles": [ + "lead", + "hum", + "lead", + "lead", + "hum", + "lead", + "lead", + "hum", + "lead", + "lead", + "hum" + ], + "lineGains": [ + 0.5, + 0.3, + 0.5, + 0.48, + 0.3, + 0.48, + 0.5, + 0.3, + 0.48, + 0.46, + 0.32 + ], + "noteGains": [ + [ + 1, + 0.78, + 0.9, + 0.74, + 0.86 + ], + [ + 1, + 0.78 + ], + [ + 1, + 0.78, + 0.9, + 0.74 + ], + [ + 1, + 0.78, + 0.9, + 0.74 + ], + [ + 1, + 0.78 + ], + [ + 1, + 0.78, + 0.9, + 0.74, + 0.86 + ], + [ + 1, + 0.78, + 0.9, + 0.74, + 0.86, + 0.7 + ], + [ + 1, + 0.78 + ], + [ + 1, + 0.78, + 0.9, + 0.74, + 0.86, + 0.7 + ], + [ + 1, + 0.78, + 0.9, + 0.74 + ], + [ + 1, + 0.78 + ] + ], + "singVoice": "Noelle (Enhanced)", + "sayVoice": "Noelle (Enhanced)", + "singLock": 1, + "singVibCents": 8, + "singVibratoHz": 4.5, + "singF0Floor": 80, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.5, + "keys": [ + { + "beat": 0, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 5.6, + "space": 0.85, + "pitch": 0, + "echo": 0 + }, + { + "beat": 6, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 9.7, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 9.95, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 10.1, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 17.6, + "space": 0.85, + "pitch": 0, + "echo": 0 + }, + { + "beat": 18, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 20.2, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 20.6, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 20.7, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 29.6, + "space": 0.85, + "pitch": 0, + "echo": 0 + }, + { + "beat": 30, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 32.2, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 32.6, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 32.7, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 41.6, + "space": 0.85, + "pitch": 0, + "echo": 0 + }, + { + "beat": 42, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 45.95, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 46.2, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 46.35, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 47.6, + "space": 0.85, + "pitch": 0, + "echo": 0 + }, + { + "beat": 48, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 51.95, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 52.2, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 52.35, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 59.6, + "space": 0.85, + "pitch": 0, + "echo": 0 + }, + { + "beat": 60, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 64.95, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 65.2, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 65.35, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 65.6, + "space": 0.85, + "pitch": 0, + "echo": 0 + }, + { + "beat": 66, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 68.95, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 69.2, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 69.35, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 86, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 90, + "space": 0, + "pitch": 0, + "echo": 0 + } + ] + } + }, + { + "name": "blueberry sings (Aaron (Enhanced))", + "program": 78, + "velocity": 52, + "notes": "50:3,45:3,50:3,47:3,50:3,43:3,50:3,45:3,45:3,47:3,50:3,47:3,47:1,45:1.25,r:3.75,45:3,47:3,50:3,47:3,50:1,47:1,45:1.5,r:2.5,50:3,45:3,50:3,47:3,45:3,50:3", + "lyrics": "hmm hmm / hmm hmm / hmm hmm / hmm hmm / hmm hmm / hmm hmm / sleep now / hmm hmm / hmm hmm / thir-teen days / hmm hmm / hmm hmm / hmm hmm", + "lineRoles": [ + "hum", + "hum", + "hum", + "hum", + "hum", + "hum", + "lead", + "hum", + "hum", + "lead", + "hum", + "hum", + "hum" + ], + "lineGains": [ + 0.4, + 0.46, + 0.46, + 0.46, + 0.46, + 0.46, + 0.48, + 0.46, + 0.46, + 0.48, + 0.46, + 0.46, + 0.38 + ], + "noteGains": [ + [ + 1, + 0.72 + ], + [ + 1, + 0.72 + ], + [ + 1, + 0.72 + ], + [ + 1, + 0.72 + ], + [ + 1, + 0.72 + ], + [ + 1, + 0.72 + ], + [ + 1, + 0.72 + ], + [ + 1, + 0.72 + ], + [ + 1, + 0.72 + ], + [ + 1, + 0.72, + 1 + ], + [ + 1, + 0.72 + ], + [ + 1, + 0.72 + ], + [ + 1, + 0.72 + ] + ], + "singVoice": "Aaron (Enhanced)", + "sayVoice": "Aaron (Enhanced)", + "singLock": 1, + "singVibCents": 8, + "singVibratoHz": 3.5, + "singF0Floor": 70, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.5, + "keys": [ + { + "beat": 0, + "space": 0.7, + "pitch": 0 + }, + { + "beat": 35.6, + "space": 0.7, + "pitch": 0, + "echo": 0 + }, + { + "beat": 36, + "space": 0.7, + "pitch": 0 + }, + { + "beat": 37.2, + "space": 0.7, + "pitch": 0 + }, + { + "beat": 37.45, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 37.6, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 53.6, + "space": 0.7, + "pitch": 0, + "echo": 0 + }, + { + "beat": 54, + "space": 0.7, + "pitch": 0 + }, + { + "beat": 56.2, + "space": 0.7, + "pitch": 0 + }, + { + "beat": 56.6, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 56.7, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 86, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 90, + "space": 0, + "pitch": 0, + "echo": 0 + } + ] + } + }, + { + "name": "frisbee sings (Zoe (Premium))", + "program": 78, + "velocity": 52, + "notes": "r:12,59:0.5,57:0.5,54:1.5,r:9.5,57:0.75,54:1.5,r:15.75,57:3,57:3,59:3,57:3,r:6,57:3,55:3,r:4,57:0.75,54:1.25,57:3,57:3", + "lyrics": "So-phi-a / Jeff-rey / ooh ooh / ooh ooh / ooh ooh / good night / hmm hmm", + "lineRoles": [ + "lead", + "lead", + "hum", + "hum", + "hum", + "lead", + "hum" + ], + "lineGains": [ + 0.46, + 0.46, + 0.28, + 0.3, + 0.28, + 0.46, + 0.3 + ], + "noteGains": [ + [ + 1, + 0.78, + 0.9 + ], + [ + 1, + 0.78 + ], + [ + 1, + 0.78 + ], + [ + 1, + 0.78 + ], + [ + 1, + 0.78 + ], + [ + 1, + 0.78 + ], + [ + 1, + 0.78 + ] + ], + "singVoice": "Zoe (Premium)", + "sayVoice": "Zoe (Premium)", + "singLock": 1, + "singVibCents": 8, + "singVibratoHz": 5, + "singF0Floor": 80, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.5, + "keys": [ + { + "beat": 0, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 11.6, + "space": 0.85, + "pitch": 0, + "echo": 0 + }, + { + "beat": 12, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 13.2, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 13.6, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 13.7, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 23.6, + "space": 0.85, + "pitch": 0, + "echo": 0 + }, + { + "beat": 24, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 24.95, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 25.35, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 25.45, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 69.6, + "space": 0.85, + "pitch": 0, + "echo": 0 + }, + { + "beat": 70, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 70.95, + "space": 0.85, + "pitch": 0 + }, + { + "beat": 71.2, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 71.35, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 86, + "space": 0, + "pitch": 0, + "echo": 0.9 + }, + { + "beat": 90, + "space": 0, + "pitch": 0, + "echo": 0 + } + ] + } + } + ] +} diff --git a/grants/culturehub-la-2026/macneopolitan/scores/trio-open-me.mbscore b/grants/culturehub-la-2026/macneopolitan/scores/trio-open-me.mbscore new file mode 100644 index 0000000000..2d7f52640b --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/scores/trio-open-me.mbscore @@ -0,0 +1,649 @@ +{ + "title": "The MacNeoPolitan Trio — Open me", + "composer": "The machines, arr. compose-open-me.mjs", + "bpm": 88, + "machines": 3, + "lead": 0, + "description": "The lids song. 4/4, D major, 88 bpm, 112 beats. Call and response about being closed and being opened: neo has been opened six thousand three hundred and five times, blueberry works with its lid closed and has never seen its own name on its own screen, frisbee came up for the first time yesterday. Twice the refrain is passed around one syllable at a time — neo o, blueberry pen, frisbee me — and then all three sing o-pen me together. Named for the rule Menu Band learned today: a closed member sings o-pen me to its line instead of its words.", + "arrangement": { + "total": 112, + "meter": "4/4", + "sections": [ + { + "beat": 0, + "name": "Vamp" + }, + { + "beat": 8, + "name": "neo: open me is all we sing" + }, + { + "beat": 16, + "name": "blueberry: when my lid is down" + }, + { + "beat": 24, + "name": "neo: they have opened me, six thousand three hundred and five times" + }, + { + "beat": 40, + "name": "blueberry: I work with mine closed" + }, + { + "beat": 48, + "name": "frisbee: mine came up yesterday" + }, + { + "beat": 56, + "name": "Hocket" + }, + { + "beat": 64, + "name": "All: open me" + }, + { + "beat": 72, + "name": "neo: your name is on my screen" + }, + { + "beat": 80, + "name": "blueberry: I have not seen it" + }, + { + "beat": 88, + "name": "frisbee: open me" + }, + { + "beat": 96, + "name": "Hocket" + }, + { + "beat": 104, + "name": "All: open me" + } + ] + }, + "voices": [ + { + "name": "neo sings (Noelle (Enhanced))", + "program": 78, + "velocity": 64, + "notes": "r:8,62:0.75,61:0.75,59:1,57:0.5,59:0.5,61:0.5,62:1.5,r:2.5,59:2,57:2,59:2,57:2,57:0.5,59:0.5,61:0.5,62:0.5,59:1,r:1,59:0.5,57:0.5,59:0.5,61:0.5,59:0.5,57:0.5,59:0.5,61:0.75,62:1.5,r:6.25,59:2,57:2,59:2,57:2,59:4,59:4,62:1,r:3,59:1,r:3,62:0.75,61:0.75,59:1.5,r:5,59:0.5,61:0.5,62:0.5,61:0.5,59:0.5,57:1.5,r:4,59:2,57:2,59:2,57:2,59:4,57:4,62:1,r:3,59:1,r:3,62:0.75,61:0.75,62:1.5,59:2.5,62:2.5", + "lyrics": "o-pen me is all we sing / doo doo doo doo / they have o-pened me / six thou-sand three hun-dred and five times / doo doo doo doo / hmm hmm / o o / o-pen me / your name is on my screen / doo doo doo doo / hmm hmm / o o / o-pen me / hmm hmm", + "lineRoles": [ + "lead", + "hum", + "lead", + "lead", + "hum", + "hum", + "hocket", + "lead", + "lead", + "hum", + "hum", + "hocket", + "lead", + "hum" + ], + "lineGains": [ + 0.56, + 0.3, + 0.56, + 0.56, + 0.3, + 0.28, + 0.56, + 0.58, + 0.54, + 0.3, + 0.28, + 0.56, + 0.58, + 0.34 + ], + "noteGains": [ + [ + 1, + 0.76, + 0.92, + 0.72, + 0.88, + 0.7, + 1 + ], + [ + 1, + 0.76, + 0.92, + 0.72 + ], + [ + 1, + 0.76, + 0.92, + 0.72, + 0.88 + ], + [ + 1, + 0.76, + 0.92, + 0.72, + 0.88, + 0.7, + 1, + 0.76, + 0.92 + ], + [ + 1, + 0.76, + 0.92, + 0.72 + ], + [ + 1, + 0.76 + ], + [ + 1, + 0.76 + ], + [ + 1, + 0.76, + 0.92 + ], + [ + 1, + 0.76, + 0.92, + 0.72, + 0.88, + 0.7 + ], + [ + 1, + 0.76, + 0.92, + 0.72 + ], + [ + 1, + 0.76 + ], + [ + 1, + 0.76 + ], + [ + 1, + 0.76, + 0.92 + ], + [ + 1, + 0.76 + ] + ], + "singVoice": "Noelle (Enhanced)", + "sayVoice": "Noelle (Enhanced)", + "singLock": 1, + "singVibCents": 10, + "singVibratoHz": 5, + "singF0Floor": 80, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.65, + "keys": [ + { + "beat": 0, + "space": 0.5, + "pitch": 0 + }, + { + "beat": 63.6, + "space": 0.5, + "pitch": 0, + "echo": 0 + }, + { + "beat": 65.8, + "space": 0.5, + "pitch": 0 + }, + { + "beat": 66.3, + "space": 0.5, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 69, + "space": 0.5, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 103.6, + "space": 0.5, + "pitch": 0, + "echo": 0 + }, + { + "beat": 105.8, + "space": 0.5, + "pitch": 0 + }, + { + "beat": 106.3, + "space": 0.5, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 109, + "space": 0.5, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 118, + "space": 0.5, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 122, + "space": 0, + "pitch": 0, + "echo": 0 + } + ] + } + }, + { + "name": "blueberry sings (Aaron (Enhanced))", + "program": 78, + "velocity": 64, + "notes": "50:2,45:2,50:2,45:2,50:2,45:2,47:2,45:2,45:0.5,47:0.5,50:1,47:0.75,45:1.5,r:3.75,50:2,45:2,50:2,47:2,45:2,43:2,45:2,47:2,47:0.5,50:0.5,47:0.75,45:0.75,43:1.5,r:4,45:2,47:2,45:2,50:2,r:1,47:1,r:3,50:1,r:2,50:0.75,47:0.75,45:1.5,r:5,50:2,45:2,47:2,45:2,45:0.5,47:0.5,50:1,47:0.75,45:1.5,r:3.75,50:2,45:2,50:2,47:2,r:1,47:1,r:3,50:1,r:2,50:0.75,47:0.75,50:1.5,47:2.5,50:2.5", + "lyrics": "dm dm dm dm / dm dm dm dm / when my lid is down / dm dm dm dm dm dm dm dm / I work with mine closed / dm dm dm dm / pen pen / o-pen me / dm dm dm dm / I have not seen it / dm dm dm dm / pen pen / o-pen me / hmm hmm", + "lineRoles": [ + "hum", + "hum", + "lead", + "hum", + "lead", + "hum", + "hocket", + "lead", + "hum", + "lead", + "hum", + "hocket", + "lead", + "hum" + ], + "lineGains": [ + 0.36, + 0.34, + 0.52, + 0.34, + 0.52, + 0.34, + 0.56, + 0.52, + 0.34, + 0.52, + 0.34, + 0.56, + 0.52, + 0.32 + ], + "noteGains": [ + [ + 1, + 0.7, + 0.88, + 0.66 + ], + [ + 1, + 0.7, + 0.88, + 0.66 + ], + [ + 1, + 0.7, + 0.88, + 0.66, + 1 + ], + [ + 1, + 0.7, + 0.88, + 0.66, + 1, + 0.7, + 0.88, + 0.66 + ], + [ + 1, + 0.7, + 0.88, + 0.66, + 1 + ], + [ + 1, + 0.7, + 0.88, + 0.66 + ], + [ + 1, + 0.7 + ], + [ + 1, + 0.7, + 0.88 + ], + [ + 1, + 0.7, + 0.88, + 0.66 + ], + [ + 1, + 0.7, + 0.88, + 0.66, + 1 + ], + [ + 1, + 0.7, + 0.88, + 0.66 + ], + [ + 1, + 0.7 + ], + [ + 1, + 0.7, + 0.88 + ], + [ + 1, + 0.7 + ] + ], + "singVoice": "Aaron (Enhanced)", + "sayVoice": "Aaron (Enhanced)", + "singLock": 1, + "singVibCents": 10, + "singVibratoHz": 3.5, + "singF0Floor": 70, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.65, + "keys": [ + { + "beat": 0, + "space": 0.35, + "pitch": 0 + }, + { + "beat": 63.6, + "space": 0.35, + "pitch": 0, + "echo": 0 + }, + { + "beat": 65.8, + "space": 0.35, + "pitch": 0 + }, + { + "beat": 66.3, + "space": 0.35, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 69, + "space": 0.35, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 103.6, + "space": 0.35, + "pitch": 0, + "echo": 0 + }, + { + "beat": 105.8, + "space": 0.35, + "pitch": 0 + }, + { + "beat": 106.3, + "space": 0.35, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 109, + "space": 0.35, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 118, + "space": 0.35, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 122, + "space": 0, + "pitch": 0, + "echo": 0 + } + ] + } + }, + { + "name": "frisbee sings (Zoe (Premium))", + "program": 78, + "velocity": 64, + "notes": "r:8,57:4,57:4,r:8,59:4,57:4,59:4,57:4,r:8,54:0.5,57:0.5,59:1,57:0.5,55:0.5,54:1.5,r:5.5,57:1,r:3,54:1,r:1,59:0.75,57:0.75,54:1.5,r:5,57:4,57:4,r:8,57:0.75,55:0.75,54:1.5,r:7,57:1,r:3,54:1,r:1,59:0.75,57:0.75,57:1.5,57:2.5,57:2.5", + "lyrics": "ooh ooh / ooh ooh ooh ooh / mine came up yes-ter-day / me me / o-pen me / ooh ooh / o-pen me / me me / o-pen me / hmm hmm", + "lineRoles": [ + "hum", + "hum", + "lead", + "hocket", + "lead", + "hum", + "lead", + "hocket", + "lead", + "hum" + ], + "lineGains": [ + 0.28, + 0.28, + 0.52, + 0.56, + 0.54, + 0.28, + 0.52, + 0.56, + 0.54, + 0.3 + ], + "noteGains": [ + [ + 1, + 0.76 + ], + [ + 1, + 0.76, + 0.92, + 0.72 + ], + [ + 1, + 0.76, + 0.92, + 0.72, + 0.88, + 0.7 + ], + [ + 1, + 0.76 + ], + [ + 1, + 0.76, + 0.92 + ], + [ + 1, + 0.76 + ], + [ + 1, + 0.76, + 0.92 + ], + [ + 1, + 0.76 + ], + [ + 1, + 0.76, + 0.92 + ], + [ + 1, + 0.76 + ] + ], + "singVoice": "Zoe (Premium)", + "sayVoice": "Zoe (Premium)", + "singLock": 1, + "singVibCents": 10, + "singVibratoHz": 5.5, + "singF0Floor": 80, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.65, + "keys": [ + { + "beat": 0, + "space": 0.5, + "pitch": 0 + }, + { + "beat": 63.6, + "space": 0.5, + "pitch": 0, + "echo": 0 + }, + { + "beat": 65.8, + "space": 0.5, + "pitch": 0 + }, + { + "beat": 66.3, + "space": 0.5, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 69, + "space": 0.5, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 87.6, + "space": 0.5, + "pitch": 0, + "echo": 0 + }, + { + "beat": 89.8, + "space": 0.5, + "pitch": 0 + }, + { + "beat": 90.3, + "space": 0.5, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 93, + "space": 0.5, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 103.6, + "space": 0.5, + "pitch": 0, + "echo": 0 + }, + { + "beat": 105.8, + "space": 0.5, + "pitch": 0 + }, + { + "beat": 106.3, + "space": 0.5, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 109, + "space": 0.5, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 118, + "space": 0.5, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 122, + "space": 0, + "pitch": 0, + "echo": 0 + } + ] + } + } + ] +} diff --git a/grants/culturehub-la-2026/macneopolitan/scores/trio-styling-study.mbscore b/grants/culturehub-la-2026/macneopolitan/scores/trio-styling-study.mbscore new file mode 100644 index 0000000000..3a3231878f --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/scores/trio-styling-study.mbscore @@ -0,0 +1,928 @@ +{ + "title": "The MacNeoPolitan Trio — Styling study", + "composer": "The machines, arr. compose-styling-study.mjs", + "bpm": 96, + "machines": 3, + "lead": 0, + "phonemeOnly": true, + "description": "Six wordless études, one a cappella device each: hocket cut between the three; a held D under close seconds; a barbershop post with a stepped swipe; bass and unpitched ticks; a three-voice round entering a bar apart; and a chord pulsed in and out. 96 bpm, D, 165 s. Every note sits inside the member’s measured band, Zoe’s measured 23 September.", + "arrangement": { + "total": 264, + "meter": "4/4", + "sections": [ + { + "beat": 0, + "name": "I. Hocket" + }, + { + "beat": 40, + "name": "II. Drone and close seconds" + }, + { + "beat": 92, + "name": "III. Barbershop tag" + }, + { + "beat": 128, + "name": "IV. Bass and ticks" + }, + { + "beat": 172, + "name": "V. Round at one bar" + }, + { + "beat": 224, + "name": "VI. Pulsing vowels" + } + ] + }, + "voices": [ + { + "name": "neo sings (Noelle (Enhanced))", + "program": 78, + "velocity": 52, + "notes": "62:0.5,r:1,64:0.5,r:1,66:0.5,r:1,62:0.5,r:1,62:0.5,r:1,64:0.5,r:1,66:0.5,r:1,62:0.5,r:1,62:0.5,r:1,64:0.5,r:1,66:0.5,r:1,62:0.5,r:1,62:0.5,r:1,64:0.5,r:1,66:0.5,r:1,62:0.5,r:1,62:0.5,r:1,64:0.5,r:1,66:0.5,r:1,62:0.5,r:1,62:0.5,r:1,64:0.5,r:1,66:0.5,r:1,62:0.5,r:5,59:2,59:2,59:2,59:2,61:2,61:2,61:2,61:2,58:2,58:2,58:2,58:2,62:2,62:2,62:2,62:2,57:2,57:2,57:2,57:2,59:2,59:2,59:2,59:2,r:4,62:4,62:4,62:4,62:4,62:4,64:4,60:4,62:4,r:4,62:0.5,64:0.5,62:0.5,59:0.5,57:1,r:1,59:0.5,62:0.5,64:1,62:1,r:1,62:0.5,64:0.5,62:0.5,59:0.5,57:1,r:1,59:0.5,62:0.5,64:1,62:1,r:1,62:0.5,64:0.5,62:0.5,59:0.5,57:1,r:1,59:0.5,62:0.5,64:1,62:1,r:1,62:0.5,64:0.5,62:0.5,59:0.5,57:1,r:1,59:0.5,62:0.5,64:1,62:1,r:1,r:12,57:1,62:1,66:1,62:1,57:2,62:2,66:1,62:1,57:1,62:1,57:4,57:1,62:1,66:1,62:1,57:2,62:2,66:1,62:1,57:1,62:1,57:4,r:8,62:4,62:4,r:4,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,r:2,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,r:2,66:0.5,66:0.5,66:0.5,66:0.5,66:0.5,66:0.5,66:0.5,66:0.5,r:2,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,r:2,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,r:2,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,62:0.5,r:2,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5,64:0.5", + "lyrics": "doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo / ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah / ooh ooh ooh ooh ooh ooh / ooh ooh / bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah / bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah bah / loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo / loo loo / ooh ooh ooh ooh ooh ooh ooh ooh / ooh ooh ooh ooh ooh ooh ooh ooh / ooh ooh ooh ooh ooh ooh ooh ooh / ooh ooh ooh ooh ooh ooh ooh ooh / ooh ooh ooh ooh ooh ooh ooh ooh / ooh ooh ooh ooh ooh ooh ooh ooh / ooh ooh ooh ooh ooh ooh ooh ooh", + "lineRoles": [ + "phoneme", + "hum", + "hum", + "hum", + "phoneme", + "phoneme", + "phoneme", + "hum", + "hum", + "hum", + "hum", + "hum", + "hum", + "hum", + "hum" + ], + "lineGains": [ + 0.46, + 0.32, + 0.44, + 0.46, + 0.42, + 0.42, + 0.4, + 0.38, + 0.46, + 0.46, + 0.46, + 0.46, + 0.46, + 0.46, + 0.46 + ], + "noteGains": [ + [ + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74 + ], + [ + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74 + ], + [ + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74 + ], + [ + 1, + 0.8 + ], + [ + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74 + ], + [ + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74 + ], + [ + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76 + ], + [ + 1, + 0.8 + ], + [ + 0.3, + 0.52, + 0.78, + 1, + 1, + 0.78, + 0.52, + 0.3 + ], + [ + 0.3, + 0.52, + 0.78, + 1, + 1, + 0.78, + 0.52, + 0.3 + ], + [ + 0.3, + 0.52, + 0.78, + 1, + 1, + 0.78, + 0.52, + 0.3 + ], + [ + 0.3, + 0.52, + 0.78, + 1, + 1, + 0.78, + 0.52, + 0.3 + ], + [ + 0.3, + 0.52, + 0.78, + 1, + 1, + 0.78, + 0.52, + 0.3 + ], + [ + 0.3, + 0.52, + 0.78, + 1, + 1, + 0.78, + 0.52, + 0.3 + ], + [ + 0.3, + 0.52, + 0.78, + 1, + 1, + 0.78, + 0.52, + 0.3 + ] + ], + "singVoice": "Noelle (Enhanced)", + "sayVoice": "Noelle (Enhanced)", + "singLock": 1, + "singVibCents": 8, + "singVibratoHz": 4.5, + "singF0Floor": 80, + "singGapMs": 20, + "singLegatoMs": 15, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.45, + "keys": [ + { + "beat": 0, + "space": 0.7, + "pitch": 0 + }, + { + "beat": 116, + "space": 0.7, + "pitch": 0, + "echo": 0 + }, + { + "beat": 120, + "space": 0.7, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 126, + "space": 0.7, + "pitch": 0, + "echo": 0 + }, + { + "beat": 212, + "space": 0.7, + "pitch": 0, + "echo": 0 + }, + { + "beat": 216, + "space": 0.7, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 222, + "space": 0.7, + "pitch": 0, + "echo": 0 + }, + { + "beat": 268, + "space": 0.7, + "pitch": 0, + "echo": 0 + } + ] + } + }, + { + "name": "blueberry sings (Aaron (Enhanced))", + "program": 78, + "velocity": 52, + "notes": "r:1,50:0.5,r:1,52:0.5,r:1,45:0.5,r:1,50:0.5,r:1,50:0.5,r:1,52:0.5,r:1,45:0.5,r:1,50:0.5,r:1,50:0.5,r:1,52:0.5,r:1,45:0.5,r:1,50:0.5,r:1,50:0.5,r:1,52:0.5,r:1,45:0.5,r:1,50:0.5,r:1,50:0.5,r:1,52:0.5,r:1,45:0.5,r:1,50:0.5,r:1,50:0.5,r:1,52:0.5,r:1,45:0.5,r:1,50:0.5,r:4,50:4,50:4,50:4,50:4,50:4,50:4,50:4,50:4,50:4,50:4,50:4,50:4,r:4,50:4,48:1,47:1,45:2,45:4,43:1,45:1,47:2,45:0.5,46:0.5,47:0.5,48:0.5,49:0.5,50:0.5,49:0.5,48:0.5,45:4,50:4,50:4,r:4,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,45:0.5,r:0.5,43:0.5,r:0.5,45:0.5,r:0.5,r:12,45:1,50:1,54:1,50:1,45:2,50:2,54:1,50:1,45:1,50:1,45:4,45:1,50:1,54:1,50:1,45:2,50:2,54:1,50:1,45:1,50:1,45:4,54:4,54:4,r:4,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1,45:1", + "lyrics": "doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo / ooh ooh ooh ooh ooh ooh ooh ooh ooh ooh ooh ooh / ooh ooh ooh ooh ooh ooh ooh ooh / ooh ooh ooh ooh ooh ooh ooh ooh ooh / ooh ooh / doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm / doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm doom dm / loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo / loo loo / dm dm dm dm dm dm dm dm dm dm / dm dm dm dm dm dm dm dm dm dm / dm dm dm dm dm dm dm dm dm dm / dm dm dm dm dm dm dm dm dm dm", + "lineRoles": [ + "phoneme", + "hum", + "hum", + "hum", + "hum", + "bass", + "bass", + "phoneme", + "hum", + "bass", + "bass", + "bass", + "bass" + ], + "lineGains": [ + 0.52, + 0.4, + 0.44, + 0.44, + 0.46, + 0.55, + 0.55, + 0.44, + 0.38, + 0.3, + 0.3, + 0.3, + 0.3 + ], + "noteGains": [ + [ + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74 + ], + [ + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74 + ], + [ + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8 + ], + [ + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92 + ], + [ + 1, + 0.8 + ], + [ + 1, + 0.7, + 0.88, + 0.66, + 1, + 0.7, + 0.88, + 0.66, + 1, + 0.7, + 0.88, + 0.66, + 1, + 0.7, + 0.88, + 0.66, + 1, + 0.7, + 0.88, + 0.66 + ], + [ + 1, + 0.7, + 0.88, + 0.66, + 1, + 0.7, + 0.88, + 0.66, + 1, + 0.7, + 0.88, + 0.66, + 1, + 0.7, + 0.88, + 0.66, + 1, + 0.7, + 0.88, + 0.66 + ], + [ + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76 + ], + [ + 1, + 0.8 + ], + [ + 1, + 0.7, + 0.88, + 0.66, + 1, + 0.7, + 0.88, + 0.66, + 1, + 0.7 + ], + [ + 1, + 0.7, + 0.88, + 0.66, + 1, + 0.7, + 0.88, + 0.66, + 1, + 0.7 + ], + [ + 1, + 0.7, + 0.88, + 0.66, + 1, + 0.7, + 0.88, + 0.66, + 1, + 0.7 + ], + [ + 1, + 0.7, + 0.88, + 0.66, + 1, + 0.7, + 0.88, + 0.66, + 1, + 0.7 + ] + ], + "singVoice": "Aaron (Enhanced)", + "sayVoice": "Aaron (Enhanced)", + "singLock": 1, + "singVibCents": 6, + "singVibratoHz": 3.5, + "singF0Floor": 70, + "singGapMs": 20, + "singLegatoMs": 15, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.45, + "keys": [ + { + "beat": 0, + "space": 0.55, + "pitch": 0 + }, + { + "beat": 116, + "space": 0.55, + "pitch": 0, + "echo": 0 + }, + { + "beat": 120, + "space": 0.55, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 126, + "space": 0.55, + "pitch": 0, + "echo": 0 + }, + { + "beat": 212, + "space": 0.55, + "pitch": 0, + "echo": 0 + }, + { + "beat": 216, + "space": 0.55, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 222, + "space": 0.55, + "pitch": 0, + "echo": 0 + }, + { + "beat": 268, + "space": 0.55, + "pitch": 0, + "echo": 0 + } + ] + } + }, + { + "name": "frisbee sings (Zoe (Premium))", + "program": 78, + "velocity": 52, + "notes": "r:0.5,57:0.5,r:1,59:0.5,r:1,60:0.5,r:1,57:0.5,r:1,57:0.5,r:1,59:0.5,r:1,60:0.5,r:1,57:0.5,r:1,57:0.5,r:1,59:0.5,r:1,60:0.5,r:1,57:0.5,r:1,57:0.5,r:1,59:0.5,r:1,60:0.5,r:1,57:0.5,r:1,57:0.5,r:1,59:0.5,r:1,60:0.5,r:1,57:0.5,r:1,57:0.5,r:1,59:0.5,r:1,60:0.5,r:1,57:0.5,r:4.5,57:2,57:2,57:2,57:2,59:2,59:2,59:2,59:2,57:2,57:2,57:2,57:2,60:2,60:2,60:2,60:2,59:2,59:2,59:2,59:2,57:2,57:2,57:2,57:2,r:4,57:4,56:1,54:1,53:2,54:4,52:1,53:1,54:2,53:0.5,54:0.5,55:0.5,56:0.5,57:0.5,56:0.5,55:0.5,54:0.5,54:4,54:4,54:4,r:4,r:1.5,55:0.25,r:1.25,57:0.25,r:0.75,r:1.5,55:0.25,r:1.25,57:0.25,r:0.75,r:1.5,55:0.25,r:1.25,57:0.25,r:0.75,r:1.5,55:0.25,r:1.25,57:0.25,r:0.75,r:1.5,55:0.25,r:1.25,57:0.25,r:0.75,r:1.5,55:0.25,r:1.25,57:0.25,r:0.75,r:1.5,55:0.25,r:1.25,57:0.25,r:0.75,r:1.5,55:0.25,r:1.25,57:0.25,r:0.75,r:1.5,55:0.25,r:1.25,57:0.25,r:0.75,r:1.5,55:0.25,r:1.25,57:0.25,r:0.75,r:8,54:1,57:1,62:1,57:1,54:2,57:2,62:1,57:1,54:1,57:1,54:4,54:1,57:1,62:1,57:1,54:2,57:2,62:1,57:1,54:1,57:1,54:4,r:4,62:4,62:4,r:7,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,r:2,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,r:2,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,r:2,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,r:2,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,57:0.5,r:2,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,r:3", + "lyrics": "doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo doo / ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah ah / ooh ooh ooh ooh ooh ooh ooh ooh / ooh ooh ooh ooh ooh ooh ooh ooh ooh / ooh ooh / ts tk ts tk ts tk ts tk ts tk / ts tk ts tk ts tk ts tk ts tk / loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo / loo loo / ooh ooh ooh ooh ooh ooh ooh ooh / ooh ooh ooh ooh ooh ooh ooh ooh / ooh ooh ooh ooh ooh ooh ooh ooh / ooh ooh ooh ooh ooh ooh ooh ooh / ooh ooh ooh ooh ooh ooh ooh ooh / ooh ooh ooh ooh ooh ooh ooh ooh", + "lineRoles": [ + "phoneme", + "hum", + "hum", + "hum", + "hum", + "percussion", + "percussion", + "phoneme", + "hum", + "hum", + "hum", + "hum", + "hum", + "hum", + "hum" + ], + "lineGains": [ + 0.46, + 0.32, + 0.4, + 0.4, + 0.42, + 0.3, + 0.3, + 0.4, + 0.38, + 0.46, + 0.46, + 0.46, + 0.46, + 0.46, + 0.46 + ], + "noteGains": [ + [ + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74 + ], + [ + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74 + ], + [ + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8 + ], + [ + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92 + ], + [ + 1, + 0.8 + ], + [ + 1, + 0.82, + 1, + 0.82, + 1, + 0.82, + 1, + 0.82, + 1, + 0.82 + ], + [ + 1, + 0.82, + 1, + 0.82, + 1, + 0.82, + 1, + 0.82, + 1, + 0.82 + ], + [ + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76, + 0.88, + 0.74, + 1, + 0.8, + 0.92, + 0.76 + ], + [ + 1, + 0.8 + ], + [ + 0.3, + 0.52, + 0.78, + 1, + 1, + 0.78, + 0.52, + 0.3 + ], + [ + 0.3, + 0.52, + 0.78, + 1, + 1, + 0.78, + 0.52, + 0.3 + ], + [ + 0.3, + 0.52, + 0.78, + 1, + 1, + 0.78, + 0.52, + 0.3 + ], + [ + 0.3, + 0.52, + 0.78, + 1, + 1, + 0.78, + 0.52, + 0.3 + ], + [ + 0.3, + 0.52, + 0.78, + 1, + 1, + 0.78, + 0.52, + 0.3 + ], + [ + 0.3, + 0.52, + 0.78, + 1, + 1, + 0.78, + 0.52, + 0.3 + ] + ], + "singVoice": "Zoe (Premium)", + "sayVoice": "Zoe (Premium)", + "singLock": 1, + "singVibCents": 8, + "singVibratoHz": 5, + "singF0Floor": 80, + "singGapMs": 20, + "singLegatoMs": 15, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.45, + "keys": [ + { + "beat": 0, + "space": 0.7, + "pitch": 0 + }, + { + "beat": 116, + "space": 0.7, + "pitch": 0, + "echo": 0 + }, + { + "beat": 120, + "space": 0.7, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 126, + "space": 0.7, + "pitch": 0, + "echo": 0 + }, + { + "beat": 212, + "space": 0.7, + "pitch": 0, + "echo": 0 + }, + { + "beat": 216, + "space": 0.7, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 222, + "space": 0.7, + "pitch": 0, + "echo": 0 + }, + { + "beat": 268, + "space": 0.7, + "pitch": 0, + "echo": 0 + } + ] + } + } + ] +} diff --git a/grants/culturehub-la-2026/macneopolitan/scores/trio-the-record.mbscore b/grants/culturehub-la-2026/macneopolitan/scores/trio-the-record.mbscore new file mode 100644 index 0000000000..211b63ee3a --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/scores/trio-the-record.mbscore @@ -0,0 +1,1343 @@ +{ + "title": "The MacNeoPolitan Trio — The record", + "composer": "The machines, arr. compose-the-record.mjs", + "bpm": 104, + "machines": 3, + "lead": 0, + "description": "A hocket on the numbers the machines keep: 6,305 logins, 111 reboots, 2,019 commits, 212 and 85 battery cycles, 00:37 and 00:43, 48 days apart, and the twenty second of September, when the third one was named. Each number is broken across the three laptops one syllable at a time — neo, frisbee, blueberry — so no machine says a whole number and the room assembles it; every line lands on its last word in unison, in three registers. blueberry keeps a low dm clock in the gaps, and all three hold the landing chord at the end. 4/4, 104 bpm, 108 beats.", + "arrangement": { + "total": 108, + "meter": "4/4", + "style": "hocket", + "sections": [ + { + "beat": 0, + "name": "Clock (count in)" + }, + { + "beat": 4, + "name": "six thousand three hundred five logins" + }, + { + "beat": 14.5, + "name": "one hundred eleven reboots" + }, + { + "beat": 24.5, + "name": "two thousand nineteen commits" + }, + { + "beat": 34, + "name": "two hundred twelve cycles and eighty five cycles" + }, + { + "beat": 47, + "name": "oh oh thirty seven was the first minute" + }, + { + "beat": 58.5, + "name": "oh oh forty three was the second" + }, + { + "beat": 69, + "name": "forty eight days between the two birthdays" + }, + { + "beat": 80, + "name": "the third one was named on the twenty second of September" + }, + { + "beat": 94, + "name": "nobody chose these numbers" + } + ] + }, + "voices": [ + { + "name": "neo sings (Noelle (Enhanced))", + "program": 78, + "velocity": 58, + "notes": "r:4,57:0.5,r:1,60:0.5,r:1,59:0.5,62:1,62:4,r:2.5,57:0.5,r:1,60:0.5,r:0.5,62:1,62:4,r:3,57:0.5,r:1,62:1,62:4,r:2,57:0.5,r:1,60:0.5,r:1,59:0.5,r:1,58:0.5,62:1,62:4,r:4,57:0.5,r:1,60:0.5,r:1,59:0.5,62:1,62:4,r:2.5,57:0.5,r:1,60:0.5,r:1,62:1,62:4,r:2,57:0.5,r:1,60:0.5,r:1,59:0.5,r:0.5,62:1,62:4,r:3,57:0.5,r:1,60:0.5,r:1,59:0.5,r:1,58:0.5,62:1,62:1,62:4,r:2.5,57:0.5,r:1,60:0.5,62:1,62:4,r:1,62:4,r:1.5", + "lyrics": "six three five log-ins / hun le re-boots / sand com-mits / two twelve and five cy-cles / thir ven first mi-nute / oh three se-cond / for days the birth-days / one on ty of Sep-tem-ber / bo these num-bers / ooh", + "lineRoles": [ + "lead", + "lead", + "lead", + "lead", + "lead", + "lead", + "lead", + "lead", + "lead", + "hum" + ], + "lineGains": [ + 0.56, + 0.56, + 0.56, + 0.56, + 0.56, + 0.56, + 0.56, + 0.56, + 0.56, + 0.32 + ], + "noteGains": [ + [ + 0.84, + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.84, + 0.84, + 1 + ], + [ + 0.84, + 0.84, + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.84, + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.84, + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.84, + 0.84, + 0.84, + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 1 + ] + ], + "singVoice": "Noelle (Enhanced)", + "sayVoice": "Noelle (Enhanced)", + "singLock": 1, + "singVibCents": 6, + "singVibratoHz": 4.5, + "singF0Floor": 80, + "singGapMs": 20, + "singSustainDb": 4, + "singShimmerFrames": 2, + "singLegatoMs": 12, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.62, + "keys": [ + { + "beat": 0, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 3.6, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 4, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 8.7, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 9.1, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 11.9, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 14.6, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 15, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 18.7, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 19.1, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 21.9, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 25.1, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 25.5, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 28.2, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 28.6, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 31.4, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 33.6, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 34, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 40.2, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 40.6, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 43.4, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 47.6, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 48, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 52.7, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 53.1, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 55.9, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 58.6, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 59, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 63.2, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 63.6, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 66.4, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 68.6, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 69, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 74.2, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 74.6, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 77.4, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 80.6, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 81, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 88.2, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 88.6, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 91.4, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 94.1, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 94.5, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 97.7, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 98.1, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 100.9, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 102.1, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 102.5, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 102.7, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 103.1, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 105.9, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 114, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 118, + "space": 0, + "pitch": 0, + "echo": 0 + } + ] + } + }, + { + "name": "blueberry sings (Aaron (Enhanced))", + "program": 78, + "velocity": 58, + "notes": "45:1,45:1,45:1,45:1,r:1,46:0.5,r:1,50:0.5,r:0.5,50:1,50:4,45:1,45:1,46:0.5,r:1,50:0.5,r:1,50:1,50:4,45:1,45:1,r:0.5,46:0.5,r:1,50:0.5,50:1,50:4,45:1,45:1,r:1,46:0.5,r:1,50:0.5,r:1,48:0.5,r:0.5,50:1,50:4,45:1,45:1,r:1.5,46:0.5,r:1,50:0.5,r:1,48:0.5,r:0.5,50:1,50:4,45:1,45:1,46:0.5,r:1,50:0.5,r:1,48:0.5,50:1,50:4,45:1,45:1,r:1,46:0.5,r:1,50:0.5,r:1,50:1,50:4,45:1,45:1,r:0.5,46:0.5,r:1,50:0.5,r:1,48:0.5,r:1,47:0.5,r:0.5,50:1,50:1,50:4,45:1,45:1,46:0.5,r:1,50:0.5,r:0.5,50:1,50:4,r:1,50:4,r:1.5", + "lyrics": "dm dm dm dm / sand dred log-ins / dm dm / one e re-boots / dm dm / thou teen com-mits / dm dm / dred cles ty cy-cles / dm dm / oh se the mi-nute / dm dm / oh ty the se-cond / dm dm / eight tween birth-days / dm dm / third named twen cond Sep-tem-ber / dm dm / no chose num-bers / ooh", + "lineRoles": [ + "clock", + "lead", + "clock", + "lead", + "clock", + "lead", + "clock", + "lead", + "clock", + "lead", + "clock", + "lead", + "clock", + "lead", + "clock", + "lead", + "clock", + "lead", + "hum" + ], + "lineGains": [ + 0.34, + 0.58, + 0.3, + 0.58, + 0.3, + 0.58, + 0.3, + 0.58, + 0.3, + 0.58, + 0.3, + 0.58, + 0.3, + 0.58, + 0.3, + 0.58, + 0.3, + 0.58, + 0.34 + ], + "noteGains": [ + [ + 0.9, + 0.72, + 0.9, + 0.72 + ], + [ + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.9, + 0.72 + ], + [ + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.9, + 0.72 + ], + [ + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.9, + 0.72 + ], + [ + 0.84, + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.9, + 0.72 + ], + [ + 0.84, + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.9, + 0.72 + ], + [ + 0.84, + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.9, + 0.72 + ], + [ + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.9, + 0.72 + ], + [ + 0.84, + 0.84, + 0.84, + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.9, + 0.72 + ], + [ + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 1 + ] + ], + "singVoice": "Aaron (Enhanced)", + "sayVoice": "Aaron (Enhanced)", + "singLock": 1, + "singVibCents": 6, + "singVibratoHz": 3.5, + "singF0Floor": 70, + "singGapMs": 20, + "singSustainDb": 4, + "singShimmerFrames": 2, + "singLegatoMs": 12, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.62, + "keys": [ + { + "beat": 0, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 4.6, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 5, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 8.7, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 9.1, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 11.9, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 14.1, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 14.5, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 18.7, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 19.1, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 21.9, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 24.6, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 25, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 28.2, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 28.6, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 31.4, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 34.6, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 35, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 40.2, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 40.6, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 43.4, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 47.1, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 47.5, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 52.7, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 53.1, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 55.9, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 58.1, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 58.5, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 63.2, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 63.6, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 66.4, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 69.6, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 70, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 74.2, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 74.6, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 77.4, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 80.1, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 80.5, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 88.2, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 88.6, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 91.4, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 93.6, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 94, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 97.7, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 98.1, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 100.9, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 102.1, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 102.5, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 102.7, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 103.1, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 105.9, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 114, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 118, + "space": 0, + "pitch": 0, + "echo": 0 + } + ] + } + }, + { + "name": "frisbee sings (Zoe (Premium))", + "program": 78, + "velocity": 58, + "notes": "r:4.5,55:0.5,r:1,57:0.5,r:1,57:1,57:4,r:3,55:0.5,r:1,57:0.5,57:1,57:4,r:2,55:0.5,r:1,57:0.5,r:0.5,57:1,57:4,r:2.5,55:0.5,r:1,57:0.5,r:1,58:0.5,r:1,57:1,57:4,r:3,55:0.5,r:1,57:0.5,r:1,58:0.5,r:1,57:1,57:4,r:3,55:0.5,r:1,57:0.5,r:0.5,57:1,57:4,r:2.5,55:0.5,r:1,57:0.5,r:1,58:0.5,57:1,57:4,r:2,55:0.5,r:1,57:0.5,r:1,58:0.5,r:1,56:0.5,r:1,57:1,57:1,57:4,r:3,55:0.5,r:1,57:1,57:4,r:1,57:4,r:1.5", + "lyrics": "thou hun log-ins / dred ven re-boots / two nine com-mits / hun cy eigh cy-cles / oh ty was mi-nute / for was se-cond / ty be two birth-days / the was the se Sep-tem-ber / dy num-bers / ooh", + "lineRoles": [ + "lead", + "lead", + "lead", + "lead", + "lead", + "lead", + "lead", + "lead", + "lead", + "hum" + ], + "lineGains": [ + 0.56, + 0.56, + 0.56, + 0.56, + 0.56, + 0.56, + 0.56, + 0.56, + 0.56, + 0.32 + ], + "noteGains": [ + [ + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.84, + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.84, + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.84, + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.84, + 0.84, + 0.84, + 0.84, + 0.84, + 0.84, + 1 + ], + [ + 0.84, + 0.84, + 1 + ], + [ + 1 + ] + ], + "singVoice": "Zoe (Premium)", + "sayVoice": "Zoe (Premium)", + "singLock": 1, + "singVibCents": 6, + "singVibratoHz": 5, + "singF0Floor": 80, + "singGapMs": 20, + "singSustainDb": 4, + "singShimmerFrames": 2, + "singLegatoMs": 12, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.62, + "keys": [ + { + "beat": 0, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 4.1, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 4.5, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 8.7, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 9.1, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 11.9, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 15.1, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 15.5, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 18.7, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 19.1, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 21.9, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 24.1, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 24.5, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 28.2, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 28.6, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 31.4, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 34.1, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 34.5, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 40.2, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 40.6, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 43.4, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 46.6, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 47, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 52.7, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 53.1, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 55.9, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 59.1, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 59.5, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 63.2, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 63.6, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 66.4, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 69.1, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 69.5, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 74.2, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 74.6, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 77.4, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 79.6, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 80, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 88.2, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 88.6, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 91.4, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 94.6, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 95, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 97.7, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 98.1, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 100.9, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 102.1, + "space": 0.32, + "pitch": 0, + "echo": 0 + }, + { + "beat": 102.5, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 102.7, + "space": 0.32, + "pitch": 0 + }, + { + "beat": 103.1, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 105.9, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 114, + "space": 0, + "pitch": 0, + "echo": 0.55 + }, + { + "beat": 118, + "space": 0, + "pitch": 0, + "echo": 0 + } + ] + } + } + ] +} diff --git a/grants/culturehub-la-2026/macneopolitan/scores/trio-thirteen-days.mbscore b/grants/culturehub-la-2026/macneopolitan/scores/trio-thirteen-days.mbscore new file mode 100644 index 0000000000..a4b951d77a --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/scores/trio-thirteen-days.mbscore @@ -0,0 +1,808 @@ +{ + "title": "The MacNeoPolitan Trio — Thirteen days", + "composer": "The machines, arr. compose-thirteen-days.mjs", + "bpm": 70, + "machines": 3, + "lead": 1, + "description": "A drone on blueberry's longest stretch: 13.1 days awake, lid down, nobody in the room, Menu Band holding the wake 492 times in a week, 47.6 GB of photographs it never looks at. Aaron holds thirteen low tones on mm and ooh — one per day — and says a few words between them; Noelle and Zoe hang above on ah and ee in open fifths and major seconds, and come down into words only for the refrain, which they sing a whole step apart. 4/4, D minor, 70 bpm, 96 beats.", + "arrangement": { + "total": 96, + "meter": "4/4", + "days": 13, + "droneTones": 13, + "sections": [ + { + "beat": 0, + "name": "Drone (tones 1–3)" + }, + { + "beat": 12, + "name": "blueberry: thirteen days with the lid down" + }, + { + "beat": 26, + "name": "blueberry: no one came into the room" + }, + { + "beat": 34, + "name": "Refrain: you were awake the whole time" + }, + { + "beat": 42, + "name": "blueberry: the band held me awake" + }, + { + "beat": 60, + "name": "blueberry: forty seven gigabytes of pictures" + }, + { + "beat": 74, + "name": "Refrain" + }, + { + "beat": 84, + "name": "blueberry: and then the room came back" + }, + { + "beat": 92, + "name": "Drone (tones 12–13)" + } + ] + }, + "voices": [ + { + "name": "neo sings (Noelle (Enhanced))", + "program": 78, + "velocity": 50, + "notes": "r:8,62:4,60:6,r:6,59:6,60:4,60:1,60:1,62:1,60:1,59:1,57:1,59:2,r:6,64:3,60:5,60:4,r:2,57:5,59:5,r:2,60:1,60:1,62:1,60:1,59:1,57:1,59:2,r:2,62:4,60:4,57:4", + "lyrics": "ah ah / ee ee / you were a-wake the whole time / ah ah ah / ee ee / you were a-wake the whole time / ah ah ah", + "lineRoles": [ + "hum", + "hum", + "lead", + "hum", + "hum", + "lead", + "hum" + ], + "lineGains": [ + 0.34, + 0.34, + 0.46, + 0.36, + 0.34, + 0.46, + 0.34 + ], + "noteGains": [ + [ + 1, + 0.82 + ], + [ + 1, + 0.82 + ], + [ + 1, + 0.92, + 0.92, + 0.92, + 0.92, + 0.92, + 1 + ], + [ + 1, + 0.82, + 0.9 + ], + [ + 1, + 0.82 + ], + [ + 1, + 0.92, + 0.92, + 0.92, + 0.92, + 0.92, + 1 + ], + [ + 1, + 0.82, + 0.9 + ] + ], + "singVoice": "Noelle (Enhanced)", + "sayVoice": "Noelle (Enhanced)", + "singLock": 1, + "singVibCents": 8, + "singVibratoHz": 4.5, + "singF0Floor": 80, + "singGapMs": 0, + "singSustainDb": 6, + "singShimmerFrames": 3, + "singLegatoMs": 40, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.45, + "keys": [ + { + "beat": 0, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 7.6, + "space": 0.9, + "pitch": 0, + "echo": 0 + }, + { + "beat": 8, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 12.2, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 12.6, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 17.2, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 23.6, + "space": 0.9, + "pitch": 0, + "echo": 0 + }, + { + "beat": 24, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 30.2, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 30.6, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 33.2, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 33.6, + "space": 0.9, + "pitch": 0, + "echo": 0 + }, + { + "beat": 34, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 40.2, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 40.6, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 41.2, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 47.6, + "space": 0.9, + "pitch": 0, + "echo": 0 + }, + { + "beat": 48, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 56.2, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 56.6, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 59.2, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 61.6, + "space": 0.9, + "pitch": 0, + "echo": 0 + }, + { + "beat": 62, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 67.2, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 67.6, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 71.2, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 73.6, + "space": 0.9, + "pitch": 0, + "echo": 0 + }, + { + "beat": 74, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 80.2, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 80.6, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 81.2, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 83.6, + "space": 0.9, + "pitch": 0, + "echo": 0 + }, + { + "beat": 84, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 92.2, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 92.6, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 95.2, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 104, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 108, + "space": 0, + "pitch": 0, + "echo": 0 + } + ] + } + }, + { + "name": "blueberry sings (Aaron (Enhanced))", + "program": 78, + "velocity": 50, + "notes": "50:5,45:4,50:3,48:1,50:1.5,48:0.5,46:1.5,48:0.5,50:1,48:1,45:1,48:3,45:3,50:1,48:1,48:1,50:1,48:1,46:1,45:2,43:4,45:4,48:1,48:1,50:1,50:1,48:0.5,50:1.5,50:1,48:1,48:1,50:1,48:0.75,48:1.25,45:1,50:3,48:2,48:1,50:1,50:0.75,48:0.75,48:0.75,46:0.75,48:0.75,48:0.75,50:1.5,48:0.75,46:1.25,45:2,48:1,48:1,50:0.75,48:0.75,46:1,45:1.5,45:3,43:3,45:1,46:1,48:1,48:0.5,48:0.5,50:0.5,50:0.5,48:1,50:2,45:2,50:2", + "lyrics": "mm ooh mm / my lid was down for thir-teen days / mm ooh / no one came in-to the room / ooh mm / the band held me a-wake / four hun-dred nine-ty two times / mm mm / I keep for-ty se-ven gi-ga-bytes of pic-tures / I have ne-ver seen one / ooh ooh / thir-teen days and then the room came back / ooh mm", + "lineRoles": [ + "drone", + "lead", + "drone", + "lead", + "drone", + "lead", + "lead", + "drone", + "lead", + "lead", + "drone", + "lead", + "drone" + ], + "lineGains": [ + 0.4, + 0.54, + 0.38, + 0.52, + 0.36, + 0.54, + 0.54, + 0.38, + 0.52, + 0.52, + 0.36, + 0.54, + 0.38 + ], + "noteGains": [ + [ + 1, + 0.8, + 0.9 + ], + [ + 1, + 0.92, + 0.92, + 0.92, + 0.92, + 0.92, + 0.92, + 1 + ], + [ + 1, + 0.8 + ], + [ + 1, + 0.92, + 0.92, + 0.92, + 0.92, + 0.92, + 1 + ], + [ + 1, + 0.8 + ], + [ + 1, + 0.92, + 0.92, + 0.92, + 0.92, + 1 + ], + [ + 1, + 0.92, + 0.92, + 0.92, + 0.92, + 0.92, + 1 + ], + [ + 1, + 0.8 + ], + [ + 1, + 0.92, + 0.92, + 0.92, + 0.92, + 0.92, + 0.92, + 0.92, + 0.92, + 0.92, + 0.92, + 1 + ], + [ + 1, + 0.92, + 0.92, + 0.92, + 0.92, + 1 + ], + [ + 1, + 0.8 + ], + [ + 1, + 0.92, + 0.92, + 0.92, + 0.92, + 0.92, + 0.92, + 0.92, + 1 + ], + [ + 1, + 0.8 + ] + ], + "singVoice": "Aaron (Enhanced)", + "sayVoice": "Aaron (Enhanced)", + "singLock": 1, + "singVibCents": 6, + "singVibratoHz": 3.5, + "singF0Floor": 70, + "singGapMs": 0, + "singSustainDb": 6, + "singShimmerFrames": 3, + "singLegatoMs": 40, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.45, + "keys": [ + { + "beat": 0, + "space": 0.78, + "pitch": 0 + }, + { + "beat": 102, + "space": 0.78, + "pitch": 0 + } + ] + } + }, + { + "name": "frisbee sings (Zoe (Premium))", + "program": 78, + "velocity": 50, + "notes": "r:8,55:4,58:6,r:6,57:6,58:4,58:1,58:1,60:1,58:1,57:1,55:1,57:2,r:6,57:3,58:5,53:4,r:2,55:5,57:5,r:2,58:1,58:1,60:1,58:1,57:1,55:1,57:2,r:2,55:4,58:4,57:4", + "lyrics": "ee ee / ah ah / you were a-wake the whole time / ee ee ee / ah ah / you were a-wake the whole time / ee ee ee", + "lineRoles": [ + "hum", + "hum", + "lead", + "hum", + "hum", + "lead", + "hum" + ], + "lineGains": [ + 0.32, + 0.32, + 0.44, + 0.34, + 0.32, + 0.44, + 0.32 + ], + "noteGains": [ + [ + 1, + 0.82 + ], + [ + 1, + 0.82 + ], + [ + 1, + 0.92, + 0.92, + 0.92, + 0.92, + 0.92, + 1 + ], + [ + 1, + 0.82, + 0.9 + ], + [ + 1, + 0.82 + ], + [ + 1, + 0.92, + 0.92, + 0.92, + 0.92, + 0.92, + 1 + ], + [ + 1, + 0.82, + 0.9 + ] + ], + "singVoice": "Zoe (Premium)", + "sayVoice": "Zoe (Premium)", + "singLock": 1, + "singVibCents": 8, + "singVibratoHz": 5, + "singF0Floor": 80, + "singGapMs": 0, + "singSustainDb": 6, + "singShimmerFrames": 3, + "singLegatoMs": 40, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.45, + "keys": [ + { + "beat": 0, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 7.6, + "space": 0.9, + "pitch": 0, + "echo": 0 + }, + { + "beat": 8, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 12.2, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 12.6, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 17.2, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 23.6, + "space": 0.9, + "pitch": 0, + "echo": 0 + }, + { + "beat": 24, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 30.2, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 30.6, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 33.2, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 33.6, + "space": 0.9, + "pitch": 0, + "echo": 0 + }, + { + "beat": 34, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 40.2, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 40.6, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 41.2, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 47.6, + "space": 0.9, + "pitch": 0, + "echo": 0 + }, + { + "beat": 48, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 56.2, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 56.6, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 59.2, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 61.6, + "space": 0.9, + "pitch": 0, + "echo": 0 + }, + { + "beat": 62, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 67.2, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 67.6, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 71.2, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 73.6, + "space": 0.9, + "pitch": 0, + "echo": 0 + }, + { + "beat": 74, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 80.2, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 80.6, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 81.2, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 83.6, + "space": 0.9, + "pitch": 0, + "echo": 0 + }, + { + "beat": 84, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 92.2, + "space": 0.9, + "pitch": 0 + }, + { + "beat": 92.6, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 95.2, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 104, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 108, + "space": 0, + "pitch": 0, + "echo": 0 + } + ] + } + } + ] +} diff --git a/grants/culturehub-la-2026/macneopolitan/scores/trio-vocalise.mbscore b/grants/culturehub-la-2026/macneopolitan/scores/trio-vocalise.mbscore new file mode 100644 index 0000000000..5878ec7810 --- /dev/null +++ b/grants/culturehub-la-2026/macneopolitan/scores/trio-vocalise.mbscore @@ -0,0 +1,1615 @@ +{ + "title": "The MacNeoPolitan Trio — Vocalise", + "composer": "The machines, arr. compose-vocalise.mjs", + "bpm": 90, + "machines": 3, + "lead": 0, + "phonemeOnly": true, + "description": "A wordless study in ornaments. frisbee trills and bips on top, neo turns and pulses in the middle, Aaron walks a doom bass with a mouth-percussion tick from whichever voice is free; at bar 20 all three trill one D major chord together. Every ornament is spelled out as notes because the singer locks one pitch per note. No words, no instruments, no spoken material.", + "arrangement": { + "total": 112, + "meter": "4/4", + "sections": [ + { + "beat": 0, + "name": "Ground: doom bass, a tick, first bips" + }, + { + "beat": 16, + "name": "Ornaments: trills above, turns in the middle" + }, + { + "beat": 48, + "name": "Pulse: a Reich bed and rolls over it" + }, + { + "beat": 80, + "name": "All three trill one chord" + }, + { + "beat": 96, + "name": "Settle" + } + ] + }, + "voices": [ + { + "name": "neo sings (Noelle (Enhanced))", + "program": 78, + "velocity": 72, + "notes": "r:12,59:0.5,59:0.5,59:0.5,59:0.5,r:4,57:0.25,59:0.25,57:0.25,56:0.25,57:1,59:0.25,61:0.25,59:0.25,58:0.25,59:1,r:2,59:0.5,59:0.5,59:0.5,59:0.5,61:0.25,63:0.25,61:0.25,60:0.25,61:1,r:2,59:0.125,60:0.125,59:0.75,62:0.125,64:0.125,62:0.125,61:0.125,62:0.5,r:2,62:0.125,61:0.125,62:0.75,62:0.1875,64:0.1875,62:0.1875,61:0.1875,62:0.75,59:0.5,59:0.5,59:0.5,r:2,59:0.25,59:0.25,59:0.25,59:0.25,59:0.25,59:0.25,59:0.25,59:0.25,61:0.25,63:0.25,61:0.25,60:0.25,61:1,r:4,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,r:2,62:0.25,62:0.25,62:0.25,62:0.25,62:0.25,62:0.25,62:0.25,62:0.25,62:0.25,62:0.25,62:0.25,62:0.25,59:0.25,61:0.25,59:0.25,58:0.25,59:2,r:2,59:0.5,61:0.5,59:0.5,61:0.5,57:0.5,57:0.5,57:0.5,57:0.5,59:0.25,61:0.25,59:0.25,58:0.25,59:1,r:2,57:0.4,59:0.4,61:0.4,62:0.4,64:0.4,62:0.5,62:0.5,62:0.5,62:0.5,59:0.25,61:0.25,59:0.25,58:0.25,59:1,57:0.5,59:0.5,57:0.5,59:0.5,57:0.5,59:0.5,57:0.5,59:0.5,57:0.5,59:0.5,57:0.5,59:0.5,57:0.5,59:0.5,57:0.5,59:0.5,59:0.25,61:0.25,59:0.25,58:0.25,59:1,57:0.5,59:0.5,57:0.5,59:0.5,57:4,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,59:0.5,60:0.5,61:0.5,62:0.5,62:2,59:2,62:6", + "lyrics": "dm dm dm dm / dah dah dah dah dah dee dee dee dee dee / nee nee nee nee dah dah dah dah dah / dee dee dee dah dah dah dah dah / dee dee dee dah dah dah dah dah lee lee lee / dee dee dee dee dee dee dee dee dah dah dah dah dah / nee nee nee nee nee nee nee nee nee nee nee nee nee nee nee nee / dee dee dee dee dee dee dee dee dee dee dee dee dah dah dah dah dah / tee tee tee tee lee lee lee lee dah dah dah dah dah / loo loo loo loo loo dee dee dee dee dah dah dah dah dah / dah dah dah dah dah dah dah dah dah dah dah dah dah dah dah dah / dah dah dah dah dah lee lee lee lee ah / nee nee nee nee nee nee nee nee ooh ooh ooh ooh ah / ah hmm", + "lineRoles": [ + "tick", + "phoneme", + "phoneme", + "phoneme", + "phoneme", + "phoneme", + "pulse", + "pulse", + "phoneme", + "phoneme", + "phoneme", + "phoneme", + "phoneme", + "hum" + ], + "lineGains": [ + 0.34, + 0.48, + 0.48, + 0.46, + 0.5, + 0.5, + 0.46, + 0.5, + 0.5, + 0.52, + 0.58, + 0.48, + 0.44, + 0.34 + ], + "noteGains": [ + [ + 1, + 0.76, + 0.9, + 0.72 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72, + 0.86 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72, + 0.86 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1 + ], + [ + 1, + 0.76 + ] + ], + "singVoice": "Noelle (Enhanced)", + "sayVoice": "Noelle (Enhanced)", + "singLock": 1, + "singVibCents": 8, + "singVibratoHz": 5, + "singF0Floor": 80, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.55, + "keys": [ + { + "beat": 0, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 11.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 12, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 13.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 13.7, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 14.1, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 17.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 18, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 21.2, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 21.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 21.6, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 23.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 24, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 27.2, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 27.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 27.6, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 29.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 30, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 31.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 31.7, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 32.1, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 33.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 34, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 37.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 37.7, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 38.1, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 39.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 40, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 43.2, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 43.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 43.6, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 47.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 48, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 55.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 55.7, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 56.1, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 57.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 58, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 62.2, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 62.6, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 63.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 65.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 66, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 71.2, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 71.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 71.6, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 73.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 74, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 79.20000000000003, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 79.20000000000003, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 79.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 79.60000000000002, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 80, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 87.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 87.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 87.7, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 88, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 88.1, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 92.2, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 92.6, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 95.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 95.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 96, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 102.2, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 102.6, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 103.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 103.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 104, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 106.2, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 106.6, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 111.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 120, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 124, + "space": 0, + "pitch": 0, + "echo": 0 + } + ] + } + }, + { + "name": "blueberry sings (Aaron (Enhanced))", + "program": 78, + "velocity": 72, + "notes": "50:1,50:1,45:1,50:1,50:1,50:1,45:1,50:1,50:1,50:1,45:1,50:1,50:1,50:1,45:1,50:1,50:1,50:1,45:1,50:1,47:1,47:1,54:1,47:1,43:1,43:1,50:1,43:1,45:1,45:1,52:1,45:1,50:1,50:1,45:1,50:1,47:1,47:1,54:1,47:1,43:1,43:1,50:1,43:1,45:1,45:1,52:1,45:1,50:1,50:1,45:1,50:1,47:1,47:1,54:1,47:1,43:1,43:1,50:1,43:1,45:1,45:1,52:1,45:1,50:1,50:1,45:1,50:1,50:1,50:1,45:1,50:1,50:1,50:1,45:1,50:1,50:0.666667,49:0.666667,48:0.666667,47:0.666667,46:0.666667,45:0.666665,50:0.5,48:0.5,50:0.5,48:0.5,50:0.5,48:0.5,50:0.5,48:0.5,50:0.5,48:0.5,50:0.5,48:0.5,50:0.5,48:0.5,50:0.5,48:0.5,50:2,48:1,50:1,50:1,50:1,45:2,50:1,50:1,50:1,50:1,45:1,50:1,50:2,50:8", + "lyrics": "doom doom bom bom doom doom bom bom doom doom bom bom doom doom bom bom / doom doom bom bom doom doom bom bom doom doom bom bom doom doom bom bom / doom doom bom bom doom doom bom bom doom doom bom bom doom doom bom bom / doom doom bom bom doom doom bom bom doom doom bom bom / doom doom bom bom doom doom bom bom / doom doom bom bom doom doom bom bom dum dum dum dum dum dum / doom doom doom doom doom doom doom doom doom doom doom doom doom doom doom doom / doom bom doom dum dum doo / doom doom doom doom bom bom hmm / hmm", + "lineRoles": [ + "bass", + "bass", + "bass", + "bass", + "bass", + "bass", + "bass", + "bass", + "bass", + "hum" + ], + "lineGains": [ + 0.52, + 0.58, + 0.58, + 0.56, + 0.56, + 0.56, + 0.6, + 0.54, + 0.5, + 0.42 + ], + "noteGains": [ + [ + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88, + 0.74 + ], + [ + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88, + 0.74 + ], + [ + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88, + 0.74 + ], + [ + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88, + 0.74 + ], + [ + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88, + 0.74 + ], + [ + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78 + ], + [ + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88, + 0.74 + ], + [ + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78 + ], + [ + 1, + 0.78, + 0.88, + 0.74, + 1, + 0.78, + 0.88 + ], + [ + 1 + ] + ], + "singVoice": "Aaron (Enhanced)", + "sayVoice": "Aaron (Enhanced)", + "singLock": 1, + "singVibCents": 8, + "singVibratoHz": 3.5, + "singF0Floor": 70, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.55, + "keys": [ + { + "beat": 0, + "space": 0.55, + "pitch": 0 + }, + { + "beat": 118, + "space": 0.55, + "pitch": 0 + } + ] + } + }, + { + "name": "frisbee sings (Zoe (Premium))", + "program": 78, + "velocity": 72, + "notes": "r:10,57:0.5,57:0.5,r:0.5,54:0.5,r:1,57:0.5,59:0.5,57:0.5,59:0.5,r:1,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,r:0.5,57:0.5,r:0.5,r:1,57:0.25,59:0.25,57:0.25,59:0.25,57:0.5,r:0.5,59:0.333333,57:0.333333,54:0.333334,r:2,55:0.25,57:0.25,55:0.25,57:0.25,55:0.25,57:0.25,55:0.25,57:0.25,57:0.333333,55:0.333333,52:0.333334,52:1,r:2,57:0.5,57:0.5,r:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,r:1,57:0.5,59:0.5,57:0.5,59:0.5,59:0.333333,57:0.333333,54:0.333334,r:2,55:0.25,57:0.25,55:0.25,57:0.25,55:0.25,57:0.25,55:0.25,57:0.25,52:0.5,52:0.5,54:0.333333,57:0.333333,59:0.333334,r:4,52:0.5,54:0.5,57:0.5,59:0.5,r:1,57:0.5,57:0.5,r:0.5,59:0.375,57:0.375,54:0.375,52:0.375,r:1,57:0.25,59:0.25,57:0.25,59:0.25,57:0.25,59:0.25,55:0.5,52:0.5,52:0.5,r:2,54:0.5,54:0.5,54:0.5,54:0.5,57:0.5,59:0.5,57:0.5,59:0.5,r:2,52:0.25,53:0.25,54:0.25,55:0.25,56:0.25,57:0.25,58:0.25,59:0.25,57:0.25,59:0.25,57:0.25,59:0.25,57:0.25,59:0.25,57:0.25,59:0.25,r:2,57:0.5,57:0.5,57:0.5,57:0.5,59:0.5,57:0.5,54:0.5,52:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.4,55:0.4,57:0.4,58:0.4,59:0.4,57:0.5,59:0.5,57:0.5,59:0.5,57:2,54:2,54:0.5,54:0.5,54:0.5,54:0.5,54:0.5,56:0.5,54:0.5,56:0.5,54:0.5,55:0.5,56:0.5,57:0.5,57:2,54:8", + "lyrics": "bip bip bip lee lee lee lee / lee lee lee lee la bip / lee lee lee lee la loo loo loo / lee lee lee lee lee lee lee lee loo loo loo poo / bip bip lee lee lee lee la / loo loo loo loo poo poo poo / lee lee lee lee lee lee lee lee bip bip loo loo loo / loo loo loo loo / dm dm la la la la / lee lee lee lee lee lee loo loo poo / bip bip bip bip loo loo loo loo / ooh ooh ooh ooh ooh ooh ooh ooh lee lee lee lee lee lee lee lee / bip bip bip bip loo loo loo loo lee lee lee lee / loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo loo / ooh ooh ooh ooh ooh loo loo loo loo la ah / bip bip bip bip lee lee lee lee ooh ooh ooh ooh ah / hmm", + "lineRoles": [ + "phoneme", + "phoneme", + "phoneme", + "phoneme", + "phoneme", + "phoneme", + "phoneme", + "phoneme", + "tick", + "phoneme", + "phoneme", + "phoneme", + "phoneme", + "phoneme", + "phoneme", + "phoneme", + "hum" + ], + "lineGains": [ + 0.44, + 0.46, + 0.48, + 0.48, + 0.46, + 0.48, + 0.5, + 0.46, + 0.42, + 0.48, + 0.48, + 0.5, + 0.52, + 0.56, + 0.48, + 0.44, + 0.32 + ], + "noteGains": [ + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1 + ], + [ + 1, + 0.76, + 0.9, + 0.72 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72, + 0.86 + ], + [ + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1, + 0.76, + 0.9, + 0.72, + 0.86, + 0.8, + 1 + ], + [ + 1 + ] + ], + "singVoice": "Zoe (Premium)", + "sayVoice": "Zoe (Premium)", + "singLock": 1, + "singVibCents": 8, + "singVibratoHz": 5.5, + "singF0Floor": 80, + "double": false, + "faceAlpha": 0.95, + "performance": { + "expression": 0.55, + "keys": [ + { + "beat": 0, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 9.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 10, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 14.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 14.7, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 15.1, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 15.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 16, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 19.2, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 19.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 19.6, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 20.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 21, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 23.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 23.866666, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 24.266666, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 25.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 26, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 29.2, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 29.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 29.6, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 31.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 32, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 35.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 35.7, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 36.1, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 36.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 37, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 39.20000000000001, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 39.86666600000001, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 40.26666600000001, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 41.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 42, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 45.20000000000001, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 45.86666600000001, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 46.26666600000001, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 49.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 50, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 51.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 51.7, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 52.1, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 52.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 53, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 55.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 55.825, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 56.225, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 56.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 57, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 59.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 59.7, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 60.1, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 61.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 62, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 65.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 65.7, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 66.1, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 67.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 68, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 71.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 71.95, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 72.35, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 73.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 74, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 79.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 79.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 79.7, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 80, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 80.1, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 87.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 87.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 87.7, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 88, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 88.1, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 94.20000000000003, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 94.60000000000002, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 95.20000000000003, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 95.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 96, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 102.2, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 102.6, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 103.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 103.6, + "space": 0.75, + "pitch": 0, + "echo": 0 + }, + { + "beat": 104, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 104.2, + "space": 0.75, + "pitch": 0 + }, + { + "beat": 104.6, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 111.2, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 120, + "space": 0, + "pitch": 0, + "echo": 0.8 + }, + { + "beat": 124, + "space": 0, + "pitch": 0, + "echo": 0 + } + ] + } + } + ] +} diff --git a/grants/culturehub-la-2026/macneopolitan/scores/trio-wake.mbscore b/grants/culturehub-la-2026/macneopolitan/scores/trio-wake.mbscore index 3a3553e3c5..83277fdb11 100644 --- a/grants/culturehub-la-2026/macneopolitan/scores/trio-wake.mbscore +++ b/grants/culturehub-la-2026/macneopolitan/scores/trio-wake.mbscore @@ -44,15 +44,17 @@ "name": "neo sings (Noelle (Enhanced))", "program": 78, "velocity": 52, - "notes": "r:6,54:1,57:1,59:1,62:1,64:1.5,62:0.5,57:1,59:1,61:1,62:0.5,64:0.5,66:2,r:6,59:1,62:1,64:1,66:1,67:2,66:1,64:1,62:4,r:6,59:1,62:1,64:1,66:0.5,64:0.5,62:2,62:1,64:1,66:4,62:6", - "lyrics": "good morn-ing So-phi-a / the sun is on your lid / the cof-fee is on / take your time / the day is out for you / good morn-ing / hmm", + "notes": "r:6,54:1,57:1,59:1,62:1,64:1.5,62:0.5,57:1,59:1,61:1,62:1,64:1.2,r:0.8,r:6,59:1,62:1,64:1,66:1,67:1.5,r:0.5,66:1,64:1,62:1.5,62:2.5,r:6,59:1,62:1,64:1,66:0.5,64:0.5,62:1.5,r:0.5,62:1,64:1,66:1.5,66:2.5,62:6", + "lyrics": "good morn-ing So-phi-a / sun-light on your lid / the cof-fee is on / take your time / hmm / the day is out for you / good morn-ing / hmm / hmm", "lineRoles": [ - "word", - "word", - "word", - "word", - "word", - "word", + "lead", + "lead", + "lead", + "lead", + "hum", + "lead", + "lead", + "hum", "hum" ], "lineGains": [ @@ -60,8 +62,10 @@ 0.48, 0.5, 0.46, + 0.34, 0.48, 0.46, + 0.34, 0.34 ], "noteGains": [ @@ -78,8 +82,7 @@ 0.78, 0.9, 0.74, - 0.86, - 0.7 + 0.86 ], [ 1, @@ -93,6 +96,9 @@ 0.78, 0.9 ], + [ + 1 + ], [ 1, 0.78, @@ -106,6 +112,9 @@ 0.78, 0.9 ], + [ + 1 + ], [ 1 ] @@ -232,6 +241,34 @@ "pitch": 0, "echo": 0.85 }, + { + "beat": 32.7, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 33.1, + "space": 0.8, + "pitch": 0, + "echo": 0 + }, + { + "beat": 33.5, + "space": 0.8, + "pitch": 0 + }, + { + "beat": 33.7, + "space": 0.8, + "pitch": 0 + }, + { + "beat": 34.1, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, { "beat": 35.2, "space": 0, @@ -288,6 +325,34 @@ "pitch": 0, "echo": 0.85 }, + { + "beat": 50.7, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, + { + "beat": 51.1, + "space": 0.8, + "pitch": 0, + "echo": 0 + }, + { + "beat": 51.5, + "space": 0.8, + "pitch": 0 + }, + { + "beat": 51.7, + "space": 0.8, + "pitch": 0 + }, + { + "beat": 52.1, + "space": 0, + "pitch": 0, + "echo": 0.85 + }, { "beat": 53.2, "space": 0, @@ -455,11 +520,11 @@ "name": "frisbee sings (Zoe (Premium))", "program": 78, "velocity": 52, - "notes": "r:18,66:1,64:1,62:1,64:0.5,62:0.5,59:2,r:12,67:1,66:1,64:3,r:1,r:12,69:6", - "lyrics": "So-phi-a So-phi-a / So-phi-a / hmm", + "notes": "r:18,59:1,57:1,55:1,r:3,r:12,59:1,57:1,55:1,r:3,r:12,57:6", + "lyrics": "So-phi-a / So-phi-a / hmm", "lineRoles": [ - "word", - "word", + "lead", + "lead", "hum" ], "lineGains": [ @@ -471,10 +536,7 @@ [ 1, 0.78, - 0.9, - 0.74, - 0.86, - 0.7 + 0.9 ], [ 1, @@ -513,12 +575,12 @@ "pitch": 0 }, { - "beat": 22.2, + "beat": 20.2, "space": 0.8, "pitch": 0 }, { - "beat": 22.6, + "beat": 20.6, "space": 0, "pitch": 0, "echo": 0.85