24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Где я проебался? Обычно эти алгоритмы используют либо гармонии, т.е однообразную хуету, либо лоуфай-хипхоп/эмбиент/техно, т.е ту же однообразную хуету. Однако при прослушивании многочисленных треков человеческих музыкантов я заметил одну интересную хуйню: в музыке есть закономерностида ладна!. Эти закономерности можно использовать для генерации трека. Вот как оно работает:
Первый этап: Генерация инструментов. В зависимости от настроек генерации мы будем генерировать рандомно синты, бассы, кики, снейры и так далее.
Второй этап: Генерация паттернов. В базе данных нашего виртуального композера мы имеем parts, т.е части, они же микропаттерны из двух-трёх нот. Их мы будем рандомно расставлять, и будет звучать уже неплохо. На этом этапе можно проводить над сгенерированным некоторые изменения: прогрессия и мутация. Мутация - изменение уже существующих нот и инструментов в паттерн. Прогрессия - добавление новых нот и инструментов в паттерн.
Этап третий: Генерация куплетов. Это самое интересное. Куплет - несколько паттернов(2 или 4) объединенные вместе. Есть куплеты могут быть условно поделены на "интро", "мидтро", "аутро". Благодаря прогрессиям и мутациям можно изменять настроение трека. Типичный куплет: Паттерны: 1 - Изначально сгенерированный паттерн. 2 - Мутированная версия паттерна 1. Куплет: 1,2,1,2.
Так же важно использовать фичи: Небольшая пауза длиной в 1-2 ноты перед резко прогрессирующим паттерном/паттерном в который добавляют жирный басс/прогрессией барабанных/увелечении бпм - это дает эффект взрыва, и плюс 100 к динамичности.
Так же нужно не забывать про регрессию, она даёт "отдохнуть" слушателю, убирая некоторые инструменты, оставляя только барабанные, к примеру.
Этап четвертый: Генерация трека. Объединяем куплеты вместе.
Алсо, нашёл неплохой генератор: Muzoti. Хороший, серьезный такой генератор классической музыки. Но на самом сайте возможности как-то урезаны без барабанных музыка как-то не то, а исходников нет! Пидарасы блядь! Есть Euterpea, но он блядь на ебанном Хаскелле, нет чтобы как все нормальные люди писать на Питхоне, неееет надо изъебываться!
>>1354709 Хладно. Хотел сделать нечто подобное на марковских цепях. Таки получилось, делал на основе миди-файлов, но их у меня мало(в отличии от моей библеотки с потоковой музыкой(flac, opus, mp3)), а сам мили достаточно ограничен сам по себе. Обработка потока в свою очередь занимает ну просто дохуя памяти блядь.
Оп, попробую заняться этим в свободное время. На питоне захуярю. Только вот думаю, что чисто силами браузера такой объем памяти не осилить и придётся изловчиться и сделать через сервер. Или обрезать предыдущие куплеты, чтобы память не занимали
>>1355878 > обработка миди-стайл массива > Только вот думаю, что чисто силами браузера такой объем памяти не осилить и придётся изловчиться и сделать через сервер. Серьезно?
>>1355903 В смысле если делать бесконечный трек. Если его оставить так на сутки например(не знаю точно на сколько надо), то не думаю, что будет очень весело
>>1355909 > В смысле если делать бесконечный трек Особо много памяти не нужно. Делай чанки с некоторой периодичностью, если хочешь сохранять результаты. Для бесконечного стрима лучше всего подходят алгоритмы реалтайм генерации музыки. Алсо, бесконечные треки не так уж и нужны.
>>1355916 Но все же это лучше, чем ебаные 15 секунд чистой миди залупы на вольфраме. Можно больше где использовать, в тех же кафе врубить на весь день и тому подобного
>>1352287 (OP) Проебался ты вот где: На первом, самом важном, этапе создается мелодия в нужной тональности. На втором накладывается подходящая гармония. На третьем хуячится ритм-секция, помогающая с акцентами в мелодии. На четвертом добавляется тихая пиликающая разнообразная хуита, обогащающая спектр.
>>1355939 > Но все же это лучше, чем ебаные 15 секунд А зачем именно 15? Можно и 60. Потом сменить. Алсо, если хочешь просто бесконечной фоновой музыки есть Mubert. >>1356013 > На первом, самом важном, этапе создается мелодия в нужной тональности. Это понятно, что паттерн под нужную октаву подгоняется. > На втором накладывается подходящая гармония. А если я хочу блецкрок генерировать? Ну или драмнбасс? > На третьем хуячится ритм-секция, помогающая с акцентами в мелодии. Фоловинг паттерна это тоже мутация. Она так же предусматривается. Забыл ее записать. > На четвертом добавляется тихая пиликающая разнообразная хуита, обогащающая спектр. Ты имеешь в виду всякие виниловые шумы?
>>1356104 >под нужную октаву При чем тут октава? Ляминор - это не октава.
>А если я хочу блецкрок генерировать? Ну или драмнбасс? Я под гармонией имел ввиду гармоническую последовательность аккордов. Приятные слуху гармонические последовательности одинаковы для любых стилей, неприятные нахуй не нужны. Стиль в основном зависит от ритмики и от используемых инструментов в аккомпанементе.
На самом деле второй этап практически неотрывен от первого, но для альфа-версии генератора можно и оторвать. И, наверное, стоит поменять их местами - я могу ошибаться, но мне кажется, что с точки зрения автоматики гораздо проще генерить мелодию под нужную аккордовую последовательность, чем подбирать хорошую последовательность под мелодию.
>Ты имеешь в виду всякие виниловые шумы? Виниловые шумы - это скорее ритмические украшательства, о них тоже, кстати, не стоит забывать. Я имел ввиду всякие дополнительные инструменты, тихо пиликающие различные арпеджио на заднем фоне.
Что я хочу сказать-то: основное в музыке - это мелодия. Генерацию надо начать именно с этого. После чего, добавить нужные инструменты и ритмику в соответствии со стилем. И можно из одной и той же мелодии получить хоть классику, хать дранбасс, хоть блецкметал. Естественно, есть некоторые особенности мелодий в разных стилях, это надо будет учитывать. Но начинать надо с малого.
>>1356180 > гармонии Тащемта и не требуются. Из-за того, паттерн повторяется несколько раз с небольшими изменениями(мутации, добавления инструментов) звучать должно неплохо. Сами паттерны тоже не будут кривыми, по причине того что складываются из нескольких нот априори приятной последоватеьности, аля +1,+2,+3 или 0,+2,0.
>>1356864 >У меня попроси сыграть любой из моих треков, я максимум смогу потихоньку подобрать мелодию, не больше. Ясно, чукча не читатель, чукча писатель.
>>1352287 (OP) >Где я проебался, и почему это еще не реализовали? Ты проебался в написании слова бас. Это значит, что за пределами пресетов во фруктах ты нихуя не видел. Попробуй написать сам хороший трек по своим правилам. Даже средний.
Когда же у тебя будут знания всех тех мелочей, из которых состоит хорошая музыка, то ты поймешь, что в такой автогенерации нет никакого смысла. То, что сможет предложить тебе такой автогенератор, ты сделаешь за 10 минут у себя в голове. При чем 10 минут это даже много.
И это будет только начало. Потому что творчество это выход за рамки - иначе результат скучен. Точнее, баланс между выходом за рамки и сидением в стиле, ведь если совсем выйти за рамки, будет опять-таки экспериментальная скукота. А автогенераторы сидят в жестких рамках по определению. Игру no man's sky видел? Триллионы вариантов планет, а по факту однообразная хуита.
Второй момент. "Так же важно использовать фичи". Ну да, важно. Только фичи не сочетаются друг с другом. Определить сочетаемость может только человек (при условии, что ты пишешь музыку для людей естественно). В итоге ты сначала генерируешь хуйню за секунду, а потом день ее редактируешь.
В итоге на том этапе, когда ты понимаешь, как писать треки, проще и интереснее написать трек, чем заниматься всем этим. А генераторы интересны тем, что они позволяют тебе выйти за рамки. Поэтому супер-сложные генераторы не нужны, наоборот, нужные простые, но прикольные, которые можно встроить в свою музыку.
Обычно эти алгоритмы используют либо гармонии, т.е однообразную хуету, либо лоуфай-хипхоп/эмбиент/техно, т.е ту же однообразную хуету.
Однако при прослушивании многочисленных треков человеческих музыкантов я заметил одну интересную хуйню: в музыке есть закономерности да ладна!. Эти закономерности можно использовать для генерации трека.
Вот как оно работает:
Первый этап: Генерация инструментов.
В зависимости от настроек генерации мы будем генерировать рандомно синты, бассы, кики, снейры и так далее.
Второй этап: Генерация паттернов.
В базе данных нашего виртуального композера мы имеем parts, т.е части, они же микропаттерны из двух-трёх нот.
Их мы будем рандомно расставлять, и будет звучать уже неплохо.
На этом этапе можно проводить над сгенерированным некоторые изменения: прогрессия и мутация.
Мутация - изменение уже существующих нот и инструментов в паттерн.
Прогрессия - добавление новых нот и инструментов в паттерн.
Этап третий: Генерация куплетов.
Это самое интересное. Куплет - несколько паттернов(2 или 4) объединенные вместе.
Есть куплеты могут быть условно поделены на "интро", "мидтро", "аутро". Благодаря прогрессиям и мутациям можно изменять настроение трека.
Типичный куплет:
Паттерны:
1 - Изначально сгенерированный паттерн.
2 - Мутированная версия паттерна 1.
Куплет: 1,2,1,2.
Так же важно использовать фичи:
Небольшая пауза длиной в 1-2 ноты перед резко прогрессирующим паттерном/паттерном в который добавляют жирный басс/прогрессией барабанных/увелечении бпм - это дает эффект взрыва, и плюс 100 к динамичности.
Так же нужно не забывать про регрессию, она даёт "отдохнуть" слушателю, убирая некоторые инструменты, оставляя только барабанные, к примеру.
Этап четвертый: Генерация трека.
Объединяем куплеты вместе.
Где я проебался, и почему это еще не реализовали?