Делал несколько синтов на физическом моделировании, но не путем написания софта, а построением моделей в SynC Modular.
Для начала о самом софте (не реклама, т.к. не продается):
Этот софт разработан в конце 90-х начале нулевых нашим талантливым соотечественником под ником Dr.SynC . Представляет из себя полифонический и мультитембральный синтезатор. Может работать как в режиме standalone, так и как VST-плагин (в этом случае может еще и обрабатывать входной сигнал). Несколько лет назад автор сделал его freeware, за что ему большое спасибо (ключ опубликован на странице скачивания http://www.sync-modular.org/index.php?page=Download).
Несмотря на то, что обычно в описаниях он фигурирует либо как модульный синтезатор (навевая мысли о имитации всягих Moog Modular), либо вообще как "кислотный" (ох уж мне эти любители клубной музыки), фактически элементами моделей являются элементарные операции над сигналом, то есть арифметика, реле-свитчи, задержка на такт (что позволяет осуществлять интегрирование и дифференцирование), генераторы белого шума и кусочно-линейных последовательностей и макроблоки для упорядочивания схем, а привычные блоки модульных синтезаторов (генераторы, фильтры, амплитудные модуляторы, эффекты) реализованы как библиотечные макроблоки. Все это позволяет реализовывать в нем еще и физическое моделирование или другие методы синтеза, не только обычный для модульников субтрактивный (причем благодаря некоторым остроумным находкам Dr.SynC все это работало без тормозов в полифоническом режиме даже на компах начала нулевых).
Теперь о моих моделях для этого софта:
1). Попытка моделирования звука гитары. В основе лежит алгоритм Капрлуса-Стронга (имитация волны в замкнутом волноводе), но на него навешано несколько добавок для придания звуку реалистичности:
- имитация шума кожи на кончике пальца с зависимостью от силы щипка (то есть, чем слабее щипок, тем дольше длится этот процесс)
- имитация кратковременного изменения тона струны из-за ее оттяжки в начале щипка
- имитация медленного вращения плоскости колебаний струны
- имитация взаимодействия струн через резонатор
Также реализованы пара методов исполнительской модуляции звучания: оттяжка струн (колесо питчбенда), вибрато (channel aftertouch) и скольжение по грифу (реализовано частично колесом модуляции).
Конечно, всего этого все равно недостаточно для реалистичности, т.к. у живой гитары много способов исполнительской вариации звучания: смена лада без щипка, глушения струн, удары по струнам и резонатору, "чес", флажолеты, шум скольжения по обмотке струн... Так что общее звучание скорее похоже на игру на арфе, чем на гитаре.
Демо звучания (клип из более длинного файла) - http://www.gamedev.ru/files/sounds/?id=126858
Модель для Sync Modular - http://www.gamedev.ru/files/?id=126912
2). Модель свиста
Ничего особенного, белый шум через высокодобротный фильтр, но как и в предыдущем случае, есть несколько деталей:
- нестабильность частоты (нормальный человек не может резко и стабильно менять объем полости рта)
- плавность изменения частоты (та же причина)
- ухудшение добротности фильтра при смене частоты и в начале ноты (то есть, хороший свист не сразу устанавливается)
- исполнительское вибрато (channel aftertouch)
демо звучания - http://www.gamedev.ru/files/sounds/?id=126913
Модель для Sync Modular - http://www.gamedev.ru/files/?id=126914
3). Голос (женское "А").
Упрощенное моделирование. Не ставилась цель точно смоделировать тембр, скорее это был эксперимент по исследованию того, как влияют на "живость" нетембральные параметры. До вокалоидов далеко, но в некотором диапазоне мне показалось очень даже неплохо, несмотря на то, что из всех формант голоса моделируется только одна.
демо звучания - http://www.gamedev.ru/files/sounds/?id=126915
Модель для Sync Modular - http://www.gamedev.ru/files/?id=126916
4). Моделирование электрогитары, модель не моя но тоже на основе Karplus-Strong. Мной добавлено немножко доделок типа слайда по грифу.
Демо на ютюбе, я его уже где-то приводил здесь - https://www.youtube.com/watch?v=H2Ci9TnCOsw
Dmitry_Milk
> 2). Модель свиста
Круто! Только фоновый шум какой-то посторонний. Это специально звук выдуваемого ветра добавлен?
Dmitry_Milk
> 3). Голос (женское "А").
Прикольно. Но тут тоже какой-то посторонний шум, похожий на пилообразную волну.
Это не посторонний, это в обоих случаях как раз исходный сигнал, который недостаточно обработан.
Dmitry_Milk
Когда заливаешь на GD mp3 файл, можно в сообщение давать не ссылку на файл, а тег такого вида:
[sound=126858]
Он появляется на странице залитого файла. В сообщении получатся такие удобные плееры:
Попытка моделирования звука гитары. В основе лежит алгоритм Капрлуса-Стронга (имитация волны в замкнутом волноводе):
[sound=126858]
Модель свиста Ничего особенного, белый шум через высокодобротный фильтр:
[sound=126913]
Голос (женское "А"):
[sound=126915]
Свист впечатлил, очень натурально. Остальное не особо.
gammaker
Может возьмём эту гитарную партию (которая больше похожа на арфу) и попробуем раскрыть более качественно?
Mikle
> Может возьмём эту гитарную партию (которая больше похожа на арфу) и попробуем
> раскрыть более качественно?
Да мне бы хотя бы осилить то, что есть, в моём синтезаторе. Так как я совсем не разбираюсь в музыкальных инструментах, я могу только копировать чужие достижения и применять метод тыка. Поэтому вряд ли у меня лучше получится.
Но если сделаете лучше и без тяжёлого физического моделирования, то я буду рад внедрить эти результаты в свой синтезатор.
Mikle
> Голос (женское "А"):
Голос как через телефонную трубку, если по колдовать с эквалайзером и немного пошуметь будет норм.
Вообще здесь проблема присущая всем генераторам когда меняется частота звука то высокие чистоты соскакивают в низ (получается глухой звук) или забираются слишком высоко (начинают свистеть). Живой звук не может генерировать слишком чистые вибрации на высоких частотах, так же как и не иметь их.
foxes
Это не моё, я перепостил часть п.30, просто демонстрировал встроенный в форум плеер.
Голос, да, не ахти, как, впрочем, и гитара.
Mikle
> Это не моё
Я понял, просто думаю что как основа это очень даже круто. Сами по себе звуки на высоких частотах генерируются отлично от основ. Для дерева или барабанов это "глухие" волны больше шумовые чем гармоники, для металла (струна-колокол) там гармоники очень четкие, для воздуха духовых (свиста-голоса) там должен быть скорее гармонический шум, это нечто среднее между деревом и металлом.
Ну и понятное дело что струны без дерева это арфа :) - ни на пианино ни на гитару они не похожи, слишком чистые.
Mikle
> а тег такого вида:
>
> [sound=126858]
>
> Он появляется на странице залитого файла. В сообщении получатся такие удобные
> плееры:
У меня это выглядит как текст (название ресурса), обернутый в ссылку, ведущую на страницу ресурса. Никаких плееров. Плеер флэшовый?
foxes
> Ну и понятное дело что струны без дерева это арфа :)
Думаю, даже если добавить обертоны от резонатора, арфа в гитару все равно не превратится, т.к., имхо, немаловажную роль в "гитарности" звучания играют исполнительские модуляции, доступные на гитаре, а также ограниченное число струн, вызывающее характерные переходы от одной ноты к другой на той же струне. Я не придумал нормального способа добавить такие переходы к живому исполнению на клавиатуре даже с наличием доп контроллеров и афтертача, особенно ситуацию неодновременности смены лада и совершения щипка (или вообще его отсутствия). Ну и сама среда SynC Modular с ее жестко зашитой логикой раздачи голосов не способствовала реализации.
Dmitry_Milk
> Плеер флэшовый?
Да.
Dmitry_Milk
> немаловажную роль в "гитарности" звучания играют исполнительские модуляции,
> доступные на гитаре, а также ограниченное число струн, вызывающее характерные
> переходы от одной ноты к другой на той же струне.
Согласен.
Dmitry_Milk
> Я не придумал нормального способа добавить такие переходы к живому исполнению
> на клавиатуре даже с наличием доп контроллеров и афтертача
Клавиатура этого не позволит, нужен какой-нибудь специальный редактор, типа того, что я делал к SpainGuitar. Живого исполнения это в любом случае не позволит.
Dmitry_Milk
> белый шум через высокодобротный фильтр
Попробовал, работает. Розовый шум даёт ещё более натуральное звучание. Но есть проблема - чем выше добротность, тем медленнее устанавливается тон, добротность выше единицы - самовозбуждение, маленькая добротность - много шума.
Mikle
> Но есть проблема - чем выше добротность, тем медленнее устанавливается тон
Это не проблема, это как раз соответствие естественным процессам.
Теперь у меня тоже есть whistle: [sound=126969]
Ссылка на файл: http://www.gamedev.ru/files/sounds/?id=126969
Mikle
> Теперь у меня тоже есть whistle
И как сделан? Как обычно тормозным физическим моделированием или чем-то полегче?
Звучит прикольно, только в начале как-то ноты резко начинаются - нет плавного перетекания друг в друга.
gammaker
> И как сделан? Как обычно тормозным физическим моделированием или чем-то полегче?
Как описал Dmitry_Milk, шум плюс фильтрация.
gammaker
> в начале как-то ноты резко начинаются - нет плавного перетекания друг в друга.
Это надо партию тщательнее прописывать, легато сделать и т. п. У меня даже велосити у всех нот поставлено равное.
Тема в архиве.