Этот формат разработан для хранения различных песенных
сборников как составная часть проекта 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.