Pulse Arena · chartproductie · methode 1.2 · 1 oktober 2026

Latest: method 1.4 — play the groove, Bad Guy A/B reference. The material below records the earlier chart methods.

Van Stingray-opname
naar een herkenbare speelpartij.

Nieuw: kwaliteitsreview vijf nummers — methode 1.3

Een herhaalbare werkwijze voor muziekselectie, aanslagtijden, vierknopspatronen en kwaliteitscontrole. Toegepast op Seven Nation Army, Stingray-song 12842.

Huidige status: speeltest, geen productiegoedkeuring.

De nieuwe riffchart staat in de game. De bronkoppeling, datastructuur en bediening zijn technisch gecontroleerd. De onafhankelijke luisterreview en proef op een echte tv en telefoon moeten nog plaatsvinden. Een technisch geslaagde test bewijst geen perfecte muzikale timing.

1. Wat we uit gameplay en charting halen

In de bekeken fragmenten van Guitar Hero: Warriors of Rock — A Wise Moose zijn losse riffnoten, herhaalde banen en duidelijke vasthoudstaarten te zien; rond 0:25 en 0:44 gaat het om rustige riffpassages, rond 1:00 staan er tweeknopsakkoorden. De referentie van Guitar Hero Live — JasonParadise toont dezelfde soort herkenbare partij met een andere controllerindeling. Dit zijn visuele voorbeelden, geen bron voor de milliseconden van onze opname.

De Clone Hero-handleiding beschrijft de raaklijn, losse aanslagen, vasthouden en een gamepadmodus zonder aparte strum. Custom Songs Central vraagt om goede synchronisatie en een toonhoogtegerichte chart, met loslaatruimte tussen sustains. Dat zijn bruikbare uitgangspunten; hun vijfknopsregels zijn niet één op één onze telefoonregels.

Muzikaal gegevenVertaling naar PulseWat we vermijden
Een hoorbare aanslagDe noot bereikt de raaklijn bij die aanslag. De speler tikt dan.Knoppen plaatsen op iedere algemene volumepiek; dat kan een drum of zanglettergreep zijn.
Een stijgende of dalende fraseHogere tonen gaan meestal naar rechts, lagere naar links. Mapping blijft binnen dezelfde frase consistent.Random kleuren, letterlijke gitaarvingerzettingen of een vaste chromatische verdeling over het hele nummer.
Hetzelfde motief komt terugHergebruik de vorm, maar meet iedere herhaling opnieuw tegen de opname.Tientallen maten kopiëren met één veronderstelde BPM.
Een noot klinkt doorEen sustain waar de partij werkelijk doorloopt, met ruimte vóór de volgende aanslag.Een hold afleiden uit alleen de stilte tot de volgende chartnoot.
Meer instrumenten tegelijkKies vooraf één leidende partij. Wissel alleen bewust op een sectiegrens.Onbedoeld springen tussen zang, kick, bas en gitaar.
Een eenvoudiger moeilijkheidLaat minder belangrijke aanslagen weg; behoud frasebegin, accenten en herkenbare beweging.Noten op een ander tijdstip zetten omdat ze dan makkelijker zijn.

Onze vier knoppen combineren de fretkeuze en de aanslag in één aanraking. Een volgende noot op dezelfde knop vereist opnieuw loslaten en tikken. De eerste versie gebruikt geen aparte strum, open noten, HOPO-regels of akkoorden. De baan is een speelsymbool; de afstand tussen twee banen is geen exact muzikaal interval.

2. Toegepast op onze Stingray-opname

Verfijning: riff-touch-v2

35 lokale aanslagen zijn gecorrigeerd op basis van samenlopende stijgingen in minimaal vier boventonen, met een aanvullende aanslag in een breder frequentiegebied. De correcties variëren van 21 tot 113 ms, eerder én later. Voorbeeld: de E op 21,037 s staat nu op 21,150 s. Er is geen algemene tijdsverschuiving toegepast.

142 vasthoudlengtes zijn bijgewerkt; de chart telt nu 148 holds. De eerste lange E van herhaalde riffs krijgt consistenter een hold. Lage-harmonische uitklank begrenst korte/gedempte tonen, met minimaal 100 ms ruimte vóór de volgende aanslag. De slotnoot houdt 3,950 s aan, tot vóór de slotglijder. De 421 aanslagen, bronpitches en knopvormen blijven behouden.

Dertien overige timingvoorstellen zijn niet overgenomen wegens zwakkere ondersteuning of akkoorden in bridges. De harmonicametingen zijn onderling gerelateerd bronbewijs, geen onafhankelijke timingwaarheid. De versie blijft een speeltest; de luisterreview is niet automatisch afgevinkt.

421riffaanslagen in de nieuwe chart
58afgebakende frases en overgangen
0,135 seerste kandidaat-aanslag, eerder 15,191 s

De oude conversie leverde 187 speelnoten uit 230 MIDI-noten. Die partij lijkt de zang te volgen en liet het intro en verschillende instrumentale passages leeg. Voor deze versie is expliciet de lage riff gekozen, ook onder de solo. We claimen dus geen volledige reconstructie van alle leadgitaarversieringen.

De basisfrase gebruikt bronpitches E–E–G–E–D–C–B, omgezet naar 3–3–4–3–2–1–1. Vijf toonhoogtes passen niet uniek op vier knoppen: B en C delen bewust knop 1. De oorspronkelijke toonhoogte blijft in de chart staan voor de luistervergelijking. Bij de aparte G→A-overgangen gebruiken we 3→4 om de stijging binnen die frase herkenbaar te houden.

De eerste twee riffpatronen op vier knoppen, uitgelijnd met de energie in de lage frequenties van de opname.
Eigen analyse en eigen chart. De getallen zijn MIDI-toonhoogtes; de figuur is geen overgenomen Guitar Hero-chart. De oude zangchart had in deze acht seconden geen noten.

De chart bevat 52 riffherhalingen, waaronder acht afsluitingen met extra D–C-beweging, vijf G→A-overgangen en een slotnoot. Per frase is een beginanker uit de opname bepaald. Daarna zoeken we lokale aanslagen, met de verwachte toonhoogte als extra aanwijzing. Hierdoor blijven uitvoeringsverschillen bestaan. De gemeten frase-intervallen lopen in deze analyse grofweg van 3,77 tot 4,20 seconden; een vaste catalogus-BPM is daarom geen voldoende tijdsbasis.

De riffnotes zijn geanalyseerde kandidaten. De detectie kijkt eerst naar een breder frequentievenster en verfijnt met een korter venster. Een stapgrootte van circa 5 ms betekent niet dat iedere noot tot op 5 ms bewezen juist is. Een luid drumgeluid kan ook een sterke kandidaat opleveren. Daarom zijn bronpartij, frasevorm, toonhoogtesteun en luisterreview aparte controles.

EigenschapDeze uitvoering
AudioVolledig nummer, AAC, met lead vocal. Geen sample.
BronbindingSong-ID + hash van pitch-MIDI + hash van exacte audiobytes + audiovariant. De server controleert dit voordat hij de riffchart aanbiedt.
SpelprofielTouch, vier banen, één aanslag tegelijk, minimaal 160 ms tussen aanslagen. Dit is een voorlopig telefoonprofiel, geen industriestandaard.
Vasthouden142 lengtes verfijnd met lage-harmonische uitklank; 148 holds in totaal en 3,950 s bij de slotnoot. De nieuwe chart heeft minimaal 100 ms loslaatruimte. De runtime accepteert voor de oudere vergelijkingsversie minimaal 80 ms.
StartDe korte proef speelt nu vanaf het intro. Tijdens het aftellen komen de noten al in beeld; het aftellen verschuift de audiotijden niet.
VergelijkenDe chartwerkbank biedt Riff v2, Riff v1 en de oude zang-MIDI als aparte keuzes. Lokale bewerkingen hebben gescheiden opslag.

Gerichte luisterpunten: 46,6–50,7 s en 117,4–121,4 s voor de G→A-overgangen; 156,7–169,5 s voor de kale riffs en terugkomst van de drums. Twee bridge-noten hebben zwakkere toonhoogtesteun in de analyse. Ook alle snelle overgangen onder 220 ms moeten op de telefoon beoordeeld worden.

3. Vast productieproces voor ieder volgend nummer

A. Bronpakket vastleggen

Haal songmedia en pitch-MIDI op. Leg song-ID, uitvoering, duur, codec, sample/full, lead-vocalvariant, bestandsfingerprints en analysetoolversies vast. Tijdelijke toegangslinks horen niet in een chartbestand. Decodeer zonder stiltes af te knippen of de snelheid aan te passen. Een gewijzigde bron maakt eerdere goedkeuring ongeldig.

B. Bepalen wat de speler volgt

Vergelijk pitch-MIDI met de audio in het intro, bij de eerste zang, in een refrein en later in de track. Benoem de bronpartij: zang, bas/riff, leadgitaar, drums of nog onbekend. Kies een partij die een speler direct kan herkennen. Maak secties en leg eventuele partijwissels vast. De pitch-MIDI is een nuttige referentie, maar geen bewijs dat hij de gitaar beschrijft.

C. Muzikale gebeurtenissen verzamelen

Maak een lijst met aanslag, einde, toonhoogte of akkoord, partij, sectie, accent en bronbewijs. Gebruik waar beschikbaar instrumentstems; vraag eerst welke Stingray-media daadwerkelijk geleverd kunnen worden. Bronseparatie kan helpen maar levert artefacten op en is zelf geen waarheid. Voor heldere monofone riffs volstaan soms contour- en aanslaganalyse; drukke mixes en solo’s vragen een andere analysemethode en meer redactie.

D. Tijdlijn en frases uitwerken

Leg maat- en fraseankers vast op de exacte opname. Onderzoek tempoverloop en eventuele introductiestilte. MIDI-seconden volgen de MIDI-tempomap; vervang die nooit zomaar door de catalogus-BPM. Gebruik de muzikale rasterpositie als verwachting en de hoorbare aanslag als beslissende controle. Korte noten, slides, bends en herhaalde aanslagen zijn verschillende gebeurtenissen.

E. Van gebeurtenissen naar spelpatronen

Maak per herkenbare frase een vaste vorm op vier banen. Behoud relatieve beweging en herhaling. Kies vervolgens welke aanslagen essentieel zijn en welke versieringen weg mogen. Vereenvoudig inhoud, niet timing. Houd bronpitch en gekozen baan apart. Controleer snelle herhaalde tikken, sprongen, twee duimen, holds en eventuele latere tweeknopsakkoorden afzonderlijk. Bewaar elke bewuste afwijking in het arrangementrecept.

F. Luisteren, spelen en goedkeuren

Vergelijk korte loops op normale snelheid: muziek alleen, muziek met charttikken en muziek met chartmelodie. Vertragen helpt om details te vinden, maar normale snelheid bepaalt uiteindelijk of de frase klopt. Controleer daarna de hele track zonder willekeurige partijwissels. Pas als de chart inhoudelijk klopt, stellen we persoonlijke inputvertraging en beeld/audiovertraging af op de echte opstelling.

4. Kwaliteitspoorten en bewijs

PoortAutomatische controleMenselijke controle
Bron kloptID, hashes, variant, duur en geldige bronmetadata.Dit is de bedoelde uitvoering en partij.
Chart is geldigGesorteerde unieke gebeurtenissen, geldige banen, tijden binnen de audio, geen verboden overlaps, passend profiel.Bewuste uitzonderingen zijn begrijpelijk en gedocumenteerd.
Chart volgt de muziekKandidaten met bronbewijs; afwijkingen en lage steun op een reviewlijst.Alle secties beluisteren; geen ontbrekende hoofdaccenten, verzonnen aanslagen of verwisselde instrumenten.
Timing is gecontroleerdRapport over begin, midden, einde en lokale drift; vergelijking met afzonderlijk beoordeelde referentie-aanslagen.Een tweede luisteraar beoordeelt een steekproef en iedere gemarkeerde passage.
SpeelbaarDichtheid, sprongen en holdruimte per profiel; werking van tijdstempels en pauze.Test met twee duimen op een telefoon en geluid via de tv/computer.
VrijgaveVersies en auditlog volledig; bronwijzigingen blokkeren hergebruik.Een reviewer zet expliciet musicalApproved en deviceApproved. Geen automatische goedkeuring door een modelscore.

Voor scherpe, duidelijk afgebakende aanslagen stellen we als voorlopig intern doel een mediane absolute fout van maximaal 20 ms en een 95e percentiel van maximaal 35 ms voor, gemeten tegen onafhankelijk beoordeelde referenties. Dat doel is nog niet voor deze chart aangetoond. Zachte of glijdende aanslagen krijgen een onzekerheidsinterval en redactionele keuze, geen schijnprecisie. De spelvensters ±65/±150 ms zijn beoordelingsruimte voor de speler en geen kwaliteitsnorm voor chartproductie.

De huidige zeventien softwaretests controleren onder andere bronverwisseling, frasepatronen, tijdsbehoud, overlap, export zonder credentials en vertraagde controllerinvoer. Een nieuwe download en featureberekening reproduceert exact dezelfde v2-chart en alle correctierecords. De 35 aanslagvoorstellen zijn tevens als grafieken geïnspecteerd. Dat bewijst reproduceerbaarheid, niet dat een luisteraar alle 421 plaatsingen goedkeurt.

5. Opschalen zonder kwaliteitsverlies

Maak een verwerkingswachtrij per songId + audioHash + midiHash + arrangement + difficulty + methodVersion. Werk met expliciete statussen: ontvangen → bron gecontroleerd → analyse → concept → speeltest → goedgekeurd → uitgebracht. Een herhaalde job mag dezelfde bron niet dubbel publiceren; een andere hash start een nieuwe versie.

Het meegeleverde alignmentscript is een hulpmiddel voor lage monofone riffs met een bewust opgesteld recept. Het is geen generieke “ieder lied automatisch naar Guitar Hero”-oplossing. De huidige lokale server heeft nog één songadapter. De methodiek beschrijft de volgende cataloguspijplijn; die productie-infrastructuur is nog niet gebouwd.

6. Reproduceren en verder redigeren

In het prototype staan charts/12842-riff-v2.json (de actieve speelchart), 12842-riff-v2.evidence.json (correcties en meetgegevens), 12842.recipe.json (frases en mapping), plus de v1-chart en v1-evidence voor vergelijking en reproductie. De scripts draaien buiten de game. Vereist: Python 3.12, de vastgelegde Python-pakketten en op macOS afconvert. Een andere decoder moet tegen dezelfde tijdsbasis worden gevalideerd.

python3 -m venv .analysis-env
.analysis-env/bin/python -m pip install -r scripts/requirements.txt
.analysis-env/bin/python scripts/extract-features.py --out work/features-12842 --attack-features
.analysis-env/bin/python scripts/align-low-riff.py \
  --features-dir work/features-12842 \
  --recipe charts/12842.recipe.json \
  --out work/12842-candidate-events.json
.analysis-env/bin/python scripts/refine-low-riff.py --features-dir work/features-12842 \
  --chart charts/12842-riff-v1.json --evidence charts/12842-riff-v1.evidence.json \
  --ending-end-ms 227500 --out work/12842-riff-v2.json \
  --report work/12842-riff-v2.evidence.json
npm test
npm run check

De extractor gebruikt standaard de geautoriseerde lokale gameserver. Hij bewaart numerieke features en een manifest; tijdelijke audio verdwijnt na afloop. Voor een lokaal aangeleverd bronpakket ondersteunt hij --audio en --manifest. Dat manifest moet de fingerprint van de bijbehorende pitch-MIDI bevatten. De output van alignment is een concept met bewijs, geen automatisch publiceerbare chart. Vergelijk, redigeer en promoveer pas na de kwaliteitspoorten.

In de chartwerkbank kun je de huidige riff, de vorige riff en de zang vergelijken, noten wijzigen en een eigen concept exporteren. De export blijft ongereviewd. De oorspronkelijke opname en tijdelijke afspeel-URL’s worden niet meegeleverd.

7. Onderzoeksbronnen en grenzen

  1. A Wise Moose — GHWoR, Seven Nation Army, Expert Guitar 100% FC. Bekeken gameplayframes rond 0:25, 0:44 en 1:00: losse riffnoten/holds en tweeknopsakkoorden. Onze timings zijn niet uit deze video gehaald.
  2. JasonParadise — Seven Nation Army, Guitar Hero Live, Expert. Introfragment bekeken. Zes fretknoppen op drie visuele kolommen; bruikbaar ter vergelijking, geen vierknopstemplate.
  3. LMBECIL — How I make my charts for Clone Hero. De gepubliceerde hoofdstukindeling behandelt audio, BPM, secties, noten en testen. De hoofdstukindeling is geraadpleegd; de tutorial is niet integraal bekeken.
  4. Clone Hero — How to Play. Primaire documentatie over speelmechanieken, notentypes, raaklijn en gamepadmodus.
  5. Custom Songs Central — chartingrichtlijnen. Richtlijnen van chartmakers over synchronisatie, toonhoogtegerichte plaatsing en sustainruimte. Onze touchgrenzen en kwaliteitsdoelen zijn eigen ontwerpkeuzes.
  6. YARG — Help:Charting. Door Jan aangeleverde referentie; deze pagina gaf tijdens deze onderzoeksronde 403. Geen nieuwe inhoudelijke claims op deze ongelezen pagina gebaseerd.
  7. Stingray Karaoke API. Bestaande integratie. De analyse gebruikt de geautoriseerde opname en pitchbron van song 12842; zij veronderstelt geen niet-bevestigde gitaarstems.

Methode 1.2 · arrangement riff-touch-v2 · media en API-sleutels niet opgenomen. Volledige hashes staan in de chart en het analysemanifest. Opgesteld voor Pulse Arena, 1 oktober 2026.

8. Catalogusuitbreiding — vijf nieuwe speelversies

De API-catalogus is op 1 oktober 2026 doorzocht via GET /search?query=…&searchAssetTypes=SONG. Geselecteerd zijn vijf beschikbare nummers met volledige AAC-audio met zang en pitch-MIDI. Kandidaten zonder geschikte bestanden zijn afgevallen. De tabellen gebruiken Stingray-opnames in de stijl van de genoemde artiesten.

Nummer / bron-IDTotaalHookZangRitme
Smoke On The Water
Deep Purple · 1390
521132215174
Eye Of The Tiger
Survivor · 10158
4234028895
Song 2
Blur · 7150
17999719
Bad Guy
Billie Eilish · 2333720
3562973029
Take On Me
a-ha · 7438
35983131145

Arrangementkeuze: gitaarhooks voor Smoke on the Water, Eye of the Tiger en Song 2; een bashook voor Bad Guy; een synthhook voor Take On Me. Aanvullende melodienoten volgen expliciet de zang-MIDI. Instrumentale passages zonder betrouwbare melodiebron krijgen een eenvoudige ritmebegeleiding op gemeten audio-aanslagen. Die begeleiding heet in de game “Ritme”; zij is geen transcriptie van een gitaarsolo. De tv benoemt de actuele partij. Seven Nation Army behoudt zijn afzonderlijk verfijnde riff-touch-v2.

Herhaalbare import en begrensde herkenning

  1. Leg song-ID, audiovariant en SHA-256 van volledige audio en MIDI vast. Sla geen sleutels of signed URLs op in charts. Audio wordt voor lokale analyse tijdelijk gedecodeerd en daarna verwijderd.
  2. Inspecteer intro-aanslagen en harmonische toonhoogtes. Leg per nummer het herkenbare motief, de relatieve aanslagtijden, de vierknopsvorm en de geanalyseerde beginankers vast in charts/catalog-recipes.json. Dit is muzikale redactie per nummer; de pipeline verzint geen universeel gitaarspoor uit zang-MIDI.
  3. Zoek herhalingen met hetzelfde ritme en dezelfde verwachte pitches. Vergelijk toonsterkte met andere tonen van het motief. Accepteer alleen kandidaten boven de opgeslagen score-, dekking- en amplitudedrempels. Tempoafwijking is beperkt tot ±0,5%; ieder motief heeft een eigen startanker. Deze overeenkomstscore is geen kans op muzikale correctheid.
  4. Zoek per hooknoot hoogstens 55 ms rond de verwachte aanslag naar een echte audiotransiënt. MIDI-zangnoten behouden hun brontijden; catalogus-BPM verschuift ze niet. Algemene audiopieken mogen de zangtiming niet verplaatsen.
  5. Voor expliciete ritmebegeleiding: pas de puls lokaal aan in vensters van maximaal tien seconden. Plaats alleen noten bij een sterke gemeten aanslag binnen 60 ms van die puls. Lage audibility sluit stilte uit. De tragere outro van Bad Guy heeft een eigen pulsrecept. Twee vaste banen vormen een eenvoudig accentpatroon, geen afgeleide instrumenttoonhoogte.
  6. Beperk aanslagafstand tot minimaal 160 ms; reduceer de zang tot minimaal 240 ms. Instrumentale hooks en ritme gebruiken taps. Zangholds komen uit de MIDI, duren minimaal 500 ms en eindigen minimaal 100 ms vóór de volgende aanslag. Er worden geen instrumentale holds uit lege intervallen verzonnen.
  7. Bewaar geaccepteerde motiefankers, scores en herkomst in charts/catalog-audit.json. Per noot staan partij en bewijssoort in de chart. Herhaal de import en vergelijking als een bronhash verandert.

Uitvoeren en beoordelen

npm ci
python3 -m pip install -r scripts/requirements-charting.txt
# Python met numpy; scipy is nodig voor het bouwen van deze charts.
# PULSE_ANALYSIS_PYTHON kan naar de gewenste Python-omgeving wijzen.
node --env-file=.env scripts/import-catalog.mjs ../catalog-evidence
python3 scripts/build-catalog-charts.py --evidence ../catalog-evidence \
  --recipes charts/catalog-recipes.json --out charts
npm test
npm run check

De extractie gebruikt macOS afconvert; andere platforms hebben een gelijkwaardige, gecontroleerde decoder nodig. Exporteer uit de chartwerkbank een concept voor een gerichte luistercorrectie. De werkbank heeft een aparte nummerkeuze, afzonderlijke concepten en een nieuw audiobuffer bij nummerwissel. Ritmenoten zijn ook bij melodievoorbeluistering klikjes, geen gefingeerde melodietonen.

Dit zijn eerste speelversies.

De bronhashes, zes audiostreams, datastructuur, minimale notenafstand, wisselen van nummer, landscape-flow en rapportage per opname zijn technisch gecontroleerd. De nieuwe hooks zijn numeriek tegen de opname gelegd; er is nog geen onafhankelijke luisterreview van ieder arrangement en geen fysieke telefoon/tv-speeltest. Zwakke secties kunnen in de werkbank worden bijgewerkt. reviewed: false blijft staan.

De server gebruikt caches per song-ID. De mediatoegang van een ronde blijft aan die opname gekoppeld, ook na een nummerwissel. Afspeelrapportage gebruikt die koppeling in plaats van de op dat moment geselecteerde track. Duplicaten worden niet opnieuw gemeld; een onzekere eerdere rapportage wordt niet als bevestigd gepresenteerd. Langere nummers zijn niet meer beperkt door de oude rapportagegrens van 240 seconden.