Редактор семплов. Спектральные преобразования
А, собирая ноты в аккорды, легко создать и хоровое пение.
Такая заманчивая перспектива не столь уж трудна для реализации. Главное в этом деле то, что называется хорошим инструментарием - насколько хорошо развиты возможности обработки звука, настолько хорошим будет и результат.
Именно поэтому мои первоначальные усилия были направлены на создание инструментов для анализа звука и для работы с ним. О спектральном анализаторе рассказывается в предыдущей статье http://proza.ru/2025/06/03/69
Основой спектрального анализа является поведение резонансных датчиков - своеобразных колокольчиков, раскачиваемых звуком. Если настройка колокольчика попадает звуку в резонанс, то он раскачивается сильнее.
СПЕКТРОГРАММЫ
Спектры звука двух соседних октав показываются на спектрограмме - маленьком квадратике, где по горизонтали отложены частоты нот с промежутками, соответствующими промежуточным частотам, а по вертикали те амплитуды, до которых раскачались резонансные датчики.
В результате получается 96 вертикальных линий, каждая из которых соответствует своему, индивидуально настроенному датчику. Левая часть спектра соответствует той октаве, которая выставлена, а правая представляет звуки, лежащие октавой выше.
Таким образом можно анализировать спектр октав О0-О6, лежащий в диапазоне частот от 16 до 40000 Гц.
Если же на кнопке выбора октавы выставить значение О7, то тогда будет показан спектр сразу четырёх октав от ноты D-О3 и до ноты d-О5, но спектр этот станет менее подробным. Спектрограммы, показанные на иллюстрации, получены именно в таком режиме.
Если анализируется звук, сделанный самой Пианолой, то, скорее всего, на спектрограмме мы увидим ряд тонких линий - основной тон и обертоны, и эти линии будут разделены пустыми промежутками. Семплы же, полученные из записей живого звука, обычно состоят из линий, не разделённых пустыми промежутками, таковы спектры вокала, показанные на иллюстрации (диаграммы А,Б,4,5,6).
ТЕСТОВЫЙ ХРОМАТИЧЕСКИЙ АККОРД
Чтобы наглядно увидеть, как работает спектральное преобразование, нужен специально сделанный тестовый хроматический аккорд. Он состоит из синусоид одинаковой амплитуды, расположенным по ступеням хроматического ряда начиная с ноты D октавы О3 и кончая нотой d октавы О5, то есть, спектр звука задаётся равномерным, и он должен создавать на диаграммах частокол линий одинаковой длины, с промежутками между ними.
Именно по такому критерию отлаживалась работа резонансных датчиков спектрометра, а действие тех преобразований, которые мы захотим учинить над нашим семплом, можно легко проверить, подвергая этим преобразования тестовый хроматический аккорд.
Результаты подобных преобразований Вы можете видеть на диаграммах иллюстрации, а сами преобразования мы обсудим ниже.
Как создаётся тестовый хроматический аккорд?
Конструкция n1(1-1-1-1-1-1-1-1:::::::)p6<<<<9Ds6 проигранная в октаве О2, создаст такой аккорд (он называется N-аккорд) и поместит его в семпл №6. Суммарная амплитуда нот этого аккорда будет невелика, поэтому, для большей наглядности, его громкость следует увеличить (в редакторе семплов такая возможность есть).
НАБОРЫ ИЗ СЕМПЛОВ И ИХ ХРАНЕНИЕ
Как запомнить полученный результат, чтобы не повторять создание аккорда в будущем?
Имеющиеся в памяти программы семплы различаются по их номерам, и таких номеров может быть 13. Все эти 13 семплов априори в памяти существуют, но в нашем случае заполненным оказывается только один из них - семпл №6. В него мы поместили указанием p6 созданный нами N-аккорд.
Вне программы наборы семплов (по 13 семплов в каждом) могут храниться в файлах S, S1 … S9. Эти файлы находятся в текущем каталоге и имеют формат WAV. Их можно открыть редактором Wav Editor и посмотреть, что в них находится. А находится в них 13 отрезочков звука, по 6 сек каждый, это и есть наши семплы.
Если такой файл (пусть это будет файл S3) у Вас уже существует, то Вы можете добавить в него наш семпл №6, заместив им тот семпл №6, который там, возможно, имеется. Чтобы это сделать, мы записываем в строку указание |p3 и проигрываем его
Если же этого файла нет, то тогда можно записать в строку указание |s3 и проиграть его. Файл S3 тогда будет создан, и в него будут записаны те 13 семплов, которые находятся в памяти программы. В их числе будет и наш семпл №6.
В дальнейшем, если мы захотим работать с этим набором семплов, то мы проиграем указание |i3 и тогда нужный набор семплов будет считан из файла S3 и окажется в памяти нашей программы.
Вы заметили, что все действия с семплами в программе «Пианола_М» совершаются очень просто - мы задаём их в мнемонической форме (save-сохранить input-ввести put-положить) в нотной строке и проигрываем её. В подобной мнемонической форме задаются все действия по преобразованию семплов. Такова особенность программы, и этим она отличается от других программ, в которых преобразования и настройки осуществляются кручением ручек и передвижением ползунков.
КАК СДЕЛАТЬ СЕМПЛ ИЗ ЖИВОГО ЗВУКА
Конечным итогом спектральных преобразований является работа с семплами живого звука. Но как получить такой семпл, и как внедрить его в программу? Делается это так.
В текущем каталоге создаём папку с названием «семплы» и помещаем туда записи, найденные в интернете, такие, из которых мы надеемся добыть подходящий для семпла звук. Пусть это, например, будет исполнение романса А.Алябьева «Соловей» - там много мест высокого женского голоса с затяжной фонемой «а».
Открываем эту запись в программе «Wave Editor» и, найдя подходящее место, выделяем и сохраняем его в файле 2.wav. Номер, служащий названием файла, может быть любой, от 1 до 99, это не принципиально.
Важно то, что именно этот номер мы укажем, создавая семпл в программе «Пианола_М». Делается это так.
Кнопкой О/Б Выставляем большой буфер, в нём помещается 10 секунд звука, и его заведомо хватит для размещения 6-ти секундного семпла.
В нотной строке указываем |2~~~~~~|1es1 - каждый знак ~ это пауза длительностью 1 сек, этих знаков у нас 6, и таким образом мы указываем на длину семпла.
Затем мы проигрываем эту строку.
Что произойдёт? Из папки «семплы» будет считан файл 2.wav и его звуки будут складываться со звуками находящимися следом за значком |2. В нашем случае там находятся паузы, поэтому мы услышим только считываемые звуки вокала.
Итак, семпл вокала №1 у нас появился. На номер семпла указывает цифра после замыкающего знака | а значок s1 делает этот семпл выбранным (выбирает семпл №1 из набора 13-ти семплов).
Нота е, обозначенная своим значком, тоже будет сыграна, мы её услышим и сравним со звучанием вокала. К частоте этой ноты будет в дальнейшем привязан наш семпл. Частота эта должна быть, по возможности, правильной, иначе наш вокал, когда мы будем использовать его как ноты, не сойдётся по частоте с сопровождающими вокал звуками, создаваемыми Пианолой, или со звуками других используемых семплов.
Поэтому, вслушивайтесь тщательно, и при необходимости поменяйте ноту привязки на другую. Что, впрочем, можно будет сделать и после, программа такую возможность тоже предоставляет.
Если никакая нота не указана, то привязка осуществляется к ноте Ля первой октавы (частота 440 Гц).
Семпл у нас создан и выбран. Теперь мы можем поместить его в файл S2.wav выполнив операцию «put» и при этом снабдить семпл комментарием. Комментарий идёт после знака * и содержит до 30 символов. Это может выглядеть, например, так:
|p2*Голос высокого сопрано
В дальнейшем, этот комментарий будет показываться при просмотре семплов, если семпл №1 нами выбран.
ПРОСМОТР СЕМПЛОВ
Просмотр имеющихся в памяти семплов делается кликом правой кнопки мыши по кнопке «блокировка Save» (кнопка эта, таким образом, имеет двойное назначение).
Осциллограммы семплов показываются в 13-ти белых окошечках - на месте нижнего ряда бемольных клавиш (обычно эти клавиши не используются, так почему бы им не поработать в другом качестве?).
Осциллограммы короткие, но по ним Вы можете оценить амплитуды и длину каждого из семплов. Окошечки пустых семплов, естественно, так и остаются пустыми. Выбранный семпл, если такой имеется, обводится тонкой красной рамочкой.
Одновременно, в верхнем информационном поле появляются частоты привязки семплов и комментарий к выбранному семплу, если он имеется.
Оценив полученную информацию, пользователь может перейти к редактированию выбранного семпла, выбрать для редактирования другой семпл, загрузить другой набор семплов - в общем, он понимает, какие семплы в настоящее время находятся в памяти компьютера, и в каком состоянии они пребывают.
РЕДАКТОР СЕМПЛОВ
К редактированию выбранного семпла мы переходим, кликнув по кнопке «блокировка Save» правой кнопкой мыши с одновременным нажатием клавиши Ctrl.
Выбранный семпл загружается в отдельную память, и его осциллограмма показывается на месте 12-ти первых бемольных клавиш, а на 13-том квадратике появляются управляющие редактированием кнопочки.
Красная кнопочка переключает режимы редактирования, таких режимов в редакторе три.
В первом режиме имеются стрелочки, которыми можно менять размер положительных и отрицательных амплитуд семпла отдельно, увеличивая или уменьшая их. Клики по осциллограмме на уровне этих стрелочек меняют амплитуды семпла локально - на небольших его участках. Таким способом можно корректировать громкость звука как для всего семпла, так и для отдельных его частей.
Второй режим позволяет, выбирая точки на осциллограмме, удалять из неё обозначенный точками фрагмент, или наращивать семпл выбранными фрагментами, удлиняя его звучание. Последняя возможность весьма привлекательна, поскольку записанный живой звук не всегда оказывается долгим. Напомню, что длительность звучания семпла может доходить до 6 секунд, и удлиняя звук, можно использовать эту длительность в полной мере.
Разрыв фрагментов при их удалении или наращивании проводится по специальному алгоритму, использующему поиск наибольшей амплитуды вблизи выбранной точки, именно по этой точке производится разрыв, а при сшивке фрагментов делается плавный переход с одного максимума на другой, поэтому в местах сшивки не слышны трески или характерные хлопки, возникающие обычно при таких операциях.
Третий режим работы связан с более сложными преобразованиями, меняющими тембр и спектральный состав звука. Их мы обсудим ниже.
Во всех трёх режимах в квадрате управления находятся две зелёных кнопочки - первая позволяет запомнить исходное или текущее состояние редактируемого семпла, а вторая восстанавливает семпл в том виде, в котором мы его запомнили.
Кликнув по надписи Ok мы заканчиваем редактирование семпла и запоминаем его в новом, преобразованном виде.
Чтобы выйти из редактора без изменений нужно кликнуть кнопку «Enter» или кнопку «считать».
Остальные кнопки работают так, как и прежде, проиграть строку до курсора можно голубой кнопкой >, а соседняя кнопка >> проиграет семпл в том виде, в каком мы его наблюдаем на осциллограмме.
Это удобно - мы изменили семпл, и тут же проиграли его, не выходя из редактора и не делая окончательных изменений.
СПЕКТРАЛЬНЫЕ ПРЕОБРАЗОВАНИЯ
Клик по осциллограмме семпла в третьем режиме выводит на диаграмму спектр семпла на участке S, который начинается на месте клика и имеет длину 1/4 сек, если такое значение установлено на кнопке «начальная длительность нот», или иное значение, на длину которого также влияет число, выставленное на кнопке «тонкая регулировка темпа». Используя эти две кнопки, можно регулировать длину S в широких пределах.
От длины S зависит разрешение спектра и та амплитуда, до которой раскачиваются резонансные датчики. Амплитуда эта пропорциональна S и достигает значения 50 для колебания синусоиды, попадающей в резонанс, и имеющей значение 32000, если S=1/4 сек (семплы в звуковой записи представлены целыми числами, и 32768 это максимальное значение, которое может иметь целое число. С другой стороны, 32000 это частота дискретизации звука, принятая в программе Пианола, откуда, в связи с особенностями настройки резонансных датчиков, фактически и получилось соответствие между числами 50 и 32000).
Информацию о частоте резонансного датчика и о зафиксированной им амплитуде можно получить, если кликнуть по спектрограмме.
Значение амплитуды важно, если мы хотим оценить эффективность того или иного спектрального преобразования. Дело в том, что большинство этих преобразований основано на подавлении одного из участков спектра, а подавить его чисто, не влияя на другие участки, практически невозможно, поэтому и появляется интерес к тому, как изменилась амплитуда спектра не только по внешнему виду изменившейся спектрограммы, но и в более точном, количественном отношении.
Не все действия в режиме 3 связаны именно со спектром, и о них мы сейчас поговорим.
ИЗМЕНЕНИЕ ГРОМКОСТИ
Если частоты подавляются серьёзно, то семпл начинает звучать заметно тише. Оперативно усилить его громкость можно, записав в нотную строку /2 или /1.1 - указав любое число от 1.1 до двух, и кликнув по кнопке «фильтровать». Конечно, никакого фильтрования по частоте не произойдёт, но громкость семпла будет увеличена, и мы сразу заметим это по осциллограмме.
Совершенно аналогично, указаниями \2 - \1.1 громкость семпла можно уменьшать.
При неудачном преобразовании можно сразу же вернуться обратно - кнопка «отменить» восстановит прежний вид семпла.
М_ПАМЯТЬ
Работая в режиме 3 можно использовать М-память. Она устроена так, как устроена М-память в обычном калькуляторе:
Указания M0 M+ M- M= будучи записаны в нотную строку и будучи исполнены, очистят М-память, прибавят к содержимому М-памяти амплитуды семпла, вычтут амплитуды семпла из содержимого М-памяти, или предъявят на обозрение полученный результат.
Работая с М-памятью, например, можно записать в неё семпл со знаком плюс (выполнить М+), подавить частоты на одном из участков спектра и добавить результат в память с обратным знаком (выполнить М-), затем отменить преобразования (кнопкой «отменить»), затем добавить семпл в память (выполнить М+), и наконец считать память (выполнить М=) и получить вместо подавления, усиление этих же частот.
Такие фокусы очень интересны, и, чтобы освоить их, можно потренироваться, используя семпл с записанным в него хроматическим аккордом.
СКОЛЬЗЯЩАЯ ФИЛЬТРАЦИЯ. СГЛАЖИВАНИЕ
Спектральные преобразования делаются масками скользящего типа.
Примером такого преобразования является сглаживание семпла. Это один из способов подавления высоких частот, в литературе он называется «скользящее среднее». Суть этого метода такова:
-делаем копию семпла и делаем маску такого вида oooiooo
-идём по копии с шагом 1 и читаем амплитуды в точках, указанных
кружочками. Амплитуды складываем, а поскольку их оказалось 3+3=6,
то делим полученную сумму на 6. Полученный результат записываем
в подлинник семпла на место i.
Число 3, от которого зависит нижняя частота и сила сглаживания, может быть другим - при 1 эффект сглаживания незаметен, а для числа 9 подавление верхних частот весьма ощутимо.
Чтобы провести сглаживание, в нотную строку записываем 9) или другую цифру и скобку (скобка нужна как страховка, чтобы удостовериться в осмысленности действий пользователя), и затем выполняем это указание. Как изменился спектр, Вы можете видеть на иллюстрации.
Подавление нижних частот делается по той же схеме, с существенным отличием - результат не просто записывается, а предварительно вычитается из амплитуды, прочитанной по индексу i.
Указание для подавления нижних частот записывается так -9)
Опыт показал, что с увеличением числа считывающих точек результат меняется слабо, поэтому, если число точек больше одной, то количество их увеличивается в четыре раза, плюс ещё 1. Поэтому, если для подавления нижних частот используется опция -2), то на самом деле считывающих точек будет 9 с каждой стороны от центральной точки i. А указание -9) создаст по 37 точек с каждой стороны от i. При таком количестве точек и большой длине семпла замедление счёта оказывается заметным, но для других преобразований алгоритм скользящей маски работает быстро, и время преобразования не превышает одной секунды.
Между цифрой и скобкой может быть помещена вторая цифра. Тогда преобразование делается не в полную силу, а слегка - изменения происходят в соответствии с весовой долей, на которую указывает вторая цифра.
Последовательно проделанное подавление нижних и верхних частот:
-9) 9) сохранит без сильных изменений среднюю часть спектра, и этим тоже можно пользоваться.
ЛОКАЛЬНЫЕ ПРЕОБРАЗОВАНИЯ. ПРОФИЛЬ
Спектральные преобразования, которые делает Пианола, можно осуществлять не на всём семпле, а локально - на том участке семпла, который выбран для спектрального анализа.
Чтобы операция сглаживания была локальной, перед закрывающей скобкой, на месте второй цифры нужно поставить звёздочку, вот так 9*)
Края локальных преобразований плавно сопрягаются с непреобразованными частями, поэтому никаких хлопков или треска на местах сопряжения не слышно.
Для локального преобразования можно задать профиль - скобка отодвигается, а на её месте записывается запятая, и далее одна или много цифр, вот так: 9*,99009900990055) - цифра в профиле задаёт силу преобразования, там, где стоит 0, звук остаётся без изменений.
Проделав такое преобразование 4 раза можно заставить певческий голос выговаривать «рааа...», только это будет не русское «р», а задненёбное французское, что, в общем, тоже неплохо.
Фонему «лааа...» таким способом тоже можно сделать.
Аналогичным образом в профиль можно обрядить и другие локальные преобразования.
ИЗБИРАТЕЛЬНЫЕ ЧАСТОТНЫЕ ПРЕОБРАЗОВАНИЯ
Для подавления частот верхней и нижней частей спектра нам не понадобилось указывать на конкретную частоту.
Другой тип скользящего преобразования прямо связан с таким указанием. Частоту задаёт нотное обозначение, поставленное в первую позицию строки, от указания на преобразование оно отделяется запятой:
С,-1) -эта запись указывает на то, что будет избирательно подавляться частота ноты «До», причём, эта частота подавляется полностью. Для частичного подавления частоты используется вторая цифра, можно, например, записать это указание так: С,-17) - чем большую вторую цифру мы поставим, тем сильнее будет подавление частоты ноты «До».
Записью С#,-1) можно указать на ноту «До-диез», но и только - на бемоли или бекары указывать нельзя, да это функционально и не нужно.
Частота ноты зависит от номера выставленной октавы, но можно указать на октаву явно - запись О4С#,-1) подавит частоту ноты «До-диез» октавы О4, независимо от того, какая октава выставлена над нотной строкой.
Практическая реализация скользящего избирательного преобразования отличается лишь расстояниями между считывающими точками маски - для сглаживания эти точки поставлены вплотную друг к другу и примыкают к центральной точке, а для избирательного преобразования считывающие точки разделяются промежутками, длина которых равна периоду колебаний подавляемой частоты:
o___o___o___i___o___o___o -в остальном же, действия по считыванию, суммированию и записи получаемых результатов проходят по тому же алгоритму.
Изменения в спектре, получаемые в режимах подавления и усиления ноты «До» октавы О4 показаны на иллюстрации в рядах диаграмм 1 и 2.
По диаграмме 1 видно, что нота «До» дискриминируется не одна, вместе с ней подавляются её обертоны - ноты «До» и «Соль» октавы О5, и (это показывает дополнительный анализ) более верхние «До», «Ми», «Соль» октавы О6, выше идут - нота «Ля-диез» октавы О7 (подавляется не совсем), а вот нота «До» октавы О8 находится в полном здравии, нота «До-диез» октавы О8 подавлена полностью, нота «Ре» этой же октавы жива и здорова, а выше анализ не проводился.
Заметно также, подавление обертонов по мере возрастания их частоты становятся более избирательным.
Увеличение числа считывающих точек от одной до девяти качественно картины не меняет, но делает зоны подавления частот более узкими.
Опции избирательного усиления (диаграммы ряда 2) показывают тоже самое, только с обратным знаком.
Выводы из всего этого делаем такие - скользящая избирательная маска работает неплохо, но чисто дискриминировать выбранную частоту, не затрагивая других частей спектра она не позволяет. И это не очень хорошо, поскольку избирательная скользящая маска проста, и вычисления с ней происходят быстро, а прибегать к преобразованиям Фурье, ой как не хочется - они хоть и помогут решить проблему, но сильно усложнят процесс и заметно затянут его по времени.
Поэтому «чешем репу» и думаем, как бы нам изощриться, так, чтобы и простоты процесса не потерять, и нужную частоту отделить, по крайней мере, от ближайших к ней обертонов.
Термин «чешу репу» это то, что называется эвристическим программированием - успех достигается не дедуктивным путём, а на него наталкивают старательные наблюдения и его превосходительство, случай. Именно по такому случаю Архимед закричал «Эврика», когда он залез в переполненную ванну, а из неё вытекла вода.
Итак, рассказываю дальше.
КОМБИНИРОВАННЫЕ ПРЕОБРАЗОВАНИЯ
Давайте, посмотрим на диаграмму 1 ещё раз. Она получена после преобразования частокола ровного спектра (см.правее), и повторена на диаграмме под ним.
Мы подавили частоты ноты «До», а между ними находится пик, он соответствует частоте ноты «Соль» и не пострадал от проведённой дискриминации. Выше по частоте находятся пики, принадлежащие нотам «Ми» и «Си» октавы О5.
И тут в голову приходит эвристическая идея - а что будет, если мы подавим их? Тогда должен остаться один пик - это будет пик ноты «Соль», и он станет совсем чистеньким. А это как раз то, что нам и нужно - возьмём исходный семпл-частокол, вычтем из него полученный семпл, и получим семпл с провалом на ноте «Соль».
Сказано - сделано. Ниже по диаграммам Вы видите спектры, полученные после подавления нот «Ми» и «Си», и (о чудо!), не только эти ноты исчезли из спектра, но и от всего диапазона нижних частот остался только небольшой горбик.
Я попытался убрать и его - ещё оно подавление ноты «Си» дало отличный результат, упомянутый горбик практически исчез, а в остальном спектр почти не изменился.
Теперь берём исходный семпл, вычитаем из него полученный результат, и получаем то, что Вы видите слева - диаграмма там искусственным образом продлена, с тем, чтобы можно было видеть верхние частоты. Вы видите, что провалы на высоких частотах хотя и есть, но они узкие, и даже не полные, и это для прикладных целей вполне приемлемо.
Чтобы получить нужный результат мы провели 5 последовательных преобразований, этот процесс оказался не таким уж и простым, и чтобы помочь пользователю, в программу была введена лексика, запускающая этот процесс с автоматическим чередованием его фаз:
G,\2) -эта запись вызывает последовательное исполнение команд C-1) e-1) b-1) b-1) /1.4) M0) M-) N) M+) M=) -знак N в этой цепочке считывает из памяти семпл, записанный туда в его первоначальном виде, а указание /1.4) поднимает громкость семпла - дело в том, что проводимые нами дискриминации частот нот, находящихся рядом, несколько уменьшают амплитуду пика «Соль», и поэтому это постепенно набежавшее уменьшение приходится компенсировать (именно для таких случаев и была предусмотрена замечательная возможность - кликом по спектру узнавать амплитуду колебаний резонансного датчика).
Всё это к тому, что проводить описанные преобразования, учитывая все их нюансы, очень непросто. И, как Вы понимаете, облегчение труда при автоматизации этого процесса происходит очень большое.
Есть и команда попроще - G,\1) она проводит 4 первые фазы процесса и создаёт семпл с выделенным одиночным пиком на ноте «Соль» и не очень определёнными сильно-высокими частотами. Вам предоставляется возможность задавить их, и потом проводить фокусы с М-памятью, или делать что-то иное - это на Ваш выбор.
Осуществляя похожее комбинированное преобразование G,/2) можно не подавить частоту ноты «Соль», а наоборот, усилить её (см.диаграмму левее). Можно последовательно подавлять частоты разных нот, делая это полностью, или не полностью (см.диаграмму правее). В общем, возможности открываются разнообразные.
На диаграмме 4 оказан спектр певческого голоса высокое сопрано, в октавах О4-О5 это ноты «Ми» и «ми» верхнее. На диаграммах ниже подавлена частота одной из этих нот, мы с Вами услышим результат - высота тона голоса существенно изменилась при подавлении нижней частоты, а тембр голоса стал визжащим. При подавлении верхней частоты высота тона не изменилась, и изменения тембра оказались мало заметными, это говорит о том, что помимо верхнего октавного обертона тембр, видимо, имеются другие верхние частоты, поддерживающие звук этого вокала.
ДЕЛАЕМ ПРОТИВОПОЛОЖНОЕ УКАЗАННОМУ
К роду комбинированных указаний относятся указания, предваряемые значком ^ - запись ^-9) например, означает не «подавить верхние частоты», а наоборот, усилить их. Она эквивалентна выполнению следующих команд:
-9) M0) M-) N) M+) M=) -эквивалентность эта, однако, условная, М-память преобразования, в действительности, не затрагивают. Тоже самое нужно сказать и о той цепочке, которая была представлена выше. Для этих сложений и вычитаний использовалась другая память, и сделано это для того, чтобы М-память можно было бы использовать не в стандартных, а произвольно заданных цепочках команд, к описанию которых мы с Вами сейчас и перейдём.
ИСПОЛНЕНИЕ КОМАНД, ЗАДАННЫХ ЦЕПОЧКАМИ
Программа «Пианола_М», приспособленная запоминать и использовать много строк, заполненных мнемонической записью нот, способна с такой же эффективностью использовать эти строки для записи цепочек из комбинаций последовательно исполняемых команд, в точности таких, какие были показаны выше.
Это могут быть самые разнообразные процедуры, а чтобы они были понятными, их можно снабдить комментариями на русском языке, находящимися в этих же строках. Тогда и трудиться - набирать комбинации преобразований в их мнемоническом виде не нужно, достаточно будет, перелистывая строки, найти подходящую к конкретной задаче комбинацию спектральных преобразований и применять её ко всему семплу целиком, или локально, к отдельным его частям.
Не думайте, что это сложно. Напротив того, всё очень просто - для исполнения команд цепочкой Вы кликаете кнопку «фильтровать» не левой кнопкой мыши, а правой её кнопкой. И дальше просто наблюдаете за происходящим.
А происходить будет следующее - когда будет выполнена первая команда из цепочки, то результатов её Вы не увидите - не изменится осциллограмма, и на спектрограмме спектр не изменится, вместо этого Вы заметите, что цепочка команд сдвинулась к началу строки, и теперь там стоит не первая, а вторая команда из этой цепочки. Когда будет исполнена и она, настанет очередь третьей. И так цепочка будет двигаться, пока не исполнятся все записанные в неё команды - процесс наглядный и понятный. Когда же всё будет закончено, то строка восстановится в начальном своём виде, появится изображение преобразованного семпла и соответствующая сделанным изменениям спектрограмма.
Отменить же это действие ещё проще - кликаем кнопку «отменить», и семпл вместе со спектрограммой возвращаются в своё прежнее состояние.
ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ СПЕКТРАЛЬНЫХ ПРЕОБРАЗОВАНИЙ
Вот ссылка, по которой Вы можете прослушать результаты преобразований, проделанных с семплом высокого сопрано -
https://disk.yandex.ru/d/XKlp0ModIR4kIw
Вначале идёт звук исходного семпла, затем звука семпла с локально преобразованным профилем звука, а затем опять исходный семпл. Через небольшую паузу, следом идут звуки с подавленным нижним и подавленным верхнем «Ми».
Завершает запись звук, преобразованный по цепочке 9)-24)91)/2)^-2)
Спектр этого звука показан на диаграмме правее - очень небольшое ослабление нижних частот и не очень уж крутое ослабление верхних. Тем не менее, звук заметно отличается по тембру, что ещё раз подтверждает существенность вклада, вносимого в этот семпл самими верхними его частотами.
ЗАКЛЮЧЕНИЕ
Редактор семпла в программе «Пианола_М» предоставляет хорошие возможности как для всестороннего исследования спектрального состава семпла, так и для разнообразных его преобразований.
Метод резонансных датчиков показывает работоспособность и пригодность к количественным измерениям при анализе спектральной структуры.
Практическое применение редактора опробовано, оно оказалось удобным, наглядным в своей работе, и дающим неплохие результаты.
Дальнейшее развитие проекта предполагает широкое применение семплов и опробование их в соединении со звучанием собственных инструментов. То есть, я считаю, что инструментарий Пианолы готов к этой работе полностью, и мне нужно вернуться к обычной творческой деятельности по озвучиванию музыкальных произведений, с учётом и привлечением новых технических возможностей.
Если кто-нибудь захочет попробовать «Пианолу_М» в этом новом своём качестве, то скачивайте и пробуйте. Ссылка для скачивания вот -
https://disk.yandex.ru/d/5v4Bd5b3et_u5g
Программа работает в системе Виндос-7.
Проигрывание выбранного семпла делается назначением музыканта Qs
Вот пример строки с проигрываемым вокалом:
Qsedc#d^d:1fegdfceB^d^; d:2faceaBda<Aca> c#egc#c#eG#c#eAdf; H8B:(1291)<d!
А вот, как этот вокал звучит:
https://disk.yandex.ru/d/gyzTUgxQn2uo8w
__________
13.06.2025
Свидетельство о публикации №225061301926