/ilda2

tool that converts ilda animation to wav

Primary LanguageGo

ilda2

Утилита предназначена для пакетного конвертирования файлов ilda-анимации в wav- файлы.

Установка

    go get -u github.com/Sevlyar/ilda2

Для установки утилиты требуется программное окружение Go, устанавливать отсюда:

http://golang.org/doc/install

Использование

Сценарий

Утилита для своей работы использует файл-сценарий (конфигурационный файл), в котором описываются требуемые операции и их параметры. Он представляет из себя текстовый файл в формате json (wikipedia.org/wiki/JSON).

Сценарий имеет следующий формат:

{
    "target-dir": "<dir>",
    "gen-list":   <true|false>,

    "def-opts": {
        "fps":   <fps>,
        "pps":   <pps>,
        "order": "<order>",
        "time":  "<time>"
    },

   "files": [
        {
            "name": "<ilda-file>"
            "fps":   <fps>,
	        "pps":   <pps>,
	        "order": "<order>",
	        "time":  "<time>"
        }, ...
    ]
}

Параметры

Утилита оперирует тремя уровнями параметров (в порядке уменьшения приоритета):

  • Параметры, указанные для конкретного файла;
  • Пользовательские параметры по умолчанию;
  • Встроенные параметры по умолчанию. Если какой-то из параметров опущен, то используется менее приоритетный параметр.

Встроенные параметры по умолчанию имеют следующие значения:

"fps":   15,
"pps":   20000,
"order": "Y|-1X|B|C",
"time":  "*"

Параметр order указывает в какой канал какие данные следует записывать. Каналы идут в следующем порядке: FL FR BL BR. Если указано два канала, то используется стерео - две дорожки, если четыре канала - то квадро. Значения каналов должны быть разделены вертикальной чертой - '|'.

Допустимые значения каналов:

  • X - отклонение по X;
  • Y - отклонение по Y;
  • Z - отклонение по Z;
  • B - бланкинг (включен - +MAX, погашен - 0);
  • C - цвет (номер в таблице);
  • 0 - всегда нулевые значения.

Для значений X, Y и Z могут дополнительно указываться модификаторы-множители, тогда значение кординаты будет домножаться на него перед записью в файл. Множитель указывается числом с плавающей заапятой перед значением канала. Если хотите инвертировать значения, то просто укажите '-1'.

Конвертирование

Утилита отдельно конвертирует каждый кадр анимации, для этого сначала считается допустимое число точек в кадре: pps/fps Потом расчитывается количество повторений текущего кадра: pps/fps/pts_in_frame Если количество точек в кадре больше допустимого, то выдается сообщение и утилита завершает работу, иначе кадр конвертируется и помещается в файл необходимое число раз.

Использование

После запуска, утилита ищет в текущем каталоге файл сценария с именем ilda2.json и читает его. Далее проверяется корректность всех указанных параметров и наличие файлов, если обнаруживается ошибка то будет выдано сообщение и утилита завершит работу.

После этого очищается целевая директория, куда будут помещаться wav-файлы, и последовательно конвертируются указанные ilda-файлы с указанными параметрами. На последнем этапе, если включена эта опция, генерируется список wav-файлов и помещается в целевой каталог.