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

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

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

Страницы: 1 2 3 4 515 Следующая »
#30
18:34, 28 авг. 2011

Принял участие в конкурсе тут:
http://party11.cc.org.ru/
Показ работ уже прошёл, могу показать свою демку:
http://tuapse-mikle.narod.ru/SpainGuitar.zip

#31
22:30, 28 авг. 2011

Mikle
> > Но такая вязкость даёт одинаковое затухание на любой частоте, а в реальной
> > струне более высокие гармоники затухают быстрее, это можно было бы фейково
> > эмулировать, но я не хочу фейково, звучать потом тоже фейково будет,
> > пришлось
> > вводить вязкость самой струны, то есть потери на колебаниях участков струны
> > друг относительно друга.
Suslik
> думаю, эффект, которого ты хочешь добиться, возникает из-за вязкого
> сопротивления воздуха. вводится, прикладывая силу пропорциональную квадрату
> скорости(относительно воздуха) каждой точки. то есть не одной точки
> относительно другой, а точки относительно среды.

Если потери энергии быстро растут с частотой, то там дело скорее всего в излучении акуистиической энергии. Насколько помню, там рост как раз будет пропорционален квадрату, если не четвертой степени частоты.

Mikle

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

#32
23:09, 28 авг. 2011

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

#33
0:08, 29 авг. 2011

Mikle
Думаю, тебе оптимально все же взять уравнения колебаний струны

Изображение

Это удобно тем, что можно решать задачу как систему таких уравнений для всех струн гитары сразу, при этом они могут взаимодействовать через опору, которая в свою очедь должна представлять собой систему осциляторов, с набором собственных частот.
Отбор энергии из системы можно производить как раз от опоры.
Систему можно решать методом конечных разностей, видимо подойдет явная схема.
Такая схема расчета удобна тем, что ты можешь
- поэкспирементировать с разными параметрами осциляторов, добиваясь более реалистичного звучания
- просто определить разные способы возбуждения колебаний струны, включая гашение основного тона.

#34
6:05, 29 авг. 2011

О. Федор
+1 за аккустрическое излучение. думаю, так корректнее считать, чем через трение воздуха. и -1 за:
> Думаю, тебе оптимально все же взять уравнения колебаний струны
фактически то, что сделал автор, и есть явная численная схема решения этого уравнения, просто он к ней подошёл с физической точки зрения, а не математической.

#35
9:45, 29 авг. 2011

О. Федор
> можно решать задачу как систему таких уравнений для всех струн гитары сразу,
> при этом они могут взаимодействовать через опору, которая в свою очедь должна
> представлять собой систему осциляторов, с набором собственных частот.
Я не настолько математически подкован, чтобы решить такую систему уравнений
О. Федор
> Такая схема расчета удобна тем, что ты можешь
> - поэкспирементировать с разными параметрами осциляторов, добиваясь более
> реалистичного звучания
> - просто определить разные способы возбуждения колебаний струны, включая
> гашение основного тона.
Это я делаю и на своём методе.
Suslik
Я вводил затухание пропорциональное квадрату для всей струны, а, возможно, это надобыло делать только для деки, то есть для начальной точки струны.

#36
23:11, 29 авг. 2011

Suslik
> фактически то, что сделал автор, и есть явная численная схема решения этого
> уравнения, просто он к ней подошёл с физической точки зрения, а не
> математической.

Естественно.
Но проще и надежней все же работать с канонической формой уравнения.
Ты знаешь наверное, это уравнение гиперболического типа, а там есть свои поблемы с устойчивостью, которые могут потребовать использования невной схемы расчета.
Поясню. Допустим ты возбуждаешь колебание струны шипком, оттягивая струну. Это означает, что в точке шипка струна будет иметь разрыв производной по x и значит бесконечную вторую производную. Но это приведет в  свою очередь к бесконечным ускорениям. В численнной постановке это будет очень неприятно, это может привести прерыванию, как минимум к сильной потере точности и появлению весьма неприятных звуков.

#37
23:26, 29 авг. 2011

Mikle
> не настолько математически подкован, чтобы решить такую систему уравнений

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

> Это я делаю и на своём методе.

Как ты моделируешь тон при смене лада, пока струна еще дрожит? Там (чисто акуистически) появляются высшие гармоники. Т.е. в этом случае задача видимо не линейная и имеет место обмен энергией между гармониками.

> Я вводил затухание пропорциональное квадрату для всей струны, а, возможно, это
> надобыло делать только для деки, то есть для начальной точки струны.

Как я понимаю, в акуистической гитаре, потери от струны непосредственно в воздух совершенно незначительны, по сравнению с потерями в деку. Поэтому это правильный подход. Хотя наиболее высокочастотные, "бархатные" тоны мы скорее всего получаем непосредственно от струны.

#38
9:55, 30 авг. 2011

О. Федор
> что в точке шипка струна будет иметь разрыв производной по x и значит
> бесконечную вторую производную.
Ввиду "численности" разрывов нет, ведь я просчитываю струну не по всей длине, а в конкретных точках, расстояние до соседней точки (dx) не стремится к нулю, а вполне конечная величина, то есть и dy/dx тоже конечна.
О. Федор
> В численнной постановке это будет очень неприятно, это может привести прерыванию, как минимум к сильной потере
> точности и появлению весьма неприятных звуков.
Неприятные звуки действительно были, но я, кажется, их поборол. Я, вроде бы, нашёл их причину - каждая точка является осциллятором и их резонансы совпадают в точности, на частоте этого резонанса есть призвук. Есть два решения:
1. Сделать достаточно много точек, чтобы этот резонанс оказался выше 20 кГц, но это сильно повышает нагрузку на процессор.
2. Чуть-чуть расстроить резонансы, я ввёл небольшой рэндом в массы точек. Это помогло, звук стал гораздо натуральнее, ведь реальная струна тоже не идеально равномерна.
О. Федор
> Хотя наиболее высокочастотные, "бархатные" тоны мы скорее всего получаем
> непосредственно от струны.
Но это относится скорее не к потерям, а к методу съёма звука, нужно суммировать звук порожка со звуком струн.

#39
15:15, 2 сен. 2011

Mikle
> Ввиду "численности" разрывов нет, ведь я просчитываю струну не по всей длине, а
> в конкретных точках, расстояние до соседней точки (dx) не стремится к нулю, а
> вполне конечная величина, то есть и dy/dx тоже конечна.

Это просто огрубление.

> Неприятные звуки действительно были, но я, кажется, их поборол. Я, вроде бы,
> нашёл их причину - каждая точка является осциллятором и их резонансы совпадают
> в точности, на частоте этого резонанса есть призвук. Есть два решения:
> 1. Сделать достаточно много точек, чтобы этот резонанс оказался выше 20 кГц, но
> это сильно повышает нагрузку на процессор.
> 2. Чуть-чуть расстроить резонансы, я ввёл небольшой рэндом в массы точек. Это
> помогло, звук стал гораздо натуральнее, ведь реальная струна тоже не идеально
> равномерна.

Снизить нагрузку на процессор можно использовав аналитическое решение, в пределе там нужно будет только вычислять сумму ряда Фурье по всем гармоникам, практически 10-20 должно хватить.

> Но это относится скорее не к потерям, а к методу съёма звука, нужно суммировать
> звук порожка со звуком струн.

Естественно, здесь слово потери означает потери на излучение, ну и конечно на вязкостное трение.

#40
10:00, 6 сен. 2011

Вот гитарный звук, теперь струны стальные:
http://tuapse-mikle.narod.ru/Guitar.zip
№12 - ми большой октавы, то есть открытая 6-я струна,
№60 - ми третьей октавы, то есть 1-я струна, 24-й лад.
Как, реалистично?

#41
10:32, 6 сен. 2011

Mikle
Очень реалистично!

#42
14:44, 6 сен. 2011

В поисках fdtd для EM натыкался и на акустику.
Вот первая статья, там в литературе есть и ссылки.

http://www.gamedev.ru/files/?id=71117

Я делал тоже 1d fdtd для струны, правда неоднородной с открытыми концами, т.е. с поглощением волн на концах. Это модель для електро-магнитных осциляций вблизи отсечки  в открытом резонаторе.

#43
16:45, 6 сен. 2011

dave

В статье описано решение Даламбера в виде суперпозиции двух волн.

Mikle
> Как, реалистично?

Как звучание струны - да, как звучание гитары - нет. У гитары богаче тембр, там больше энергия высших гармоник и видимо основной тон струны моделирован собственными частотами резонатора (корпуса), кроме того, там видимо имеет место быть частотный фильтр вида

\(h(t) = {\int_{\tau =a}^b k(\tau) f(t + \tau)\,d{\tau}}\)

где разумеется

\(\int_{\tau =a}^b k(\tau) \,d{\tau} = 1\)

#44
17:53, 6 сен. 2011

Да они там используют линейную модель. Но есть и нелинейные конечно-разностные схемы.

Страницы: 1 2 3 4 515 Следующая »
ПрограммированиеФорумЗвук

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