Songtekst-editor met timing
Songtekst
Lege regels worden weggegooid. Een regel die al met [mm:ss.xx] begint, behoudt die tijd.
Zet een audiobestand neer, plak de songtekst, druk dan op afspelen en tik op de sneltoets om te stempelen wanneer elke regel begint. Niets verlaat dit tabblad.
Elke getimede regel verschuiven
Geëxporteerde .lrc
Een regel verschijnt hier zodra hij een tijd heeft.
Regels zonder tijd blijven in beide exports weg: een regel heeft een stempel nodig voordat hij een plek op de tijdlijn heeft.
Toetsenbord
- K of spatie — afspelen / pauzeren
- Pijl links / rechts — 5 seconden terug / vooruit
- R — deze regel stempelen en naar de volgende gaan
- T — een regel erna invoegen
- Delete — de tijd van deze regel wissen
- Pijl omhoog / omlaag — naar de vorige / volgende regel
Deze pagina maakt van een nummer en een lijst regels een getimed .lrc-bestand. Laad een audiobestand, plak de songtekst — platte tekst, één regel per regel, of een bestaand .lrc waarvan je de tijdstempels wilt bijstellen — druk op play en tik op een toets op het moment dat elke regel begint. De stempel komt uit de huidige tijd van het audio-element, dus hij volgt het bestand waarnaar je luistert in plaats van een klok in de pagina. Is de laatste regel gestempeld, exporteer dan het resultaat als .lrc, of als .srt als de ondertiteleditor die je voedt er een nodig heeft.
De regellijst is het hele model. Een regel heeft tekst en een optionele starttijd; een regel zonder starttijd is er een die je nog niet hebt bereikt. Ongestempelde regels blijven in de editor staan zodat je erop terug kunt komen, maar ze verschijnen niet in de export: een regel zonder starttijd heeft geen positie op de tijdlijn, en er een verzinnen zou een regel op het scherm zetten op een moment dat niemand heeft gekozen. Daarom is een bestand dat halverwege een nummer wordt geëxporteerd korter dan de lijst voor je, niet fout.
Vier bewerkingen dekken wat er bij het timen van songteksten werkelijk misgaat. Stempelen zet een regel op de huidige afspeeltijd, en de editor gaat naar de volgende regel zodat een reeks regels één toetsaanslag per regel kost. Wissen haalt een stempel weg die je een tel te vroeg zette. Invoegen voegt een regel toe die je vergeten was te plakken. Verschuiven verplaatst elke gestempelde regel met hetzelfde aantal milliseconden, wat je nodig hebt nadat je merkt dat het hele bestand een seconde achter de zang zit — de onderlinge afstand blijft intact, en een negatieve verschuiving stopt bij nul in plaats van een tijdcode te schrijven die spelers niet kunnen lezen.
Het timingmodel is dat van LRC zelf. Een regel duurt tot de volgende regel begint; de laatste regel heeft geen volgende, dus krijgt hij twee seconden, dezelfde breedte die deze site gebruikt wanneer een formaat geen eigen eindtijd heeft. Bij de export naar .srt komen de eindtijden daar vandaan — dezelfde afleiding die een conversie van een .lrc-bestand op de conversiepagina’s maakt, zodat de twee routes dezelfde tijdlijn opleveren. Centiseconden zijn de precisie die .lrc kan vastleggen; een stempel op 12,346 seconden wordt als 12,34 geschreven, en daarom kan een geëxporteerd bestand bij teruglezen enkele milliseconden van de editor verschillen.
Het audiobestand wordt geopend door het eigen audio-element van de browser en nooit door deze pagina gelezen, geparseerd of geüpload. Er is geen verzoek dat het ergens naartoe draagt; het enige netwerkverkeer is de pagina zelf. Een concept van de regellijst wordt in de lokale opslag van deze browser bewaard zodat een onbedoelde herlaadbeurt je geen sessie werk kost, en sitegegevens wissen haalt het weg. Niets van het nummer of de songtekst bestaat op een server nadat je de tab sluit.
Voorbeelden
Platte songtekst, in één doorgang gestempeld
Songtekst
First line of the song
Second line of the song
Third line of the songGeëxporteerde .lrc
[00:12.00]First line of the song
[00:15.30]Second line of the song
[00:18.75]Third line of the songElke gestempelde regel is één blok. De .lrc-export schrijft centiseconden, dus 18,75 seconden is precies wat de toetsaanslag vastlegde; een stempel op 18,754 zou als 18,75 worden geschreven.
Een bestaand .lrc opnieuw timen
Songtekst
[00:12.00]First line of the song
[00:14.00]Second line of the song
Third line of the songGeëxporteerde .lrc
[00:12.00]First line of the song
[00:14.00]Second line of the song
[00:17.75]Third line of the songEen .lrc plakken houdt de tijdstempels die er al in staan. De derde regel kwam zonder tijdstempel binnen, bleef ongestempeld tot hij werd afgespeeld en kreeg op 17,75 seconden zijn stempel.
Veelgestelde vragen
Komen de regels die ik nog niet heb gestempeld in het .lrc-bestand terecht?
Nee. Een ongestempelde regel heeft geen starttijd, en .lrc plaatst een regel alleen op zijn tijdstempel, dus er is niets om voor te schrijven. De regel blijft in de editorlijst staan zonder tijd ernaast, en zodra je er voorbij speelt en op de stempeltoets drukt, doet hij mee aan de export. Dat is met opzet en geen beperking: het alternatief is de regel een verzonnen tijd geven, wat hem op het scherm zet op een moment dat je nooit hebt gekozen — precies het soort stille verzinning dat deze site elders vermijdt.
Hoe lang blijft de laatste songtekstregel in de .srt-export op het scherm staan?
Twee seconden na zijn starttijd. .lrc heeft helemaal geen eindtijden — een regel duurt tot de volgende begint — dus de laatste regel heeft niets om een einde van te erven. Twee seconden is dezelfde breedte die deze site gebruikt voor elk formaat zonder eindtijden, wat betekent dat de .srt-export van deze editor en de conversiepagina van .lrc naar srt dezelfde tijdlijn geven voor dezelfde stempels. Houdt het nummer die laatste regel werkelijk acht seconden vast, dan is hem achteraf verschuiven of zijn duur aanpassen eerlijk; een gok die in de exporteur wordt verstopt niet.
Wat gebeurt er als ik de tijdlijn terugschuif voorbij de eerste regel?
Die regels stoppen bij nul en de editor zegt hoeveel er zijn afgekapt. Een negatieve tijdcode bestaat niet in .lrc of .srt — een speler die er een krijgt wijst het bestand af of laat de regel op het allereerste begin starten. Verschuiven is bedoeld om een offset te repareren, zoals merken dat het hele bestand een seconde te laat is; wanneer de gevraagde verschuiving de eerste regel voor het begin van de track zou duwen, is nul het fysiek zinvolle resultaat, en de overige regels houden hun onderlinge afstand tenzij ze ook zijn afgekapt.
Kan ik een bestaand .lrc plakken en alleen de foute regels repareren?
Ja — daarom leest de editor bij het plakken LRC-tijdstempels. Regels die al een [mm:ss.xx]-tag dragen houden hun tijd; de tekst na de tag is wat je bewerkt; een regel zonder tag begint ongestempeld. Metadata-regels zoals [ti:], [ar:] en [offset:] worden bij de import genegeerd in plaats van als songtekst behandeld, omdat het geen regels zijn die iemand zingt. Een regel met meerdere tags neemt de eerste, omdat het model van de editor één starttijd per regel is.
Wordt mijn audiobestand geüpload zodat de pagina de duur of golfvorm kan lezen?
Nee — en er is ook geen golfvorm. De audio wordt door het ingebouwde audio-element van de browser uit een lokaal bestandshandvat afgespeeld; deze pagina leest de bytes nooit, decodeert ze nooit en stuurt nooit een verzoek met het bestand erin. Tijdstempels komen uit de huidige afspeelpositie van het audio-element op het moment dat je op de toets drukt, en dat is hetzelfde getal dat een golfvorm je zou geven. Een volledige albumtrack decoderen voor een golfvorm zou geheugen en tijd kosten zonder de stempel te verbeteren.
Waarom verschilt het geëxporteerde .lrc enkele milliseconden van de editor?
Omdat .lrc centiseconden vastlegt en de editor gehele milliseconden bijhoudt. Een stempel op 12,346 seconden wordt als [00:12.34] geschreven — afgerond op het dichtstbijzijnde honderdste, niet afgekapt. Het bestand teruglezen geeft 12,340 seconden, dus het verschil is hoogstens vijf milliseconden per regel, ruim onder wat een speler kan tonen. Heb je de exacte stempel nodig, exporteer dan .srt: dat draagt milliseconden, en hetzelfde blokmodel brengt beide bestanden voort.