уважаемые читатели, даже если вы не специализируетесь в области
программирования или музыки, то оцените стиль изложения -
я старался писать интересно и понятно
Программа создания музыкальных файлов Трио, перенесённая из Турбо Бейсика в среду VB6, приобрела более выраженную и естественную структуру.
Напомню, что программа занимается чтением партитур из текстовых файлов, синтезирует музыкальный звук, и записывает его в WAV файл.
Программа ТРИО представляет собой ансамбль, состоящий из трёх музыкантов и дирижёра, и её структура как раз и соответствует этому разделению. Музыканты, три модуля - MUZ_1, MUZ_2 и MUZ_3, и дирижёр, находящийся в модуле MAIN, пишут музыку, накапливая отрезки длительностью около секунды, и передают эти отрезки в файл PROBA.wav.
Для исходных файлов партитур тоже приняты фиксированные названия - МУЗ1 специализируется на звуках скрипичных инструментов и читает партитуру, условно называемую партитурой альта, это текстовый файл TFA.txt, а МУЗы №2 и №3 специализируются на звуках фортепьяно и аккордеона, они читают информацию из партитур "левой" и "правой" руки - из файлов TFL.txt и TFP.txt.
Специализация музыкантов относительна - каждый из них имеет по большому мешку с инструментами. Называется этот мешок "Звуковая функция". И обращение к этому мешку очень простое:
A = FNSS3(0,0) - забудь всё прошлое, и
A = FNSS3(F,k) - предай мне амплитуду звука частоты F от инструмента номер k.
Естественно, что если звуковая функция "всё прошлое забыла", то она первым делом находит инструмент номер k - это такая запись, называемая сценарием развития звука, и в этой записи всё объясняется - какими методами создания звука нужно воспользоваться, указывается скорость развития звука, его максимальная амплитуда и фактор затухания, указывается на обертоны, которые нужно присоединить, указываются точки заброса эха (если эхо предусмотрено в данном сценарии под номером k), и всё другое.
В общем, функция настраивается на свою последующую работу.
А потом работает, возвращая при каждом обращении FNSS3(F,k) амплитуду очередного семпла. Музыкант эту амплитуду принимает, прибавляет к ней амплитуду эха, пришедшего из ревербератора (у каждого музыканта ревербератор свой, также как и свой мешок со звуковой функцией и её сценариями), ревербераторы музыкантов совершенно однотипны и находятся в отдельном модуле по названием "функции".
Поговорим теперь о работе дирижёра. Дирижёр, как ему и положено, руководит игрой музыкантов. Он сообщает музыкантам, кто из них будет играть, открывает для них партитуры и обращается по очереди к 1-му, 2-му и 3-му МУЗу для получения от них амплитуд для формирования семпла. Полученные амплитуды дирижёр распределяет по каналам для левого и правого динамика, подготавливая стереозапись той конфигурации, которая ему указана.
А кто даёт указания дирижёру?
Конечно же мы. Мы делаем это, кликая мышкой по кнопочкам окна программы.
Прежде всего кликаем по кнопочке под названием "Начало", и надпись на этой кнопочке превращается в надпись "P----P". Это означает. что будет открыта партитура для правой руки, а звук будет направлен в левый и правый динамик компьютера.
Кликнем ещё раз. "L----P" означает, что будут играть два музыканта. МУЗ2 исполняет партию левой руки, и звук её будет направлен в левый динамик, а МУЗ3 играет партию правой руки, которая будет слышна через правый динамик.
Но может быть, это нехорошо, и следовало бы немного смешать звуки друг с другом?
Кликнем по клавише ещё раз. Появится надпись "L-LP-P", а под ней маленькая кнопочка с числом 0.5. Теперь амплитуды звуков левой и правой руки будут распределены по каналам равномерно.
Хотите всё же оставить подобие стереозвука? Покликайте по маленькой кнопочке, и сделайте распределение звука по каналам более выраженным.
Следующие конфигурации - "A---LP", "A-LP" с кнопочкой регулировки, "AL---P" и "A----A" подключают к работе первого музыканта, и ТРИО в этом случае играет в полном составе.
Модуль "Звук" нужен для того, чтобы своим звуком сообщить о завершении работы. Видите, уважаемые читатели, как всё просто.
Это гораздо проще, чем работать с МИДИ форматом. А возможностей больше.
Вот эти возможности мы с вами сейчас и обсудим.
ПЕРСПЕКТИВЫ И ВОЗМОЖНОСТИ СИНТЕЗА МУЗЫКАЛЬНОГО ЗВУКА
И в самом деле, зачем я развиваю этот проект, хотя, как может показаться, он уводит нас от хорошо проторенной дороги МИДИ звука в сторону некой самоделки?
Нет, не потому, что МИДИ звук сложен в освоении, а со своим возиться интереснее. Нет - у того подхода, который я развиваю, возможностей больше.
МИДИ подход напоминает машинное производство - штамповка музыки поставлена на поток. Хотя над разработкой МИДИ проигрывателей трудится масса народа, качество звука оставляет желать лучшего. Я ещё не слышал приличного звука скрипки или альта в синтезированном варианте. Что уж говорить о нюансах исполнения? О тех "штрихах" которых в скрипичном исполнении насчитывается больше сотни. Да что скрипка, в фортепьянном исполнении вы не можете передать изменение тембра при ударе по клавише средствами МИДИ протокола. В МИДИ протоколе при нажатии клавиши предусмотрена одна вариация - громкость звука. И никаких тембров.
Нет, вибрато скрипки вы можете запрограммировать специально, кстати, достаточно "дубовым" методом - только так, а не иначе, но звуки ponticello вам недоступны.
Вы понимаете, о чём я говорю - у МИДИ протокола нет гибкости.
Работа с текстовыми файлами партитур, это ручная работа. Звук можно сделать совершенным. Все штрихи и нюансы можно отразить в сценариях звуковой функции - Визуал Бейсик среда доступная многим, чего не скажешь о готовых редакторах, работающих по принципу - "довольствуйся тем звуком, который в нас заложен". И никакой самодеятельности.
Надо сказать, что такой подход очень устраивает фирмы, производящие звуковое оборудование - ну кто будет покупать у них их разработки, если покупатель сам, по простоте своей, может сделать звук на клавишах компьютера качеством получше?
Так что, увы, дорогой мой читатель, прорыва на этом направлении не предвидится.
А жаль. Ведь разработка этого направления может вдохнуть новую жизнь в синтезированный звук. А стандарт? Возможно, через некоторое время возникнет и новый стандарт, более гибкий и качественный.
А МИДИ стандарт очень уж закостенел, так мне кажется.
=======================
ссылки на текст программы см. тут - http://www.proza.ru/2017/08/25/2126
На прослушивание записей классической музыки, сделанных звуком, синтезированном на компьютере с помощью программы Трио, заходите сюда -
http://yadi.sk/d/poMxlrBuxendv