Date: Sat, 06 Jul 96
From: [email protected]




        Этот формат  разработан для  хранения различных  песенных
    сборников  как  составная  часть  проекта  AMBER'.  Благодаря
    небольшой формализации хранимой информации, предусматривается
    возможность автоматической  обработки сборников,  оформленных
    в  формате  LYRICS,  в  т.ч.   составление  различных списков
    имеющихся  песен,  генерация  баз  данных,  гипер-  и  просто
    текстовых файлов и проч.

        Кроме разработчиков, надеемся, этот формат будет  полезен
    еще  кому-нибудь:  меломанам,  любителям  поэзии  и другим. К
    тому  же,  в  настоящее  время  разрабатывается   программное
    обеспечение для поддержки этого формата (в т.ч. конверторы  в
    другие форматы).




        Файлы  в  формате  LYRICS  -  суть  текстовые  файлы, для
    работы с ними достаточно любого редактора, способного  читать
    и  сохранять  обычный   ASCII-текст  (например,   Multi-Edit,
    встроенные  редакторы  Norton  и  Volkov  Commander'ов,   Dos
    Navigator'а,  CONNECT'а   и  проч.).   Обычно  такие    файлы
    именуются как *.LYR.

        LYR-файл  содержит  в  себе  тексты  песен  и   служебную
    информацию, необходимую для автоматической обработки. Во всех
    служебных строках в первой позиции стоит символ "$", "%"  или
    "#".  Кроме того, в  файле могут быть комментарии -  строки с
    ";" в первой позиции.  Использование символов "$", "%",  "#",
    ";"  не  с  первой  позиции  строки  также  допустимо:  такие
    строки  считаются  обычным  текстом  и  не обрабатываются как
    служебные.

        Единицей хранения информации является страница.  Страница
    начинается  с  одного  из  описателей страниц и заканчивается
    очередным  описателем  страницы,   директивой  #include   или
    концом  файла.   Описатель  страницы   -  служебная   строка,
    начинающаяся с символа "$".  Каждая страница может  содержать
    ряд параметров,  описываемых в  служебных строках  (клуджах).
    Параметр страницы - служебная строка, начинающаяся с  символа
    "%".

        Существуют еще директивы - служебные строки, начинающиеся
    с символа "#". Это include и #define.




        Страница   может   быть   описана   одним   из  следующих
    описателей: $SONG, $PERSON, $INFO.

$SONG [<идентификатор>]

    Произведение (песня).  Все строки на такой странице считаются
    относящимися к одному произведению.

    Необязательный  параметр:  <идентификатор>  -  метка   песни,
    которая может  быть использована  в перекрестных  ссылках.  В
    пределах   файла   метка   должна   быть   уникальна.   Длина
    идентификатора не более 20 символов, без пробелов.


$PERSON [<идентификатор>]

    Персоналия.  Эта  страница  содержит  информацию  об  авторе,
    исполнителе, коллективе и т.п.


$INFO [<идентификатор>]

    Информация.  Все,  что  не   относится  к  произведению   или
    персоналии,  может  размещаться  на  этой странице. Например,
    критические статьи, интервью и проч.




        Любая  страница  может  содержать  набор  параметров. Для
    всех  видов  страниц  этот   набор  един,  однако   некоторые
    сочетания   вид_страницы/параметр   бессмысленны   (например,
    указание автора музыки на странице с биографией).

        Все  параметры  опциональны,  т.е.  могут  отсутствовать.
    Параметры,  кроме  %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 <файл>^<идентификатор_страницы>

    Ссылка на другую информацию.  В настоящий момент  обсуждаются
    различные варианты синтаксиса.




    Директивы служат для удобства составления сборников.

#Include <имя_файла>

    В этом месте будет включен файл (предполагается, что файл в
    формате LYRICS).

    Важно: директива #include заканчивает текущую страницу.


#Define <идентификатор> <строка>

    Определение макроподстановки.   В дальнейшем вместо  <строка>
    можно  будет  использовать  @<идентификатор>  (см. п.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}я.                         |
    |                                                          |
    |Что же делать, что же делать?                             |
    |Постучаться в ваши двери                                  |
    |И, как-будто от убийцы,                                   |
    |От себя себя спасти.                                      |
    |Первым к вам войдет отчаянье,                             |
    |Следом я - ваш Чарли Чаплин,                              |
    |Жизнь как тросточку кручу я,                              |
    |Сделав грустные глаза.                                    |
    |                                                          |
    +----------------------------------------------------------+




    Максимальная длина строки                   - 255 символов
    Максимальная длина идентификатора (метки)   - 20 символов
    Максимальное количество строк на странице   - 16k-4

    Допустимые  символы  в  метках/идентификаторах  (регистр букв
    игнорируется):
        "0"-"9", "A"-"Z", "a"-"z", "_"




        Набор   служебных   строк   не   окончателен,   возможно,
    потребуется   его   расширение.   Но   это   не  должно  быть
    критическим  событием,  т.к.  наверняка  можно  будет сделать
    добавляемые параметры опциональными.

        Пока не  уточняется кодировка,  в которой  набрана песня,
    подразумевается альтернативная.

        В силу ряда причин возможно, что в каких-то произведениях
    будет иметь  место замена  букв кириллицы  на аналогичные  по
    написанию латинские - в первую очередь это относится к "H"  и
    "р". Хотелось бы, однако, чтобы подобные замены были хотя  бы
    сведены к минимуму или  вообще отсутствовали, т.к. это  может
    затруднить  работу  с  текстами  (например,  поиск по тексту,
    сортировка и т.п.).

        Для  работы  с  lyr-файлами  можно использовать программу
    AMBER',  обсудить  работу  которой,  высказать  пожелания  по
    дальнейшему  развитию  программы  и  формата  LYRICS  можно в
    конференции RU.AMBER'.BETA.


Популярность: 1, Last-modified: Mon, 02 Sep 1996 06:11:03 GmT