У программы Пианола новый интерфейс

  Программа для создания нотных записей «Пианола» входит в число программ большого музыкального проекта http://proza.ru/2018/06/26/656

  Она - начальная программа этого проекта. По имеющимся нотам, с её помощью, создаётся нотная запись в мнемонической форме, то есть в форме значков, отображающих ноты, паузы и другие знаки, встречающиеся в нотной строке. Эта запись понятна как человеку, так и компьютеру, её можно проиграть и проверять правильность звучания на слух, а также проверить правильность времени звучания как строки целиком, так и отдельных её фрагментов, то есть проверить правильность нотной записи на счёт.
  После того, как эта проверка проведена, программа «Пианола» делает партитуру – текстовый файл, содержащий частоты нот и длительности их звучания, а также указания на паузы. Следующая программа - «Трио», читает партитуры, созданные «Пианолой», и делает файл со звуковой записью. Этот файл можно опять же проверить на слух, а затем внести в партитуру поправки и специальные указания, сделав пометки, обозначающие аккорды и все нюансы воспроизведения звука того музыкального инструмента, который присутствует в ансамбле «Трио».

  В настоящее время программа «Пианола» обрела новый, дополнительный интерфейс. Скачать «Пианолу» в современном её варианте можно здесь https://disk.yandex.ru/d/eaikSHHvURQoAg
 Для чего понадобилось делать новый интерфейс и о том, как он устроен, об этом я Вам сейчас расскажу.

  Работает программа «Пианола» просто – мы видим перед собой нотную строку, в которую с помощью нажатий клавиш на клавиатуре ноутбука можно записывать обозначения нот, пауз, знаков альтерации, указания на убыстрения и замедления темпа и прочие нюансы музыкального исполнения.
  Чтобы это делать было удобно, клавиатура ноутбука уподобляется клавиатуре фортепьяно – в ряду черных клавиш с цифрами цифры 148 заклеиваются белым скотчем, и тогда сразу становится ясно, какая клавиша какой ноте соответствует – незаклеенные чёрные клавиши верхнего ряда это чёрные клавиши фортепьяно, а клавиши рядом ниже, это белые клавиши фортепьяно. Первая октава и большая часть второй октавы у нас таким образом получается.
 
  Ряд клавиш ещё ниже дублирует чёрные клавиши и белые в промежутках между чёрными. При обычной настройке такое дублирование является излишним, но программа «Пианола» может настраиваться на 19-ти полутонный звукоряд. В отличие от классической настройки на 12 полутонов, октава в нём разбивается на 19 интервалов. Настройка по квинтам и квартам заменяется на настройку по терциям и секстам. Такой звукоряд обладает гармоничным звучанием терций и не требует равномерной темперации.
  При такой настройке верхние черные клавиши имеют диезные обозначения, а дополнительный третий ряд имеет бемольные обозначения, и символы с такими обозначениями можно вводить, нажимая клавиши на третьем ряду.

  Удобства удобствами, но хотелось бы всё же иметь перед глазами не компьютерную а нормальную клавиатуру, тем более, что в нотной записи кроме обозначения нот имеется множество других знаков, которые непонятно как на клавиатуре ноутбука набирать.
  В старом варианте для этого использовались нажатия нижнего ряда клавиш и совместные нажатия с Shift, Ctrl и Alt, что, как вы понимаете, было не совсем удобно, все эти комбинации приходилось всё время держать в голове.

  Потому и пришла мысль сделать панель с клавиатурой и кнопками такой, какой она показана на иллюстрации. Панель располагается на месте поля Help и имеет те же размеры, то есть, она естественным образом дополняет опции прежней программы и органично вписывается в неё.
  Панель представляет собой рисунок (PictureBox) с маленькой строкой комментариев внутри него. Все действия ведутся кликами мыши по этому рисунку. В отличии от панели ноутбука, клавиши и кнопки рисунка обособлены и имеют понятное функциональное назначение – клавиши клавиатуры записывают в нотную строку обозначения нот, а белые кнопки записывают символы, которые написаны на них.
  Цветные кнопки управляют программой и имеют специальное назначение.

  КАК УСТРОЕНА ПРОГРАММА

  В программе «Пианола» может использоваться до 50-ти строк с нотными записями, подобных той рабочей строке, которую вы видите на иллюстрации. Но строка на иллюстрации, это не одна из них – строки с нотными записями невидимы. Однако, они пролистываются кликами по кнопкам «вверх» и «вниз» и при этом показываются в рабочей строке, сменяя друг друга, а запись 1(3) на иллюстрации показывает, что текущей является первая строка из трёх, имеющихся в памяти программы.
  Кнопка «добавить» добавит четвёртую строку к имеющимся трём, и эта строка будет пустой, но не будет показана. Кнопка «удалить» удалит текущую строку, но сохранит её содержимое в буфере. А кнопка «вставить» вставит строку, находящуюся в буфере на место текущей и покажет её содержимое в рабочей строке.

  Итак, нотные строки, с которыми работает программа, составляют общий массив, и он не виден, а видна рабочая строка, которая как бы находится над общим массивом.
  Записывая или корректируя нотный текст, мы пользуется именно этой строкой, и единственная возможность перенести её содержимое в текущую строку общего массива – это нажать клавишу «Enter». А чтобы пользователь сразу увидел это действие, рабочая строка окрашивается в зелёный цвет.
  На новой панели кнопка «Enter» имеется. На этой панели имеются все кнопки, соответствующие нажатиям горячих клавиш во всех их комбинациях. Зелёная кнопка «считать» производит обратное действие – она считывает содержимое текущей строки и переносит его на рабочую строку. Это же действие может быть совершено горячими клавишами Shift/Enter.

  Розовая кнопка «Q» меняет указание на знаки альтерации, то есть, меняет диезы в обозначениях нот на бемоли и обратно.
  Жёлтые кнопки передвигают красную стрелочку под рабочей строкой. Стрелочка передвигается на одну ноту, и при передвижении вправо эта нота звучит – бикает разным тоном. Не очень красиво, но различить высоту тона можно.
  Голубые кнопочки проигрывают ноты красивым звуком фортепьяно. Первая проигрывает фрагмент строки от её начала до места, отмеченного курсором, а вторая проигрывает строку целиком. При проигрывании ведётся счёт проигранных четвертей. На иллюстрации число 4.75 показывает результат счёта.
  Серенькая кнопка со стрелочкой в этом же ряду удаляет символ слева от курсора. А вот передвижение курсора кнопками сделать не удалось, для этого нужно использовать клавиши ноутбука.
  Кнопка «очистить» очищает рабочую строку.

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

  КАК РАБОТАЕТ НАРИСОВАННАЯ ПАНЕЛЬ

  Идентификация элементов графики по цвету мною уже ранее использовалась http://proza.ru/2022/12/19/927 и сейчас я решил поступить точно так же.
  Каждая клавиша и каждая кнопка на нарисованной панели имеет свой уникальный номер, и находится этот номер в двух младших битах цветовых RGB компонент. На восприятие цвета содержание младших бит ровно никакого влияния не оказывает – вы видите все кнопки в одинаковом белом цвете, а чёрные клавиши одинаково чёрными, однако это не так.

  Простенькая программа извлекает из цвета зашифрованный в нём номер, и такая же программа цветовой номер цвету придаёт. Кнопки рисуются в виде прямоугольников, примыкающих друг к другу, а номер, зашифрованный в цвете, постепенно увеличивается. Затем поверх кнопок делаются надписи. Тонким шрифтом и чёрным цветом – если случайно клик попадёт на этот цвет, то будет прочитан номер 0 и никакого действия произведено не будет. То же относится и к серому фону, на котором нарисованы кнопки.

  После того как клик сделан, программа определяет по цвету пикселя в точке клика порядковый номер графического элемента и осуществляет перекодировку – обращаясь к двум массивам целых чисел, извлекает код горячей клавиши и переменную Sh, указывающую на то, какие дополнительные клавиши должны быть нажаты. При нажатом Shift Sh=1, при Ctrl - Sh=2, при Alt - Sh=4, и тому подобное.
  Далее, получив эти данные, программа действует как обычно.

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

__________
12.01.2024

Видео о работе с программой Пианола имеется тут - https://youtu.be/6mn97InHQu0
Для того, кто программирует – исходники новой «Пианолы» находятся в этой папке - https://disk.yandex.ru/d/sHXfriFnepIT5A


Рецензии
Вот смотрю на Вашу картинку и сердце колет: как же быстро мы пробежали (или – нас прогнали?) по большому полю щедро усеянному простым и понятным, нужным и полезным... И вбежали (или – нас вогнали?) в мрачный лес, густо напичканный "виртушвальностью" и заумью... Как говорится – по хлебным крошкам да в волчью яму.

— Держитесь, Могиканин Вы наш!
Здоровья Вам!
С наилучшими,

Хомуций   12.01.2024 13:44     Заявить о нарушении
)) Спасибо! Значительная часть жизни проходит в виртуале. Увы, таковы реальности сегодняшней жизни пенсионера. А так на лыжах покататься хочется. Куда там, если хожу еле-еле.
))
А мой любимый велосипед? Только воспоминания о нём остались. И стихи на эти темы я люблю.

Дмитрий Маштаков   12.01.2024 13:50   Заявить о нарушении