doom2d.org

Главная база плоских морпехов
Текущее время: 13 авг 2020, 08:36

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: загрузчик и микшер DMM, на языке D
СообщениеДобавлено: 17 янв 2016, 07:10 
Не в сети
Аватара пользователя

Зарегистрирован: 25 фев 2013, 13:24
Сообщения: 609
ви‐таки будете смеяться, но… ну, помимо моего motto «проект не дохлый» я ещё хочу сказать, что периодически и реальные куски его пишу. ради него портанул Enet на D, например. или вот сделал звуковой движок Follin.

но речь сейчас не об этом, а о том, что один из синтезаторов для Follin'а являет собой рендерер DMM-музыки. краткая характеристика:
• умеет давать выхлоп в произвольной частоте оцифровки (наиболее юзабельны, понятно, 44100 и 48000);
• не требует внешних библиотек сэмплинга и микширования, выплёвывая просто моно‐канал в формате float;
• пытается делать Hermite-интерполяцию (наверное, у него получается, раз музыка играет);
• лицензирован под WTFPL (ну и что, что я забыл это написать в самом сырце?)

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

внутри есть помимо игралки и писалка в raw-файл, так что кому захочется — разберётся.


Вложения:
dmm.d.txt [12.15 КБ]
Скачиваний: 157
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: загрузчик и микшер DMM, на языке D
СообщениеДобавлено: 17 янв 2016, 07:24 
Не в сети
Приколист
Аватара пользователя

Зарегистрирован: 18 окт 2009, 04:01
Сообщения: 5914
Откуда: Владивосток
Спасибо, поизучаю на досуге. Это и в самом деле интересно.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: загрузчик и микшер DMM, на языке D
СообщениеДобавлено: 17 янв 2016, 10:11 
Не в сети
Аватара пользователя

Зарегистрирован: 25 фев 2013, 13:24
Сообщения: 609
да ничего там интересного, тащемта. формат простой, как палка, даже спецэффектов не умеет. весь рендер — это: «берём инструмент, вычисляем отношение его реальной частоты к желаемой, интерполируем. потом всё получившееся складываем и клипаем в район [-1..1]». всё, весь рендер. ну, ещё циклы в инструменте (которые, кажется, всё равно поломаны). я настолько ленив, что даже FIR-фильтры не делал, а тупую интерполяцию. вся работа идёт с float'ами, потому что я ленивый, и потому что Follin хочет на вход именно флоаты.

p.s. чуть поясню, что я за фигню про фильтры задвинул. то, что происходит в плеере — страхиужос, такделадьнинада. для того, чтобы получить более‐менее нормальное качество при ресамплинге, следует делать сначала upsample, потом downsample. на примере 44100 -> 48000: это у нас дробь (после упрощения) 147/160. а дальше нам надо исходную частоту 44100 апсэмплануть в 160 раз, а потом сделать даунсэмпл в 147 раз. ощущаешь прелесть и скорость? но и это ещё не всё: в процессе всенепременно появятся паразитные шумы, которые следует отфильтровать cutoff-фильтрами, нежно массируя данные. два раза: для апсэмплинга и для даунсэмплинга. и вот тогда получится более‐менее приличный звук.

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

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

всё, на этом урок «digital signal processing для чайников от чайника» заканчиваю.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
doom2d.org, since 2007