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

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

Страницы: 18 9 10 1113 Следующая »
#120
11:48, 17 фев. 2016

gammaker
> Там наоборот деградация.
Метод проб и ошибок, ну и просто где-то это оказалось не актуально, но зато есть и хорошие, и постоянно улучшающиеся синтезаторы.


Прошло более 6 месяцев
#121
20:26, 6 сен. 2016

Я выложил исходники синтезатора и своей либы, на которой он основан, на github!
Скомпилированный бинарник здесь. midi можете взять из архивов со старыми версиями в #0 или например на сайте https://freemidi.org/. Одна из midi лежит в репозитории. Библиотеку для линковки со старой msvcrt.lib я в репозиторий не положил, поэтому эта собранная версия не такая компактная.
Самое главное нововведение - наконец-то появились долгожданные ударники! Ну и в целом громкость инструментов подкалибровал и стало получше. Но из-за ударников нагрузка на процессор стала неравномерная и стриминг стал глючить. Поэтому по умолчанию он отключён, пока я не переделаю стриминг.

#122
0:07, 26 сен. 2016

Мой предыдущий пост так никто не прокомментировал. Ну тогда вот вам онлайн-демки, чтобы не качать:

  • My Way
  • ABBA Mamma Mia
  • #123
    4:08, 26 сен. 2016

    Прошу прощения, я не разбираюсь глубоко в технических вопросах и не очень хорошо понял описание. Ваша программа - движок для воспроизведения MIDI-файлов через волновой вывод без использования аппаратных MIDI-возможностей звуковой карты?

    #124
    7:38, 26 сен. 2016

    Георгий А. С.
    > Ваша программа - движок для воспроизведения MIDI-файлов через волновой вывод
    > без использования аппаратных MIDI-возможностей звуковой карты?
    Да. Но насколько я понимаю, встроенный синтезатор винды тоже уже давно не использует аппаратных возможностей звуковой карты.

    #125
    9:13, 26 сен. 2016

    gammaker
    В Аббе через браузер слышу какой-то рассинхрон

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

    Core i3 4010U Win 8.1

    #126
    9:31, 26 сен. 2016

    gammaker
    Не работает на XP, на семёрке проверю позже.
    Madware
    > В Аббе через браузер слышу какой-то рассинхрон
    Согласен, может миди-файл кривой? Я скачал в п.0 две старые версии, но там нет Mamma Mia.

    #127
    10:03, 26 сен. 2016

    Madware
    > В Аббе через браузер слышу какой-то рассинхрон
    Странно, я вроде не замечал.

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

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

    #128
    10:14, 26 сен. 2016

    gammaker
    в начале не так заметно, но с некоторым времене становится отчетливо слышно

    #129
    12:42, 26 сен. 2016

    Madware
    > в начале не так заметно, но с некоторым времене становится отчетливо слышно
    Я наверное раз 20 слушал и оригинал тоже, не замечал никакого рассинхрона. Вроде с оригиналом всё сходится.

    Прошло более 10 месяцев
    #130
    2:01, 29 июля 2017

    Новая версия! Самый крупный релиз за всю историю моего синтезатора!
    Сжатая до 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) Хорошо оптимизировал. При всех этих улучшениях производительность в среднем не просела. Где-то стало медленнее, где-то быстрее, но в среднем осталось так же.

    #131
    4:50, 29 июля 2017

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

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

    + Показать

    #132
    11:43, 29 июля 2017

    Aroch
    > У себя я сделал такой костыль:
    Не понял, в чём суть костыля? Что ещё за лучшие ноты мы находим?

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

    #133
    12:26, 29 июля 2017

    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.

    #134
    12:46, 29 июля 2017

    Aroch
    > Если обрабатывать по стандарту, то получится одна нота с длиной 20, другая в
    > середине с длиной 0.
    А разве вообще могут одинаковые ноты звучать одновременно на одном канале? У меня если встречается NoteOn уже играющей ноты, то играющая нота отпускается и начинается новая. Если там дальше будет лишний NoteOff, то он игнорируется.
    В том случае, который ты привёл, у меня бы нота посередине пропала, а первая нота имела бы длину 10. Я больше сотни MIDI переслушал, вроде не замечал пропавших нот.

    Страницы: 18 9 10 1113 Следующая »
    ПроектыФорумОцените