ПроектыФорумОцените

Компактный синтезатор MIDI (7 стр)

Страницы: 16 7 8 914 Следующая »
#90
14:51, 26 июня 2015

gammaker
> И ещё плюс время синтеза, одна нота синтезируется за время порядка
> миллисекунды, если это не скрипка. Скрипка примерно в 100 раз медленнее.
поэтому тебе и надо сделать прегенерацию какой то самой тяжелой части вычислений, лучше всего просто сгенерировать момент атаки клавиши, далее основной зацикленный звук и момент освобождения клавиши. И итоговый результат в реалтайме уже будет зависеть только от скорости атаки. Причем затухание волны не обязательно делать к моменту освобождения клавиши, если затухание ноты будет еле слышно даже секунду то это нормально.
> Если делать здесь и сейчас, то так не получится - придётся ждать, когда уже загруженная часть буфера доиграет
а внести изменения в уже играющую часть и обновить нельзя?

Имхо твой синтезатор лучше использовать для генерации именно soundfont'a в офлайне, а дальше ты его уже можешь использовать и получать тот же звук что и сейчас, но при этом проигрывая каждую ноту в отдельности в реалтайме.

#91
15:10, 26 июня 2015

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

Aroch
> внести изменения в уже играющую часть и обновить нельзя?
Вряд ли DirectSound позволит залочить играющую часть. А если и позволит, то наверняка будет какой-нибудь undefined behaviour.

Aroch
> Имхо твой синтезатор лучше использовать для генерации именно soundfont'a в
> офлайне, а дальше ты его уже можешь использовать и получать тот же звук что и
> сейчас, но при этом проигрывая каждую ноту в отдельности в реалтайме.
Непонятно зачем, если производительности и так для реалтайма хватает. Причём для многих инструментов она сопоставима с тем, чтобы копировать готовые семплы. А воспроизведение "здесь и сейчас" скорее упирается в звуковое API, чем в синтезатор.

#92
15:12, 26 июня 2015

Aroch
> лучше всего просто сгенерировать момент атаки клавиши, далее основной зацикленный звук и момент освобождения клавиши.
"Зацикленный звук" без вариации будет сразу бросаться "в уши". Да и "бесшовно" самого на себя замыкать звук, сгенерённый  по физическим формулам будет невозможно без всяких щелчков и артефактов. В миди устройствах сэплированием вручную занимаются для составления банков.

Вообще насколько я понял это обычный OPL2, т.е. синтез с _двумя_ операторами (тот же первый adlib). Возможно даже параметры синтеза выдраны из миди-модулей старых игрушек.
Ну и плюс всякие эксперименты со струнными.

#93
15:19, 26 июня 2015

gammaker
Вот ещё чуть ссылок:
http://www.synthfont.com/soundfonts.html

Некоторые компактные. FluidR3 мне тоже симпатичен по звучанию. И бесплатный.

Aroch
>Имхо твой синтезатор лучше использовать для генерации именно soundfont'a в офлайне, а дальше ты его уже можешь использовать и получать тот же звук что и сейчас, но при этом проигрывая каждую ноту в отдельности в реалтайме.
Совсем оффлайн или стартап?
Про совсем оффлайн неочевидно - это ведь означает по сути тягаться синтезатором с записанными семплами?
Поинт данного синтезатора, как я понял, как раз то, что он маленький и self-contained.
Вроде синтезаторная ниша, как раз.

#94
15:19, 26 июня 2015

Dexus
> В миди устройствах сэплированием вручную занимаются для составления банков.
значит ему придется вручную их обработать еще :)
gammaker
> Непонятно зачем, если производительности и так для реалтайма хватает.
Есть наверное разница, воспроизвести заранее подготовленный трек, или трек который динамически может изменяться? :)
> Причём для многих инструментов она сопоставима с тем, чтобы копировать готовые семплы.
> А воспроизведение "здесь и сейчас" скорее упирается в звуковое API, чем в
> синтезатор.
стандартное api для воспроизведения посредством midi сообщений было бы идеальным.

#95
15:23, 26 июня 2015

FordPerfect
> Совсем оффлайн или стартап?
Дексус говорит что нужен ручной напильник, если при старте напильник автоматом пройдется, то можно и при старте, по сути весь смысл сведется к "архивированию", так ли оно действительно нужно? Можно еще вынести ползунки для тюнинга каждого инструмента под себя, тогда будет смысл.

#96
15:29, 26 июня 2015

Собрал специально статически версию для XP: Синтезатор для XP. Эта версия уже не такая компактная, но работает. А то студия 2015 стала неявно генерить вызовы _ftol2, _ftol2_sse, которые самому определить не получается. Они реализованы в msvcrt.dll винды 8, а в XP их нет. Сейчас попробую дизассемблировать статически собранную версию и извлечь оттуда ассемблерный код их реализации, чтобы починить компактную версию.

Aroch
> Есть наверное разница, воспроизвести заранее подготовленный трек, или трек
> который динамически может изменяться? :)
Так у меня тоже может меняться, просто об изменениях нужно знать заранее, хотя бы за секунду.

#97
15:31, 26 июня 2015

Aroch
Ну впринципе миксование разных участков сэмпла в саму себя и в следующий участок конечно возможно, нужно слушать.
Вообще зачем издеваться так, если можно просто OPL3 синтом пользоваться (который вполне примитивен, и аналог часто в демосцене используется), просто грамотно подобрать параметров.
Звучать OPL3 может очень хорошо. Вот например http://www.youtube.com/watch?v=tPBCBYpC4VY

Кстати насколько я помню здесь (на ГД.РУ) лет 8 назад или может даже чуть больше кто-то как раз такой проект демонстрировал.. компактный генератор/плеер демотюнсов.

Физическое моделирование струнных на фоне ФМ синтеза звучать будет совсем чужой. т.е. скорее всего неуместно.

#98
15:42, 26 июня 2015

Dexus
> Звучать OPL3 может очень хорошо. Вот например
> http://www.youtube.com/watch?v=tPBCBYpC4VY
норм :)
gammaker
> Так у меня тоже может меняться, просто об изменениях нужно знать заранее, хотя
> бы за секунду.
так не интересно, был бы реалтайм, тогда я мог бы прикрутить твой синтезатор к себе в редактор http://www.gamedev.ru/flame/forum/?id=201572 just for fun :)

#99
15:47, 26 июня 2015

Тут из древнего немного нарыл...
http://www.gamedev.ru/sound/forum/?id=70111 - про бесшовный луп.

http://www.gamedev.ru/sound/forum/?id=5424 - про компактные генераторы звука (http://bmxplay.sourceforge.net/ - тут клёво, музычка Тима Фоллина)..

На этом я завис с этой музычкой и ностальгирую. Извиняйте.

#100
16:20, 26 июня 2015

gammaker
Сейчас работает, но во многих примерах слышно явную фальш.

#101
17:23, 26 июня 2015

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

Нашёл самый компактный GMGSx.sf2. Занимает всего 4 МБ, звучит почти точь-в-точь как midi в винде. Он обнаружился в комплекте с программой SynthFont. То есть получается как альтернатива виндовому midi. Правда загрузка ЦП у него при воспроизведении через SynthFont почти в 10 раз больше, чем у моего синтезатора.

А можно ли фонт чем-нибудь распотрошить и вытащить оттуда только нужные мне инструменты?

#102
17:33, 26 июня 2015

gammaker
У тебя нет обработки RPN сообщений. У очень многих композиций используется нестандартный Pitch Bend Sensitivity. У тебя же он игнорируется и в результате _всё_ с колесом звучит крайне криво.
http://www.2writers.com/eddie/TutNrpn.htm

#103
18:00, 26 июня 2015

Dexus
> У тебя нет обработки RPN сообщений. У очень многих композиций используется
> нестандартный Pitch Bend Sensitivity. У тебя же он игнорируется и в результате
> _всё_ с колесом звучит крайне криво.
Вот чего оказывается не хватает. Ладно, потом, после экзаменов этим займусь. Я так понимаю, многое придётся переделать? Потому как уже обычный синус\треугольная волна не подойдут, придётся плавно менять частоту? А то у меня синус оптимизирован с учётом того, что частота неизменна.

#104
18:31, 26 июня 2015

gammaker
Это всего лишь регулировка глубины "колеса" (bend event) в центах (вроде). В статье вроде написано :).
Дефолтовая глубина - два полутона. Я часто использовал октаву.

Страницы: 16 7 8 914 Следующая »
ПроектыФорумОцените

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