Пьеса для фортепьяно в две руки

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

  Сделал такое предисловие потому, что поступил подобным образом с произведением другого нашего классика - взял ноты "Баркаролы" П.И.Чайковского, и переложил их синтезированным компьютерным звуком.
 
  Зачем я это сделал?
  Чтобы испытать свою программу озвучивания ТРИО, вот здесь о ней подробно написано - http://www.proza.ru/2016/06/10/1302 и не только эта статья, но и много других, посвященных исследованию музыкального звука, находятся рядом с ней.
  В общем, хотя исследовательский аспект, связанный с компьютерным синтезом звука мне более интересен, но и практику забывать не следует. А на практике-то что? Обнадёживают ли результаты? Мне показалось, что обнадёживают. Впрочем, по порядку.

  То что я делаю, вовсе не повторение известных форм синтеза звука, хотя некие аналогии с МИДИ форматом, в плане сильного его упрощения, усмотреть можно. Но алгоритм "по-периодного" синтеза музыкального звука оригинален. Словом - сам придумал, сам и испытываю.
  О начале того, что я придумал, можно прочесть в статье "Пианино на клавишах компьютера" - http://www.stihi.ru/2015/02/05/7964
  Статья была опубликована полтора года назад, а сейчас я расскажу, что из этого получилось.


   НАБИРАЕМ НОТНЫЙ ТЕКСТ В ПРОГРАММЕ "Пианола"

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

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

{VEL 20000  }
 1  {*0410|  ~~ ~>^DEF#  GAB-cdgf#g  <<d>>^dAc  B-E-C#E-DB-F#A              }
 2  {*0410| <G>>^DEF#  GAB-cdgfg  <<d>>^fe-f  <<c>>^e-de-                }
 3  {*0410| B->^^^dcd  cB-AG<B-7>A  <G>^^^GAB- cde-fg/AB-c                }
 4  {*0410| /<F>>^FGB-  <<E->>^E-FA  <<D>>^\GAB-  cde-f/GAB-c  <<D>>^DEF#   }
 5  {*0410| <<g>>^dcB-  <<f#>>^cB-A  g>d>e-d<<c#de-dB-<G>   ^<d7>DEF#       }
 6  {*0410| >GAB-cdgf#g  <<d>>^dAc  B-E-C#E-nDlB-F#A  <<G>>^DEF#            }
 7  {*0410| >GAB-cdgfg  <<d>>^fe-f  <<c>>^e-de-  <B->^^^dcd  cB-AG<B-7>A  G }
,,,

  А вот так выглядит запись первой части для левой руки -

{VEL 20000  }
 1  {*0210|  Gdg^  Gdg^ GdgA  G/GdC  >D ^G ^G ^<D             }
 2  {*0210|  >Ge-c#e-<<d>  GdgA  B-/FB-\G  A/Ac\F#            }
 3  {*0210|  Gdgc  /Ddc#c  >GB-GD\<G ^  //E-f<F               }
 4  {*0210|  /Df<F>  Cf<F>  \B-/f<F>  E-f<F>   Df#<F#>        }
 5  {*0210|  Dd<G>  Dd<A>  Dd<G>  >D/gf#e-dcB-G               }
 6  {*0210|  GdgA  B-/Gd\c  />D ^G ^G ^<D>   \Ge-c#e-<<d>>    }
 7  {*0210|  GdgA  B-/FB-\G  A/Ac\F#  Gdgc  /Ddc#c  >G        }
,,,

  Узнаёте нотные значки? Да, это общепринятые нотные обозначения - CDEFGB для нот первой октавы и cdefg для нот второй октавы. Значки ab тоже понимаются.
  Такты в строках записи я разделяю двумя пробелами, но это не обязательно.
  Помимо знаков нот (с диезами и бемолями, следующими за этими знаками), в записи есть знаки продления и укорочения звучания нот, повышения и понижения звука на октаву, знаки пауз, легато, стаккато и проч.

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

  ОЗВУЧИВАЕМ ПАРТИТУРЫ В ПРОГРАММЕ "ТРИО"

  Получив партитуры в виде текстовых файлов, мы расставляем в них значки, которые указывают, каким инструментом и по какому сценарию следует исполнять партию, как громко, каким тембром, где помедленнее, где потише и проч. Прежде всего указываются аккорды.
  Всё это называется партитурными назначениями, они подробно описаны здесь -
http://www.proza.ru/2016/06/19/581 и именно они определяют то, что результат будет не просто "ритмическими стукатушками" со звуком музыкального автомата, а будет звучать интересно.

  Не думайте, что то, о чём я говорю, очень сложно. Всё примитивно до ужаса. Программа Пианола не делает ничего особенного, она только представляет последовательность нот, которую мы ввели, нажимая клавиши, в другой форме.
  Взгляните на ноты на рисунке, правая рука. Начинается - целая пауза, половинная пауза, восьмая пауза, восьмая нота Ре и т.д.
  Посмотрим на запись  ~~~>^D  это 3 половинные паузы, знак убыстрения темпа вдвое, пауза восьмая и нота Ре (тоже восьмая).
  Посмотрим на партитуру правой руки (партитуры приведены ниже) -
 L= 40000
 L= 40000
 L= 40000
 L= 10000
F= 293.6600036621094  T1= 9800  T2= 199

вот они, четыре паузы, и нота Ре с частотой 293,66 Гц длительностью на 9800 семплов и с совсем маленькой паузой после ноты, длительностью в 199 семплов
Всё просто и понятно.
  Если всё же Вам кажется, что организация синтеза звука слишком сложна, то загляните сюда - http://www.midi.ru/doc/35.htm и почувствуйте разницу. 


  Сделав партитурные назначения, мы обращаемся к программе ТРИО, и она озвучивает партитуры.
  Результат можно прослушать здесь - http://yadi.sk/d/2ha3u4X8uhMMc
  Хочу сказать, что в этом первом полноценном опыте я не очень хотел уйти от чёткой ритмики, более того, я хотел красоту этой ритмики продемонстрировать. Но и интересные нюансы вы в полученной записи услышите.
  Звуковой файл можно записать не только в моно но и в стерео формате, направив звук от левой руки в левый динамик, а звук от правой руки - в правый. Результат получается ещё краше, видимо потому, что сильная и многочастотная интерференция звуков на одном динамике мешает ему звучать.
  Стерео запись вот здесь - http://yadi.sk/d/gig0GTxx33LU92

  Интересно обсудить такой фактор, влияющий на качество записи, как скорость раздачи семплов. Записи, на которые идут ссылки, я делал на скорости раздачи 32000 семпл/сек. Но я сделал и запись на скорости 44100 семпл/сек. На высоких октавах (в конце второй части Баркаролы) разница на слух ощутима - на скорости 44100 фортепьянный звук ощущается более глубоким, но и всё равно высокие обертоны создают характерный для компьютерной музыки звон, не характерный для фортепьяно.
  Поэтому, возможно, следует ослабить обертонное сопровождение высоких нот в сценариях, хотя в натуральном звуке фортепьяно высокие обертоны присутствуют.
  Вместе с тем следует сказать, что существующий сценарий удовлетворительно перекрывает своими средствами достаточно широкий диапазон звука фортепьяно. Но его, разумеется, можно и улучшать.

Проект развивается.
Осеннюю песнь П.И.Чайковского слушать здесь - http://yadi.sk/d/5HWAg0V-33LWiw
________________________
ПРИЛОЖЕНИЕ. ФРАГМЕНТЫ ПАРТИТУРЫ

  Привожу начальный фрагмент партитуры для правой руки (первая строка нотного текста) -

 1 ================= TF.TXT   VEL= 20000
  R=8  H=1.8
 L= 40000
 L= 40000
 L= 40000
 L= 10000
F= 293.6600036621094  T1= 9800  T2= 199 t10000 >>
F= 329.6300048828125  T1= 9800  T2= 199 t6000 <
F= 369.989990234375  T1= 9800  T2= 199 <
F= 392  T1= 9800  T2= 199
F= 440  T1= 9800  T2= 199
F= 466.1600036621094  T1= 9800  T2= 199
F= 523.260009765625  T1= 9800  T2= 199
F= 587.3200073242188  T1= 9800  T2= 199
F= 784  T1= 9800  T2= 199
F= 739.97998046875  T1= 9800  T2= 199
F= 784  T1= 9800  T2= 199
F= 587.3200073242188  T1= 39200  T2= 799 t5000 >>
 L= 10000
F= 587.3200073242188  T1= 9800  T2= 199 <<
   G=/0-64
F= 440  T1= 9800  T2= 199
F= 523.260009765625  T1= 9800  T2= 199 g
   G=/0-85
F= 466.1600036621094  T1= 9800  T2= 199
F= 311.1300048828125  T1= 9800  T2= 199 g
F= 277.1799926757812  T1= 9800  T2= 199
F= 311.1300048828125  T1= 9800  T2= 199
F= 293.6600036621094  T1= 9800  T2= 199
F= 466.1600036621094  T1= 9800  T2= 199
   G=/0-6
F= 369.989990234375  T1= 9800  T2= 199
F= 440  T1= 9800  T2= 199 g
...

А вот начало партитуры для левой руки -

 1 ================= TF1.TXT   VEL= 20000
  R=8 UDa=3.999 exo=1
F= 98  T1= 19600  T2= 399
F= 146.8300018310547  T1= 19600  T2= 399
  G=/34
F= 196  T1= 39200  T2= 799
F= 98  T1= 19600  T2= 399 g
F= 146.8300018310547  T1= 19600  T2= 399
  G=/34 
F= 196  T1= 39200  T2= 799
F= 98  T1= 19600  T2= 399 g
F= 146.8300018310547  T1= 19600  T2= 399
  G=/34 
F= 196  T1= 19600  T2= 399 g
F= 110  T1= 19600  T2= 399
F= 98  T1= 19600  T2= 399
F= 196  T1= 19600  T2= 399
F= 293.6600036621094  T1= 19600  T2= 399
F= 130.8150024414062  T1= 19600  T2= 399 g
F= 146.8300018310547  T1= 9800  T2= 199
 L= 10000   G=/3
F= 196  T1= 9800  T2= 199
 L= 10000   G=/3
F= 196  T1= 9800  T2= 199 g
 L= 10000
F= 146.8300018310547  T1= 19600  T2= 399

================ 2 сент. 2016