Глазурь / Glazeur

Тема в разделе "WASM.PROJECTS", создана пользователем Paguo_86PK, 11 окт 2017.

  1. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    Так же, как и «Жестурь», «Глазурь» (видео) написана в среде Windows'XP под VMware в MS-VC-6. Как и «Жестурь», «Глазурь» требует наличия нескольких клавиатур, так как морганием тремя светодиодами мало кого удивишь…
    В отличии от «Жестури», «Глазурь» - консольный проект.
    Перетаскиванием файла на программу запускает «неуправляемый» режим, где все действия описываются в файле сценария. После выполнения сценария программа закрывается.
    Если запустить программу со специальным ключём, она перейдёт в «интерактивный» режим, в котором можно непосредственно отрабатывать отдельные фрагменты сценария и «отлаживать» их. Также, этот режим позволяет клавишами цифровой части клавиатуры непосредственно выбирать один из десятки «эффектов», а цифрами алфавитно-цифровой части клавиатуры выбирать «под-эффект».
    Когда разрабатывался «синтаксис» сценариев, были варианты с использованием стандартных языковых токенов, типа «pause», «speed» или «clear». Но, через пару суток от такого «классического» варианта пришлось отказаться из-за банально и громоздкости (желающие, кстати, могут составить мне конкуренцию и написать подобный автомат со сценариями на XML-разметке :rofl: и с поддержкой всех 127 клавиатур :grin: ).
    Посмотрев в сторону языка АПЛ с его смелыми решениями с большим числом пиктографических операторов, после изучения Unicode-страниц я пришёл к идее, что описывать перемигивание индикаторами клавиатур легче не восьмиричным кодом, а набором Брайля с диапазоном U+2800…U+28FF, который почти идеально подходит для визуального описания «эффектов»…
    Современные технологии позволяют достаточно легко и быстро делать наброски сценариев из богатого ассортимента Unicode-символов и практически отказаться от стандартных ключевых слов. Правда, достаточно сложно «заставить» окно консоли отображать все необходимые символы как есть. Но главное, что консоль вообще нормально «кушает» фрагменты из экзотических символов и обрабатывает их как надо в режиме реального времени через copy-paste.

    Что это такое?
    При помощи «Глазури» с наличием десятка клавиатур предоставляется уникальная возможность описывать различные эффекты достаточно красивой сложности.
    Можно заставить просто перемигиваться индикаторами в такт нотам трекерной музыки, предварительно сохранив мелодию в текстовом варианте. В этом случае, программа отыщет окно ModPlug-Tracker'а и запустит воспроизведение, чтобы синхронно интерпретировать ноты миганием.
    А можно заранее потрудиться и описать эффекты на «Глазурь-скрипте», что является достаточно мощным средством.
    Главное - иметь как можно больше клавиатур и верно задать логический порядок клавиатур.

    Краткое описание токенов
    Код (Text):
    1. Сигнатура   Краткое описание назначения и действия   Пример использования   Область действия*
    2. i⃣        Выборка активного параграфа эффектов               0⃣ …9⃣            Сценарий
    3. §i      Выборка активного параграфа эффектов               §0…§9           Сценарий
    4. n§      Выбор строки эффектов в активном параграфе         0§…99§          Сценарий/Параграф
    5. n§i     Выбор параграфа эффектов                           99§0…45§6…0§9   Сценарий
    6. i⌨      Выборка базовой (первой слева) клавиатуры          1⌨…9⌨          Сценарий/Параграф
    7. n⌨      Задание логического порядка клавиатур              12⌨…987654321⌨ Сценарий
    8. n♻      Задание частоты ШИМ/обновления индикаторов (Hz)    1♻…1000♻       Сценарий/Параграф
    9. n⏱      Установка базового интервала задержки сценария     1…1000⏱       Сценарий
    10. 0⏱      Установка базового интервала задержки в параграфе  0⏱            Параграф
    11. n⁄d⏱    Определение интервала паузы в параграфе            1…2⅛…3⅘⅞⏱     Сценарий/Параграф
    12. ⏱       Организация паузы «проигрывания» эффекта           ⏱             Сценарий/Параграф
    13. n⤴      Переход строками выше в активном параграфе         ⤴…1⤴…99⤴     Сценарий/Параграф
    14. n⤵      Переход строками ниже в активном параграфе         ⤵…1⤵…99⤵     Сценарий/Параграф
    15. ↝       «Проигрывания» эффекта активной строки параграфа   ↝              Сценарий
    16. n(…)    Организация зацикливания n-раз                     1(↝)…99(↝⤵)   Сценарий/Параграф
    17. §(…)    Управление выбранным параграфом                    §(0⏱⅘⏱⤵)     Сценарий
    18. ⠿       Управление индикаторами клавиатуры                 5(⠪⠝⠿⠽⏱)     Сценарий/Параграф
    19. ⇡/⇣     Управление яркостью (ШИМ**) индикаторов            12(⇣⠿⠿⏱⇡⠿⠿⏱) Сценарий/Параграф
    (* - примечание: Действие некоторых операторов отличается в рамках общего «сценария» и строк «параграфов»)
    (** - примечение: ШИМ достаточно быстро мерцает индикаторами и не все модели клавиатур это адекватно тянут. Некоторые «захлёбываясь» тупо хаотично вяло мигают)

    Синтаксис скрипта
    Если строка начинается любым символом из ascii-набора - она воспринимается как комментарий. Исключение - интерактивный режим с вводом директив.
    Если строка начинается символами параграфа § с цифрой, то открывается параграф указанного индекса. Следующим символом табуляции существующий параграф дополняется очередной строкой. Любой другой символ создаст параграф вновь.
    Если строка начинается табуляцией в пределах текущего параграфа (не было пустых строк), параграф продолжается дополнением этой строки.
    Если цепочка символов описания эффекта встречает символ табуляции, остальные символы считаются комментарием.
    Если строка начинается символом табуляции за пределами любого из параграфов (после пустых строк), она считает основным телом сценария и начинается интерпретация токенов.

    Пример
    Код (Text):
    1. 1⃣ 0⏱⅒⏱⤵⇥Clockwise curve rotation paragraph
    2. ⇥       ⠑⠄⏱⠘⠄⏱⠈⠆⏱⠀⠇⏱⠠⠃⏱⠰⠁⏱⤵⇥       Goto down
    3. ⇥       ⠔⠁⏱⠔⠂⏱⠤⠂⏱⠤⠄⏱⠢⠄⏱⠒⠄⏱⤵⇥       Goto down
    4. ⇥       ⠑⠄⏱⠱⠀⏱⠣⠀⏱⠇⠀⏱⠎⠀⏱⠜⠀⏱⤵⇥       Goto down
    5. ⇥       ⠔⠁⏱⠒⠁⏱⠊⠁⏱⠉⠁⏱⠉⠂⏱⠑⠂⏱1⃣ ⇥       Goto up to row #1
    6.  
    7. 2⃣ 0⏱⅒⏱⤵⇥Bidirectional line rotation paragraph
    8. ⇥       ⠑⠄⏱⠸⠀⏱⠔⠁⏱⠒⠂⏱⇥       Clockwise cycle
    9. ⇥       ⠑⠄⏱⠒⠂⏱⠔⠁⏱⠸⠀⏱⇥       Anticlockwise cycle
    10.  
    11. Here is beginning of scenario
    12. Set keyboards order to 4251 and select #4 as first/left
    13. ⇥       1524⌨1⌨
    14. Set 50Hz of delay and use 100Hz of refresh
    15. ⇥       50⏱100♻
    16. Use paragraph #2 and initialize to 4/5 of 50Hz delay.
    17. Loop 5 times for 4 times of «anticlockwise» and 3 times of «clockwise» rotation FX
    18. ⇥       2⃣ §(0⏱⅘⏱⤵) 5(2§ 4(↝)1§ 3(↝))
    19. ⇥       2⃣ 0§↝ 5(2§ 4(↝)1§ 4(↝))⇥       Goto head-row of paragraph #2 and loop
    20. ⇥       1⃣ 5(4(↝))⇥      ⇥      ⇥       Loop for 5 over 4 times of paragraph #1 FX
    Ссылки
    Скачать исходный текст можно БУДЕТ на страничке проекта.
    (В данный момент исходный текст программы имеет множество закомментированных участков и разных «рудиментов» тестирования (поймите меня правильно: в сети ничего подобного я не нашёл и шагаю по «граблям»), что сильно уродует листинг)
    В ближайщее время (до конца года) исходный текст появится. А пока - бесконечный цикл «тестирование-отладка-дополнения». И в основном - утром на свежую голову.

    P.S.: Может я плохо пользуюсь гуглом, но прежде ничего подобного я не встречал… :agree:
    Попадались видео с синхронной печатью нескольких матричных принтером, для достижения музыкального скрежета. Попадалось и мерцания с использованием PIC'ов…
    Даже сон недавно видел, как сижу и занимаюсь резьбой по дереву (когда работал над «Жестурью» и уже пытался моргать «Глазурью»)… Подсознательный намёк на то, что занимаюсь абсолютно бесполезным, но эстетическим ремеслом? :scratch_one-s_head:
     
    Последнее редактирование: 11 окт 2017
    _edge нравится это.
  2. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    В точку.
     
  3. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    631
    Адрес:
    Russia
    Тут сайт создателей фонариков на солнечных батареек, все нормально :)

    Сегодня починил Slot1 мать MSI ms6182, доволен как слон. Дело не в том, что ей почти 20 лет, а в самом процессе :)
     
  4. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    Корочe, выложил в репозиторий пока «Глазуриста» - html-редактор «Глазурь-сценариев» с визуализатором…
    К сожалению, ссылка непосредственного просмотра почему-то даёт сбой и скрипт не работает вообще.
    (Если знаете причину, будьте добры открыть «тайну») :boredom:
    Если не поленитесь, скачаете файл на диск и откроете его таким способом, то готовый демонстрационный сценарий можно будет увидеть в действии нажатием кнопки «Compile»…
    Код (Text):
    1. Here is beginning
    2. ⇥ 11⌨1⌨1000⏱1♻
    3. ⇥ 5(2⅒⏱2(⠔⠁⏱⠒⠂⏱⠑⠄⏱⠸⠀⏱1⅒⏱)⠇⇡⌨)
    4. ⇥ 4(⇣⌨⠿⠿⠿⏱9(⇣⠿⠿⠿⠿⠇⏱))
    5. ⇥ 6(9(⇣⠿⠇⏱)9(⇡⠕⠅⏱)9(⇣⠕⠅⇡⠪⠂⏱)9(⇡⠿⠇⏱)⇡⌨)
    Справа - набор символик, кликая по которым можно «сооружать» собственный сценарий достаточно легко и быстро… Правда, на данный момент не все эффекты реализованы и только зарезервированны, так как скрипт вручную портировал с оригинально Си-проекта и имелось очень много специфических сложностей (указатели - одна из многих). :boast:

    P.S.: На разработку html-сценариста потратил около суток, чтобы и самому можно было быстро набирать сценарии и вставлять в консоль для реальной проверки на физических клавиатурах. А так же здесь поделиться, чтобы вы имели общее представление о моей идее, задумке и реализации… :beach:
    Позже выложе ещё видео с пятью клавиатурами, когда отлажу всё это собственно барахло. (достали ошибки в самых неожиданных местах :bad: )
     
  5. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    Кaк оказалось, github не терпит многих экзотических unicode-символов в строке адреса. Потому, пошёл на хитрость: Просто заменил все "%uXXXX" на "%25uXXXX" и подкорректировал парсер адреса.
    Теперь ссылка «Глазуриста» работает как надо и эффекты можно увидеть в действии простым нажатием кнопки «Compile Glazeur-scenario»… :beach:
    (После компиляции сценария прогресс-бар справа от кнопки является кликабельной ссылкой на этот новый сценарий, которую и можно публиковать здесь - быстро и просто :declare: )

    P.S.: Не знаю, к месту ли… :blush2:
    Но не плохо же будет, если я здесь объявлю мини-конкурс на лучший сценарий, который я скормлю затем своей программе и сниму всё на веб-камеру в более хорошем качестве. :meeting:
    Главная загвоздка в том, что если я использую абсолютно все доступные мне клавиатуры, то их число будет равно пяти (консольная Глазурь и html Глазурист поддерживают ровно 9). ;)
    Так что, на досуге можете, если захотите, набросать свой глазурь-сценарий для пяти клавиатур и я к новому году сниму новое видео моргания физических клавиатур :declare:
    (Так как проект в целом всё ещё активно жарится, в нём появляются новые интересные фишки. Достаточно стабильные из которых буду описывать на главной страничке github-проекта. Из набора значков в редакторе можно видеть, что зарезервировал красивых значков я достаточно много, но назначения им ещё не придумал)
     
    Последнее редактирование: 13 окт 2017
  6. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    Итaк, предварительный черновой рабочий вариант можно скачать этой ссылкой.
    После распаковки, в папке «Glazeur» откройте файл Glazeur.exe (VirusTotal-анализ)…
    Раньше консоль была более гибкой, но на данный момент рекомендую лишь несколько стабильных опций:
    Введите «:» (двоеточие) для запуска сохранённого скрипта текущей сессии (по-умолчанию - сессия #1 и папка /session_00000001/);
    Введите «.» (точку), чтобы завершить текущую сессию;
    Жмите ESC во время исполнения сценария для его прерывания…

    Был несколько обновлён и доработан также Глазурист. Практически всё, на что способна оригинальная консольная программа, доступно и в рамках «Глазуриста»…
    Тем самым, скопировав с окна Глазуриста свой собственный глазурный сценарий в буфер обмена, его можно вставить в окно консоли правым кликом, после чего начнётся его немедленное исполнение. В папке текущей сессии файл сценария также обновится.

    Как пользоваться: Что в окне консоли, что в поле ввода страницы Глазуриста, можно нажимать клавиши 0-9 левой части клавиатуры, клавиши 0-9 правой части клавиатуры, а также клавиши A-Z. Что будет переключать исполнение сценария на соответствующую метку непосредственно в режиме реального времени. Если метка определена в сценарии, нажатие клавиши, закреплённой за ней, переключит исполнение на ту метку…
    (В Глазуристе достаточно полный набор токенов-значков с всплывающими подсказками, удобными для интуитивного изучения)
    Естественно, в каждом сценарии свой собственный набор «интерактивных меток» со своими эффектами…

    P.S.: Можете здесь сообщать о багах…
    Возможно Ваша клавиатура не будет мигать, так как она единственная. В этом случае нужно перезадать свою очередь клавиатур в сценарии…