Алгоритм для музыкальной имитации? [закрытый]

Распечатать трассировку стека в PrintStream, затем преобразовать его в строку

// ...

catch (Exception e)
{
    ByteArrayOutputStream out = new ByteArrayOutputStream(); 
    e.printStackTrace(new PrintStream(out));
    String str = new String(out.toByteArray());

    System.out.println(str);
}
5
задан ire_and_curses 28 August 2009 в 17:19
поделиться

4 ответа

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

http://en.wikipedia.org/wiki/Algorithmic_composition

6
ответ дан 18 December 2019 в 14:49
поделиться

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

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

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

АФАЙК (мой сын композитор) что? Более интересно изобрести свой собственный уникальный алгоритм для создания достаточно отличительной музыки.

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

#!/usr/bin/env python
"""
there are 8, 3-note sets.
each one can occur on 3 different beats.
each pitch of the 3 note set can be in one of 3 octaves and it can either be a harmonic or a fingered note.
"""
import random

noteSetChoices = [ "C-E-G", "C-F-A", "C-E-A", "D-F-A", "D-F-B", "D-G-B", "E-G-B", "F-A-C" ]
beatChoices= [ "1 - - -", "- 2 - -", "- - - 4" ]
octaveChoices= [ 1, 2, 3 ]
techniqueChoices= [ 'Fingered', 'Harmonic' ]

for n in range(48):
    note= random.choice(noteSetChoices)
    beat= random.choice(beatChoices)
    octave= random.choice( octaveChoices )
    technique= random.choice( techniqueChoices )
    print octave, note, technique, beat
2
ответ дан 18 December 2019 в 14:49
поделиться

Это действительно помогает, если вы знаете музыкальные условности, поэтому читайте книги и статьи, написанные, чтобы научить людей сочинять песни. Вы получите отличные идеи.

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

0
ответ дан 18 December 2019 в 14:49
поделиться

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

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

Проблема с решением (ха-ха) заключается в том, что оно не только объективно, но и является очень открытый конец. С помощью алгоритма сортировки у вас есть только один способ отсортировать список. С музыкальной композицией у вас есть миллионы приятных песен / чего бы вы ни достигли.

Так что вам понадобится алгоритм, который хорош не для нахождения окончательных решений, а для ОПТИМАЛЬНЫХ решений. Мое предложение - генетический алгоритм или аналогичный. Генетические алгоритмы великолепны, потому что они могут создать пул различных оптимальных решений.

Вам нужно будет разбить композицию на части - иметь GA для мелодии, GA для ритма, GA для структуры и т. Д. И разработать свою фитнес-функцию чтобы соответствовать вашим потребностям.

Конечно, это только одно решение проблемы; их много, и ссылка на Википедию, указанная ранее, является отличным началом.

Я рекомендую проверить:

Итак, вам понадобится алгоритм, который хорош не для нахождения окончательных решений, а для ОПТИМАЛЬНЫХ решений. Мое предложение - генетический алгоритм или аналогичный. Генетические алгоритмы великолепны, потому что они могут создать пул различных оптимальных решений.

Вам нужно будет разбить композицию на части - иметь GA для мелодии, GA для ритма, GA для структуры и т. Д. И разработать свою фитнес-функцию чтобы соответствовать вашим потребностям.

Конечно, это только одно решение проблемы; их много, и ссылка на Википедию, указанная ранее, является отличным началом.

Я рекомендую проверить:

Итак, вам понадобится алгоритм, который хорош не для нахождения окончательных решений, а для ОПТИМАЛЬНЫХ решений. Мое предложение - генетический алгоритм или аналогичный. Генетические алгоритмы великолепны, потому что они могут создать пул различных оптимальных решений.

Вам нужно будет разбить композицию на части - иметь GA для мелодии, GA для ритма, GA для структуры и т. Д. И разработать свою фитнес-функцию чтобы соответствовать вашим потребностям.

Конечно, это только одно решение проблемы; их много, и ссылка на Википедию, указанная ранее, является отличным началом.

Я рекомендую проверить: d нужно разбить композицию на части - иметь GA для мелодии, GA для ритма, GA для структуры и т. д. И спроектировать свою фитнес-функцию в соответствии с вашими потребностями.

Конечно, это только одно решение проблемы; их много, и ссылка на Википедию, указанная ранее, является отличным началом.

Я рекомендую проверить: d нужно разбить композицию на части - иметь GA для мелодии, GA для ритма, GA для структуры и т. д. И спроектировать свою фитнес-функцию в соответствии с вашими потребностями.

Конечно, это только одно решение проблемы; их много, и ссылка на Википедию, указанная ранее, является отличным началом.

Я рекомендую проверить: GenJam: импровизационный джазовый генетический алгоритм, разработанный для торговли соло- http://www.it.rit.edu/~jab/GenJam.html

И эта книга очень поучительна: http://www.springer.com/computer/information+systems/book/978-1-84628-599-8

Я полагаю, что еще один интересный способ - нейронные сети .... но давая им наборы, вероятно, будут проблемой .... это намного больше работы.

В любом случае, удачи в ваших начинаниях: P

4
ответ дан 18 December 2019 в 14:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: