Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Visual Basic: Общие вопросы > Компьютер сочиняет музыку


Автор: TheTrik 28.01.16, 11:46
https://www.youtube.com/watch?v=AB0FaDtHeRE
Скрытый текст
[URL=https://www.youtube.com/watch?v=s_aPUuhPKxc]



Всем привет. Как-то давно я делал виртуального композитора для создания 8-бит музыки, но в итоге забросил это дело. Я даже писал об этом и выкладывал демки (вот и вот). На днях я немного доработал его + добавил свои синтезаторы (вот и вот) в него + банки пресетов к ним.
Кстати там же можете добавлять новые пресеты и сохранять их.
Конечно музыкой это назвать нельзя (из-за кривого алгоритма, который я разработал давно, когда еще и музыку толком сам не умел делать и программировать не умел), но поиграться можно.
Для создания нового трека нужно придумать имя трека и ввести его в поле Name, если поле ничего не содержит оно заполнится произвольным числом. На основе имени создается трек (вычисляется хэш и это значение используется в качестве зерна псевдослучайного генератора), т.е. имя будет однозначно идентифицировать трек. Поле Tempo задает темп. Правой кнопкой мыши по треку - открывает окно синтезатора трека, можно менять параметры тем самым изменяя звучание. Левой кнопкой по паттерну - просмотреть паттерн. Никаких поверок нет, так что не нужно туда вводить неправильные значения иначе программа "рухнет".
Также программа может зависнуть (опять-таки из-за кривого алгоритма) при создании трека.

Некоторые интересные треки которые я нашел:
  1. 681
  2. Хакер
  3. VBStreets.ru
  4. Телепат
  5. 45645
  6. 60000
  7. 43964

Скачать

Группа в ВК.

Удачи!

Автор: B.V. 29.01.16, 12:32
Ой, напомнило мне мою старую и примерно такую же "полезную" (разве что на поиграться) программку http://bbs.vbstreets.ru/viewtopic.php?f=15&t=29911
Если сильно постараться, тоже на выходе иногда получается музыка.

Скрытый текст
Цитата TheTrik @
Хакер
VBStreets.ru
Телепат

:lol:

Автор: Linnalor 31.03.16, 08:48
Fl Studio попробуйте

Автор: TheTrik 31.03.16, 10:15
Цитата Linnalor @
Fl Studio попробуйте

Спасибо! А то я не мог догадаться что использовать, пришлось писать целую программу для этого. Вот я опростоволосился...

Автор: VisualProg 31.03.16, 12:37
Если сделаете экспорт дорожек в миди (хоть каждую дорожку в отдельный файл, хоть все дорожки в 1 файл) - будет очень полезная штука)) Сейчас ищу нечто подобное, а миди можно будет дополнительно обработать в студии (ну, и частично скорректировать партии) :D

Автор: TheTrik 31.03.16, 12:40
Цитата
В новой версии я делаю что все вычисляется на основе имени, также как и в текущей версии, но алгоритм хеширования будет другой дабы уменьшить коллизии. В данный момент работаю над генератором слов (не хочется чтобы использовался абсолютно случайный незапоминающийся набор символов) который использует алгоритм похожий на Цепь Маркова. Также планирую экспорты в MIDI и MP3, может быть добавлю редактирование паттернов уже в самом проигрывателе (сейчас их можно только просматривать) и сохранение треков уже во внутренний формат для "доведения до ума" генерированных треков.

Кстати будут расширния в виде DLL, как и сами "композиторы" так и синтезаторы. Может быть даже и VST добавлю если будет такая возможность. Пока все заморозил из-за основной работы.
user posted image

Автор: B.V. 31.03.16, 13:06
Цитата Linnalor @
Fl Studio попробуйте

Ей, к слову, в свое время и вдохновился на написание того, что по ссылочке выше.

Цитата VisualProg @
Если сделаете экспорт дорожек в миди (хоть каждую дорожку в отдельный файл, хоть все дорожки в 1 файл) - будет очень полезная штука))

Это кому, мне или Трику?

Автор: TheTrik 31.03.16, 13:13
B.V. вся фишка моей программы в том, что она сама сочиняет музыку и выбирает синтезаторы. У тебя это просто секвенсор коих миллион. Может быть я не разобрался как он сочиняет музыку?

Автор: VisualProg 31.03.16, 13:20
Цитата
Это кому, мне или Трику?

Трику)) Про что твоя программа я так и не понял... по крайней мере, если она не преобразует физические параметры звука другими физическими параметрами другой аудио дорожки (например, нелинейно изменить поведения тембра бочки величиной частоты звука аудиофайла записи выстрела из пулемёта) - то это не столь интересная тема))


Цитата
Может быть даже и VST добавлю

Вот тут не соглашусь, если извращаться, то делать это в удобном инструменте, поэтому пропустить миди в том же CuBase с куда лучшим результатом, да ещё сделать это быстрее - лучше. ИМХО.

Кстати, прикольная музыка, из того что мне понравилось:
"vpcoder" (сумма равна сумме найденной композиции Трюка "43964") темп 111bpm,
"angry bass" темп 152bpm - да этож балалайка на фоне!) Этот композитор меня радует))),
"lib 32" темп 130bpm - тоже солирует балалайка с банжо в восточном стиле, эх, заставить бы его партию по пентатонике переиграть, получилось бы не плохо))
"deathcore" темп 125bpm - как ни странно, но звучит как black :D ,
"lib16" темп 150bpm - на сильную долю достаточно круто звучит, правда остальное сумбурно как то...
"return song 16" темп 135bpm - что то весёлое и на сильную долю с педалькой от хайхета, звучит серьёзно

"56403" темп: 135bpm - очень позитивная тема)
"89136" темп: 110bpm - умеренная тема, + композитор грамотно построил структуру музыки

:D вообще не ожидал что он так грамотно всё разложит

Автор: B.V. 31.03.16, 13:21
Цитата TheTrik @
Может быть я не разобрался как он сочиняет музыку?

Он не сочиняет музыку, музыку сочиняет пользователь. А общего между моим и твоим проектом только то, что на выходе получается музыка.

Автор: TheTrik 22.04.16, 17:32
Новая версия 1.1
    Добавлены новые пресеты.
Скачать.
Создана группа в ВК.

Автор: VisualProg 13.05.16, 11:57
Не смог найти ничего о спецификации "TCSTDBANK", что это за формат? Хотелось поковырять пресеты, может инструментов добавить получилось бы))

Нашёл другие темы, вышел на Ваш редактор (TestSynths.exe), и понял что всё в разы проще... я ожидал свой пресет на конкретную ноту (яля VST), а тут общий алгоритм...

Ещё было бы совсем круто посмотреть исходники, но, тут на Ваше усмотрение, я так понимаю, софт закрытый?

Автор: TheTrik 13.05.16, 12:40
Цитата VisualProg @
Не смог найти ничего о спецификации "TCSTDBANK", что это за формат? Хотелось поковырять пресеты, может инструментов добавить получилось бы))

Это внутренний формат контейнера банков, там все просто. TCSTDBANK\0 - это сигнатура (Trick Composer Standard Bank), после идет Long - версия контейнера, после идет размер самого банка (Long), после идут непосредственно данные банка специфичные для синтезатора. После данных планировалось хранить информацию о банке, но пока это зарезервировано.
Цитата VisualProg @
Нашёл другие темы, вышел на Ваш редактор (TestSynths.exe), и понял что всё в разы проще... я ожидал свой пресет на конкретную ноту (яля VST), а тут общий алгоритм...

Там 2 синта: ударные и аддитивный. Можешь создать по одному банку для каждого типа, он будет выбираться. Вообще алгоритм такой: загружаются все пресеты и выбирается случайный.
Цитата VisualProg @
Ещё было бы совсем круто посмотреть исходники, но, тут на Ваше усмотрение, я так понимаю, софт закрытый?

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

Автор: VisualProg 13.05.16, 19:56
Цитата
Исходники находятся в довольно-таки плачевном состоянии поэтому я решил не выкладывать их

Хорошо, подожду :D

Цитата
Там 2 синта: ударные и аддитивный. Можешь создать по одному банку для каждого типа, он будет выбираться. Вообще алгоритм такой: загружаются все пресеты и выбирается случайный.

Пробовал поковырять, но не смог найти прослушивание при редактировании, без него сложно представить как программа меня поняла

Автор: TheTrik 13.05.16, 20:11
Цитата VisualProg @
Пробовал поковырять, но не смог найти прослушивание при редактировании, без него сложно представить как программа меня поняла

Так клавиши на клавиатуре.
Z - первая октава, Q - вторая, I - третья. Ноты расположены как обычно.

Автор: VisualProg 13.05.16, 22:06
Цитата
Z - первая октава, Q - вторая, I - третья. Ноты расположены как обычно.

Я имел ввиду барабаны, миди-панель понятна (но не полностью, те же диезы и бемоли не нашёл - разве что транспонирование тона использовать...). Барабаны мышкой забивать научился, а вот прослушать - никак не могу :D

Автор: TheTrik 13.05.16, 22:17
Цитата VisualProg @
Я имел ввиду барабаны,

Они идут от первой октавы.
C - KICK - Z
C# - SNARE - S
D - Open hi hat - X
D# - Closed hi hat - D
E - TOM1 - C
F - TOM2 - V
F# - TOM3 - G

Автор: TheTrik 10.02.17, 12:06
https://www.youtube.com/watch?v=s_aPUuhPKxc

Новая версия 1.3
  • Переработан интерфейс;
  • Добавлен экспорт в MIDI;
  • Добавлен экспорт в MP3;
  • Добавлена возможность работы с плейлистом (генерация, сохранение, открытие и т.д.)

Скачать.

preview.png (, : 3487)

Автор: TheTrik 03.05.17, 14:17
https://www.youtube.com/watch?v=AB0FaDtHeRE

Новая версия 1.4
  • Добавлен новый FM-синтезатор;
  • Добавлены новые пресеты;
  • Добавлена новая цветовая тема и переработана старая;
  • Доработан пользовательский интерфейс;
  • Добавлена возможность регулировки параметров каждого синтезатора;
  • Добавлена возможность выбора готовых пресетов;
  • Исправлен баг с сохранением трека;
  • Добавлена поддержка мультимедийных клавиш клавиатуры.

Скачать.

scrn1.png (, : 3536)

Автор: kuzduk 19.01.18, 09:42
прикольная прога! :good: :good: :good:

Автор: ... 21.10.20, 12:12
как успехи ? когда выйдет новая версия ?

Автор: Betelgeuse 27.09.23, 06:33
ChatGPT нервно курит в сторонке

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)