Войти
ПрограммированиеФорумЗвук

Физическое моделирование музыкальных инструментов. (13 стр)

Advanced: Тема повышенной сложности или важная.

Страницы: 110 11 12 13 14 15 Следующая »
#180
14:54, 5 июня 2013

Когда-то я выводил формулу, поищу.

#181
15:31, 5 июня 2013

было бы кстати (можно и без нот, просто по частоте), а то состраивать с остальным тяжко

#182
16:44, 5 июня 2013

Нота у нас зависит от длины струны и натяжения. Длина у нас - величина целая, поэтому логично задавать ноту и длину, а рассчитывать натяжение, иначе, если мы будем рассчитывать длину и получим дробь, то в формулу её не подставишь.
Ноту ля второй октавы обозначим номером 0, соответственно ля первой октавы будет =-12, ми третьей октавы =7 и т. д.

  Dim n As Long ' Нота
  Dim f As Single ' Частота

  n = 7 ' Задаём ноту МИ третьей октавы
  sLen = 30 ' Задаём длину 30
  f = 440 * 2 ^ (n / 12)
  Frc = (f * (sLen - 1) * 0.0000641026) ^ 2
Если получается натяжение больше 2, то генератор выдаст переполнение, точнее больше двух не должна быть сумма Frc и kRand.

#183
17:02, 5 июня 2013

Спасибо!:)

#184
15:50, 8 июня 2013

Добавил параметр, задающий дребезг струн об лады при чрезмерно сильном ударе по струне, назвал его Slap, можно заценить:
http://tuapse-mikle.narod.ru/String.zip

#185
4:00, 9 июня 2013

Вот кстати тебе идея, вруг пригодится-сработает. В моей simon&patrick стоит магнитный датчик l.r. buggs m1a. Звука лучше от акустической гитары, подключенной, не слышал, хотя вариантов перепробовал много. Так вот. Там один хамбакер снимает струны (и тут идет наводка от соседних с учетом удаленности), а второй - резонанс корпуса.

#186
9:15, 9 июня 2013

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

#187
14:15, 9 июня 2013

Эх, жаль что на басике, я бы портанул под мак :)

#188
14:32, 9 июня 2013

Sergio
> жаль что на басике
Так перевести - минутное дело. f0xx, вон, уже перевёл и на прошлой странице даже предлагал код желающим.

#189
23:57, 9 июня 2013

Кстати назрел вопрос, а толщину струны ты учитываешь? А когда скрипку делал - вращение струны?

#190
9:18, 10 июня 2013

f0xx
> а толщину струны ты учитываешь?
А надо? Там есть звенья цепочки с массами, толще струна - тяжелее погонный метр, больше звеньев при той же длине.
То есть одну и ту же ноту можно извлечь из струны с количеством узлов 30 и 50. На 50 получится струна толще.
f0xx
> А когда скрипку делал - вращение струны
Вот это не делал.

#191
12:28, 10 июня 2013

Имхо, по идее, число узлов должно определять только качество симуляции, а массу бы как-то по-другому учитывать. Запас по скорости у алгоритма есть, думаю можно попробовать более "тяжелые" решения.
А вообще, гениальное решение - моделировать пьезу, а не реальный звук инструмента, меня вперло.

По скрипке, было где-то обсуждение в середине, откуда брать звук. Там прикол, посмотри где стоит подставка, в каком соотношении. Она делит звук на части же. Звукосниматель крепят к ней, кстати... но тут сложно, сколько ни подзвучивали пьезой скрипку, и контактным микрофоном, лажа получается. Только с воздуха нормальный звук получается.
По вращению, там физика, насколько я помню, такая: смычок подворачивает струну вокруг ее оси, до определенного момента, дальше она "соскальзывает", возвращается в исходное положение с небольщим заносом, и все повторяется. Еще трение покоя бы учесть, взять звук и вести его это два разных усилия.

#192
13:47, 10 июня 2013

Трение покоя и скольжения у меня разные, отсюда и генерируется звук. А вот толщина струны нулевая, поэтому и вращения нет.
f0xx
> сколько ни подзвучивали пьезой скрипку, и контактным микрофоном, лажа
> получается.
Вот и у меня пока что-то типа пьезо датчика.
f0xx
> Запас по скорости у алгоритма есть, думаю можно попробовать более "тяжелые"
> решения.
Простейшее "более тяжёлое" решение - сэмплировать более высокую частоту, например 88.2 кГц, а потом уже конвертить в 44.1 кГц. Так, кстати, можно при той же длине получить вдвое более высокую ноту.

#193
20:13, 10 июня 2013

Mikle
> Простейшее "более тяжёлое" решение - сэмплировать более высокую частоту

не думаю что оверсемплинг кардинально улучшит качество. Я имел в виду алгоритмы синтеза более сложные

#194
20:16, 10 июня 2013

а нулевая толщина - препятствие для вращения? по идее, нужно просто колебания от щипка вверх-вниз заменить скручиванием. Кстати, а колеблешь же ты в 2д пространстве? в 3д не пробовал?

Страницы: 110 11 12 13 14 15 Следующая »
ПрограммированиеФорумЗвук

Тема в архиве.