От нот к музыкальному звуку
О создании музыки на компьютере с помощью программ Пианола и Трио.
Сразу, чтобы вас не интриговать, укажу на результат. Запись находится здесь -
http://yadi.sk/d/5HWAg0V-33LWiw
О НОТАХ И ТЕМПЕ
Сначала поговорим о темпе. У А.Н.Скрябина в этюдах мы видим такие указания - 126 четвертей в минуту Alegro и 60 четвертей в минуту Andante.
Если в музыкальной записи на одну четвертную ноту приходится 1.4*26000 семплов, а скорость раздачи составляет 32000 семплов в секунду, то какова же будет длительность звучания четвертной ноты?
1.4*26000/32000 = 1.1375 секунды или 60/1.1375 = 53 - да, это 53 четверти в минуту, очень неторопливое Andante, как и указано для "Осенней песни" П.И.Чайковским.
Хотя играют эту пьесу обычно ещё медленнее, но именно в таком темпе будет исполняться тот отрывок (вторая страница нот), который показан на рисунке к этой статье.
Ноты, как это видно по ним, уже побывавшие в деле, и на них рукой педагога оставлены пометки - что выделить, что усилить, что постараться играть раздельно.
Во всяком исполнении, помимо нот, нужно понимание того, как играть, или нужны указания на это. Причём просто длительности нот, и значков Forte и Piano оказывается недостаточно.
И, конечно, такие указания нужны в партитуре того, что будет исполняться компьютером. Поскольку компьютер, в отличие от нас с вами, не очень способен на интуицию.
И тут возникают две проблемы - как компьютеру понять ноты, и как помочь ему исполнить эти ноты выразительно.
КАК МЫ ПОМОГАЕМ КОМПЬЮТЕРУ И КАК КОМПЬЮТЕР ПОМОГАЕТ НАМ
Самостоятельно, без нашей помощи, прочесть ноты компьютер не сможет. От нас требуется совсем немного - прежде всего записать ноты в такой форме, чтобы их понимал и компьютер, и мы. И компьютер, и мы хорошо понимаем текстовые файлы, вот с ними мы и будем работать.
Вместо общего нотоносца откроем два файла, один для нот правой, а другой - для нот левой руки. На рисунке показана запись нот левой руки для второй странички пьесы Чайковского. На страничке 5 нотных строк, 5 строк с нотным текстом имеется и в нашем файле. Строки пронумерованы. В первой строке читаем:
\>>>G<<</DB-\A/F \A/G\D^/
слежи означают понижение или повышение звука на октаву, знаки > и < - сокращение и увеличение длительности нот вдвое, минус - знак бемоля, крыша за обозначением ноты продлевает вдвое её звучание. Ну, а нотные обозначения вы узнаёте - они общеприняты, поэтому нотную строку может прочесть не только компьютер, но и вы. И можете непосредственно исправить ошибку в тексте, если её найдёте.
Удобная читаемость нотного текста и возможность исправлять ошибки без применения специальных редакторов - положительная сторона такой формы записи.
Достаточно просто указываются и другие параметры - цифры 310 в начале строк указывают на малую октаву (3), темп - 1 нота в секунду (1), легато (0).
Как можно заметить, в нотной записи указаны нижние звуки аккордов, сами аккорды указываются позже - в партитуре.
Можно потрудиться и сделать нотную запись с помощью Блокнотика вручную. Но зачем? В этом скучном деле компьютер может нам помочь.
Ввод нотного текста в синем окошечке программы Пианола позволяет не только услышать звучание нот, но и вести счёт общей длительности нот, проверяя себя по имеющемуся счётчику. Записать нотный текст для всех строк странички и прослушать его целиком. А потом, указав на поле Save_file_as название файла, нажать Enter и получить текстовый файл с нотной записью.
Но это не всё. Компьютер помогает нам, и помогает сам себе, дальше - он делает партитуру.
Партитура, это тоже текстовый файл, который можно рассматривать и легко править, только ноты записаны в нём не в одну строку, как в нотной записи, а в отдельных строках F= - путём прямого указания частот нот, длительности их звучания и длительности после нотных пауз. В строках L= указывается длительность обычных пауз. Длительности указаны в семплах. Нотные строки нумеруются и разделяются линиями.
Партитура приходит к нам "чистенькой" - ничего, кроме того, что было сказано, в ней нет. Теперь мы, в свою очередь, должны потрудиться и, подобно педагогу, делая пометки в партитуре, указать компьютеру, на каком инструменте, и как играть.
НА ЧТО МЫ УКАЗЫВАЕМ В ПАРТИТУРЕ
Начало партитуры второй странички для левой руки показано на рисунке снизу слева. Что в текст партитуры добавлено?
Перед первой строкой вставлена строка со значком # в первой позиции. Программа Трио будет искать этот знак в первой позиции, чтобы начать озвучивание партитуры сразу после него. Заканчивает озвучивание программа или если мы её прервём, или когда она прочтёт строку с тремя запятыми (,,, в начале строки являются признаком конца) Вставляя или отодвигая указанные значки в нужных местах, мы можем озвучивать партитуру и корректировать её звучание по отдельным фрагментам.
Это очень удобно. Естественно, что значки эти должны стоять для правой и левой руки в одномоментных местах. Их можно совмещать и с разделителями строк.
После первого разделителя, открывающего партитуру, размещены указания -
R=8 указание на сценарий звука фортепьяно ( если мы укажем R=4, то услышим звук альта, а если R=7, то - звук аккордеона)
H=1.8 относительная громкость звука ( по умолчанию 1)
UDa=3.9975 звук будет нарастать резко - длительность атаки составит 3 семпла, но затухать будет весьма медленно ( по умолчанию этот параметр равен 3.995)
В партитуре правой руки было указано UDa=3.996, и по слайду окошечка редактора Wave Editor (в этом окошечке дорожка левой руки - сверху, а правой - снизу) видно, что звук в правой руке затухает скорее, чем звук в левой руке. Но в правой руке и звуки идут почаще.
S=1.4 указание на темп ( по умолчанию 1), о темпе говорилось в начале статьи
exo=2 подключается ревербератор, который создаёт эхо не только во время звучания ноты, но и в паузе после неё. Параметры эха указаны в сценарии.
И, что очень важно, в партитуре мы размещаем указания на аккорды -
G=/55 означает, что нижний звук Ре с частотой F= 146.83 Гц будет звучать не в одиночестве, а будет сопровождён звуками на 5 полутонов и ещё на пять полутонов более высокими. Буква g снимает назначение аккорда.
В партитуре можно делать пометки русскими буквами, их компьютер пропускает, и его работе они не мешают.
О том, какими могут быть другие партитурные и аккордные назначения, можно прочесть тут - http://www.proza.ru/2016/06/19/581 и тут - http://www.proza.ru/2016/03/28/350 а сейчас мне хотелось бы обсудить результат.
О МУЗЫКАЛЬНОЙ ЭСТЕТИКЕ КОМПЬЮТЕРНОГО ЗВУКА
Какая уж тут эстетика, воскликнет непосвящённый читатель, свист и завывания.
Но читатель, прослушавший запись по указанной в начале ссылке, обратит внимание на чёткую ритмику звучания нот. Подобная, доходящая до механицизма ритмика звучала и была популярна в эру музыкальных аппаратов, до тех пор, пока не изобрели звуковую запись.
Но так уж была плоха механистичная музыка? Не так уж и плоха, и особый шарм в ней был. И вот сейчас нечто подобное можно возродить на более высоком уровне.
Подобное, но не похожее. Возможности к вариации звука отдельных нот на компьютере неизмеримо большие, чем то, что было возможно для механических музыкальных автоматов. А что даёт вариация звука? Она создаёт выразительность.
Покинем на время музыку и обратимся к поэзии. Очень интересна роль ритмики и рифм в эстетическом восприятии стиха.
Даже если слушатель не вполне понимает смысл стихотворения, он может быть заворожён красотой его звучания, выхватывая своим восприятием из текста какие слова? А те, слова которые чтец подчёркивает, делая на них остановку, или ударения в своём выразительном чтении.
Но даже если чтец читает невыразительно, то слушатель непременно отмечает своим слухом длинносложные слова - пиррихии, которые ох как звучат. Обращает внимание на все нюансы ритмики. Искусство постоянно отступает от нормы в поисках выразительности. Такова его суть.
И вот эти отступления - задержки и ускорения звука, удлинённые паузы, акценты громкости - очень выразительно слышатся на фоне совершенной ритмики, и именно на этом, как мне кажется, может быть построена особая эстетика озвучивания классической музыки компьютерным звуком.
То есть, по моему мнению, это направление очень перспективно и идёт глубоко.
Разумеется, хорошо, если бы появились более совершенные, и одновременно доступные программы. Недостатком Пианолы является, например, то, что звук у неё неважный. Издавала бы она хотя бы звук фортепьяно онлайн, препятствий к этому нет. Но нужна программа. В Бейсике такого звука онлайн не достичь, хотя озвучивание таким звуком он делать может.
Кстати, о времени озвучивания. Запись "Осенней песни" длится 4 минуты. Для её озвучивания времени потребовалось в 4 раза больше - две руки и аккорды ещё, и разнос стерео по двум дорожкам, и эхо. Но, правда у меня и компьютер не самый мощный. Но что, собственно время? Включил озвучивание, и оно идёт в фоновом режиме, а ты занимаешься другими делами.
=======18.09.2016
Свидетельство о публикации №216091800951
Интересна связь музыки, нот, математики, физики.
А в общем - логарифмическая шкала частот... Есть 10 Гц, 1000 Гц, 1000000 Гц, 10 в 15 степени Гц, 10 в 20 степени Гц... Есть частоты - выражающие музыку, речь. Есть частоты - выражающие радиоволны, видимое излучение, инфракрасное, ультрафиолетовое, рентгеновское, гамма-излучение... А принципиальной разницы между ними нет.
Я, когда учился в институте, пробовал играть на гитаре... "Прекрасное Далёко" - это ля-минор... Жаль, что потом я перестал играть, и пропали навыки игры.
Принц Андромеды 03.09.2017 09:02 Заявить о нарушении
http://www.proza.ru/2016/05/16/1070
Или вот - http://yadi.sk/i/IsykpOuS3MZ9MU осциллограмма звука саксофона. Явно периодическая функция.
Задача - написать математическую формулу (желательно простую по вычислениям) описывающую рельеф звука внутри периода колебания. Пусть этот период будет представляться интервалом от 0 до 2-х. Тут важно передать нюансы - остроту и асимметрию пиков. И с помощью некоторых параметров их варьировать от периода к периоду. И получится вполне естественный звук!
Напишите - я тут же эту формулу опробую. Желательно что-нибудь попроще, но поизящнее. Можно даже в виде небольшого алгоритма.
Дм.
Дмитрий Маштаков 03.09.2017 11:52 Заявить о нарушении
Превышено время ожидания ответа от сайта yadi.sk.
Попробуйте сделать следующее:
Проверьте подключение к Интернету.
Проверьте настройки прокси-сервера и брандмауэра.
ERR_CONNECTION_TIMED_OUT
Принц Андромеды 03.09.2017 12:20 Заявить о нарушении
http://www.proza.ru/2012/09/03/960
Колебания, хоть и периодические, но внутри периода периодичность ловится с трудом - максимум, минимум, вновь максимум, после некие более плавные изменения (подозреваю, что даже неважно - какие). Функцию нужно построить таким образом, чтобы она при Х=0 выходила из нуля и при Х=2 заканчивалась нулём, обещая своё повторение в следующем периоде. Но только обещая - в действительности изображение звука должно быть только на интервале (0,2). По полиномам можно разложить, но может быть что-то поинтереснее найдётся.
Дмитрий Маштаков 03.09.2017 15:19 Заявить о нарушении
Посмотрел на осцилограмму звука саксофона - аж в нижней губе засвербило... Я тогда почему свернул-то эту тему с имитацией сакса. Да просто купил сакс и нужда в имитации пропала.
И вот, первые ощущения неопытного дудельца. Трость именно на саксе (не на кларнете, там она иначе себя ведет) как бы напрягается посередине, в месте утолщения заточки. И первым делом стремится выдать не ту ноту, которую пытаешься взять, а любую из ее гармоник, попавшую под хвост. В итоге задача состоит в том, чтоб удержать ее губами от такого разноса и заставить колебаться с нужной частотой. Второй момент. Сакс так устроен (аллилуя изобретателю), что у него передувания идут с четными гармониками, а не с нечетными, как у того же кларнета. И он, падла, сильно флажолетит, фактически издавая с одной амплитудой основной тон и его вторую гармонику. Ближе к верхним нотам это проходит, появляется просто хриплое зудение.
Суммируем. Звук сакса состоит из основного тона с очень сильно присутствующей второй гармоникой. При этом, учитывая, что губы у нас живые, а не железные, в сигнал постоянно подмешиваются и составляющие других гармоник, причем, тоже с заметной амплитудой. Наверное, вплоть до 10 - 12, именно высокие гармоники создают характерный "хрип", он проявляется на 4 - 8 кГц в спектре, а нотки... Ну, там речь идет о малой октаве (нижняя нота диапазона альт-саксофона - до малой октавы, да и то, если есть соответствующий клапан, а так - до-диез), однако, хрип на спектре довольно хорошо присутствует и на самых нижних нотах.
Значит, думаю, можно, как основу, взять генератор "порченого" синуса с двумя гармониками, подобрав их соотношение. Параллельно же запустить еще один генератор, который будет с помощью "кубика" (генератора случайных чисел) менять амплитуды гармоник, начиная с 3 и заканчивая 10-й, и этот сигнал подмешивать к основному тону, как бы тоже случайным образом меняя амплитуду.
Под термином "порченый" синус я имею в виду функцию синуса, которая после вычисления еще дополнительно корректируется на небольшую величину, опять же, случайно выбираемую. Получается линия, идущая около синусоиды, но в точности ей не соответствующая.
Сам не пробовал, да и не до этого сейчас. Но, кажется, такой алгоритм имитации сакса будет близок к истине. И не забыть, само собой, о резонансном фильтре!
Александр Якшин 17.10.2017 09:46 Заявить о нарушении
Здесь бы как-то (даже пока не знаю, как) привести все функции и алгоритмы из вида x = F(t) (где x - амплитуда, значение сэмпла, а t - текущее время или фаза) к виду x1 = x0 + F(dt), где x1 - текущая амплитуда, x0 - предыдущая, а dt - изменение фазы.
Смысл прост. Допустим, в процессе генерации, не прерывая звучания, нам нужно изменить частоту сигнала, это вполне обычный процесс (бенд, глиссандо). В итоге, допустим, при снижении частоты, амплитуда изменяется по тому же закону, но медленнее. И, чтоб не вызывать щелчков, сигнал должен продолжаться с той же точки, где поступила команда на изменение частоты.
Если же мы просто изменим в формуле или алгоритме параметр частоты, то F(t) на новой, но мало отличающейся частоте может дать такой разрыв сигнала, что это никак мимо слуха не пройдет.
Александр Якшин 17.10.2017 10:07 Заявить о нарушении
Первый вычисляет амплитуду, как функцию от частоты и времени - A=S(F,T)
он позволяет добавлять аккорды, вычисляя их звуки по той же функции, но с другими частотами. Так в настоящее время работает Трио.
Для тех инструментов, у которых аккордов нет (у сакса вроде нет?) но зато есть предрасположенность к глиссандо, звуковая функция может быть построена по другому алгоритму -
В момент появления звука (при первом обращении к звуковой функции) вычисляется шаг между семплами по времени в отношении к периоду колебания dTo=F/44100
Берётся величина dXo=2*dTo в качестве шага для вычислений и начальное Х=0.
Далее Х ползёт по интервалу (0,2) с этим шагом, символизируя фазу на отрезке от нуля до 2хПи. В соответствии с фазой делаются вычисления амплитуды.
и как только If X>2 Then X=X-2
Чтобы сделать глиссандо нужно просто поменять шаг. Звук будет перестраиваться без щелчков с какой угодно скоростью.
Так работал первоначальный вариант Трио, но я отказался от этого алгоритма в пользу аккордов. Однако ничто не мешает вернуться к нему и для саксофона сделать звуковую функцию по этому алгоритму.
И с чётными обертонами проблем не возникнет. Относительно других нужно подумать.
Не только саксофон, и другие инструменты под такой алгоритм найдутся.
Вообще, это идея - иметь не один мешок, а два мешка с инструментами.
А МУЗы, то есть музыканты, пусть будут универсалами. Каждому по два мешка! ))
Дм.
Дмитрий Маштаков 18.10.2017 00:19 Заявить о нарушении
Т - шкала реального времени (в секундах),
DT - шаг, расстояние между семплами в секундах:
T = T + DT: X = T / TT: NT = Int(X): X = (X - NT) * 2
ТТ - величина, обратная частоте, то есть период (в секундах)
NT - номер периода колебания (чтобы, в зависимости от этого значения как-то менять звук, например, сделать тремуло не с самого начала звука. а в его середине)
Х - фаза, та самая, на интервале (0,2)
___________
Так что двух мешков делать не надо, одним мешком обойдёмся ))
Дм.
Дмитрий Маштаков 18.10.2017 00:45 Заявить о нарушении
Принц Андромеды 18.10.2017 00:47 Заявить о нарушении
А музыкант "петуха пускает".
Дмитрий Маштаков 18.10.2017 00:52 Заявить о нарушении
запускаем туда по некой орбите микрофон, пусть вращается в этом поле с заданной звуковой частотой, и фиксирует потенциал поля.
Некие звуки мы услышим. Но будут ли они красивыми и благородными?
Как эти - http://yadi.sk/d/nJxwQB5I3Nqqpg
Вам не спится? Мне тоже - сегодня рабочие, которые делают капитальный ремонт нашего дома, так капитально отключили свет, что пришлось лечь спать с наступлением темноты. Проснулся - свет есть и интернет работает.
Но вредно это, так нарушать режим. Пойду-ка, продолжу прерванное занятие.
Как хорошо в мягкой постельке, а не в палатке на майдане.
Бедняги, мне их жалко. Вот, сколько люди ни живут, всегда сами над собой издеваются. И, казалось бы, куда? Ведь жизнь коротка.
Созерцание полиномов Эрмита, или занятия музыкой - вот самое то.
Дмитрий Маштаков 18.10.2017 01:23 Заявить о нарушении
Принц Андромеды 18.10.2017 07:43 Заявить о нарушении