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

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

Поделиться

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

MikleМодераторwww10 авг. 201720:07#240
sti-hi
> взял массив 5000 и заполнил его 1000 раз значениями по алгоритму звуков рояля,
> тому самому, который мы обсуждали.
> Времени на это потребовалось 22 секунды. То есть частота генерации семплов, без
> записи их в звуковой файл составила около 230 тысяч в секунду, что в 5.15 раз
> быстрее скорости раздачи 44100 семп/сек.
Повторил на VB6 - 3.21 сек., процессор Core2 2.13 МГц.
А Turbo Basic, на сколько помню, даже когда был актуален, во времена DOS, сильно уступал тому же QuickBasic, а в наше время код реального режима вообще работает в песочнице, которая наверняка ещё тормозит.
MikleМодераторwww10 авг. 201720:08#241
sti-hi
> Времени потребовалось 67 секунд. То есть семпл записывается в 3 раза медленнее,
> чем создаётся.
> Это моно запись, кстати. Не знаю. как со стерео.
А пишется в файл на VB6 вообще практически мгновенно.
MikleМодераторwww10 авг. 201720:19#242
FordPerfect
> Вот пример быстрого синуса (итеративного):
Тут, к сожалению, итеративный не подойдёт под один из четырёх использованных в алгоритме синусов..
sti-hiПользовательwww10 авг. 201720:37#243
Михаил, поделись кодом своего теста на Визуал Бейсике, желательно с выводом в файл, а то я не знаю, как это делать.
Я работал в Визуал Бейсике 6, делал в нём электронные книги - http://yadi.sk/d/v4CjPaTe3LkZXD
Сейчас забросил это дело.
Но если скорость окажется действительно лучше, то вернусь к нему.
Дм.
MikleМодераторwww10 авг. 201723:05#244
sti-hi
> поделись кодом своего теста на Визуал Бейсике, желательно с выводом в файл
Вот: TestPianoSpeed
Опциональный вывод в стерео файл, только я сделал не 1000 раз по 5000, а 100 раз по 50000, чтобы ноты были длиннее.
На i5-2400 (3200 МГц) без записи в файл 1.84 сек., с записью 1.94 сек.

Правка: 10 авг. 2017 23:24

sti-hiПользовательwww11 авг. 20170:17#245
Спасибо. Визуал Бейсик работает действительно быстрее - массив 5000 1000 раз он заполнил за 18 сек, работая в своей среде, и за 12 сек в откомпилированном виде. То есть выигрыш в 2 раза по скорости в сравнении с Турбо Бейсиком с его 22 секундами.
Немного неудобно будет вносить изменения в программу и отлаживать её, но озвучивание пойдёт быстрее.
Попробую.
Дм.
MikleМодераторwww11 авг. 20170:20#246
sti-hi
> Немного неудобно будет вносить изменения в программу и отлаживать её
В чём же неудобства? Уж что-что, отладчик в VB6 лучше однозначно.
sti-hiПользовательwww11 авг. 20171:27#247
В Бейсике отладка простая - в подозрительном месте ставлю Принт и Стоп, и смотрю на значения переменных, которые Принт на экран выводит.
Что-то у меня wav файл в результате не появляется. Наверное нет той библиотеки, которая нужна. Вот почему я не люблю все эти продвинутые языки - всегда к ним чего-нибудь недостаёт. Бейсик тупо прост - с ним просто и работать. А когда возможностей много, никогда не знаешь, какую кнопочку нажать. В Бейсике тоже есть программа будто-бы отладки, но её ещё и изучать надо. ))
А Принт и Стоп меня никогда не подводили.
MikleМодераторwww11 авг. 20178:47#248
sti-hi
> Что-то у меня wav файл в результате не появляется. Наверное нет той библиотеки, которая нужна.
Та нет никаких зависимостей от библиотек, пока ты сам их не подключишь. Возможно ты запускаешь проект прямо из архива или с другой текущей папкой (посмотри рабочую папку у ярлыка VB6, если открываешь проект через меню среды, лучше открывать проекты через проводник, даблкликом по .vbp файлу, тогда текущей будет всегда папка проекта). Когда запускаешь мой скомпилированный EXE, WAV-файл появляется? Попробуй заменить имя файла на полное, типа:
fName = "C:\Sound\Test.wav"
Естественно папка должна быть существующая.
Stop в VB6 тоже есть и так же работает, а можно вообще на полях слева от текста поставить мышкой точку останова.
Для отладки вместо Print имеется Debug.Print, работает так же, только выводит текст в Immediate Window, если его не видно, покажи его через меню View в среде VB6. Во время останова можно прямо в этом окне печатать запросы, например, набери:
? Freq
Нажми Enter и увидишь значение переменной Freq. А можно во время останова просто навести мышь на любую переменную в тексте программы, и увидишь её текущее значение.
Я не агитирую именно за VB6, он тоже устарел, но, по крайней мере его код нативный в Win32, с Win64 он тоже совместим и не становится медленнее, а перейти после TB проще всего именно на него.
Предлагаю дальше тут не офтопить обсуждением языков, на вопросы о VB6 могу отвечать в ЛС.

Правка: 11 авг. 2017 8:48

FordPerfectПостоялецwww11 авг. 201716:54#249
var f=64*pow(2,10*(A-0.5));

var dB=function(x) {return pow(10,x/2);};

var a=1; // Attack
a=min(pow(100*t,2),1);
a*=min(20*t,1);

a*=exp(-0.5*t); //Release

var y=0;
var phase=2*pi*(25/8)*f*t;

var c=0;

c=dB(0)*sin(phase);
c+=dB((45.3-50.1)*(exp(0.5*t)-0.625+0.5)/2)*sin((852/410)*phase);
c+=dB((45.3-63)*(exp(1*t)-0.5))*sin((1408/410)*phase);
c+=dB((45.3-73.5)*(exp(2*t)-0.25))*sin((2067/410)*phase);

y=c;

var b=50*D;
y*=0.5*(0.5+(1-exp(-b*t))*sin(2*pi*f*t));

y*=a;


return y;
Как вам?
А то у меня уже заезжено.
MikleМодераторwww11 авг. 201719:10#251
FordPerfect
> Как вам?
> А то у меня уже заезжено.
Блин... что это? На мой слух - что-то среднее между голосом и колоколом. Но, как-то, не очень.
FordPerfect
> Целился в
Тут рояль, атака в первую очередь слышна.

Правка: 11 авг. 2017 19:13

MikleМодераторwww14 авг. 201720:11#252
Моя 32к EXE демка на ЦЦ2017 почти готова, жаль, нельзя показывать до феста. Я в кои-то веки сделал конкурсную работу раньше времени, теперь осталось самое сложное - терпеть.
Больше никто участвовать так и не собрался?
MikleМодераторwww26 авг. 201718:33#253
Вот моя демка на ЦЦ: https://yadi.sk/d/3iuA9uIh3MLzsa
И MP3 вариант: https://yadi.sk/d/SxwDQaaB3MLzsV
Показ только что прошёл, могу выкладывать.
MikleМодераторwww29 авг. 201720:22#254
Первое место... правда из двух всего :)

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

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

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