Pergunta

Eu tenho colocar um monte de pensamento em geração processual de conteúdo por um tempo e eu nunca vi muita experimentação com música processual. Temos técnicas fantásticas para gerar modelos, animações, texturas, mas a música ainda é ou completamente estático ou laços simplesmente em camadas (por exemplo Spore).

Por causa disso, eu estive pensando-se técnicas ideais de geração de música, e estou curioso para saber o que as outras pessoas têm em mente. Mesmo se você ainda não tenham considerado, o que você acha que vai funcionar bem? Uma técnica por resposta agradar, e incluem exemplos sempre que possível. A técnica pode usar os dados existentes ou gerar a música a partir do zero, talvez em algum tipo de entrada (o humor, velocidade, qualquer que seja).

Foi útil?

Solução

Cellular Automata -. ler

Você também pode experimentá-lo aqui .

Editar:

rakkarage forneceu outro recurso: http://www.ibm. com / developerworks / java / biblioteca / j-camusic /

Outras dicas

O sistema mais bem sucedido, provavelmente, combinar várias técnicas. Eu duvido que você vai encontrar uma técnica que funciona bem para a melodia, harmonia, ritmo e geração de seqüência de graves em todos os gêneros de música.

cadeias Markov , por exemplo, são bem adequado para a gerao de sequcia melodia e harmónica. Este método exige a análise de canções existentes para construir as probabilidades de transição cadeia. A verdadeira beleza de cadeias de Markov é que os estados podem ser o que quiser.

  • Para a geração de melodia, tentar números blocos chave-relativas (por exemplo, se a chave é menor C, C seria 0, D seria um, D # seria 2 e assim por diante)
  • Para a geração de harmonia, tentar uma combinação de números de notas chave-relativo para a raiz do acorde, o tipo de acorde (maior, menor, diminuído, aumentada, etc.) e a inversão do acorde (raiz, primeiro ou segundo)
redes

Neurais estão bem adaptados para tempo de previsão de séries (previsão), o que significa que eles são igualmente adequados para 'prever' uma seqüência musical quando treinado contra melodias / harmonias populares existentes. O resultado final será semelhante ao da abordagem cadeia de Markov. Eu não posso pensar de qualquer benefício sobre a abordagem da cadeia de Markov que não seja reduzir o consumo de memória.

Além de campo terá duração para determinar o ritmo das notas ou acordes gerados. Você pode optar por incorporar esta informação em estados da cadeia de Markov ou saídas de redes neurais, ou você pode gerá-lo separadamente e combinar as seqüências de pitch e duração independentes.

Algoritmos genéticos pode ser usado para evoluir seções rítmicas. Um modelo simples poderia usar um binário cromossomo em que os primeiros 32 bits representam o padrão de um bombo, os segundos 32 bits de um laço, o terceiro 32 bits um chapéu oi fechado e assim por diante. A desvantagem neste caso é que eles exigem um feedback humana contínua para avaliar a adequação dos padrões recém evoluídos.

Um sistema especialista pode ser usado para verificar sequências geradas pelas outras técnicas. A base de conhecimento para tal sistema de validação um provavelmente pode ser levantada a partir de qualquer teoria livro boa música ou site. Tente Ricci Adams' musictheory.net .

Há mais de 50 anos de pesquisa sobre essas técnicas, muitas vezes ignorado pelos desenvolvedores que não estão familiarizados com a história da música computador e composição algorítmica. Numerosos exemplos de sistemas e pesquisas que abordam estas questões pode ser encontrada aqui:

http://www.algorithmic.net

Um algoritmo fácil e pouco eficaz é a utilização de ruído 1 / f aka "ruído rosa" para selecionar durações e notas de uma escala. Isso parece tipo de como a música e pode ser um bom ponto de partida.

Um algoritmo melhor é usar "Cadeias de Markov" .. varredura alguns exemplos de música e construir uma tabela de probabilidades. No caso mais simples, seria algo como C é de 20% propensos a seguir A. Para tornar isso melhor, olhar para a sequência dos últimos notas, por exemplo "CAB" é de 15% de probabilidade de ser seguido por B, e 4% de probabilidade de ser seguido por um Bb, etc. em seguida, basta escolher notas utilizando as probabilidades das notas previamente escolhidas. Este algoritmo extremamente simples gera resultados muito bons.

cadeias de Markov para a geração de música

Dmitri Tymoczko tem algumas ideias interessantes e exemplos aqui:

http://music.princeton.edu/~dmitri/whatmakesmusicsoundgood.html

meu software aplicada a teoria da evolução a música "crescer". O processo é semelhante ao de Richard Dawkins programa O Relojoeiro Cego - MusiGenesis acrescenta elementos musicais aleatoriamente, e em seguida, o usuário decide se quer ou não manter cada elemento adicionado. A ideia é apenas manter o que você gosta e vala de tudo o que não parece certo, e você não tem que ter qualquer formação musical para usá-lo.

Os golpes de interface, mas é velho -. Processá-me

Eu sempre gostei das antigas Lucasarts jogos que utilizaram o sistema iMUSE, que produziu uma interminável, trilha sonora reativa para o jogo e era muito musical (porque a maior parte dela ainda foi criado por um compositor). Você pode encontrar as especificações (incluindo a patente) aqui: http://en.wikipedia.org/wiki/IMUSE

Nintendo parece ser a única empresa a ainda usar uma abordagem semelhante à iMUSE para criar ou influenciar a música na mosca.

A menos que seu projeto é muito experimental, eu não iria abandonar o uso de um compositor -. Compositor humano real irá produzir resultados muito mais musicais e Listenable que um algorythm

Compará-lo a escrever um poema:. Você pode facilmente gerar poemas nonsene que soam muito avant-garde, mas para shakespeare replicar com um algorythm é difícil, para dizer o mínimo

Você deu uma olhada em SoundHelix (http://www.soundhelix.com)? É um quadro Open-Source Java para criação de música aleatória algorítmica que produz música muito arrumado. Você pode usar SoundHelix como um aplicativo independente, como um applet incorporado em uma página da web, como um applet baseado em JNLP ou você pode incluí-lo em seu próprio programa Java.

Exemplos gerados com SoundHelix pode ser encontrada aqui: http://www.soundhelix.com/audio-examples

A pesquisa sobre geração de música non-perfuração processual vai caminho de volta. Procurar novas e antigas questões de Computer Music Journal http://www.mitpressjournals.org/cmj (sem nome de domínio real?) Isto tem graves técnico artigos de uso real para tinkerers síntese de música, jóqueis ferro de solda, pastores bit e pesquisadores acadêmicos. É ot um comentário macios e entrevistas pano, como várias das revistas que você pode encontrar nas principais livrarias.

Tal um grande assunto. Você poderia dar uma olhada no meu app iPad, Arvoredo, ou o meu software Ripple na morganpackard.com. Na minha experiência, a maioria das abordagens acadêmicas para geração de música dinâmica venha com coisas que sons, bem, acadêmico. Eu acho que a coisa mais bem sucedido é encontrado à margem do mundo do clube / electronica. Monolake é meu herói a este respeito. Material muito audível, gerado por computador muito. Minha própria música não é ruim. Paul Lansky de "Alphabet Book" é um bom exemplo de música algorítmica extremamente audível, especialmente considerando que ele é um cara acadêmico.

A técnica que eu estive pensando é criar pequenos padrões musicais, até um bar ou assim. Tag esses padrões com sentimento identificadores como 'emoção', 'intenso', etc. Quando você deseja gerar a música para uma situação, escolher alguns padrões com base nestas tags e escolher um instrumento que você quer jogar com ele. Com base no instrumento, descobrir como combinar os padrões (por exemplo, em um piano que você pode ser capaz de reproduzi-lo todos juntos, dependendo palmo, em uma guitarra que você pode tocar as notas em sucessão rápida) e, em seguida, torná-lo para PCM . Além disso, você pode mudar chave, velocidade de mudança, efeitos add, etc.

A técnica específica que você está descrevendo é algo Thomas Dolby estava trabalhando em dez ou quinze anos atrás, embora eu não me lembro agora o que ele chamou, então não posso dar-lhe um prazo boa pesquisa.

Mas veja este Wikipedia artigo e desta página Metafilter.

O livro Algorithmic Composição é uma boa excursão dos vários métodos utilizados:

"Os tópicos abordados são:. Modelos de Markov, gramática gerativa, redes de transição, caos e auto-similaridade, algoritmos genéticos, autômatos celulares, redes neurais e inteligência artificial"

É um bom ponto sobre este vasto tema partida, no entanto, nunca se descrever em profundidade como cada método funciona. Ele fornece uma boa visão geral de cada um, mas não será suficiente para se você não tiver conhecimento sobre eles.

No final dos anos 90, a Microsoft criou um controle ActiveX chamado de "Control Interactive Music", que fez exatamente o que procura. Infelizmente, eles parecem ter abandonar o projeto.

Não é bem o que você está depois, mas eu sabia que alguém que olhou para gerar automaticamente DJ sets chamados Content Based Música Similaridade .

Se você estiver em teorias mais profundas sobre como trava de música juntos, Bill Sethares site tem algumas reviravoltas interessantes.

Ive sido olhando para fazer esta proposta de projeto - "8.1 " do 'grupo de pesquisa Teoria e práxis na linguagem de programação' da Universidade de Copenhagen - departamento de CS:

8.1 Automated Colheita e Análise Estatística de Música Corpora

A análise tradicional de partituras consiste de uma ou mais pessoas analisando ritmo, sequências de acordes e outras características de uma única peça, definido no contexto de uma freqüência vago comparação de outras peças por o mesmo compositor ou outros compositores a partir do mesmo período.

Traditional análise automatizada de música tem mal tratadas partituras, mas tem-se concentrado na análise do sinal e da utilização de técnicas de aprendizado de máquina para extrair e classificar dentro de, digamos, humor ou gênero. Em contraste, a pesquisa incipiente em objetivos DIKU a partes Automatize do análise de partituras. o agregado valor é o potencial para extrair informações de grandes volumes de partituras que não pode ser feito facilmente à mão e não pode ser significativamente analisada por aprendizagem máquina técnicas.

Este - a meu ver - é a direção oposta da sua pergunta a dados gerados - imagino -. Poderia ser usado em alguns casos de geração processual da música

A minha opinião é que a música generativa só funciona quando ele passa por um rigoroso processo de seleção. David Cope, um pioneiro da música algorítmica, iria passar por horas de produção musical de seus algoritmos (que eu acho que foram baseados principalmente em Cadeias de Markov) para escolher os poucos que realmente acabou bem.

Eu acho que este processo de seleção pode ser automatizado modelando as características de um estilo musical particular. Por exemplo, um "disco" estilo faria lotes atribuição de pontos para uma linha de baixo que apresenta offbeats e tambor peças com laços nas backbeats mas pontos subtrair para harmonias fortemente dissonante.

O fato é que o processo de composição de música está cheia de tantas práticas idiomáticas que eles são muito difíceis de modelo sem conhecimento específico do campo.

Eu tenho trabalhado em um módulo Python para a música processual. Eu só programada para fora o que eu sei sobre notas, balanças e construção de acordes, então fui capaz de deixá-lo gerar aleatoriamente o conteúdo dessas restrições. Eu tenho certeza que há mais teoria e padrões de um sistema como o que poderia ser ensinadas, especialmente por alguém que entende do assunto melhor. Então você pode usar esses sistemas como restrições para algoritmos genéticos ou randomizados geração de conteúdo.

Você pode passar por cima de minha implementação aqui , especialmente o aleatoriamente exemplo chumbo gerado pode ser útil. Alguém com uma sólida compreensão das progressões de acordes poderia criar uma estrutura de canção a partir de técnicas como essa e implementar melodias aleatórias constrangidos como este sobre ele. Meu conhecimento de teoria musical não se estende tão longe.

Mas, basicamente, você vai precisar para codificar a teoria do tipo de música que você deseja gerar, e depois usar isso como um constrangimento para algum algoritmo para explorar processualmente a gama de essa teoria.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top