gammaker
> в виндовом синтезаторе используется реверберация?
В софтовом, который в DirectX, нет.
gammaker
> С твоими параметрами большинстве мелодий амплитуда выходит за границы,
> происходит нормализация и всё начинает играть очень тихо
Ты умножаешь уровень реверберации на громкость канала как? Нужно произведение делить на 127 (можно на 128 для оптимизации), забыл сразу написать, просто у меня внутри синтезатора все громкости float от 0 до 1.
gammaker
> Хотелось бы побыстрее, но я не вижу способа это оптимизировать дальше.
Есть идея ещё, если реализую - сразу покажу.
Mikle
> Ты умножаешь уровень реверберации на громкость канала как? Нужно произведение
> делить на 127 (можно на 128 для оптимизации), забыл сразу написать, просто у
> меня внутри синтезатора все громкости float от 0 до 1.
У меня тоже всё на float'ах и я уровень реверберации из MIDI сразу делю на 127. И этот уровень реверберации умножаю на текущую громкость ноты, которая считается с учётом громкости канала, velocity и огибающей.
Mikle
> Есть идея ещё, если реализую - сразу покажу.
Интересно, буду ждать.
Добавлено:
Кстати, заметил странную проблему с реверберацией. У меня есть некоторые инструменты, которые реализованы белым шумом. Они достаточно тихие и их слышно только если очень прислушаться. Но почему-то реверберация многократно усиливает эти шумы и они начинают реветь как сумасшедшие, заглушая все остальные инструменты. Почему такое происходит? Ты не замечал такого?
Вот пример проблемы с шумом: https://gammaker.github.io/midisynth-beta/?~./Eifel%2065%20-%20Da%20Be%20Dee
А в старой версии без ревера всё норм: https://gammaker.github.io/midisynth/?~./Eifel%2065%20-%20Da%20Be%20Dee
И ещё нормальный пример с реверберацией и без неё. Хотя без наушников разницу как-то не видно.
А в наушниках старая версия лучше звучит, там есть стереоэффект - для каждого канала нота отдельно синтезируется. В новой версии я этот стереоэффект временно убрал из-за сложностей в реализации и некоторых багов.
И ещё музыка. Здесь обновлённая гитара и тоже есть реверберация, которую должно быть заметно: https://gammaker.github.io/midisynth-beta/?~./Smokie%20-%20Living… %20to%20Alice
Похоже, где-то у тебя ошибка. У меня никаких проблем с шумом не возникало, и вообще, в ревере есть завал по ВЧ, он серединку больше подчёркивает.
Кaк идея в общем? ;-)
Alikberov
Мой основной синтезатор написан на C++, компилируется в asm.js и в JavaScript не пробрасывает ничего кроме воспроизведения MIDI файла. Так что научить его твоему формату без модификации и перекомпиляции C++ не получится. Я начал переделывать архитектуру синтезатора на более гибкую и настраиваемую, но отвлёкся на другие проекты. Так что видимо не скоро я смогу доделать её и продолжить добавлять фичи в синтезатор.
Если ты сделаешь конвертер своего языка в MIDI на JavaScript, то можно будет заставить мой существующий синтезатор воспроизводить её в браузере.
Либо, как вариант, я в качестве эксперимента делал упрощённый синтезатор полностью на JS и даже перенёс туда несколько инструментов из своего основного. Там ноты задаются массивом, так как парсера MIDI там нет. Могу его вечером выложить, и ты можешь поиграться с ним. Он медленнее, чем на C++, но для коротеньких мелодий как раз подойдёт.
Ничто не мешает встроить синтезатор прямо в пост на форуме и слушать не переходя по ссылкам и не скачивая никаких левых файлов.
Пoнятно.
На Си воспроизводить Миди можно с помощью mmsystem без особого труда.
Можно в форум вставить QR-код или математическую формулу
Сервисов для этого достаточно.
Но нету сервисов, которые генерировали бы звук с возможностью вставить его embed/iframe тегами для воспроизведения непосредственно здесь, без перехода куда-либо…
Сам пытаюсь закончить скрипт для вставки электрических схем в любой форум без загрузки графического файла…
Чтобы в любом форуме можно было бы вставить, скажем, графическое изображение как резистора текстом «--[//]--», так и целой схемы усилителя…
P.S.: Кстати, я не рекламирую свои ресурсы.
Просто показываю, что задуманное - не голословно.
Но у меня не хватает ресурсов и опыта, чтобы со всем справиться в одиночку.
Вот мой упрощённый синтезатор, о котором я рассказывал - полностью на JavaScript и в одном файле.
Код здесь: https://gist.github.com/gammaker/4249d972cf464dbfdebf579ac351c53e
Можешь форкнуть этот Gist и добавить сюда парсер своего языка, который будет формировать массив типа gMelody1. И пусть он берёт строку из location.hash. Соответственно, встраиваться это будет так:
<embed src="https://gistpreview.github.io/?{{ID твоего Gist}}#123B4CD56v.24p" height=64></embed>
Сейчас работаю над новой версией синтезатора и появилось много причин и желание окончательно и бесповоротно дропнуть Windows XP. 3 года назад мой синтезатор ещё пытались запускать на XP:
https://gamedev.ru/projects/forum/?id=189866&page=9&m=4313339#m126
Итак, остался ли здесь кто-нибудь, у кого на основном или рабочем компьютере стоит (и используется) XP? И если да, то почему он до сих пор используется?
gammaker
> остался ли здесь кто-нибудь, у кого на основном или рабочем компьютере стоит (и используется) XP?
У меня есть по-прежнему XP на нескольких компах. Есть и семёрка на парочке, есть десятка на одном ноуте. Сейчас пишу из-под XP, перезагрузиться в семёрку при необходимости - пара минут.
Естественно, что, если поддержка XP вызывает сложности в разработке, в наше время от неё можно безболезненно отказываться.
gammaker
> почему он до сих пор используется?
Потому, что работает стабильно много лет, не задаёт глупых вопросов, не надоедает рекламой, не нуждается в постоянных обновлениях.
Mikle
> У меня есть по-прежнему XP на нескольких компах.
Это старые компы или ты на новые XP ставишь?
Mikle
> Потому, что работает стабильно много лет, не задаёт глупых вопросов, не
> надоедает рекламой, не нуждается в постоянный обновлениях.
По идее есть утилиты, в которых всё лишнее отключается.
А то что многие дропают XP, не вызывает неудобств? Даже браузеры уже все перестали её поддерживать больше 2 лет назад. Например найти браузер с поддержкой WebAssembly и асинхронных функций в JS под XP довольно сложно, а я как раз хочу их задействовать на своём сайте.
Mikle
> Естественно, что, если поддержка XP вызывает сложности в разработке, в наше
> время от неё можно безболезненно отказываться.
Ок, тогда наверное так и сделаю. Возможно Windows-версия синтезатора пока поживёт, а в браузере буду использовать новые фичи. Дропну asm.js и буду использовать только WebAssembly.
По поводу синтезатора. Сейчас пилю тулзу с анализатором спектра. Буду смотреть спектр различных инструментов и пытаться его воссоздать свои алгоритмом, использующим обратное преобразование Фурье. Возможно, будет ещё один прорыв в качестве звучания, аналогичный тому, который был, когда я только открыл для себя такой метод с IFFT и стал подбирать гармоники на слух.
gammaker
> По идее есть утилиты, в которых всё лишнее отключается.
Кроме обновлений и прочей надоедливой шелухи, есть ещё такие вещи, как, например, работа проводника, в частности - поиска.
gammaker
> А то что многие дропают XP, не вызывает неудобств?
Вызывает, поэтому и приходится держать вторую систему. Но моя обычная работа сводится к довольно узкому кругу задач, с которыми в XP проблем нет.
gammaker
> Это старые компы или ты на новые XP ставишь?
На самые новые даже семёрку не поставишь. Самый современный с XP у меня это i5-2400, GTX770, с этим XP справляется.
gammaker
> Сейчас пилю тулзу с анализатором спектра. Буду смотреть спектр различных
> инструментов
Типа до тебя никто не написал таких тулзов чтоли? да запусти уже любой DAV, фрутилупс например.
Интересно что тебе даст наблюдение спектров. И как ты их наблюдать собрался )).
slepov
> Типа до тебя никто не написал таких тулзов чтоли? да запусти уже любой DAV,
> фрутилупс например.
А на спектр своих инструментов как смотреть? Я делаю эту тулзу прямо в GUI своего синтезатора, чтобы одинаково видеть как спектр, сгенерированный моим синтезатором, так и другого инструмента, и на лету подкручивать параметры, приближая один к другому. Со сторонними тулзами я такое не смогу сделать.
И как расшифровывается DAV?
slepov
> Интересно что тебе даст наблюдение спектров. И как ты их наблюдать собрался )).
Буду наблюдать спектрограмму на рисунке и пытаться получить похожую со своим синтезатором. Если смогу получить похожую картинку, значит и звучание будет похожее.
gammaker
> И как расшифровывается DAV?
Digital audio workstation.
И еще, не в упрёк конечно, но чтобы понимать, автор этой темы знаком с такими явлениями как FluidSynth, ZynAddSubFX?
А вообще с практиками и средствами MIDI и Digital audio - стандартами, к примеру VST?
Тема в архиве.