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.
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 gegeven | Vertaling naar Pulse | Wat we vermijden |
|---|---|---|
| Een hoorbare aanslag | De 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 frase | Hogere 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 terug | Hergebruik de vorm, maar meet iedere herhaling opnieuw tegen de opname. | Tientallen maten kopiëren met één veronderstelde BPM. |
| Een noot klinkt door | Een 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 tegelijk | Kies vooraf één leidende partij. Wissel alleen bewust op een sectiegrens. | Onbedoeld springen tussen zang, kick, bas en gitaar. |
| Een eenvoudiger moeilijkheid | Laat 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
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.
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 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.
| Eigenschap | Deze uitvoering |
|---|---|
| Audio | Volledig nummer, AAC, met lead vocal. Geen sample. |
| Bronbinding | Song-ID + hash van pitch-MIDI + hash van exacte audiobytes + audiovariant. De server controleert dit voordat hij de riffchart aanbiedt. |
| Spelprofiel | Touch, vier banen, één aanslag tegelijk, minimaal 160 ms tussen aanslagen. Dit is een voorlopig telefoonprofiel, geen industriestandaard. |
| Vasthouden | 142 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. |
| Start | De korte proef speelt nu vanaf het intro. Tijdens het aftellen komen de noten al in beeld; het aftellen verschuift de audiotijden niet. |
| Vergelijken | De 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
| Poort | Automatische controle | Menselijke controle |
|---|---|---|
| Bron klopt | ID, hashes, variant, duur en geldige bronmetadata. | Dit is de bedoelde uitvoering en partij. |
| Chart is geldig | Gesorteerde unieke gebeurtenissen, geldige banen, tijden binnen de audio, geen verboden overlaps, passend profiel. | Bewuste uitzonderingen zijn begrijpelijk en gedocumenteerd. |
| Chart volgt de muziek | Kandidaten met bronbewijs; afwijkingen en lage steun op een reviewlijst. | Alle secties beluisteren; geen ontbrekende hoofdaccenten, verzonnen aanslagen of verwisselde instrumenten. |
| Timing is gecontroleerd | Rapport over begin, midden, einde en lokale drift; vergelijking met afzonderlijk beoordeelde referentie-aanslagen. | Een tweede luisteraar beoordeelt een steekproef en iedere gemarkeerde passage. |
| Speelbaar | Dichtheid, sprongen en holdruimte per profiel; werking van tijdstempels en pauze. | Test met twee duimen op een telefoon en geluid via de tv/computer. |
| Vrijgave | Versies 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.
- Automatiseer: ophalen, metadata en hashes, decodercontrole, analysefeatures, frasevoorstellen, kandidaatnoten, patroonvarianten, structurele checks en een reviewpakket.
- Laat gericht beoordelen: bronpartij, ambigue aanslagen, lastige mixes, aanpassingen aan herhaalde frases en het telefoonspelgevoel. Naarmate de methode meer onafhankelijk goedgekeurde voorbeelden heeft, kan de reviewlast worden gemeten en verminderd.
- Bewaar beslissingen: een recept, een chart, bronbewijzen per noot, reviewopmerkingen, toolversies en de relatie tussen de versies. Kopieer nooit de timings van een andere cover of master.
- Begin met een diverse pilotset: naast deze rifftrack een elektronisch nummer, een akoestisch nummer, een drukke rockmix en een nummer met tempoverloop. Meet per categorie afkeur, correctietijd, ontbrekende/extra aanslagen en speelbaarheid. Stel pas daarna batchcapaciteit vast.
- Publiceer atomair: alleen een goedgekeurde combinatie van opname en chart komt beschikbaar. Bewaar de vorige versie voor terugrollen. Persoonlijke kalibratie blijft bij de speler/opstelling en verandert de chart niet.
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
- 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.
- JasonParadise — Seven Nation Army, Guitar Hero Live, Expert. Introfragment bekeken. Zes fretknoppen op drie visuele kolommen; bruikbaar ter vergelijking, geen vierknopstemplate.
- 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.
- Clone Hero — How to Play. Primaire documentatie over speelmechanieken, notentypes, raaklijn en gamepadmodus.
- Custom Songs Central — chartingrichtlijnen. Richtlijnen van chartmakers over synchronisatie, toonhoogtegerichte plaatsing en sustainruimte. Onze touchgrenzen en kwaliteitsdoelen zijn eigen ontwerpkeuzes.
- YARG — Help:Charting. Door Jan aangeleverde referentie; deze pagina gaf tijdens deze onderzoeksronde 403. Geen nieuwe inhoudelijke claims op deze ongelezen pagina gebaseerd.
- 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-ID | Totaal | Hook | Zang | Ritme |
|---|---|---|---|---|
| Smoke On The Water Deep Purple · 1390 | 521 | 132 | 215 | 174 |
| Eye Of The Tiger Survivor · 10158 | 423 | 40 | 288 | 95 |
| Song 2 Blur · 7150 | 179 | 99 | 71 | 9 |
| Bad Guy Billie Eilish · 2333720 | 356 | 297 | 30 | 29 |
| Take On Me a-ha · 7438 | 359 | 83 | 131 | 145 |
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
- 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.
- 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. - 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.
- 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.
- 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.
- 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.
- 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.
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.