Проекты
GameDev.ru / Проекты / Форум / Компактный синтезатор MIDI (9 стр)

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

Страницы: 18 9 10 11 12 Следующая »
MikleМодераторwww17 фев. 201611:48#120
gammaker
> Там наоборот деградация.
Метод проб и ошибок, ну и просто где-то это оказалось не актуально, но зато есть и хорошие, и постоянно улучшающиеся синтезаторы.
gammakerПостоялецwww6 сен. 201620:26#121
Я выложил исходники синтезатора и своей либы, на которой он основан, на github!
Скомпилированный бинарник здесь. midi можете взять из архивов со старыми версиями в #0 или например на сайте https://freemidi.org/. Одна из midi лежит в репозитории. Библиотеку для линковки со старой msvcrt.lib я в репозиторий не положил, поэтому эта собранная версия не такая компактная.
Самое главное нововведение - наконец-то появились долгожданные ударники! Ну и в целом громкость инструментов подкалибровал и стало получше. Но из-за ударников нагрузка на процессор стала неравномерная и стриминг стал глючить. Поэтому по умолчанию он отключён, пока я не переделаю стриминг.
gammakerПостоялецwww26 сен. 20160:07#122
Мой предыдущий пост так никто не прокомментировал. Ну тогда вот вам онлайн-демки, чтобы не качать:
  • My Way
  • ABBA Mamma Mia
  • Правка: 26 сен. 2016 0:11

    Георгий А. С.Постоялецwww26 сен. 20164:08#123
    Прошу прощения, я не разбираюсь глубоко в технических вопросах и не очень хорошо понял описание. Ваша программа - движок для воспроизведения MIDI-файлов через волновой вывод без использования аппаратных MIDI-возможностей звуковой карты?
    gammakerПостоялецwww26 сен. 20167:38#124
    Георгий А. С.
    > Ваша программа - движок для воспроизведения MIDI-файлов через волновой вывод
    > без использования аппаратных MIDI-возможностей звуковой карты?
    Да. Но насколько я понимаю, встроенный синтезатор винды тоже уже давно не использует аппаратных возможностей звуковой карты.
    MadwareПостоялецwww26 сен. 20169:13#125
    gammaker
    В Аббе через браузер слышу какой-то рассинхрон

    Бинарная версия падает

    Core i3 4010U Win 8.1

    Правка: 26 сен. 2016 9:17

    MikleМодераторwww26 сен. 20169:31#126
    gammaker
    Не работает на XP, на семёрке проверю позже.
    Madware
    > В Аббе через браузер слышу какой-то рассинхрон
    Согласен, может миди-файл кривой? Я скачал в п.0 две старые версии, но там нет Mamma Mia.
    gammakerПостоялецwww26 сен. 201610:03#127
    Madware
    > В Аббе через браузер слышу какой-то рассинхрон
    Странно, я вроде не замечал.

    Mikle
    > Не работает на XP, на семёрке проверю позже.
    Опять совместимость слетела что ли? Надо будет опять в виртуалке потестить.

    Mikle
    > Согласен, может миди-файл кривой? Я скачал в п.0 две старые версии, но там нет
    > Mamma Mia.
    Она недавно появилась, вот midi файл: http://gammaker.github.io/midi/ABBA-Mamma_Mia.mid

    MadwareПостоялецwww26 сен. 201610:14#128
    gammaker
    в начале не так заметно, но с некоторым времене становится отчетливо слышно
    gammakerПостоялецwww26 сен. 201612:42#129
    Madware
    > в начале не так заметно, но с некоторым времене становится отчетливо слышно
    Я наверное раз 20 слушал и оригинал тоже, не замечал никакого рассинхрона. Вроде с оригиналом всё сходится.
    gammakerПостоялецwww29 июля 20172:01#130
    Новая версия! Самый крупный релиз за всю историю моего синтезатора!
    Сжатая до 53 КБ виндовая версия: http://www.gamedev.ru/files/?id=127305. Использует UPX, поэтому некоторые антивирусы могут ругаться. Также крашится на некоторых версиях винды при закрытии окна на крестик. Несжатые версии теперь не крашатся.
    Можно слушать прямо в браузере. Если комп слабый и не тянет в реальном времени, снять галочку и подождать, пока синтезируется целиком.
    Здесь внизу список ссылок на прослушивание разных MIDI'шек.
    Новую и предыдущую версию можно сравнить прямо в браузере:
  • Smokie - Living Next Door to Alice  (Старая версия)
  • Final Countdown  (Старая версия)
  • Cheri Lady  (Старая версия)
  • Что нового:
    1) Был полностью переписан парсер формата MIDI. Отсюда:
    - Поддержка обоих форматов MIDI 0 и 1 - больше не нужно конвертировать 0 в 1, как в прошлых версиях.
    - Поддержка изгиба ноты - события Pitch Bend.
    - Потенциально синтезатор стал ближе к тому, чтобы получать MIDI-события в реальном времени и воспроизводить их. Он больше не переводит музыку целиком в собственный формат.
    - Поддержка панорамы - теперь синтезатор стал выдавать стерео музыку!
    2) Теперь NoteOff обрабатывается корректно и длительность нот стала правильной.
    3) Открывал новый для себя метод синтеза крутых звуков через обратное преобразование Фурье. Большую часть инструментов переделал этим методом и теперь звучание улучшилось на порядки: голос, хор, Synth Strings, Synth Brass, флейта и куча других инструментов были переделаны.
    4) Более равномерная нагрузка на процессор при стриминге - ноты теперь генерируются частями, а не целиком, как раньше.
    5) Исправлены щелчки.
    6) Хорошо оптимизировал. При всех этих улучшениях производительность в среднем не просела. Где-то стало медленнее, где-то быстрее, но в среднем осталось так же.

    Правка: 29 июля 2017 2:01

    ArochПостоялецwww29 июля 20174:50#131
    gammaker
    > 2) Теперь NoteOff обрабатывается корректно и длительность нот стала правильной.
    а тут нельзя угадать, ты допустим можешь обработать по стандарту, а какой-то редактор сохранить через жопу (и таких редакторов хватает).

    У себя я сделал такой костыль:

    + Показать

    Правка: 29 июля 2017 4:53

    gammakerПостоялецwww29 июля 201711:43#132
    Aroch
    > У себя я сделал такой костыль:
    Не понял, в чём суть костыля? Что ещё за лучшие ноты мы находим?

    Aroch
    > а тут нельзя угадать, ты допустим можешь обработать по стандарту, а какой-то
    > редактор сохранить через жопу (и таких редакторов хватает).
    Вроде те MIDI, которые у меня есть, звучат хорошо и стало ближе к тому, как они звучат в винде.

    ArochПостоялецwww29 июля 201712:26#133
    gammaker
    > Не понял, в чём суть костыля? Что ещё за лучшие ноты мы находим?
    по стандарту событие note off должно относится к последней открытой ноте, но некоторые редакторы могут сохранять миди файлы так что note off будет относится не к последней открытой ноте, а какой-нибудь ранее открытой. К примеру иногда вижу такое:
    track time: 0
    note on
    track time: 10
    note on
    note off
    track time: 20
    note off

    Если обрабатывать по стандарту, то получится одна нота с длиной 20, другая в середине с длиной 0. Костыль обнаруживает такие случаи и смотрит в списке открытых нот след. более подходящую (чтобы длина хотя бы не была меньше или равной 0)

    з.ы. естественно это все для одного и того же трека, канала и для нот с одним и тем же midi code.

    Правка: 29 июля 2017 12:27

    gammakerПостоялецwww29 июля 201712:46#134
    Aroch
    > Если обрабатывать по стандарту, то получится одна нота с длиной 20, другая в
    > середине с длиной 0.
    А разве вообще могут одинаковые ноты звучать одновременно на одном канале? У меня если встречается NoteOn уже играющей ноты, то играющая нота отпускается и начинается новая. Если там дальше будет лишний NoteOff, то он игнорируется.
    В том случае, который ты привёл, у меня бы нота посередине пропала, а первая нота имела бы длину 10. Я больше сотни MIDI переслушал, вроде не замечал пропавших нот.
    Страницы: 18 9 10 11 12 Следующая »

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

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