Я пытаюсь эмулировать физику колебания струн. Представляю струну, как цепочку точек, обладающих массой и связанных пружинками, даже сделал визуальный прототип для проверки:
http://tuapse-mikle.narod.ru/VisualString.zip
Тут скорость для наглядности уменьшена в 1000 раз.
Чтобы струна колебалась затухая, приходится вводить вязкость, как на гитаре, струна на порожке часть энергии отдаёт дэке. Но такая вязкость даёт одинаковое затухание на любой частоте, а в реальной струне более высокие гармоники затухают быстрее, это можно было бы фейково эмулировать, но я не хочу фейково, звучать потом тоже фейково будет, пришлось вводить вязкость самой струны, то есть потери на колебаниях участков струны друг относительно друга.
Далее хочу сделать шесть струн, чтобы их колебания взаимно передавались через порожек.
Обновление
Вот небольшая демка:
http://tuapse-mikle.narod.ru/Gt.mp3
Бывает косяк - программа при нажатии на некоторые точки издает невнятное "бзыньк" и тут же затыкается. Звук в .wav при этом записывается нормальный.
Идея - замечательная (тоже на эту тему думал пару лет назад, но тогда еще мат. аппарата достаточного у меня не было, а потом как то забилось). Реализация тоже весьма реалистичная, здорово, будем следить за развитием.
Dervinar
> при нажатии на некоторые точки издает невнятное "бзыньк" и тут же затыкается.
Это, возможно, даблклик мыши. Начинается звук по первому клику, и тут же его прекращает второй.
Ну возможно, но вообще прощелкиваний мышки не замечено.
Dervinar
Я нашёл причину - воспроизведение идёт прямо из файла, а его система кэширует, иногда он ещё не сохранён.
Mikle
> Но такая вязкость даёт одинаковое затухание на любой частоте, а в реальной
> струне более высокие гармоники затухают быстрее, это можно было бы фейково
> эмулировать, но я не хочу фейково, звучать потом тоже фейково будет, пришлось
> вводить вязкость самой струны, то есть потери на колебаниях участков струны
> друг относительно друга.
думаю, эффект, которого ты хочешь добиться, возникает из-за вязкого сопротивления воздуха. вводится, прикладывая силу пропорциональную квадрату скорости(относительно воздуха) каждой точки. то есть не одной точки относительно другой, а точки относительно среды.
В матлабе видел бешенный симулятор гитары с навороченной мат. моделью, звучит как настоящая!
Suslik
> думаю, эффект, которого ты хочешь добиться, возникает из-за вязкого
> сопротивления воздуха. вводится, прикладывая силу пропорциональную квадрату
> скорости(относительно воздуха) каждой точки
Попробую и такой вариант, но и так, вроде бы, похоже получается.
На правах оффтопика: http://en.wikipedia.org/wiki/Karplus-Strong_string_synthesis, крайне дешевый и сердитый способ синтеза звука натянутой струны
frost
> крайне дешевый и сердитый способ синтеза звука натянутой струны
Ничего-так, но у меня лучше.
Шесть струн есть, вот как звучит аккорд ми-мажор:
http://tuapse-mikle.narod.ru/Gt.mp3
На затухании звук черезмерно густой на мой взгляд.
А я мечтал найти что-то такое. вот дней десять назад искал.
кроме гитары планируются другие инструменты? очень уж мне интересно.
вообще софт с такой эмуляцией по моему очень востребован.
IPPavlov
> кроме гитары планируются другие инструменты?
Как пойдёт, барабаны легко получаются (бочка, томы).
отлично. буду ждать. но звуки для совей игры придётся делать...ну уж как получится. хотя в принципе уже набрал всё, что нужно.
вообще хотелосьбы помузицировать для саморазвития. я в этом почти не разбираюсь.
Mikle
Но ведь звук тоже надо как-то эмулировать. Его АЧХ, кажется.
Кстати а не думаешь ещё вводить добавочный синус в громкость струны?
И ещё: когда колеблется какая-то система с некой частотой,
то во время колебания превращается в более растянутую систему и по идее от этого уже будет зависить затухание вторичных волн.
Тема в архиве.