Редактор синхронізованих текстів пісень
Текст пісні
Порожні рядки відкидаються. Рядок, що вже починається з [mm:ss.xx], зберігає цей час.
Перетягніть аудіофайл, вставте текст пісні, потім натисніть відтворення й натискайте клавішу позначки на початку кожного рядка. Ніщо не покидає цю вкладку.
Зсунути всі синхронізовані рядки
Експортований .lrc
Рядок з’явиться тут, щойно матиме час.
Рядки без часу пропускаються в обох експортах: рядку потрібна позначка, перш ніж він матиме місце на таймлайні.
Клавіатура
- K або Пробіл — відтворити / пауза
- Стрілка вліво / вправо — 5 секунд назад / вперед
- R — позначити цей рядок і перейти до наступного
- T — вставити рядок після цього
- Delete — очистити час цього рядка
- Стрілка вгору / вниз — до попереднього / наступного рядка
Ця сторінка перетворює пісню й список рядків на файл .lrc з таймкодами. Завантажте аудіофайл, вставте текст пісні — звичайний текст, один рядок на рядок, або наявний .lrc, чиї таймкоди хочете поправити, — натисніть відтворення й торкніться клавіші в момент, коли починається кожен рядок. Позначку беруть із поточного часу аудіоелемента, тому вона йде за файлом, який ви слухаєте, а не за годинником на сторінці. Коли останній рядок позначено, експортуйте результат як .lrc або як .srt, якщо редактор субтитрів, у який ви його віддаєте, потребує одного з них.
Список рядків — це вся модель. Рядок має текст і необов’язковий час початку; рядок без часу — той, до якого ви ще не дійшли. Непозначені рядки лишаються в редакторі, щоб ви могли повернутися, але в експорт вони не потрапляють: рядок без часу початку не має позиції на шкалі, а вигадати її означало б поставити рядок на екран у момент, якого ніхто не вибирав. Тому файл, експортований на середині пісні, коротший за список перед вами, а не неправильний.
Чотири дії покривають те, що справді йде не так під час виставлення таймкодів. Позначення ставить рядку поточний час відтворення, і редактор переходить до наступного рядка, тож серія рядків коштує одного натискання на кожен. Очищення прибирає позначку, яку ви поставили на такт раніше. Вставлення додає рядок, який ви забули вставити. Зсув рухає всі позначені рядки на однакову кількість мілісекунд — це те, що потрібно після того, як ви помітили, що весь файл сидить на секунду позаду вокалу: відносні проміжки лишаються, а від’ємний зсув спиняється на нулі, а не пише таймкод, який плеєри не прочитають.
Модель часу — та сама, що в LRC. Рядок триває до початку наступного; останній рядок не має наступного, тому отримує дві секунди — ту саму ширину, яку сайт використовує щоразу, коли формат не має власного часу кінця. Під час експорту .srt кінці беруться саме звідти — те саме виведення, яке робить перетворення .lrc на сторінках конвертера, тож два шляхи дають ту саму шкалу. Соті частки секунди — точність, яку вміє записати .lrc; позначка на 12,346 секунди записується як 12,34, і саме тому експортований файл, прочитаний назад, може відрізнятися від редактора на кілька мілісекунд.
Аудіофайл відкриває власний аудіоелемент браузера, і ця сторінка ніколи не читає його, не розбирає й не завантажує. Жоден запит його не несе; єдиний мережевий трафік — сама сторінка. Чернетку списку рядків тримають у локальному сховищі цього браузера, щоб випадкове перезавантаження не коштувало сесії роботи, а очищення даних сайту її видаляє. Нічого про пісню чи текст не існує на сервері після того, як ви закрили вкладку.
Приклади
Простий текст пісні, усі рядки за один прохід
Текст пісні
First line of the song
Second line of the song
Third line of the songЕкспортований .lrc
[00:12.00]First line of the song
[00:15.30]Second line of the song
[00:18.75]Third line of the songКожен рядок із таймкодом — одна репліка. Експорт .lrc пише соті частки секунди, тому 18,75 секунди — це рівно те, що записав натиск; таймкод 18,754 було б записано як [00:18.75].
Повторне виставлення таймкодів у наявному .lrc
Текст пісні
[00:12.00]First line of the song
[00:14.00]Second line of the song
Third line of the songЕкспортований .lrc
[00:12.00]First line of the song
[00:14.00]Second line of the song
[00:17.75]Third line of the songВставлений .lrc зберігає таймкоди, які вже має. Третій рядок прийшов без таймкоду, лишався непозначеним, доки його не відтворили, і отримав 17,75 секунди.
Часті запитання
Чи потрапляють у файл .lrc рядки, які я ще не позначив?
Ні. Непозначений рядок не має часу початку, а .lrc ставить рядок на шкалу лише за таймкодом, тому писати для нього нічого. Рядок лишається у списку редактора без часу поруч, і щойно ви проходите повз нього й натискаєте клавішу позначення, він долучається до експорту. Це навмисно, а не обмеження: альтернатива — дати рядку вигаданий час, який поставить його на екран у момент, якого ви ніколи не вибирали, — саме те мовчазне вигадування, якого сайт уникає в інших місцях.
Як довго останній рядок тексту лишається на екрані в експорті .srt?
Дві секунди після часу початку. У .lrc часів кінця немає взагалі — рядок триває, доки не почнеться наступний, — тому останньому рядку нема від кого успадкувати кінець. Дві секунди — та сама ширина, яку сайт використовує для будь-якого формату без часів кінця, тож .srt цього редактора й перетворення .lrc на srt дають ту саму шкалу для тих самих позначок. Якщо пісня справді тримає останній рядок вісім секунд, чесно виправити це зсувом або тривалістю після експорту, а не ховати здогад в експортері.
Що буде, якщо я зсуну шкалу назад за перший рядок?
Ці рядки спиняться на нулі, і редактор скаже, скільки їх обмежено. Від’ємного таймкоду не існує ні в .lrc, ні в .srt — плеєр, якому його дали, або відхилить файл, або вважатиме, що рядок починається на самому початку. Зсув потрібен, щоб виправити зміщення на кшталт поміченого «весь файл на секунду пізніше»; коли запитаний зсув виштовхує перший рядок раніше за початок доріжки, фізично осмислений результат — нуль, а решта рядків зберігає проміжки між собою, якщо їх теж не обмежили.
Чи можна вставити наявний .lrc і виправити лише неправильні рядки?
Так — саме тому редактор читає таймкоди LRC під час вставлення. Рядки, які вже мають тег [mm:ss.xx], зберігають свій час; текст після тега — те, що ви редагуєте; рядок без тега починається без позначки. Рядки метаданих на кшталт [ti:], [ar:] і [offset:] під час імпорту ігнорують, а не вважають текстом пісні, бо їх ніхто не співає. Рядок із кількома тегами бере перший, оскільки модель редактора — один час початку на рядок.
Чи завантажується мій аудіофайл, щоб сторінка прочитала тривалість або хвилю?
Ні, і хвилі теж немає. Аудіо грає вбудований аудіоелемент браузера з локального дескриптора файлу; сторінка ніколи не читає його байти, не декодує й не надсилає запит із ним. Таймкоди беруться з поточної позиції відтворення аудіоелемента в момент натискання клавіші — те саме число, яке дала б хвиля. Декодувати повну доріжку альбому заради хвилі коштувало б пам’яті й часу, не покращивши позначку.
Чому експортований .lrc відрізняється від редактора на кілька мілісекунд?
Бо .lrc записує соті частки секунди, а редактор тримає цілі мілісекунди. Позначка на 12,346 секунди записується як [00:12.34] — округлення до найближчої сотої, не відтинання. Читання файлу назад дає 12,340 секунди, тож різниця щонайбільше п’ять мілісекунд на рядок, значно менше, ніж плеєр здатен показати. Якщо потрібна точна позначка, експортуйте .srt: він несе мілісекунди, і обидва файли робить та сама модель реплік.