Мнемонический нотный язык

   Здесь будет дано полное описание мнемонического нотного языка программ «Пианола» и «Пианола_М».

   Эти программы делают записи музыкальных произведений, исходя из имеющегося текста. Текст этот написан на специальном языке, заменяющим обычную систему нотации с добавлением значков, создающих выразительное исполнение. Этот нотный текст полностью эквивалентен звучащей в записи музыке, он компактен, понятен и удобен как для чтения, так и для исправления.

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

   Окно программы Пианола имеет два вида расширения вниз - режим «Help» и режим «Клава». В первом режиме можно ознакомиться с синтаксисом нотного языка и с функционированием программы, а во втором режиме можно работать с ней.

1. СТРУКТУРА НОТНЫХ СТРОК
 
   Нотная строка, в том виде, в котором она хранится в текстовом файле, показана на иллюстрации. Структура её такова:

№  {ПРЕФИКС| НОТЫ }

   Одиночная нота звучит так, как это показано на осциллограмме – в общую её длительность включена и фаза звучания, обрывающаяся не сразу, а сходящая к нулю за 300 семплов (иначе на обрывах звука слышатся хлопки), и посленотная пауза. Посленотная пауза имеется после всякой ноты, при исполнении легато она тоже есть, только очень маленькая.
   Проигрывает ноты, следя за ними и исполняя их, «Интерпретатор строки» - подпрограмма интерпретирующая мнемонический текст. Но прежде чем приступить к этой работе интерпретатор делает первичные установки.
   Первичные установки записаны в ПРЕФИКСЕ в форме цифр. Их значение поясняется на иллюстрации. Последние две позиции префикса указывают на диезы или бемоли в ключе – для диезов указывается их число с пробелом перед ним, а для бемолей на месте пробела записывается знак минус.
 
   Вот пример мелодии, записанной на одном слое:
{Имя мелодии}N0
 1  {05430 0|H8 @.5FE.DC <h*GG >FE.DC <hGG      }
 2  {05430 0|H P93FA.AF HEG.GE DEh*FD <CC       }
,,,
   А это тот же пример, с аккордным сопровождением и на двух слоях:
{Имя мелодии}N1
 1  {05430 0|KH4 @.5FE.DC <h*GG >FE.DC <hGG            }
 1  {15320 0|H2 FA:c:f hCG:c:e FA:c:f h*CG:c:e         }
 2  {05430 0|H3 P93FA.AF HEG.GE DEh*FD <CC             }
 2  {15220 0|H3 h**F/A:c:f h\G/G:c:e h\G/G:B:d hCG:c:e }
,,, 

   Такую структуру строк можно видеть в Блокнотике.
   Работая в программе «Пианола_М» мы видим только один слой выбранной строки, а значения префикса отражаются на кнопках выше строки. Кликая по этим кнопкам, начальные установки каждой строки мы можем подбирать индивидуально.
   Строку со всеми сделанными изменениями мы можем проиграть, но эти изменения не являются окончательными. Чтобы восстановить прежний вид строки и её установок нужно кликнуть по кнопке «считать».
   Кнопка «Enter» закрепляет сделанные изменения.

   Обратите внимание на символ K в начале первой строки во втором примере. Этот знак устанавливает Большой буфер. Буфер накапливает семплы звука, и при работе со слоями или с аккордами, он не должен переполняться. Однако, если мы работаем в одном слое и с одиночными нотами, тогда при переполнении буфера сбоя мелодии не произойдёт – полностью заполненный буфер сбросит накопленные семплы автоматически, а семплы прерванной ноты продолжит записывать в своё начало.

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


   2. СИНТАКСИС НОТНОЙ СТРОКИ
   2.1 ОБОЗНАЧЕНИЯ НОТ И ИХ ДЛИТЕЛЬНОСТИ. ВЫСОТА ТОНА

   В нотной строке значимыми являются только латинские буквы, а также некоторые символы. Кириллица используется для записи комментария.

Символы  ADEFGAB  обозначают ноты установленной октавы,
  а строчные  adefgab  - ноты следующей октавы.
Знаки # - 0 стоящие за знаком ноты, означают диез, бемоль, бекар.

Символы /\ повышают и понижают октаву.
Символы /\ с цифрой за ними повышают и понижают высоту тона на
  указанное число полутонов.
Знак O0 - O7 устанавливает указанную цифрой октаву.
Символы <> увеличивают и уменьшают длительность последующих
  нот вдвое.
Символы <1-<9 и >1->9 дополнительно делают это, но немного,
  на указанную цифрой величину. Таким образом, темп исполнения
  можно менять локально. Эти установки не накапливаются,
  каждый раз локальный темп устанавливается заново.
Символы <0 и >0 сбрасывают локальный темп.

   Вслед за обозначением ноты может стоять цифра -
Цифры 4-1 уменьшают длительность ноты.
Цифры 5-9 увеличивают длительность ноты. При этом
  цифра 7 соответствует ноте с точкой в обычной нотации,
  8 - нота с двумя точками, 9 - нота с тремя точками.

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

Знаки ^ ~ за нотным обозначением увеличивают длительность
  ноты вдвое и вчетверо.
Знаки ‘ ` уменьшают вдвое и вчетверо длительность ноты.

   2.1 ПАУЗЫ И ИХ ДЛИТЕЛЬНОСТИ

Знаки ^ ~ ‘ ` стоящие отдельно от нот означают паузы
  с длительностью равной длительности ноты, вдвое большей,
  вдвое и вчетверо меньшей. Десятичная дробь состоящая
  из точки и цифр за ней (от 1 до 3), стоящая следом за
  знаком паузы увеличивает её длительность.
 
Конструкция Z.) с цифрами до и после точки, задаёт паузу
  произвольной длины.

   2.2 ОБЩИЙ ТЕМП

   Помимо локального темпа имеется два вида общего темпа.
   Темп, выставляемый кнопкой «тонкая регулировка темпа», значения этого темпа - 1, 0.87, 0.75, 1.32, 1.15 запоминаются в префиксе строки, и T-Темп.

T-Темп полагается равным 1 в начале строки, а затем указаниями
  вида T1 его можно менять. Цифры 4-0 ускоряют темп, цифры 5-9 замедляют его. Одиночный знак T устанавливает темп равным 1.
 
   2.3 АККОРДЫ С ПРОИЗВОЛЬНЫМ ЧИСЛОМ НОТ

Знак двоеточия : поставленный на любом месте между нотами,
  совмещает начало звучания последующей ноты с предыдущей,
  создавая тем самым аккорд. Порядок нот, записываемых как
  общий аккорд, безразличен.

   Аккордные цепочки вида C:E:G:c:e могут быть произвольной длины, а  ноты, входящие в аккорд, могут иметь разную длительность, однако длительность полученного аккорда будет определяться длительностью последней входящей в него ноты.

   2.4 АККОРДЫ С ЗАДАННЫМ ЧИСЛОМ НОТ

Знак двоеточия с цифрой :Ц задаёт цепочку аккордов, состоящую
  из начальной ноты и следующих Ц нот. После окончания аккорда
  к нему можно добавлять ноты, предваряя их знаком :

   Например  C:3EGc  DFAd  EGBe:g:b  CEcG;

Знак  ;  отменяет режим заданного числа нот, а поставленный
  повторно вновь включает его (с тем же значением Ц). 
  Знак  ;  появившийся в строке впервые, задаёт аккорды с Ц=1
  Знаки  :0  тоже отменят режим заданного числа нот.
  Знак  x  делает ПОВТОР предыдущего аккорда с заданным числом нот.

   Например  C:1E\BdA/C;EGBE;G:B>xx  будет исполнено как три аккорда из двух нот каждый, за которыми последуют три одиночные ноты и аккорд из трёх нот, повторенный 2 раза и более быстро.

   2.5 СОВМЕЩЕНИЕ НОТ В АККОРДАХ

   Семплы исполняемых нот и пауз накапливаются в буфере. 
   При исполнении ноты, индекс заполнения буфера i возрастает, но индекс начала её звука запоминается как ioo.  И когда исполняется аккорд, то каждый раз, при появлении его очередной ноты, индекс i возвращается на начальное место предыдущей ноты. Таким образом, звук новой ноты добавляется к звукам, имеющимся в буфере. Так постепенно, нота за нотой, в буфере накапливается аккорд.

   Одновременно вводится регулировка громкости нот - амплитуды звука не просто складываются, а ещё и ослабляются. Делается это так, чтобы все ноты аккорда были равноправны по своей громкости, а получаемый аккорд не был бы излишне громким. Например, при сложении первых двух нот, для каждой из них устанавливаются ослабляющие коэффициенты 0.612, третья нота ослабляется ещё сильнее.
   Результирующая громкость звука аккорда, в сравнении с 1 для одиночной ноты, оказывается такой - 1.224 1.43 1.344 1.287 1.246 со стремлением к громкости двухнотного аккорда. 
   Хорошо это или плохо? С одной стороны хорошо - звуки больших аккордов не гремят, звуки аккордов с малым числом нот соответствуют реальности, корректировать их громкость обычно не приходится.

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

   2.6 РЕГУЛИРОВКА ГРОМКОСТИ ЗВУКА

   Символ  H  устанавливает единичную громкость звука. Она же является и начальной, однако в начале строки громкость звука рекомендуется устанавливать явно - громкость сохраняется при переходе со сроки на строку и со слоя на слой, и поэтому она не всегда может не оказаться такой, какая ожидается.
   Символ H с цифрой, такой, как H5-H1 создаёт громкость меньшую, а с такой - H6-H9 - громкость большую, чем 1. Точка за цифрой усугубляет изменение, создавая промежуточную громкость.
H* H*. H** - громко очень и ещё более, H. H.. - очень и совсем тихо.

   Символ  h  задаёт относительную громкость (от уровня H).
   h5-h9 делают звук следующих нот громче, а h4-h0 - тише. Одиночный символ h чередует предыдущую громкость с установленной.
   Знаками  h* h*. h** делается однократное усиление громкости следующей ноты, а знаками  h. h.. h.* делается однократное ослабление громкости. Действие знаков относительной громкости сбрасывается в начале каждой строки.

   Символ  P c цифрой создаёт дополнительное и постепенное изменение громкости нот. Знаки  P6-P9 создают крещендо, а знаки P5-P1 создают диминуэндо. Самое плавное - P5 диминуэндо. Знак P0 останавливает изменение громкости.
   Второй цифрой после P можно указать количество нот, на которые будет процесс распространён. Например, указание P95 создаст плавное и заметное возрастание громкости на 4-х следующих нотах. 
   Одиночный знак P не связан с громкостью, он управляет режимом педали (см.ниже).

   2.7 РАБОТА ПЕДАЛИ

   Знак  @ без цифры обозначает нажатие и снятие педали. Педаль изменяет звук любого инструмента, даже того, в котором она не предусмотрена.

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

   Число после педали обозначает глубину её нажатия, а точнее - время её действия. Это число может быть обозначено цифрой  @1-@9 или точкой с цифрой @.1-@.9 
   В указанное время семплы ноты не просто продолжаются, а и дополнительно уменьшаются в своей интенсивности по линейному закону, так, что в самом конце звук педали не обрывается, а плавно сводится к нулю. Поэтому звук короткой педали на стаккато слышится в посленотной паузе иначе, чем если бы это было просто удлинением звука активной фазы стаккато, и на этом тоже можно играть.    

   Аккорды на педали имеют особенность - по описанному выше алгоритму после аккорда в буфере педали остаётся звук только последней его ноты. Что в некотором смысле неплохо - аккорды меньше гремят, а выбирая для аккорда последнюю его ноту, можно особым образом управлять его послезвучием.
   Однако имеется возможность получать от аккорда полное продолжение его нот - для этого служит одиночный символ  P, он включает, он же и отключает этот режим.

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

   2.8 НАЛОЖЕНИЕ ЗВУКА НОТ ВНЕ АККОРДА 

   Наложение нот вне аккорда встречается в музыкальной практике. В примере на иллюстрации клавиша ноты Ре_бемоль нажимается и удерживается первым пальцем, а затем другими пальцами проигрываются ноты До и Си.
   Такое исполнение можно записать в форме  <D-7>:D-7cB' но вот беда, в начале исполнения ноты До звук Ре оборвётся, и красивого долгого звучания его мы не услышим. Кроме того, дополнительное короткое Ре, создавая аккорд, увеличит громкость этой ноты в сравнении с последующими звуками, и это неудобно.
   Правильное исполнение этих нот получается так  <D-7>:=3?D-7cB'  здесь появились два новых указания - =3 и ?

Указание  ? делает звук следующей ноты неслышимым.
Указание  = вводит режим наложения звука на следующую ноту.
  Цифра за знаком = указывает на число таких нот, = или =1
  это одно и то же,  =* выполняется до конца строки.

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

   2.9 АРПЕДЖИАТО

   Исполнение нот аккорда в режиме арпеджиато можно делать разными способами. Легче всего его сделать из обычного аккорда, легче всего сдвигать начало очередной ноты на некоторое заданное значение. Синтаксис назначения арпеджиато такой:

C::3:E:G:c   цифра после двух двоеточий указывает на задержку
  между нотами. Цифра 0 даст очень короткую задержку,
  совсем без цифры - будет ещё короче.

   Цепочку нот можно сделать сколь угодно длинной. Однако, поскольку арпеджиато делается на базе аккорда, то ноты в нём будут постепенно терять громкость. Если нот немного, то такой эффект легко исправить, а иногда он может быть даже желательным.
   Такая запись  =4C::3:E:G:c  исправляет ситуацию кардинально.

   T -АПРЕДЖИАТО

   Второй способ назначения арпеджиато - специальный. В нём ноты записываются вслед за символом T с двумя цифрами и не разделяются двоеточиями. Выглядит такая запись так:

T45\Bcegb/ceg/cS   первая цифра меняет длительность ноты -
  цифры 5-9 длительность увеличивают, а 4-0 укорачивают её.
  Длительность нот арпеджиато может быть различным, но темп
  определяется по длительности звука 1-й ноты. Вторая цифра
  задаёт задержку нот друг относительно друга. Если вторая
  цифра 0, то это аккорд.
    В такой конструкции может быть и третья цифра, она создаёт
  постепенное замедление исполнения нот (4-9) или ускорение
  его (3-0). Символ S оканчивает запись арпеджиато и сбрасывает
  накопленные в буфере семплы.   

   Для того, чтобы звуки арпеджиато казались естественными, интервал между нотами немного, и случайным образом, меняется. В результате длительность арпеджиато оказывается нестабильной. Это вызывает трудности в согласовании последующих нот на разных слоях.
   Решается эта проблема так - длительность последней ноты увеличивается до желаемой длительности звучания всего арпеджиато в целом, а при исполнении этой ноты, её звук обрезается как раз на этом самом месте. Одиночный символ T, поставленный перед последней нотой, указывает на неё, и одновременно нормализует темп.
   Выглядит эта конструкция так:

T047GB-c#eg/BceTb~    нота b~, конечная нота арпеджиато, при
  установленном счёте 1/4 должна была бы длиться, как целая
  нота, в действительности имеет всё арпеджиато, а его
  последняя нота длится почти вдвое меньше.

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

   X -АРПЕДЖИАТО   

   Третий способ исполнения арпеджиато похож на создание аккорда с двоеточиями, в котором на месте знаков : стоят символы X с цифрами.
   Записи  cX0eX0g  и  c:e:g  эквивалентны друг другу (они создадут аккорд), но запись  cX2eX3g  прозвучит как арпеджиато. Цифры указывают на интервалы между нотами - каждая единица этого числа задерживает звук следующей ноты на 0.03 секунды.
   Недостатком X-арпеджиато является громоздкость, для обозначения арпеджиато со многими нотами такой синтаксис неудобен.

   Одиночный символ X имеет особое назначение - этот знак устанавливает индекс i в начало буфера и вводит режим наслоения звука. Таким способом можно создать мелодию на фоне длящегося аккорда:
  agfe<<XC:E   то же самое можно сделать так <<XCXE>>Xagfe

   Знак X. отключает режим наложения, индекс записи i при этом не изменяется. Режим наложения в принципе можно не отключать, но тогда нужно иметь в виду, что громкость аккордов в этом режиме становится заметно выше.
   Наложения, создаваемые знаками X и =* автономны, режим наложения может быть включён как одним, так и другим знаком. А отключён он только тогда, когда он отключен в обеих опциях.

   2.10 ДРУГИЕ СИМВОЛЫ ЯЗЫКА ПИАНОЛЫ

Строчные l s p n устанавливают режим легато, стаккато,
  пиццикато и нормально до конца строки. Знак n. создаёт
  режим отрывистого звучания (промежуточный между n и s).
  Точка после нотного обозначения и указания на длительность
  ноты создаёт отрывистое звучание только для этой ноты.

Первый в строке знак  + увеличивает длительность следующей ноты
  на 0.2 сек. Этот же знак с цифрой 0-9 увеличивает длительность
  ноты на 0.025 - 0.5 сек. Точка после цифры даст увеличение
  ещё на 0.025 сек.  Следующие знаки + будут создавать такое же
  удлинение нот, поэтому цифру после них можно не ставить.

Знак  +- не меняет длительности звука следующей ноты, но
  задерживает на 0.1 сек её начало. Знаки +-1 - +-9 задерживают
  начало следующей за ними ноты на 0.075 - 0.5 сек. Если
  задержка превышает длительность ноты, то нота не звучит.
  Последующие знаки +- от предыдущих не зависимы.


Конструкция вида  (fg) с нотами внутри скобок означает форшлаг,
  фактически это запись >>>fg<<< в более краткой форме.
Конструкция вида ((fg) эквивалентна записи <<<fg>>> - очень
  долгие ноты.

Скобки  (8) и [8) создают рубато в последовательности следующих
  одинаковых нот. Число этих нот указывает цифра в скобках 3-9.
  Суммарная длительность нот сохраняется. Для скобки вида [8)
  рубато сильнее, но менее заметно, поскольку длительность нот
  меняется более плавно. Кроме того, заданное в таком виде рубато
  можно повторять, указывая одиночный знак [ перед нотами.

Скобка вида  [42) создаёт укорочение звука 4-х нот с шагом 2.
  Укорочение звука указанного числа нот (1-9) даёт шаг 4-1.
  Шаг 5-9 создаёт постепенное удлинение звука нот, замедляя темп
  их исполнения. Одиночный знак [ повторяет действие скобки.
 
Значок  * после обозначения ноты повышает громкость этой ноты,
  создавая звуковой акцент. Поставленный после ноты в аккорде
  с заданным числом нот, этот знак продолжает создавать акценты
  во всех следующих аккордах для нот той же позиции.
  На самую первую ноту серии аккордов знак * действует как
  на одиночную ноту.
Значок  * с цифрой за ним функционирует так же. Цифра задаёт
  громкость акцента - 1-4 меньше, 5-9 больше одиночной *
  Знак *0 в аккорде указывает на последнюю ноту серии акцентов.

Конструкция  Z...) с десятичным числом между Z и скобкой задаёт
  ПАУЗУ длительностью вдвое меньшей, чем указывает число.
  Эта длительность выражена в секундах, и она не зависит
  от текущей длительности ноты.

Указание вида  Z6- или Z6# установит количество бемолей или диезов
  в ключе, заменив начальное указание, вводимое префиксом строки.

Знак  N вводит режим продления действия явно поставленных
  значков #0- распространив это действие на все ноты с тем же
  латинским обозначением до конца строки или до следующего N,
  которое отменит этот режим. 

Знак  ! с цифрой 1-4 за ним установит другую настройку нот.
  0 -стандартная e/t равномерно темперированная настройка,
  1 2 -настройки по квинтам вниз и вверх
  3 4 -такие же настройки по терциям с получением настройки   
       на 19 полутонов в октаве.

   Одиночный знак ! выводит информацию о начале предыдущей ноты, о текущем индексе буфера i и о размере буфера (цифры указывают количество семплов). Клики по строке с этой информацией выводят сведения о громкости и длительности нот в этот момент, об установленной октаве, о наличии и глубине нажатия педали, о назначенных сценариях развития звука и о средствах управления ими.
   Последней даётся информация о темпах. Таких темпов три - Tv темп задаваемый при использовании буквенных скобок (см.ниже) как счёт, T темп задаваемый символом T, Tр выставленный на клавише «тонкая регулировка темпа».
   Информация снимается в момент первого появления знака ! в строке.

Знак  O с цифрой 0-6 за ним устанавливает указанную цифрой октаву.

Одиночный знак O демонстрирует осциллограмму звука следующей ноты,
  а повторный знак O перед другой нотой, накладывает её осциллограмму
  красным цветом. Размер шкалы составляет 1.25 мс/деление.
  Осциллограммы позволяют судить о длительности нот, о форме колебаний
  и о проявлениях эффектов эхо. Осциллограммы показывают звук
  инструмента в чистом виде, без воздействия указаний на громкость,
  и без смешения звука ноты со звуками педали.

   2.11 ТРЕЛИ И МЕЛИЗМЫ 

   Значки  t m обозначают ТРЕЛИ и МЕЛИЗМЫ. Имеется 10 стандартных трелей - t, t1-t9 и столько же мелизмов - m, m1-m9, а также назначаемая трель  t# и назначаемый мелизм  m#.

Синтаксис назначения трели такой:  t$00-204__5$
  Здесь информация о нотах, составляющих трель, идёт парами знаков.
  00 -трель начинается с опорной ноты, -2 -спуск на тон ниже,
  04 -на два тона выше, два знака подчёркивания __ -пауза,
  а конечная цифра 5 задаёт длительность звуков трели.
  Для мелизма последняя цифра игнорируется.

   Аналогично назначается и мелизм. Разница исполнения между трелями и мелизмами состоит в том, что ТРЕЛЬ исполняется нотами установленной длительности, и эта последовательность повторяется до тех пор, пока длительность опорной ноты позволяет это делать, а МЕЛИЗМ замещает своими нотами опорную ноту, подлаживаясь под её длительность, удлиняя или сокращая длительности нот, составляющих мелизм.

   Исполняется назначенная трель так:  t#с а мелизм так:  m#с. Двойная запись t#t#с создаст сквозное исполнение трели - она будет исполнятся на всех последующих нотах, принимая их как опорные.
   Одиночный значок t остановит сквозное исполнение трели.
   Аналогично (только с буквой m) исполняются и мелизмы.
   Стандартные трели или мелизмы назначать не надо, они уже имеются в наборе. Исполняются они точно так же. При желании набор стандартных трелей и мелизмов можно поменять - вывести их в текстовый файл Pianola_list исправить и ввести обратно.

   2.12 ТРИОЛИ ПЯТИОЛИ И ПАССАЖИ

Конструкция  zНОТЫz исполняет заключённые между знаками z ноты
  как триоли и в стиле рубато, то есть, слегка меняя их длительности,
  при фиксированной длине проигрыша. Ноты могут быть разной
  длительности, но пауз среди них быть не должно (паузу может
  заменить нота со знаком ? перед ней). Знак подчёркивания после
  первого z принуждает исполнить ноты не рубато, а по точному счёту.

Конструкция  z z  с пробелом между z, вводит режим точного счёта
  для всех триолей.  Два знака zz, записанные подряд, вводят режим
  рубато для всех триолей. 
 
Не только триоли можно исполнять таким способом.
  Конструкция z1НОТЫz исполняет пассаж рубато не изменяя
  длительности нот. Число из одной или двух цифр большее единицы
  за первым знаком - zццНОТЫz сократит длину нот до 1/цц.
  Таким путём можно создать форшлаг - z9dczB

Другой способ задания триолей такой (-3)EFGBca() эти триоли
  исполняются ритмично, внутри себя они допускают паузы и
  даже аккорды.

Конструкция (-Ч)EFGBca() с отрицательным числом в скобках
  -8 или меньше задаёт последовательность нот с длительностью 1/Ч.
  (-8) -длительность не меняется, (-12) -триоль, (-10) -пентоль.
  Допустимы десятичные дробные числа. Большие отрицательные числа
  создают последовательность очень коротких нот. Фактически такая
  конструкция попросту ускоряет темп исполнения нот.

Положительные числа от 0.1 и меньшие 3-х в конструкции (Ч)EFGBca()
  непосредственно меняют длительности нот в указанное число раз.
  Другие возможности вариации темпа при этом сохраняются.

Для чисел больших или равных 10-ти, последующие знаки строки
 трактуются совершенно иначе - последовательность цифр задаёт
 профиль звука для некоторых музыкальных инструментов (см.ниже).

 
   3. ВСПОМОГАТЕЛЬНЫЕ СИМВОЛЫ НОТНОЙ СТРОКИ
   3.1 ПОВТОРЫ НОТНОГО ТЕКСТА   

   Простейший повтор выглядит так:   r_нотный_текст_RRR   
   В результате фрагмент  _нотный_текст_  выполняется 4 раза подряд.
   
   Совершенно аналогично организованы короткие вставки R1-R3. Для этих вставок фрагмент ограничивается справа символами ,]rRWVyw или концом строки.
   Длинные вставки R4-R9 и R0 используются, чтобы вставлять большие фрагменты нотного текста. Фрагменты длинных вставок начинаются символами r4-r9 и r0, а справа они ограничены запятой или теми же символами с заглавной буквой. Длинные фрагменты могут содержать внутри себя короткие вставки и фрагменты коротких вставок.      
   
   Перед тем, как сделана вставка, имеющиеся во вставке символы A можно заменить на символ Б, делается это так:  [АБ - таких пар, указывающих на замену символов, после квадратной скобки может быть много.
   Вставки и повторы для каждого слоя автономны – если просматривать их, переходя со слоя на слой, то можно заметить, что в разных слоях одни и те же фрагменты имеют разное значение.

   3.2 УПРАВЛЕНИЕ БУФЕРОМ
   3.2.1 РАЗМЕР БУФЕР И ЕГО АВТОМАТИЧЕСКИЙ СБРОС

   Семплы, создаваемые программой, накапливаются с буфере, и даже если буфер достаточно большой, игнорировать его размер не следует. Кроме того, совмещая звук разных слоёв, нужно контролировать начало этих звуков.
   Длина буфера при запуске программы равна 96000 семплов. Этот буфер называется обычным. При скорости раздачи 32000 семплов/сек (такая скорость принята в программе Пианола) в обычном буфере помещается три ноты длительностью 1/4.
   Кнопка над нотной строкой «О/Б» устанавливает большой буфер, увеличивая его размер на 960000 семплов. В большой буфер помещается 30 четвертных нот, что соответствует общей длительности звучания 15 секунд.

Символ  K включает Большой буфер, а этот же символ с точкой -
  K. включает Обычный буфер. Большой буфер существует долгое
  время - до тех пор, пока его не отключат. Если не включён
  большой буфер, то обычный буфер автоматически устанавливается
  в начале каждой строки.

Символ  M устанавливает буфер увеличенного размера на 640000 семплов,
  с общей длительностью звука 10 секунд. Этот же символ, записанный
  виде  M6- или M6# установит указанное цифрой число бемолей или
  диезов в ключе.  Этот размер буфера автоматически не
  устанавливается, поэтому указание M в начале каждой строки
  приходится повторять. Однако, если Большой буфер включён, то
  указание M его не уменьшает.

   Размер буфера и уровень его заполнения i поверяется с помощью значка ! - например, проигрыш строки
C!DEFG даст в информационном поле числа 0 32000 96000,
и строка CDEF!G тоже даст эти же числа, поскольку между нотами E и F произошёл автоматический сброс буфера.

   Если ноту E вдвое удлинить, вот так  CDE^F!GA тогда сброс буфера произойдёт на середине её звука, продолжение звука будет записано в обновлённый буфер, а числа будут такими  32000 64000 96000. И это естественно - первое число показывает на начало ноты F, а началась она после окончания звука ноты E.

   Любопытные результаты мы получим, если заменим ноту F паузой:
 CDE^^!GA  - числа тогда будут такие  64000 64000 96000. Второе число указывает на окончание паузы, но на что указывает первое число?
   Оно указывает на начало прошлой ноты. Это нота E, и её начало было зафиксировано ещё до сброса буфера, вот потому и получается что, первые два числа указывают на одну и ту же точку.

   При автоматическом сбросе буфера внутри строки индекс i устанавливается в ноль, однако сам буфер не очищается, он всё ещё полон семплами прошлого звука, и на этом можно сыграть, установив режим наложения звука.
   В строке CDE^^=G!BA звук ноты G наложится на оставшееся в буфере начало звука предыдущей ноты E, а значок ! зафиксирует место полученного таким способом аккорда - 64000 96000 96000. Что касается следующих нот BA, то поскольку режим наложения был установлен только на одну ноту, они будут записаны в буфер, не смешиваясь со звуками, находившимися там ранее.

   Игры с автоматическим сбросом маленького буфера интересны, но проще работать с Большим буфером, не заполняя его до конца. Тогда можно быть уверенным в том, что цепочки аккордов будут исполнены правильно, а не испорчены неожиданным сбросом буфера.

   3.2.2 УПРАВЛЕНИЕ РАБОТОЙ БУФЕРА

   Работу буфера задаёт символ Y с последующей цифрой или знаком. Наиболее употребительные из этих знаков, а именно Y6,Y7,Y8,Y3 продублированы буквами IJLS.
 
   Семплы, идущие в левый и правый динамик, в буфере чередуются.
 
Знак  I организует запись в канал левого динамика, начиная её с i=0.
Знак  J делает то же самое, заполняя семплами правый, J-канал.
Знак  L организует наложение звука по обоим каналам, начиная
  работу с i=0. Его можно использовать многократно. Знаки IJ
  при своём появлении после L вызывают сброс буфера от 0 по i,
  после чего буфер очищается, и полагается i=0.
Знак  S сбрасывает буфер от 0 по i, после этого буфер очищается,
  и полагается i=0. Знак S автоматически добавляется в конец
  каждой строки, поэтому в конце его можно не писать.
Знак  Y (одиночный) устанавливает обычный режим работы
  (запись в оба канала), продолжая её с индекса i без
  сброса буфера.
Знаки  I* J* не меняют i и не сбрасывают буфер после L,
  продолжая запись на указанном канале.

   То как работают описанные указания легко проверить - если проиграть строку с находящимся в ней знаком !, то при его считывании появляется информация о заполнении буфера, а левее её - чёрный квадратик, кнопочка, клик по которой показывает заполнение буфера семплами.
   Например, строка

Z1- >sdefedlc<d~ W3D;FFAFAGBFAEGDFw9 dAABAGFD^ YHP74dAABAGF^!

заполнит большой буфер так, как это показано на иллюстрации. На клетку приходится 48000 семплов, или полторы секунды длительности звука. Красная вертикальная черта в конце диаграммы показывает положение индекса i в момент считывания знака !. 
 
   Все знаки IJLS обрывают цепочки назначенных аккордов и арпеджиато, поэтому специально об этом заботиться не надо. Одиночный знак Y этого не делает.
   Другие действия, вводимые символом Y, более специфичны и менее употребительны:

Знак  Y0 среди нот аннулирует слышимый сброс этого фрагмента,
  то есть, если сброс происходит, то он происходит фиктивно,
  исчезая из записи. Таким способом можно сделать неслышимым
  один из слоёв проигрываемой строки.
Знак  Y1 очищает буфер без сброса и устанавливает обычный режим.
Знак  Y2 делает то же что и Y3, но сбрасывает буфер целиком,
  то есть, невзирая на позицию i, и вместе с незаполненной
  частью буфера.
Знак  Y4 после сброса и очистки буфера сбрасывает пустой буфер
  ещё раз, делая таким образом перерыв между частями
  музыкального произведения.
Знак  Y9 сбрасывает буфер по минимальному уровню заполнения
  каналов IJ. Оставшиеся в буфере семплы более заполненного
  канала сдвигаются в начало буфера, а остальная часть
  заполняется нулями. После такого сброса индекс i оказывается
  в конце сдвинутой части и заполнение буфера можно продолжить
  с этого места.

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

   Хотя знак сброса S всегда стоит в конце строки, но поскольку за ним нет пауз и нот, то в конце строки сброса не происходит. И именно это состояние буфера мы видим, кликая по чёрному квадратику. Если нужно посмотреть состояние буфера внутри строки, нужно поставить там знак !  и проиграть строку до этого знака. Этот проигрыш делается в режиме Клавы кликом по голубой кнопке >.


   4. БУКВЕННЫЕ СКОБКИ

   Буквенные скобки позволяют получать двухголосие, работая только с одним слоем. В программе «Пианола» слоёв нет и поэтому без буквенных скобок в ней обойтись нельзя. Для программы «Пианола_М» буквенные скобки являются неким синтаксическим рудиментом, бывающим иногда полезным, и поэтому о них следует знать.

   4.1 РАБОТА С БУФЕРОМ НЕБОЛЬШОГО РАЗМЕРА

   Буквенные скобки предполагают небольшой размер буфера, буфер на 96000 семплов вмещает три четвертных ноты, и для музыки вальса он очень подходит.
   Простейшая буквенная скобка имеет вид - W НОТЫ w ноты1. Работает она следующим образом.
   
   Буква W открывает буквенную скобку, если буфер заполнен полностью, то она сбрасывает его, потом очищает, и затем фрагмент НОТЫ записывается в оба канала буфера (начиная с i=0) в особом режиме. Пока эта запись не превышает размер буфера, ничего особенного не происходит - индекс i постепенно увеличивается, и семплы в буфер записываются. Но как только i дойдёт до конца буфера, он начинает топтаться на месте - буфер не сбрасывается, а вычисляемые семплы записываются в последнюю его ячейку. Поскольку каждая нота заканчивается посленотной паузой, после записи НОТ в этой ячейке находится ноль, какой бы длины эти ноты не были бы.
   И этот особый режим продолжается до тех пор, пока из нотной строки не будет считан символ w.

   Символ w закрывает буквенную скобку, переводит индекс i в точку 0 (начало записи фрагмента НОТЫ) и вводит второй особый режим - фрагмент ноты1 записывается только в канал I, связанный с левым динамиком.
   Как только i превысит размер буфера, буфер будет сброшен (но не обнулён), индекс i вернётся в положение 0, и прерванная запись фрагмента ноты1 будет продолжена. В результате, если мелодия ноты1 долгая, то она будет звучать с одним и тем же, повторяющимся через каждые 3/4,  аккомпанементом НОТЫ.

   Если в разгар этого процесса будет считан значок W, то полностью заполненный буфер будем сброшен, а если он заполнен не полностью, то его содержимое игнорируется. Затем буфер будет очищен, i будет положено равным 0, и весь описанный выше процесс функционально повторится.

   Вальс со счётом 3/4 и буквенными скобками может быть сыгран не только в темпе 1/4 в полсекунды, но и в другом темпе - длительность четвертных нот можно регулировать и задавать с помощью T-задания темпа, и тонкой регулировкой темпа. Этим изменениям будет следовать и буфер, автоматически уменьшая или увеличивая свои размеры.

   4.2 НАСТРОЙКА БУФЕРА НА ДРУГОЙ СЧЁТ

В конструкции  W31w первая цифра устанавливает счёт, а вторая - темп.
  Таблица показывает эти установки, в сравнении с установкой T-темпа
  (показано в скобках):

00  -счёт не меняется  -темп не меняется  ( 0.5 )
11  - счёт 5/4  - темп 1     ( 0.6 )
22  - счёт 2/4  - темп 0.7   ( 0.7 )
33  - счёт 3/4  - темп 0.8   ( 0.8 )
44  - счёт 4/4  - темп 0.9   ( 0.9 )
55  - счёт 5/8  - темп 1.1   ( 1.1 )
66  - счёт 11/8 - темп 1.2   ( 1.2 )
77  - счёт 7/8  - темп 1.3   ( 1.3 )
88  - счёт 13/8 - темп 1.4   ( 1.4 )
99  - счёт 9/8  - темп 1.5   ( 1.5 )

Как видно, установки по синтаксису T-темпа почти во всем повторяют установку темпа по синтаксису W--w скобки.

   После того, как буфер настроен на другой счёт, в буквенные скобки можно помещать другое количество четвертных или восьмых нот. На это количество указывает знаменатель дроби.

   4.5 ГРОМКОСТЬ В СКОБКАХ И ПОСЛЕ НИХ

   Цифры после составляющих скобки символов W w задают громкости в этой и последующих скобках, а также после них. Задание это сохраняется при переходе со строке на строку, также, как сохраняется последняя установленная в предыдущей строке громкость. По умолчанию (в начале проигрывания) эти значения равны единице. Затем они могут изменяться.
   Конструкция вида W3w5 позволяет сделать это заранее, не записывая скобок в их развёрнутом виде.
   Снять назначение громкости, связанное со скобками и установить взамен него текущее состояние громкости можно знаком H0. Знаки HH0, например, эквивалентны указанию W1w1.

   4.6 БУКВЕННЫЕ СКОБКИ В БОЛЬШОМ БУФЕРЕ

   В Большом буфере работа идёт на уровне не достигающем полного его заполнения, тем не менее, периодическое использование буквенных скобок возможно. Отличие состоит в следующем.

Открывающий скобку знак  W не сбрасывает буфер. Вместо этого
  программа запоминает индекс его заполнения - iW=i
  а при считывании знака  w происходит обратное - i=iW,
  то есть индекс i возвращается в начало скобки.
  Остальное функционирует так же. За исключение того, что
  все указания на изменение счёта блокируются.
  Только указание  K. может изменить размер Большого буфера.

  Вот пример записи двух тактов вступления с аккордами и мелодии «Легко на сердце от песни весёлой»:

 NE-:G:e- WCw>zG:AB-cz<D:F#:d WE-:F0w>c7B'N YC:2FADFA-<\B-eg>Acf; /FAcf^ece^dB-
 
   тут скобки используются два раза подряд, в конце строки (перед сбросом) Большой буфер был заполнен на 41%.

   4.7 ДРУГИЕ ВИДЫ БУКВЕННЫХ СКОБОК

   Кроме конструкции  Ww имеются буквенные скобки вида Vw vw yw.

Скобка  V НОТЫ w ноты1 функционирует точно так же, как и Ww,
  за исключением того, что цифра после V не устанавливает громкость.
  Если это цифра 0,1,5-9 то она устанавливает темп, так как это
  делает знак T. Если же это 2,3,4 то меняется счёт - цифра указывает
  на число четвертных нот в буфере.
Отдельная конструкция вида  V3w задаёт указанный цифрой счёт в
  более широком диапазоне (см.выше п.4.4).

Скобка  v НОТЫ w ноты1 похожа на скобку Vw, но она не имеет
  отдельной конструкции, задающий счёт.
  Запись НОТЫ внутри этой скобки трактуется как аккорды,
  состоящие из двух нот. Например, запись vCCEGEAw прозвучит
  как одиночное До с аккордами Ми-Соль и Ми-Ля. Внутри скобок
  нельзя использовать паузы, но их можно заменять знаком ?
  с нотой после него.
  Двоеточие за аккордом повторяет его - vEG::w тут аккорд Ми-Соль
  повторится три раза. Синтаксис и функционирование фрагмента
  ноты1 такие же как и во всех буквенных скобках.

Скобка  y НОТЫ w ноты1 аналогична скобке vw, только с аккордами
  из трёх нот. Запись yC?C?CDFA:w будет сыграна как одиночное До
  с двумя аккордами До-Фа-Ля.   


   5. УПРАВЛЕНИЕ ЗВУКОМ

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

   Общий уровень одинаков для всех инструментов, сюда относится управление громкостью звука, включая крещендо и диминуэндо, управление звуком через педаль, а также техники КОНТУР и ГЛИССАНДО, которые мы сейчас рассмотрим.

   Внутренний уровень управления звуком существенно шире. Имея общий синтаксис в форме ТЕМБРА, ШТРИХОВ, РЕГИСТРОВ и КЛАПАНОВ, внутреннее управление для каждого инструмента индивидуально - штрих №1 может означать для одного инструмента одно, а для другого нечто иное.
   Есть, правда, и общие техники, к которым инструменты прибегают. Сюда относится, например создание эхо. Эхо создаёт отдельная подпрограмма - ревербератор. Через ревербератор пропускается звук отдельных инструментов, но не весь музыкальный звук целиком, поэтому может создаваться эффект в котором играет ансамбль скрипка и пианино, но скрипка играет, создавая эхо, а пианино играет без него. Или наоборот.
   О внутреннем управлении звуком мы поговорим в разделе «музыкальные инструменты» (см.ниже).

   5.1 КОНТУР ЗВУКА

   Форма звука у всех инструментов Пианолы однотипна - сначала амплитуда звуковых колебаний линейно возрастает, формируется так называемая атака, она обычно происходит быстро и длится несколько периодов, затем, звук  начинает постепенно спадать по экспоненте - A=exp(-D*NT), где A - амплитуда звука, D - фактор затухания, а NT - число периодов, прошедших после окончания атаки. Атака и последующая фаза затухания формируют простейший профиль звука.
   Эта однотипная форма не всегда верна, особенно для тех инструментов, в которых звук поддерживается вдуванием воздуха или смычком, но звук струнных она передаёт достаточно верно.
   
Символ  k с цифрами 0-9 и k* k. задаёт контур звука, некую функцию,
  корректирующую его профиль. Получаемые амплитуды звука перед тем,
  как записаться в виде семплов, умножаются на функцию контура.
  Одиночный знак k отменяет режим контура.
  Заглавное K с цифрами  0-9 и K* устанавливает режим контура
  только на одну следующую ноту.

   5.2 ПРОФИЛЬ ЗВУКА

Скобки вида  (655193) задаёт профиль звука для тех инструментов,
  в сценариях которых эта опция предусмотрена. Первая цифра
  показывает уровень амплитуды, достигаемый в конце атаки
  (6 - уровень на единицу больший), а следующие цифры задают
  профиль звука, разделяя длину звука на равные интервалы.
  В нашем примере таких интервалов пять. Цифры 519 означают,
  что на третьем интервале амплитуда звука падает от уровня 5
  к уровню 1, а на четвёртом она возрастает от уровня 1 до 9-ти.
  Чтобы запись в скобках была принята как профиль, а не как число,
  нужны два условия - число должно быть более 10-ти (или =10),
  и в скобках должно содержаться 3 или более символов.

   Задание профиля в скобках существует долго. Однако исполняется это задание только если для сценария будет дано специальное указание.

   5.3 ГЛИССАНДО

Глиссандо вводится знаком  & и отключается им же. При назначении
  глиссандо звук развивается по профилю лидирующей ноты, а ноты,
  составляющие глиссандо, изменяют частоту звука и добавляют свои
  длительности. Пример записи глиссандо -  C&EGA& здесь лидирует
  четвертная нота До и затем её звука продлевается до целой ноты,
  меняя при этом свою частоту.

   Как видим, компьютерное глиссандо не обязательно скользит по полутонам. 


   6. МУЗЫКАНТЫ И СЦЕНАРИИ

   Обычное проигрывание делается звуками штатного фортепьяно.
   Указания  Q1 и U1 назначают музыкантов Q и U, играющих на фортепьяно иного тембра. Назначения с другими цифрами дают в руки музыкантов другие инструменты: 2-Виола, 3-аккордеон, 4-труба, 5-колокол, 6-колокол другого тембра, 7-звук струны.

   Послушать звуки этих инструментов можно здесь
https://disk.yandex.ru/d/5kgQqv8pzldpjw они повторяют одну и ту же мелодию -
Z3- G7:e7>G<B>cG<B^>BcGc<B^B^F7; B7>Gg<Ff>CcDd<<EG:e;>~^
   
   После назначения мы сразу получаем звук назначенного инструмента, но в дальнейшем музыкантов можно менять, указывая на них без цифр. Активному музыканту символами  u0-u9 можно задать особый тембр, а символами  q0-q9 задать штрихи исполнения, долгие или одноразовые. Смена музыкантов Q,U сохраняет их особые тембры (но не штрихи).
   Указания  Q0,U0 делают музыканта штатным (со звуком упрощённого фортепьяно). Одиночные знаки u q делают звук обычным.

   Тембра и штрихи управляют сценариями развития звука. Например, штрих q2 для музыканта играющего на трубе заставит его выполнить указание по профилю звука, если ранее такое указание было сделано.

   6.1 АККОРДЕОН

   Символы Q3 и U3 назначают музыканта с аккордеоном. Значки u1 задают
тембр: u1 обычный, u2 мягкий, u3 резкий. Значки u4,u5,u6 создают акцент с нисходящей затем громкостью, u7,u8,u9 - усиливающийся звук при тех же тембрах. Значок u делает звучание аккордеона обычным.

  Символы q создают штрихи: q1 включает эхо, q2,q3 создают звук струны и короткий звук струны, q4,q5 делают то же, и добавляют эхо. Штрихи q6-q9 действуют только на одну ноту, меняя её звук: q6,q7 - звук струны на звук аккордеона и обратно, q8,q9 меняют звук струн, или тембр звука аккордеона в порядке очерёдности (обычный, мягкий, резкий) и в обратном порядке. Символ q отменяет установленные штрихи.

   6.2 ВИОЛА

   Символы Q3 и U3 назначают музыканта с Виолой. Значки u1 создают особо мягкий тембр, u3,u2 - звук струны и краткий щипок, u4 - амплитудное вибрато, u5,u6 - удлинённый и долгий звук, u7,u8 - удлинённый и нарастающий звук бархатного тембра, u9 - обычный звук бархатного тембра.

   Штрих q1 создаёт частотное вибрато, q4 такое же, но более сильное. Штрихи q2,q3 однократно меняют звук Виолы на звук или на щипок струны, и обратно. Штрихи q5,q6 акцентируют звук немного и сильнее, штрихи q7,q8 создают постоянное или одноразовое нарастание звука. Штрих q2 одноразово меняет ширину пичка, создающего скрипичный звук, включая или отключая бархатный тембр.
   В режимах легато l и пиццикато p увеличивается скорость атаки, с тем, чтобы укороченный звук был лучше слышен.

   6.4 ПИАНИНО
   
   Символами Q3 и U3 назначается музыкант со звуком пианино.
   Тембр u1 делает звук верхних октав звонче, тембры u2,u3 осветляют звук, u4,u5 - усиливают бас.
   Штрихи q1,q2 мягко укорачивают звук, q3,q4 приглушают (q2,q4 одноразово), q5,q6 создаёт акцент в басах, для q7,q8 акцент сильнее (q6,q8 одноразовы).

   Символ q с двумя цифрами 0-9 задаёт КЛАПАН с номером и значением.
Знаки q11-q19 ускоряют спад после атаки, приближая звук фортепьяно к естественному (q11 -немного q19 -заметно), а знак q10 отменяет эту опцию. Клапан q31-q39 приглушает звонкость.
   Клапан q01-q09 изменяет тембр, внося призвук железа, клапан q21-q29 в этом режиме приглушает звук, но он может работать и самостоятельно, тогда тембр железа в звуке будет умеренный.
   Знаки i j с цифрой 1-9 постепенно увеличивают/уменьшают значение последнего объявленного q-клапана при исполнении указанного числа нот.
   Клапаны q41-q49 q51-q59 задают громкость и глубину эхо. 
 
   6.4.1 РАБОТА КЛАПАНОВ

   Тембры u являются назначениями исключающими друг друга. Если установлен тембр u1, это значит, что отменены все другие. То же самое относится и к штрихам. Тембры и штрихи действуют оперативно и локально, этим они и удобны.
   Система клапанов позволяет управлять сценариями более тонко - назначение клапана означает не просто сообщение типа «клапан открыт, клапан закрыт», а содержит более детальную информацию - сценарию передаётся и некое число, дополнительная опция 1-9, показывающее насколько клапан открыт. Значение 0 трактуется как факт, что клапан закрыт.

Знак  q12 с двумя цифрами после символа q включает q-клапан,
  указывая его номер (первая цифра) и значение (вторая цифра).
  Значения последнего упомянутого в строке q-клапана можно менять -
  символ i3 будет увеличивать значение клапана на 1 для трёх
  следующих за этим знаком нот. Если клапан был выключен, то
  появление первой ноты включит его.
  Символ j с цифрой действует аналогично в обратную сторону.
  Знак q* отключает все клапаны сразу.

Знак  u12 с двумя цифрами после символа u включает u-клапан,
  одновременно будет включён тот же q-клапан, и он тоже
  получит указанное значение. Указание u* отключает все
  u-клапаны сразу. В начале каждой строки значения u-клапанов
  передаётся q-клапанам. Тем самым происходит их начальная
  установка.

   В отношении слоёв клапаны автономны, то есть, для каждого слоя имеется свой, автономно работающий набор клапанов. Отключить u-клапаны всех слоёв одновременно можно указанием u** сделанным в любом слое.
   Такое же отключение делается автоматически при загрузке файла. или при действиях, инициируемых кнопками-полосками ниже надписи «Load».
   

   6.5 ИНСТРУМЕНТ «Piano»

   Piano является ответвлением Пианино. Этот инструмент отличается слегка выраженным струнном звуком, и включается РЕГИСТРОМ o1.
   Регистры o3,o5 укорачивают звук, усиливая его затухание (o5 -немного и дополнительно), регистр o9 усиливает громкость на нижних частотах.
   Знак o7 включает Piano со звуком струны. Струна гармонична при o1, и дзынкает, если первый регистр отключён).


   6.5.1 РЕГИСТРЫ

Латинские символы  o1 o0 включают и выключают регистр №1.
  Пять регистров - №1,№3,№5,№7,№9 принадлежат музыканту Q,
  и аналогичный набор управляет работой музыканта U. Нечётная
  цифра за символом o включает регистр, чётная - выключает его.
  Одиночное o возвращает регистр в предыдущее состояние.
  Регистры автономны в отношении инструментов - для каждого
  инструмента есть свой набор регистров, независимо от того,
  используются они в сценарии или нет.
  Знак o* выключает все регистры сразу (для Q и U разом).
  Регистры автоматически отключаются при загрузке файла,
  или при действиях, инициируемых кнопками-полосками ниже
  надписи «Load». 

   6.6 ТРУБА du-du

   Символами  Q4 U4 назначается музыкант со звуком трубы.
   В звуке трубы регистр o1 делает призвук трубы чётче, o9 сильнее, o3 укорачивает, o5 удлиняет звук. Если о3 и о5 включены одновременно, то укорочение звука не большое. Регистр o7 создаёт вибрато.

   Тембр u1 включает для трубы эхо, тембры u2-u5 создают подобие звука саксофона и звучат громче, u6-u9 действуют аналогично, создавая более резкий тембр.
   Штрихи q3,q5 варьирует придыхание, внося случайность в профиль звука (q5 -более заметно).

   Цифры в скобке количеством 3 и более задают профиль громкости звука трубы. 5 -нейтральный уровень,  0 -нулевой 9 -максимальный. Задание одноразовое, но оно повторяется штрихом q2. Штрих q1 создаёт постоянное повторение, q3 сокращает атаку (q4 одноразово). 
   Значки T=5 - T=9 задают особый «Тембр» трубы (о умолчанию он равен пяти). Это задание стоит особняком, значение Тембра можно проверить, кликнув синюю полоску «комментарий» на красно-синей кнопке в режиме Клавы.

   6.7 ЗВУК КОЛОКОЛА

   Символами  Q5 U5 назначается музыкант со звуком колокола, а символы  Q6 U6 назначают музыканта со звуком колокольчика ( у него обертоны и структура звука другие). Тембр  u1 создаёт для этих инструментов эхо.

   6.8 ЗВУК СТРУНЫ

   Символами  Q7 U7 назначается музыкант со звуком струны.
   В звуке струны регистр o1 делает призвук чётче, o9 сильнее,
Регистр o3 укоротит, а регистр o5 удлинит звук.

   6.9 ПРИВЯЗКА МУЗЫКАНТОВ И ПЕДАЛИ

   Назначая музыканта, можно привязать его к началу строки выбранного слоя. Для этого в 1-й позиции строки нужно записать Q10Z или U29Z где первая цифра -номер сценария, а вторая -тембр, с которым появляется музыкант. Снимается привязка таким же заданием с 0 на месте первой цифры. Все привязки к слоям снимаются при обновлении строк и при загрузке файла.

   Чтобы привязать педаль к началу строки выбранного слоя нужно назначить педаль в 1-й позиции строки, например, так @.5   
  Снимается привязка педали при обновлении строк, при загрузке файла или указанием @0 в любом месте строки.

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


   7. ЗАКЛЮЧЕНИЕ

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

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

   Примеры записи музыкальных произведений в текстовой форме, и сделанные программой Пианола_М, приведены ниже.

Сарабанда https://disk.yandex.ru/d/pzibmS3D1bPo4Q
          https://disk.yandex.ru/d/3puHbsVtQgxIFg
Полонез https://disk.yandex.ru/d/sAlJc2hQV2sdxA
        https://disk.yandex.ru/d/EPIgFbENdb25xg
Город золотой https://disk.yandex.ru/d/sNBPx7fQ8ptWrg
              https://disk.yandex.ru/d/BvavsRKyN3fn5Q
Апрель https://disk.yandex.ru/d/qQFWzxLm1ayi-g
       https://disk.yandex.ru/d/EZiWrzHHXjWK0A
Март https://disk.yandex.ru/d/KHjyChIief2oWQ
     https://disk.yandex.ru/d/k2zbkolQd9xGGw
Октябрь https://disk.yandex.ru/d/r3W4P87TJ7mzkA
        https://disk.yandex.ru/d/FNZrJ6LhUKGfWA
Ноябрь https://disk.yandex.ru/d/sA3u9L5PHrobtg
       https://disk.yandex.ru/d/SeN_g37-2qEh0Q

__________
17.04.2025


Рецензии