Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Программирование звука музыкальных инструментов (3 стр)

Программирование звука музыкальных инструментов (3 стр)

Поделиться

Страницы: 1 2 3 4 ... 9 ... 16 17 18 Следующая

Dmitry_MilkПостоялецwww8 июля 201723:40#30
Делал несколько синтов на физическом моделировании, но не путем написания софта, а построением моделей в 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

gammakerПостоялецwww9 июля 20170:50#31
Dmitry_Milk
> 2). Модель свиста
Круто! Только фоновый шум какой-то посторонний. Это специально звук выдуваемого ветра добавлен?

Dmitry_Milk
> 3). Голос (женское "А").
Прикольно. Но тут тоже какой-то посторонний шум, похожий на пилообразную волну.

Dmitry_MilkПостоялецwww9 июля 201721:01#32
Это не посторонний, это в обоих случаях как раз исходный сигнал, который недостаточно обработан.
MikleМодераторwww10 июля 201719:15#33
Dmitry_Milk
Когда заливаешь на GD mp3 файл, можно в сообщение давать не ссылку на файл, а тег такого вида:
[sound=126858]
Он появляется на странице залитого файла. В сообщении получатся такие удобные плееры:

Попытка моделирования звука гитары. В основе лежит алгоритм Капрлуса-Стронга (имитация волны в замкнутом волноводе):
carplus-strong-string-demo
Модель свиста Ничего особенного, белый шум через высокодобротный фильтр:
synthesized whistle demo
Голос (женское "А"):
synthetic voice demo

Свист впечатлил, очень натурально. Остальное не особо.

gammaker
Может возьмём эту гитарную партию (которая больше похожа на арфу) и попробуем раскрыть более качественно?

Правка: 10 июля 2017 19:15

gammakerПостоялецwww10 июля 201719:30#34
Mikle
> Может возьмём эту гитарную партию (которая больше похожа на арфу) и попробуем
> раскрыть более качественно?
Да мне бы хотя бы осилить то, что есть, в моём синтезаторе. Так как я совсем не разбираюсь в музыкальных инструментах, я могу только копировать чужие достижения и применять метод тыка. Поэтому вряд ли у меня лучше получится.
Но если сделаете лучше и без тяжёлого физического моделирования, то я буду рад внедрить эти результаты в свой синтезатор.
foxesПостоялецwww10 июля 201722:05#35
Mikle
> Голос (женское "А"):
Голос как через телефонную трубку, если по колдовать с эквалайзером и немного пошуметь будет норм.

Вообще здесь проблема присущая всем генераторам когда меняется частота звука то высокие чистоты соскакивают в низ (получается глухой звук) или забираются слишком высоко (начинают свистеть). Живой звук не может генерировать слишком чистые вибрации на высоких частотах, так же как и не иметь их.

Правка: 10 июля 2017 22:10

MikleМодераторwww10 июля 201722:19#36
foxes
Это не моё, я перепостил часть п.30, просто демонстрировал встроенный в форум плеер.
Голос, да, не ахти, как, впрочем, и гитара.
foxesПостоялецwww10 июля 201722:24#37
Mikle
> Это не моё
Я понял, просто думаю что как основа это очень даже круто. Сами по себе звуки на высоких частотах генерируются отлично от основ. Для дерева или барабанов это "глухие" волны больше шумовые чем гармоники, для металла (струна-колокол) там гармоники очень четкие, для воздуха духовых (свиста-голоса) там должен быть скорее гармонический шум, это нечто среднее между деревом и металлом.

Ну и понятное дело что струны без дерева это арфа :) - ни на пианино ни на гитару они не похожи, слишком чистые.

Правка: 10 июля 2017 22:28

Dmitry_MilkПостоялецwww11 июля 20177:40#38
Mikle
> а тег такого вида:
>
> [sound=126858]
>
> Он появляется на странице залитого файла. В сообщении получатся такие удобные
> плееры:

У меня это выглядит как текст (название ресурса), обернутый в ссылку, ведущую на страницу ресурса. Никаких плееров. Плеер флэшовый?

foxes
> Ну и понятное дело что струны без дерева это арфа :)

Думаю, даже если добавить обертоны от резонатора, арфа в гитару все равно не превратится, т.к., имхо, немаловажную роль в "гитарности" звучания играют исполнительские модуляции, доступные на гитаре, а также ограниченное число струн, вызывающее характерные переходы от одной ноты к другой на той же струне. Я не придумал нормального способа добавить такие переходы к живому исполнению на клавиатуре даже с наличием доп контроллеров и афтертача, особенно ситуацию неодновременности смены лада и совершения щипка (или вообще его отсутствия). Ну и сама среда SynC Modular с ее жестко зашитой логикой раздачи голосов не способствовала реализации.

MikleМодераторwww11 июля 20179:14#39
Dmitry_Milk
> Плеер флэшовый?
Да.
Dmitry_Milk
> немаловажную роль в "гитарности" звучания играют исполнительские модуляции,
> доступные на гитаре, а также ограниченное число струн, вызывающее характерные
> переходы от одной ноты к другой на той же струне.
Согласен.
Dmitry_Milk
> Я не придумал нормального способа добавить такие переходы к живому исполнению
> на клавиатуре даже с наличием доп контроллеров и афтертача
Клавиатура этого не позволит, нужен какой-нибудь специальный редактор, типа того, что я делал к SpainGuitar. Живого исполнения это в любом случае не позволит.
MikleМодераторwww11 июля 201712:08#40
Dmitry_Milk
> белый шум через высокодобротный фильтр
Попробовал, работает. Розовый шум даёт ещё более натуральное звучание. Но есть проблема - чем выше добротность, тем медленнее устанавливается тон, добротность выше единицы - самовозбуждение, маленькая добротность - много шума.
Dmitry_MilkПостоялецwww11 июля 201713:23#41
Mikle
> Но есть проблема - чем выше добротность, тем медленнее устанавливается тон

Это не проблема, это как раз соответствие естественным процессам.

MikleМодераторwww12 июля 201711:37#42
Теперь у меня тоже есть whistle: whistle
Ссылка на файл: http://www.gamedev.ru/files/sounds/?id=126969
gammakerПостоялецwww12 июля 201711:43#43
Mikle
> Теперь у меня тоже есть whistle
И как сделан? Как обычно тормозным физическим моделированием или чем-то полегче?

Звучит прикольно, только в начале как-то ноты резко начинаются - нет плавного перетекания друг в друга.

Правка: 12 июля 2017 11:48

MikleМодераторwww12 июля 201711:51#44
gammaker
> И как сделан? Как обычно тормозным физическим моделированием или чем-то полегче?
Как описал Dmitry_Milk, шум плюс фильтрация.
gammaker
> в начале как-то ноты резко начинаются - нет плавного перетекания друг в друга.
Это надо партию тщательнее прописывать, легато сделать и т. п. У меня даже велосити у всех нот поставлено равное.

Страницы: 1 2 3 4 ... 9 ... 16 17 18 Следующая

/ Форум / Программирование игр / Звук

2001—2017 © GameDev.ru — Разработка игр