Wavenbit. Авторский софт для создания музыки.

Наши и сторонние разработки
Аватара пользователя
BDK
Сообщения: 3665
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 389 раз

Re: Wavenbit. Авторский софт для создания музыки.

Сообщение BDK »

Спасибо.

Log файл раскрыл причину проблемы. вот эта строка "Поддерживаемая версия OpenGL 1.4.0 - Build 7.15.10.5016" говорит о том что поддерживается OpenGL версии 1.4 - это одна из самых первых древних версий, из еще дошейдерной эпохи, до 2000-х годов. Короче говоря это встроенная видеокарта, она не годится потому что не имеет необходимых возможностей.

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

А ты уже установил новую видюху в комп? Если да тогда не понятно почему её не нашло. По идее по умолчанию должна была найтись самая мощная видеокарта из установленных на компьютере.

Если не нашло по умолчанию то видимо нужно сделать принудительный выбор самой мощной видеокарты. Попробую разобраться как это сделать.
Аватара пользователя
Андрей
Архитектор
Сообщения: 7353
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза

Re: Wavenbit. Авторский софт для создания музыки.

Сообщение Андрей »

Я же на работе, тут мне нельзя устанавливать своё железо. :) Говорю, дома пока не проверял.

P.S. Только сегодня увидел выложенные демки просто.
Аватара пользователя
BDK
Сообщения: 3665
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 389 раз

Re: Wavenbit. Авторский софт для создания музыки.

Сообщение BDK »

Ясно. ОК, жду тестов дома.
Аватара пользователя
Андрей
Архитектор
Сообщения: 7353
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза

Re: Wavenbit. Авторский софт для создания музыки.

Сообщение Андрей »

Дома запустил все 3 демки.

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

Во второй просто нормально.

Третью запустил чтобы ради интереса получить log файл.

Вопрос, вывод FPS зависит от мощности видеокарты? у меня бывало и 600 FPS вначале. Если да, то идея, играть демку, а затем в конце выдать средний FPS.

(Пока я не услышал классное психоаккустическое звучание, которое впечатлило бы как в самом первом посте.)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Андрей
Архитектор
Сообщения: 7353
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза

Re: Wavenbit. Авторский софт для создания музыки.

Сообщение Андрей »

Хочется услышать что-то типа:

в этом архиве нет вирусов, отвечаю, здесь проверенные демки.

Понятно, что сначала надо придумать какие тембры мы будем юзать, потом объединить их в композицию. Вот тембры очень красивые были в первом посте этой темы, значит решение одной задачи ты уже должен знать.

В третьем файле Orion.exe хорошее вибрато, к примеру, можно обратить внимание в числе прочего.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
BDK
Сообщения: 3665
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 389 раз

Re: Wavenbit. Авторский софт для создания музыки.

Сообщение BDK »

Разумеется красивые тембры еще нужно создать. Но как ты понимаешь на это нужно время. Я как раз занимаюсь тем чтобы подготовить демки которые впечатлят слушателя. Это будут не просто некие пробы звуков а полноценные трэнсовые фрагменты. Причем не так сложно получить красивые мелодические тембры как ритмические и шумовые. Конкретно сейчас я работаю над тем чтобы получить хороший трэнсовый бит. К движку еще нужно приспособиться и изучить его повадки на практике. Но постепенно я начал улавливать принципы как на нем получить требуемое звучание. Сам движок имеет неограниченные возможности поэтому при должной сноровке в него можно запихнуть любой желаемый звук. Но как понять какими именно алгоритмами описать тот или иной звук - вот в чём вопрос? Я пришел к такой идее - беру сэмл например барабана типа snare - загружаю его в Adobe audition и смотрю его в спектральном представлении - и уже на основе увиденного там программирую этот звук в своём движке алгоритмически. Получаются вполне достоверные звучания. Хотя для электронной музыки достоверность не главное, главное чтобы звук был в принципе ярким и вкусным. Для этого бит должен быть хорошо слажен, все его составляющие тщательно выверены в спектральночастотном соотношении друг к другу, далеко не любые звуки хорошо ложатся в бит. Котороче чтобы показать звук который впечатлит слушателя - разумеется нужно еще поработать над подготовкой демок а не показывать первые простейшие звучания которые набраны наспех.

Вообще тема подготовки банков тембров для данного движка - это большая отдельная тема. И невероятно большой объем работы для одного человека. Поэтому я и рассчитываю пустить этот процесс на просторы многочисленных сторонних разработчиков. Ну а тебе возможно будет интересно поучаствовать в подготовке самого первого и зашитого в синтезатор по умолчанию банка звуков.


Данные же демки во первых тест работоспособности движка на разных компах ну и демонстрация его работоспособности в принципе.
Вопрос, вывод FPS зависит от мощности видеокарты?
Величина FPS зависит от мощности видеокарты. Но сам вывод этой величины практически не нагружает процесс. Так же практически не нагружает процесс прорисовка звуковой волны в окне, так что можно на неё не обращать внимания, я её вывел с целью отладки в процессе разработки движка а из демок просто не стал убирать.

Если у тебя показало 600 FPS то это ОЧЕНЬ крутой показатель. Карточка у тебя действительно мощная. Для того чтобы звук не прерывался должно быть больше 24 FPS примерно. На моём нетбуке выдает в районе 36-48 FPS - то есть в реалтайм пока укладывается. Но по мере усложнения композиции FPS будет снижаться. Вообще скажу по секрету - моя мечта идиота чтобы это заработало в реалтайме на смартфонах под андроидом. Но это на перспективу, а пока достаточно версии для PC.

Я меряю в FPS подобно тому как меряется производительность в графике. Это оправдано потому что процесс синтеза звука в данном случае идентичен процессу рендеринга изображения - действительено выдаются кадры только на них не изображение для глаз а звуковая волна для ушей.
Если да, то идея, играть демку, а затем в конце выдать средний FPS.
Можно и средний. Только мне кажется он малоинформативным. Мне важно было видеть как меняется FPS в динамике потому что в некоторых моментах он вполне большой а в некоторых опускается ниже необходимого для реалтайма а это критично и желательно видеть такие моменты.
(Пока я не услышал классное психоаккустическое звучание, которое впечатлило бы как в самом первом посте.)
ОК, намёк понял. Среди следующих демок будут и такие которые показывают звук идентичный тем первым. Чтобы показать что он в принципе может так же:) Но разумеется он может и гораздо круче чем так же - это я покажу в других демках.
В третьем файле Orion.exe хорошее вибрато, к примеру, можно обратить внимание в числе прочего.
Разумеется и вибрато и гораздо более интересные эффекты - всё это можно сделать. Ты не суди по этим первым демкам, они пока не раскрывают и одного процента потенциала движка.

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

Кстати - еще одна интересная потециальная возможность движка - синтез вокала, типа как в Vocaloid. Но для реализации этой возможности тоже нужно провести отдельную большую работу - подготовить соответствующие банки тембров. Возможно тебе кстати будет интересно этим заняться.
Аватара пользователя
BDK
Сообщения: 3665
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 389 раз

Re: Wavenbit. Авторский софт для создания музыки.

Сообщение BDK »

Вообще предложение к присутствующим - если есть интерес чтобы этот проект родился в полноценный продукт который выйдет в свет а не заглохнет на стадии рабочих прототипов - принимаются идеи насчет совместного участия в проекте. Конкретно - организовать команду и сделать проект коммерческим. Нужны и программисты, и тестировщики и наверное какой нибудь менеджер чтобы грамотно реализовать проект в коммерческой части, и наверное инвесторы были бы не лишними. Потому что для одного человека объем работы неподъемный. За разумные сроки.

А то что заработать на проекте можно - это стопудово. Нашлись бы желающие взяться за него.

И понятно что у всех семья, работа. Нет времени на ерунду :) Но что если хотя бы на секунду допустить мысль что этот проект может сработать и принести нам гораздо больше денег чем та самая работа и это будет наш собственный проект а не работа на начальника? Это может изменить всю жизнь. И что если эту возможность можно потерять просто пройдя мимо? Может всё же стоит рискнуть?
Аватара пользователя
Андрей
Архитектор
Сообщения: 7353
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза

Re: Wavenbit. Авторский софт для создания музыки.

Сообщение Андрей »

Здесь речь идет о сумме, но кол-во синусоид может быть большим, так что может быть и прокатит. Другой вопрос - зачем? Проблема-то не в том, чтобы синтезировать какой-нибудь сигнал, а в том, как параметризовать этот синтез так, чтобы кол-во параметров было небольшим, а звуки на выходе - интересными с точки зрения восприятия человека?
Вот FM-синтез удовлетворяет этому требованию (хотя и с натяжкой). Кол-во параметров малое, спектр возможных звуков тем не менее огромен, звуки сложные и благозвучные.
А у товарища - AM-синтез. Ну хорошо, пусть будет AM. А как он будет этот синтез параметризовать?
16 тысяч синусоид, каждая из которых имеет заданную частоту, амплитуду, а также частоту и глубину амплитудной модуляции?
Как-то многовато. Слишком большое пространство для выбора. Искать в нем интересные звуки будет тяжело.
Если мало - то вопрос, будут ли вообще интересные звуки на малом кол-ве синусоид. Если много - то запаришься их искать.
Именно в этом свете FM-синтез был революцией в свое время.
Там синусоид мало, но звуки тем не менее интересные.
Пусть лучше сделает FM-синтез
За основу возьмет чип, который использовался в синтезаторе DX7
И добавит новые возможности (увеличит кол-во ресурсов синтезатора)
Допустим, в DX7 было по-моему 8 синусоид всего на "инструмент".
А можно сделать 16, допустим.
Но лучше именно DX7 сделать, потому что и в случае FM-синтеза все равно тяжеловато искать хорошие звуки. А для DX7 этим занималось множество людей, звуков найдено много, в сети куча бесплатных патчей.
ну и что получается, что ему трудно будет найти оригинальные звуки на своём синтезаторе...
Ему в любом случае будет трудно их найти
Но FM-синтез - это исключение, там их найти легче. Собственно, современный цифровой синтез недалеко ушел от этого. Там разные гибридные подходы применяются, но общая цель одна - максимально уменьшить размерность пространства параметров, причем так, чтобы любые значения параметров по возможности соответствовали "хорошим" звукам.
Аватара пользователя
BDK
Сообщения: 3665
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 389 раз

Re: Wavenbit. Авторский софт для создания музыки.

Сообщение BDK »

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

Моя цель была - метод который дает большую полифонию на слабых компах (вообще я даже предполагал смартфоны).

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

Я это проверил - я сделал моделирование аналогового синтеза на GPU - получилось не намного быстрее чем на центральном процессоре. В общем прикинув все за и против я вынужден был отказаться от этой идеи. Далее я обратил внимание на сэмплеры. Сэмплер реализуется на GPU элементарно просто, работает запредельно быстро - казалось бы СУПЕР, решение найдено. Но не тут то было - дело в том что голый сэмплер для реального применения в музыке малопригоден - после сэмплера нужны еще фильтры, эффекты, эквалайзер как минимум один и т.д.и т.п. и вот тут я столкнулся ровно с той же проблемой что и в случае с моделированием аналогового синтеза - сам сэмплер быстр но фильтры и эффекты после него работающие с волной свели быстродействие к нулю.

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

Далее я размышлял так - сэмплы в виде спектра - это конечно не плохо. Они практически то же самое что сэмплы в виде волны. Но именно поэтому они создают ту же проблему - необходимость в гигабайтах памяти. В общем долго долго колебаясь я решил отказаться от записанных в память сэмплов а склонился к полностью процедурным - генерируемым в реальном времени при помощи алгоритмов.

Таким вот путем рождалась концепция синта. Таким образом единственная трудность связанная с этим синезатором - это создание хороших процедурных сэмплов. Но принципиально возможности движка позволяют синтез ЛЮБЫХ звуков - как и сэмплеры.
=====

Более того - в принципе ничто не мешает использовать записанные в память спектральные сэмплы на этом движке - такая возможность там есть и её можно использовать. Но ограничением здесь является именно объем оперативки видеокарты поскольку все сэмплы записываются в видеокарту в виде текстур и вообще весь вычислительный процесс происходит исключительно в видеокарте и никакого обмена данными между видео и системной памятью нет поскольку это сразу же убило бы производительность и свело бы целесообразность всей затеи к нулю. Обмен с системной памятью производится только один раз - когда в конце уже полностью вычисленная на видеокарте волна выгружается в системную память для вывода звука. То есть обмен с системной памятью минимизирован до предела, чтобы не стать узким местом для производительности.
Ему в любом случае будет трудно их найти
На самом деле особой трудности нет, я уже успешно реализовал несколько звуков. По сути метод прост - нужно брать обычные сэмплы, раскладывать их в спектр а дальше просто алгоритмизировать этот спектр - по сути это способ сжатия сэмплов - чтобы не использовать на сэмплы гигабайты памяти - в виде алгоритмов сэмплы могут быть в тысячи раз компактней. Единственный минус лишь в том что на такую алгоритмизацию сэмплов придется потратить некоторое время. Но и обычная подготовка сэмплов для обычного сэмплера тоже требует времени и даже больше местами.
Последний раз редактировалось BDK 24 июл 2016, 12:00, всего редактировалось 7 раз.
Аватара пользователя
BDK
Сообщения: 3665
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 389 раз

Re: Wavenbit. Авторский софт для создания музыки.

Сообщение BDK »

Еще насчет превышения половины частоты дискретизации хочу добавить.

Во всех методах синтеза оперирующих волной а не спектром применяют ухищрения для борьбы с этой проблемой. Как правило метод борьбы заключается в применении повышенной частоты дискретизации и фильтрации высоких частот сигнала. Однако повышение частоты дискретизации в два раз влечёт за собой и снижение производительности в два а то и более раз. Это очень дорогая операция. Приходится либо отказываться от нее теряя качество звука либо отказываться от производительности и большой полифонии. Причем повышение частоты дискретизации в два раза обычно слабо решает проблему и поэтому повышают в 4 раза - в соответствующее количество раз теряя производительность. В общем проблема серьезная и она попила немало крови разработчикам синтезаторов.

В данном же случае эта проблема решена автоматически - если мы изначально генерим только синусоиды заданной частоты - мы можем просто не генерировать частоты выше половины частоты дискретизации.

При этом я провел такой эксперимент - и попробовал свой синтезатор с частотой дискретизации 48000 Гц и с частотой 96000 Гц. Я НЕ УВИДЕЛ НИКАКОЙ РАЗНИЦЫ на слух. То есть для данного метода синтеза нет никакого смысла в повышенных частотах дискретизации. Единственная причина почему в индустрии звука стали использовать повышенные частоты дискретизации - это всё та пресловутая борьба с превышением половины частоты дискретизации. Короче очень дорогой кровью далась эта борьба. Мой же метод разом сбросил с плеч эту обузу.
Последний раз редактировалось BDK 24 июл 2016, 12:04, всего редактировалось 2 раза.