возможности Виртуального пианино

Дмитрий Маштаков
  В интернете по адресу http://online-pianino.ru/ находится "Виртуальное пианино".
  Некая игрушка. Забава. Можно покликать мышкой по клавишам и увидеть, что клавиши нажимаются и издают звук. Но можно и не использовать мышку, а нажимать клавиши клавиатуры компьютера, подбирая мелодию, и даже сопровождать мелодию аккордами.
  Изящная игрушка. И что удивительно, звук достаточно хороший - затягивает к творчеству.
 
  Славная игрушка, и как раз для меня - у меня нет пианино, нет синтезатора, а компьютерная программа Пианола, которую я сделал, чтобы создавать нотные записи, в процессе набора нот издаёт звук неважный - всем известный стандартный звук "Beep" разного тона.
  Такие уж возможности заложили в Визуал Бейсик, и большего я добиться от него не могу.

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

  А почему, собственно нельзя?
  Запись находится на компьютере, представляет собой текстовый файл, и следовательно, её можно просмотреть в программе Блокнотик. Только файл неплохо переименовать, а то у него слишком длинное название. Подойдёт просто номер, 9 например. Откроем файл 9.txt, и увидим то, что показано в верхней части иллюстрации.
  Несмотря на то, что структура записи кажется сложной, информацию о нотах в ней найти просто. Эта информация находится в скобках, вместе со словом audicontext, а далее, через запятую идёт номер нажатой клавиши и время нажатия этой клавиши.

  Время нажатия первой ноты принято за ноль. Поэтому, как видно из рисунка, первой была нажата клавиша №53. А это нота F3, то есть нота Фа 3-й (малой октавы).
  Нумерация клавиш стандартная, такая, как это принято в МИДИ протоколе.
  Следующей была нажата клавиша, читаем - (audicontext,57,0.797). Это нота А3, то есть нота Ля той же октавы. 0.797 - момент нажатия клавиши, время в секундах. отсчитываемое от момента нажатия первой клавиши в записи.
  Остальной текст нас в принципе не интересует, а интересующие нас скобки. мы легко можем отловить путём последовательного поиска пары символов - "(a". Поиск этот можно делать прямо в блокнотике, использую опцию "найти", а я составил программу на Бейсике, которая делает это же самое.

  Я хочу привлечь Ваше внимание, и показать, как легко можно "перелопатить" текстовый файл, и придать информации тот вид, который Вам нужен. Программа "Расшифровка нот" имеет несколько опций, которые выбираются нажатием кнопки |<|. Двигаясь по этим опциям последовательно, и нажимая кнопку |Старт|, мы постепенно преобразуем исходный файл.
  При первом преобразовании из исходного файла получаем файл Т, той структуры, которую Вы видите на рисунке. В файле Т вся лишняя информация отброшена, и остаются только названия нот и время прошедшее после начала звучания предыдущей ноты.
  Если это время очень мало, то такие ноты считаются звучащими в аккорде, и тогда время для второй аккордной ноты не указывается.
  Обратите внимание также на то, что время увеличивается вдвое. Теперь время отсчитывается не в секундах, а в количестве четвертей, прошедших с момента начала звучания предыдущей ноты. Это удобно для дальнейшей обработки информации.

  А такая обработка нужна. В самом деле, почему к названию ноты прикреплена не её длительность, а длительность предыдущей ноты? Это дело нужно поправить.
  Программа справляется и с этой задачей. Она создаёт файл структуры ТТ, и этот файл уже вполне можно читать, и даже мысленно напевать, следую нотным обозначениям, если Вы к этому способны.

  Но и тут трудиться не нужно. Используя следующую опцию, она показана на иллюстрации, мы создаём файл партитуры, пригодный для озвучивания с помощью программы Трио. Этот файл тоже можно видеть на рисунке. А прослушать, что получилось, можно тут (первая запись) -
http://yadi.sk/d/f6CLSCtxK7gi2A

Вторая запись сделана октавой повыше. Вот как выглядит её партитура:

 1 ================= TFP.TXT   VEL= 32000
 R=8 H=2 UV=1 Ar=.5 exo=0
 
F= 987.76 T1= 18880  T2= 118 
F= 987.76 T1= 20928  T2= 131 
F= 880 T1= 11776  T2= 74 
F= 783.99 T1= 19744  T2= 123 
F= 783.99 T1= 24032  T2= 150 
F= 698.45 T1= 14048  T2= 88 
F= 659.25 T1= 22464  T2= 140 
F= 659.25 T1= 11264  T2= 70 
F= 698.45 T1= 9120  T2= 57 
F= 783.99 T1= 17312  T2= 108
  G=/-07
F= 880 T1= 64000  T2= 400 
F= 587.33 T1= 14944  T2= 93 g
F= 587.33 T1= 13952  T2= 87 
F= 659.25 T1= 15008  T2= 94 
F= 698.45 T1= 26720  T2= 167 
F= 880 T1= 41632  T2= 260 
F= 783.99 T1= 40288  T2= 252 <   
F= 587.33 T1= 27296  T2= 171 >
  G=/-128
F= 659.25 T1= 64000  T2= 400  <<
 2 ============ 504224  15,757
,,,

  Вначале было записано одноголосие. Аккорды к записи я подобрал опять же, используя проигрыш в Виртуальном пианино как бы в режиме караоке. Это очень удобно. А внёс аккорды прямо в партитуру. И добавил в партитуру значки усиления и уменьшения громкости - < и >.
  Оцените, насколько выразительно звучит мелодия.

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

1. В них неудачна раскладка клавиш, позиционно клавиши не соответствуют тому месту, которые они занимают на клавиатуре обычного пианино. Чтобы "нажать" "черную" клавишу, нужно дополнительно нажать клавишу "Верхний регистр".
2. В них обозначения нот не соответствуют общепринятым. Нота обозначается попросту той буквой, которая написана на клавише. Чтение файлов с такими обозначениями нот неудобно, а уж на слух, это вообще невозможно сделать.
3. Длительности звучания нот сильно огрубляются, а не фиксируются точно.
 
  Но есть и плюсы. В некоторых программах нотные записи можно редактировать.
Например, такая запись 0|0 q|q|0 0 e e 0|0|t|t|re r| 0|0|q|q|0|0|r|r 0|0|y|y|t|r t
сделана мной на пианино по этому адресу - http://virtualpiano.net/
  Вертикальные | и пробелы в этой записи означают продления звука предыдущей ноты. Вы можете вставить эту запись в окно программы и прослушать её. Так же, как и эту запись, с аккордами

[tuo]| [tuo]| [tup]| [tup]| o i u y [ut]| [tu]

аккорды, как Вы видите, обозначаются заключением "нот" в квадратные скобки. Но поди догадайся, что [tuo] это трезвучие До-Ми-Соль. ))

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

  Да, ещё забыл сказать, если Вам мил МИДИ формат, так у меня есть программа конвертор, она переведёт файл партитуры в МИДИ файл. Программу "Трио_МИДИ_конвертор" можно скачать всё по той же ссылке, которая указана выше.

  Спасибо за внимание.
========================
Материалы по программе "расшифровка нот", исходники и другое, находятся здесь - http://disk.yandex.ru/d/B4V4badlzcKYuQ
________________

  Вот по этой ссылке - http://coolpiano.ru/ есть неплохое виртуальное пианино под названием "Русский рояль". Раскладка клавиш там совпадает с раскладкой клавиш, принятой в моей программе Пианола. Это удобно для сочинения музыки, но в этом проекте нет никаких средств записи проигранной мелодии. Во всяком случае, я их не нашёл. Если бы такие средства были бы, то программа была бы более полезной.
___________

  Ещё одно добавление. По этой ссылке - http://onlinesequencer.net/import находится онлайн-секвенсор. Туда можно загружать МИДИ файл, или отдельные его дорожки, и делать с ними некоторые преобразования. А затем экспортировать файл обратно. В этом секвенсоре интересна опция запоминания "save local file" - она сохраняет МИДИ запись в текстовом файле в удобно читаемой форме:

F4 6 0;6.43 A4 11 0;17.87 F4 7 0;25.07 B4 14 0;39.27 F4 9 0;48 D5 11 0;48 F4 11 0;58.63 C5 3 0;62.13 B4 6 0;68.37 G4 16 0;68.37 C5 16 0;

- это та же последовательность нот, которая приведена в иллюстрации к статье.
  Программа "Расшифровка нот" ( в последней своей опции) читает эту форму и переводит её в формы Т и ТТ. Таким образом круг преобразований замыкается.
  Становится возможным не только переводить партитуры программы Трио в МИДИ формат, но и проводить обратное преобразование - получать из файлов МИДИ формата файлы формата ТТ, и из них - партитуры для Трио.
  Обратите внимание на то, что нумерация октав в этом секвенсоре не соответствует общепринятой. Так, обозначение А4 в файле, получаемом от него, в действительности означает А3, то есть ноту Ля малой октавы. Однако это разногласие легко преодолеть, указывая при импорте файла сдвиг на октаву вниз, или используя указание М=.5 в начале партитуры для понижения всех частот вдвое.