Date: Sat, 06 Jul 96
From: Dmitry.Zaytsev@p20.f14.n5051.z2.fidonet.org
1. Для чего это вообще надо.
Этот формат разработан для хранения различных песенных
сборников как составная часть проекта AMBER'. Благодаря
небольшой формализации хранимой информации, предусматривается
возможность автоматической обработки сборников, оформленных
в формате LYRICS, в т.ч. составление различных списков
имеющихся песен, генерация баз данных, гипер- и просто
текстовых файлов и проч.
Кроме разработчиков, надеемся, этот формат будет полезен
еще кому-нибудь: меломанам, любителям поэзии и другим. К
тому же, в настоящее время разрабатывается программное
обеспечение для поддержки этого формата (в т.ч. конверторы в
другие форматы).
2. Описание.
Файлы в формате LYRICS - суть текстовые файлы, для
работы с ними достаточно любого редактора, способного читать
и сохранять обычный ASCII-текст (например, Multi-Edit,
встроенные редакторы Norton и Volkov Commander'ов, Dos
Navigator'а, CONNECT'а и проч.). Обычно такие файлы
именуются как *.LYR.
LYR-файл содержит в себе тексты песен и служебную
информацию, необходимую для автоматической обработки. Во всех
служебных строках в первой позиции стоит символ "$", "%" или
"#". Кроме того, в файле могут быть комментарии - строки с
";" в первой позиции. Использование символов "$", "%", "#",
";" не с первой позиции строки также допустимо: такие
строки считаются обычным текстом и не обрабатываются как
служебные.
Единицей хранения информации является страница. Страница
начинается с одного из описателей страниц и заканчивается
очередным описателем страницы, директивой #include или
концом файла. Описатель страницы - служебная строка,
начинающаяся с символа "$". Каждая страница может содержать
ряд параметров, описываемых в служебных строках (клуджах).
Параметр страницы - служебная строка, начинающаяся с символа
"%".
Существуют еще директивы - служебные строки, начинающиеся
с символа "#". Это include и #define.
2.1. Описание страницы.
Страница может быть описана одним из следующих
описателей: $SONG, $PERSON, $INFO.
$SONG [<идентификатор>]
Произведение (песня). Все строки на такой странице считаются
относящимися к одному произведению.
Необязательный параметр: <идентификатор> - метка песни,
которая может быть использована в перекрестных ссылках. В
пределах файла метка должна быть уникальна. Длина
идентификатора не более 20 символов, без пробелов.
$PERSON [<идентификатор>]
Персоналия. Эта страница содержит информацию об авторе,
исполнителе, коллективе и т.п.
$INFO [<идентификатор>]
Информация. Все, что не относится к произведению или
персоналии, может размещаться на этой странице. Например,
критические статьи, интервью и проч.
2.2. Параметры страницы.
Любая страница может содержать набор параметров. Для
всех видов страниц этот набор един, однако некоторые
сочетания вид_страницы/параметр бессмысленны (например,
указание автора музыки на странице с биографией).
Все параметры опциональны, т.е. могут отсутствовать.
Параметры, кроме %title, %first, %chords и %date, могут
повторяться. Порядок следования параметров - произвольный,
но он важен при повторении: например, сортировка списка по
автору слов будет по первому указанному.
%Title <строка>
Заголовок, основное (официальное) название произведения,
фамилия и инициалы. Используется в оглавлении и, возможно,
при отображении перекресных ссылок.
%First <строка>
Первая строка произведения (песни).
%Alias <строка>
Дополнительное название произведения. Это может быть также
строчка из песни, или любая другая строка, позволяющая Вам
опознать песню.
%Text <строка>
Автор текста.
%Music <строка>
Автор музыки.
%Exec <строка>
Исполнитель произведения.
%Theme <строка>
Тема произведения. Используется для возможности генерации
сборников произведений на заданную тему (например, об осени,
об армии, про туристов и т.п.).
%Chords <число>
Стиль расстановки аккордов:
0 - нет (по умолчанию);
1 - в строке:
аккорд записывается в строке в фигурных скобках перед
гласной, на которой ставится:
Потян{Dm}уло, потян{Gm}уло
Холодк{C7}ом осенних п{F}исем. {D7}
Мы рекомендуем активней пользоваться этим способом:
аккорды очень легко локализовать и распечатать при
необходимости над строкой, за ней, можно вообще их
убрать, при этом положение аккорда "привязано" к тексту
и не "съедет" при редактировании.
2 - за строкой:
Потянуло, потянуло Dm Gm
Холодком осенних писем. C7 F D7
3 - над строкой:
Dm Gm
Потянуло, потянуло
C7 F D7
Холодком осенних писем.
4 - над строкой текста апострофами:
' ' Dm Gm
Потянуло, потянуло
' ' ' C7 F D7
Холодком осенних писем.
5 - за текстом:
аккорды записываются за текстом песни - не совсем
удобный способ, но иногда встречается:
Потянуло, потянуло
Холодком осенних писем.
Dm Gm C7 F D7
6 - в строке, как и первый стиль, но после гласной:
Потяну{Dm}ло, потяну{Gm}ло
Холодком{C7} осенних пи{F}сем. {D7}
Мы рекомендуем отказываться от этого стиля в пользу
первого.
10 - Иной стиль расстановки аккордов.
%Album <строка>
Альбом, сборник в который входит произведение (песня).
%Date <дата>
Дата (интервал дат) создания произведения, статьи, интервью,
для персоналии - дата рождения или создания творческого
коллектива. Мы рекомендуем придерживаться по возможности
форматов "дд.мм.гггг", "мм.гггг" (или "00.мм.гггг"). В любом
случае предпочтительнее записывать год 4-значным числом.
%SeeAlso <идентификатор_страницы>
%SeeAlso <файл>^<идентификатор_страницы>
Ссылка на другую информацию. В настоящий момент обсуждаются
различные варианты синтаксиса.
2.3. Директивы.
Директивы служат для удобства составления сборников.
#Include <имя_файла>
В этом месте будет включен файл (предполагается, что файл в
формате LYRICS).
Важно: директива #include заканчивает текущую страницу.
#Define <идентификатор> <строка>
Определение макроподстановки. В дальнейшем вместо <строка>
можно будет использовать @<идентификатор> (см. п.3.). Все
определения глобальны. При использовании макроподстановки
идентификатор должен быть отделен от текста разделителями
(пробелами, концом строки, табуляцией, знаком препинания).
Макроподстановки ("@<идентификатор>") имеют смысл только в
служебных строках и будут игнорироваться вне их (в тексте,
комментариях).
3. Пример.
+----------------------------------------------------------+
|;Пример оформления LYR-файла |
| |
| |
|#define MITYAEV Митяев О. |
|#define KUKIN Кукин Ю. |
|#define AUTUMN Осень |
| |
|$song |
|%title СОСЕДКА |
|%first Снова гость к моей соседке... |
|%alias НОЧНОЙ ГОСТЬ |
|%alias НОЖИ |
|%text @MITYAEV |
|%music @MITYAEV |
|%exec Шуфутинский М. |
|%chords 3 |
| |
| Dm |
|Снова гость к моей соседке, |
| Gm |
|Дочка спит, торшер горит. |
| A7 Dm |
|Радость на лице. |
| Dm |
|По стеклу скребутся ветки, |
| Gm |
|В рюмочки коньяк налит - |
| A7 Dm D7 |
|Со свиданьицем. |
| |
|$song KUKIN_AUT_LETTER |
|%text @KUKIN |
|%music @KUKIN |
|%title ОСЕННИЕ ПИСЬМА |
|%first Потянуло, потянуло |
|%theme @AUTUMN |
|%chords 1 |
| |
|Потян{Dm}уло, потян{Gm}уло |
|Холодк{C7}ом осенних п{F}исем. {D7} |
|И в тайг{Gm}е гремящий в{Dm}ыстрел |
|Ранил {E7}птицу и меня. {A7} |
|Думал, все{D7} во мне усн{Gm}уло, |
|Не страшн{C7}ы ни боль, ни см{F}ысл.{D7} |
|Защем{Gm}ило, затян{Dm}уло |
|В печь ос{E7}еннег{A7}о огн{Dm}я. |
| |
|Что же делать, что же делать? |
|Постучаться в ваши двери |
|И, как-будто от убийцы, |
|От себя себя спасти. |
|Первым к вам войдет отчаянье, |
|Следом я - ваш Чарли Чаплин, |
|Жизнь как тросточку кручу я, |
|Сделав грустные глаза. |
| |
+----------------------------------------------------------+
4. Ограничения.
Максимальная длина строки - 255 символов
Максимальная длина идентификатора (метки) - 20 символов
Максимальное количество строк на странице - 16k-4
Допустимые символы в метках/идентификаторах (регистр букв
игнорируется):
"0"-"9", "A"-"Z", "a"-"z", "_"
5. Дополнения и пожелания.
Набор служебных строк не окончателен, возможно,
потребуется его расширение. Но это не должно быть
критическим событием, т.к. наверняка можно будет сделать
добавляемые параметры опциональными.
Пока не уточняется кодировка, в которой набрана песня,
подразумевается альтернативная.
В силу ряда причин возможно, что в каких-то произведениях
будет иметь место замена букв кириллицы на аналогичные по
написанию латинские - в первую очередь это относится к "H" и
"р". Хотелось бы, однако, чтобы подобные замены были хотя бы
сведены к минимуму или вообще отсутствовали, т.к. это может
затруднить работу с текстами (например, поиск по тексту,
сортировка и т.п.).
Для работы с lyr-файлами можно использовать программу
AMBER', обсудить работу которой, высказать пожелания по
дальнейшему развитию программы и формата LYRICS можно в
конференции RU.AMBER'.BETA.