Прочитайте файл .cue как обычный список с тайм-кодами
Файл .cue — это обычный текст. Его можно открыть в любом редакторе и прочитать: короткий набор команд, по одной в строке, где названы описываемое аудио, треки внутри него и момент начала каждого. Ничего двоичного и ничего сжатого в нём нет — поэтому cue-лист можно упаковать в архив, отправить письмом и скопировать с машины на машину, а время в нём останется прежним.
Читается он при этом не так, как трек-лист. Время записано в формате, который выглядит как минуты, секунды и сотые, но ими не является, а длительностей треков в файле нет вовсе. Перетащите файл сюда — и он вернётся списком, готовым для вставки. Читается он прямо в вашем браузере, никуда ничего не загружается.
Перетащите сюда файл проекта или сессии
Ableton .als, FL Studio .flp, rekordbox .cue, Traktor .nml или Serato .session.
Файл читается прямо в этой вкладке. Никуда ничего не загружается.
Файла под рукой нет?
Пропустите через него настоящий микс и посмотрите, что получается. A twelve-track recording running an hour and a quarter.
Вы с телефона?
Файл проекта, скорее всего, на другом компьютере. Отправьте себе ссылку и продолжите там.
Что вы получите
Список, готовый для вставки в описание на YouTube, SoundCloud или Mixcloud.
0:00 Kestrel Lane - First Light 6:12 Ardent Fields - Paper Harbour 13:15 Nomi Vale - Slow Transit 19:48 The Quiet Wire - Understory
Что на самом деле лежит в файле
Каждая строка начинается с командного слова. FILE называет аудио, которое описывает лист. TRACK открывает пронумерованную запись, и строки TITLE и PERFORMER под ним относятся к ней. INDEX задаёт позицию: INDEX 01 — это место, где начинается сам трек, а стоящий перед ним INDEX 00 отмечает pregap, вступительный отрезок, который CD-плеер пропускает при переходе к треку.
TITLE и PERFORMER, стоящие до первого TRACK, значат другое: это альбом и его исполнитель, а не трек, — из-за чего кажется, будто записей в файле на одну больше, чем есть. Строки, начинающиеся с REM, — это комментарии; и диджейские программы, и программы оцифровки прячут в них добавочное — дату, жанр, значение ReplayGain, — понимать которое читающему не обязательно.
Единственное, что в cue-листе не просто, — это кодировка. Ни одно поле не сообщает, в какой кодировке файл записан, поэтому лист с буквами с диакритикой может оказаться в UTF-8, в UTF-16 или в старой однобайтовой кодировке, и читающему остаётся выводить её из самих байтов. Если догадка здесь сводится к старой кодировке, результат об этом сообщает: именно там имя с диакритикой может вернуться неверным.
Третье поле — это кадры, а не сотые
Время в INDEX пишется как MM:SS:FF, и FF — это кадры CD, по семьдесят пять в секунду: наименьшая единица, к которой можно адресоваться на звуковом компакт-диске. То есть 01:30:37 — это одна минута, тридцать секунд и тридцать семь семьдесят пятых: 90,49 секунды, практически минута тридцать с половиной. Если прочитать последнее поле как сотые, выйдет 90,37. Из-за этой близости ошибка и держится так долго: два прочтения расходятся не больше чем примерно на четверть секунды, поэтому неверное выглядит правдоподобно.
Есть признак, по которому это видно. Кадры идут от 00 до 74, поэтому третье поле со значением 75 и выше законным номером кадра быть не может. Если в файле перед вами встречаются значения за восемьдесят и за девяносто, значит, что-то записало сотые в поле кадров, и это не время cue-листа, что бы ни говорило расширение.
Второй сюрприз — в поле минут. Оно не ограничено пятьюдесятью девятью, и переходить ему некуда: поля часов в формате нет, потому что формат считает минуты, прошедшие с начала аудио, а не показывает время суток. Двухчасовая запись законно читается как 122:15:00. Программы, которые ждут двух цифр или диапазона от 00 до 59, либо отказываются такой файл открывать, либо накладывают второй час на первый. По-настоящему останавливается на пятидесяти девяти только поле секунд.
Cue-листы из программ оцифровки CD и случай с несколькими файлами
Формат появился задолго до диджейских программ. Cue-листы пишут и Exact Audio Copy, и CDRWIN, и Nero: лист — это то, чем границы треков диска продолжают жить после того, как диск стал одним длинным аудиофайлом. Читаются они ровно так же, как лист от диджейского рекордера, и здесь совершенно неважно, какая программа его написала.
Один вид таких листов ведёт себя иначе, и приходит он почти всегда именно оттуда. Если диск сняли в отдельный файл на каждый трек, в листе будет строка FILE для каждого трека, и каждый INDEX задаёт позицию внутри своего файла, а не внутри непрерывной записи. Почти все они читаются как 00:00:00, поэтому прямолинейный перевод ставит каждую запись на ноль.
Поэтому, когда в листе указано больше одного аудиофайла, вам об этом сообщают и называют их число, а не выдают молча бессмысленный список. Чтобы это исправить, пришлось бы сложить длительность всего, что стоит перед каждым файлом, а для этого нужно само аудио: длительностей cue-лист как раз и не содержит. У диска, снятого в один файл, и у диджейской записи одна строка FILE и много строк INDEX — тогда ничего этого не требуется.
Чего в cue-листе нет
Cue-лист называет треки и говорит, где каждый начинается. Этим он и исчерпывается. Ни времени окончания, ни длительностей в нём нет: длина трека — это начало следующего минус его собственное, а у последнего её нет вовсе, пока рядом нет аудио, чтобы её измерить. Нет и ничего о самом звуке — ни темпа, ни тональности, ни формы волны, ни способа убедиться, что названное в нём аудио — то самое, что лежит у вас.
Всё, что рекордер или программа оцифровки назвать не смогли, приходит под нумерованной заглушкой, поэтому лист, в котором нигде нет строк TITLE, превращается в Track 1, Track 2, Track 3 при совершенно верном времени. Это единственный результат, который выглядит сломанным, но таковым не является: время уцелело, а названий не было изначально.
Самый существенный пробел — в обратную сторону. Cue-лист нельзя сделать из аудио. Если у вас есть запись и нет листа, здесь ничто не станет её слушать и разбирать, что звучит: это акустическое распознавание, а этот инструмент им не занимается.
Questions
- Что означает 01:30:37 в файле .cue?
- Одну минуту, тридцать секунд и тридцать семь кадров CD — то есть 90,49 секунды. Если прочитать последнее поле как сотые, получится 90,37; это обычная ошибка. Чтобы перевести любое время из cue-листа вручную, разделите третье число на семьдесят пять и прибавьте к секундам: тридцать семь кадров — это 0,49 секунды, а не 0,37.
- Можно ли открыть файл .cue в Блокноте?
- Да. Это обычный текст, обычно по одной-две строки на трек. Открыть его — самый быстрый способ понять, есть ли у треков названия вообще: из листа без строк TITLE и PERFORMER трек-лист с названиями не получится, как его ни переводи. Если будете править, сохраняйте в той же кодировке, в какой файл вам достался, — сохранение в другой как раз и калечит буквы с диакритикой.
- Почему в моём файле .cue стоит время вроде 122:15:00?
- Файл не повреждён. Это 122 минуты, 15 секунд и ноль кадров — два часа две минуты пятнадцать секунд от начала записи. Часов cue-лист не хранит, поэтому минуты продолжают расти столько, сколько идёт аудио, и здесь значение читается именно так. Программа, которая показывает тот же файл как 2:15 или отказывается его открывать, соблюдает ограничение, которого в формате никогда не было.
- Читаются ли здесь cue-листы из Exact Audio Copy или Nero?
- Да. Cue-лист остаётся cue-листом, чем бы он ни был написан, и программы оцифровки используют те же команды, что и диджейские. Проверить стоит другое: назван в листе один аудиофайл или по одному на трек. При оцифровке по файлу на трек каждая запись начинается с 00:00:00 внутри своего файла — и когда в листе указано больше одного файла, вам об этом сообщают, а не оставляют гадать, почему время выглядит неверным.
- Можно ли получить из cue-листа длительность треков?
- Только вычитанием и не для последнего. Лист записывает, где каждый трек начинается, и ничего — о том, где он заканчивается, поэтому любая длительность, кроме последней, — это начало следующего минус начало этого. Последний трек идёт до конца аудио, о котором лист ничего не знает. Если это число вам нужно, взять его придётся из самого аудиофайла.
Using something else?
rekordbox
Превратите запись rekordbox в трек-лист с тайм-кодами
OpenКак сделать
Как получить трек-лист с тайм-кодами для диджейского микса
OpenГлавы YouTube
Соберите главы YouTube для своего микса
OpenThere is also a full tutorial covering all five programs and what to do when the times look wrong.