MUSIK: UM AMBIENTE INTELIGENTE DE AUXÍLIO À COMPOSIÇÃO Fernando Pinhati Claudia Ferlin, D.Sc. Universidade Federal do Estado do Rio de Janeiro - UNIRIO IST-Rio – Faetec/RJ [email protected] [email protected] Abstract. The MusiK project is a Computer Aided Composition tool. Based on traditional rules of harmony for four voices and possible derivations, its main goal is pointing out harmonic issues found in an Artificial Neural Network. The use of MusiK makes the process of musical construction faster, allowing to the musician gives his focus to the melodic idea and get advice about the harmony, minimizing time spend with manual revision and maximizing the concentration of efforts in obedience to the musical style rules. Resumo. O MusiK é uma ferramenta de auxílio à composição musical baseada em Redes Neurais Artificiais (RNA).Desenvolvido a partir de regras da harmonia tradicional, o objetivo do MusiK é indicar os problemas harmônicos encontrados em composições musicais a ele apresentadas. O uso do MusiK pode tornar mais ágil e produtivo o processo de construção musical, ao permitir que o músico concentre-se na idéia melódica, obtendo assessoria quanto à harmonia, minimizando o trabalho de revisão manual e os esforços na obediência a regras de um estilo. 1. INTRODUÇÃO Compor música envolve diversas habilidades e requer muitos conhecimentos como, por exemplo, teoria musical, técnicas de instrumentos, domínio de estéticas diversas e harmonia. Existem vários tipos e estilos de composição, muitos destes com recomendações amplamente aceitas por terem sido utilizadas por compositores de renome ou terem sido objetos de estudo de algum pesquisador de grande relevância, e que auxiliam na coerência da disposição de sons. No caso da estética clássica, período que originou a chamada harmonia tradicional (BENNET, 1986), existem recomendações de boas práticas que visam melhorar a qualidade das composições. O livro Harmonia (SCHOENBERG, 1910) enumera e esclarece algumas destas boas práticas. Ainda nos dias de hoje, é comum a utilização do processo manual de revisão de composições musicais para a validação da harmonia empregada na obra em relação ao estilo musical proposto. Ferramentas que auxiliem este tipo de trabalho são muito úteis, pois tornam o processo de composição menos custoso e, podendo inclusive, melhorar a qualidade da criação musical. As ferramentas atuais com este fim são escassas (ANDERS, 2007), e focam-se principalmente na geração automática de trechos musicais harmonizados, dada uma certa melodia, o que limita o uso da criatividade e do uso do estilo próprio do compositor. Uma ferramenta que tenha um maior foco na validação de boas práticas harmônicas pode auxiliar um músico a criar obras que preservam seu estilo e, ao mesmo tempo, revisar seu trabalho. Esta revisão pode ser sistematicamente empregada tanto no processo de composição musical, já citado, quanto também no processo de ensino-aprendizagem de estilos musicais, quando uma ferramenta com este foco é utilizada na instrução de aprendizes. Assim sendo, a criação de ferramentas computacionais capazes de realizar validação harmônica de forma automatizada surge como uma relevante iniciativa voltada a apoiar supervisores, aprendizes e compositores, não somente no ensino-aprendizagem, mas também no processo de composição musical em si. Diante do exposto, este artigo tem como objetivo descrever o MusiK, ambiente computacional inteligente voltado à validação harmônica de obras musicais. Baseado em Redes Neurais Artificiais (RNAs), o MusiK procura aprender algumas boas práticas da harmônica tradicional, durante a fase de treinamento, e permite utilizar este conhecimento absorvido para avaliar composições musicais e indicar problemas harmônicos. O presente texto encontra-se organizado em mais seis seções. A seção 2 apresenta fundamentos sobre música e harmonia, fornecendo os principais conceitos necessários à compreensão do restante do trabalho. A seção 3 traz um breve esclarecimento sobre redes neurais artificiais. A proposta do MusiK encontra-se descrita na seção 4. A avaliação e os experimentos realizados a partir da proposta do ambiente são detalhados na seção 5. A seção 6 descreve os resultados obtidos nos experimentos e apresenta a conclusão do trabalho. 2. MÚSICA E HARMONIA Harmonia, segundo Schoenberg (1910), “é o ensino dos complexos sonoros (acordes) e de suas possibilidades de encadeamento, tendo em conta seus valores arquitetônicos, melódicos e rítmicos e suas relações de equilíbrio”. Esta definição pode ser expandida para o estudo de melhores práticas a serem adotadas para que o resultado da emissão de sons simultâneos, através de fontes distintas ou não, sejam naturalmente agradáveis dada uma época e cultura (SCHOENBERG, 1910). O que se tem é um conjunto de regras definidas por diversos tratados e observações históricas, desde a escola pitagórica, que possuem o objetivo de definir uma base ou modelo para a criação de obras musicais a partir da concatenação de ideais sonoras (HINDEMITH, 1998). Um exemplo de tipo de Harmonia existente é a harmonia tradicional. Com o declínio da música renascentista (período de 1450 a 1600) e com o advento da música barroca, gradualmente o sistema tonal foi se instalando (BENNET, 1986). Dessa forma, um novo modo de se escrever música foi se consolidando no final do período barroco (1600 a 1750), o que seria a linha divisória para o próximo período da música – o classicismo (período de 1750 a 1810) (BENNET, 1986). Essa então nova maneira de se compor música é tomada como modelo a ser seguido e suas regras tornaram-se base da Harmonia Tradicional. Arnold Schoenberg em seu livro Harmonia (1910) discute sobre os elementos da harmonia tradicional, trazendo explicações baseadas na observação dos sons emitidos pela série harmônica. Tal publicação reúne e consolida um conjunto de boas práticas harmônicas já observadas e aplicadas por compositores há tempo e as prova com observações teóricas e empíricas em cima da série harmônica. A harmonia tradicional atualmente é utilizada como fundamento do ensino à composição musical. Com o seu conjunto de recomendações, é possível a sistematização da composição musical, ou seja, é possível construir um sistema computacional baseado nas boas práticas da Harmonia Tradicional e que auxilie um compositor a produzir uma obra musical completa e harmonicamente coesa (ANDERS, 2007). A este grupo de sistemas computacionais dá-se o nome de Computer-Aided Composition (em português, Computação Auxiliada por Computador) ou simplesmente CAC (PACHET, 2001). 3. REDES NEURAIS ARTIFICIAIS As Redes Neurais Artificiais (RNA) são modelos matemáticocomputacionais que procuram simular o funcionamento do cérebro em atividades envolvendo aprendizado, generalização, abstração e eliminação de ruído (GOLDSCHIMIDT et. al, 2005). Uma RNA possui um conjunto de elementos processadores, denominados neurônios artificiais, que se interligam por meio de conexões. Cada conexão possui um peso sináptico associado que representa a intensidade da ligação entre dois neurônios. A figura 1 apresenta um exemplo de RNA onde os neurônios estão organizados em três camadas sendo a primeira aquela que recebe estímulos do meio externo (camada de entrada), a segunda (camada intermediária ou escondida) que recebe os estímulos da camada de entrada e os propaga para a terceira (camada de saída), responsável por emitir a resposta da rede aos estímulos externos inicialmente apresentados. Cada wij representa o peso sináptico da conexão entre os neurônios i e j. Figura 1 - Exemplo de RNA de 3 camadas O processo de aprendizado em RNAs consiste no ajuste dos pesos sinápticos de forma que as RNAs respondam adequadamente aos estímulos de entrada (BRAGA et. al, 2000). Um dos principais paradigmas de aprendizado em RNAs é o supervisionado (REZENDE, 2003). Neste paradigma, existe o papel do “professor”, que é a figura conhecedora do ambiente e capaz de informar se uma determinada resposta está ou não correta a partir de uma entrada fornecida (HAYKIN, 1999). Um conjunto exemplo de entradas é dado à rede e, para cada saída apresentada, o supervisor realiza a comparação entre o resultado que deveria ser obtido (resultado ideal) e o realmente obtido pela RNA (REZENDE, 2003). O algoritmo de treinamento error backpropagation (retropropagação de erro) é um dos algoritmos de aprendizado supervisionado mais utilizados em redes neurais artificiais (HAYKIN, 1999). A técnica requer redes em que todos os neurônios de uma camada estejam conectados a todos os neurônios da camada seguinte, independente do número de camadas que a RNA possua. Neste algoritmo, o valor de ajuste calculado é retropropagado a partir da camada de saída em direção à camada de entrada, alterando todos os pesos das sinapses na busca da minimização da função de erro. 4. SOLUÇÃO PROPOSTA A partir dos trabalhos levantados e de avaliações preliminares em cima de modelos de representação e de estruturas de RNA estudadas, uma proposta de elementos para o ambiente MusiK foi construída e será apresentada nesta seção. A seção 6 apresenta detalhes sobre os experimentos realizados com esta proposta e a seção 7 os resultados obtidos. 4.1. OBJETIVOS DO AMBIENTE O MusiK é um ambiente que tem como objetivo auxiliar um compositor no processo de criação musical. A ideia é que, através de um programa de editoração de partituras já existente, o usuário possa acionar um mecanismo de validação harmônica (através de um botão ou opção de menu) que o auxiliará no processo de composição. Uma outra funcionalidade, que não faz parte do objetivo deste trabalho mas ilustra o potencial do uso de RNA neste tipo de ferramenta, é que a cada utilização do MusiK o sistema irá absorver as escolhas do compositor, gravando-as em arquivos de log, e aprender seu perfil de composição, através de adaptação das redes neurais utilizadas, para que novas validações sejam realizadas de acordo com seu estilo musical. 4.2. MODELO GERAL O modelo é focado na construção de componentes essenciais para a realização da validação harmônica e absorção de estilo das composições. Outros sistemas já existentes são utilizados para os fins de editoração musical (Musescore) e construção/treinamento de RNAs (MatLab). Simplificadamente, o modelo geral do ambiente MusiK pode ser representado pelo diagrama de componentes da figura 2. Neste diagrama, os três principais componentes que são a base do sistema: a RNA de validação harmônica, o Conversor e o Perfilador. Os componentes Editorador, Banco de Logs e Ferramenta de RNA não fazem parte do escopo do projeto pelo fato de serem conexões do ambiente com softwares já existentes. Figura 2 - Diagrama de componentes do MusiK 4.3. REDE NEURAL ARTIFICIAL DE VALIDAÇÃO HARMÔNICA A RNA de validação harmônica é o principal componente do MusiK. É nela que acontecerá a verificação de cada trecho musical na procura de possíveis problemas de harmonia. Porém, existem várias preocupações a serem consideradas antes de propor uma RNA para tal trabalho. É necessário definir uma modelagem para o conhecimento que será dado como entrada à rede, definir como a rede interpretará cada parte do conhecimento modelado, projetar uma arquitetura de rede neural que seja capaz de tratar bem o conhecimento a ser avaliado e verificar, na prática, se todas estas definições estão atendendo ao problema proposto. 4.4. MODELAGEM DO CONHECIMENTO Durante uma composição, o músico deverá estar atento a possíveis problemas harmônicos nos trechos compostos. Geralmente, estas validações harmônicas são verificadas em uma parte da composição, comparando-se um dado acorde com o seu subsequente. Para simplificar, será chamado Trecho o conjunto de dois acordes consecutivos submetidos à análise harmônica. Um Trecho segue uma tonalidade. É importante conhecer a tonalidade dos Trechos para que os dados da composição sejam corretamente analisados posteriormente pela rede proposta. Será chamado de Passagem o conceito correspondente ao intervalo entre cada nota do primeiro acorde em relação a cada nota do segundo. Em resumo, um Trecho conterá quatro Passagens, uma para cada nota dos acordes analisados, e cada Passagem conterá quatro intervalos. Por ser um elemento extremamente importante e multivalorado, o Intervalo será transformado também em um conceito na modelagem de conhecimento proposta. Um Intervalo, além da classificação composta do salto e do número de tons que representa, possuirá também o atributo “oitava”. Intervalos que englobarem notas em mais de uma oitava terão indicações no atributo “oitava” para que a rede saiba que as notas estão mais distantes umas das outras do que o informado pelo Intervalo, que irá apenas de 1ª a 7ª. Como visto, um Trecho é composto por dois Acordes. Acorde é um container com um Grau e três Intervalos. O Grau contido no Acorde é a representação do grau da fundamental do acorde, ou seja, do grau que o acorde representará na tonalidade da composição. Os três intervalos representam respectivamente o intervalo entre cada uma das três notas restantes do Acorde em comparação com a fundamental. Com isso, um Acorde não contém explicitamente todos os seus Graus, mas sim apenas o que representa a fundamental e uma referência aos outros três, dada por Intervalos relativos. Os Graus representam a unidade de som musical. Ao invés do domínio ser constituído de todas as notas da escala geral, a representação será dada pelos graus de cada nota dentro de uma escala, reduzindo o domínio para apenas o intervalo de uma oitava. Esta redução será utilizada com o objetivo de alcançar uma representação relativa à uma oitava apenas para um trecho musical. A relativização deste elemento em conjunto com o Intervalo facilitará a análise harmônica de um mesmo acorde que esteja composto em oitavas ou tonalidades diferentes numa partitura. Com isso, dado um exemplo de erro harmônico em uma determinada oitava ou tonalidade, será possível capturá-lo, caso a rede neural o tenha absorvido, em qualquer outra oitava ou tonalidade da escala geral, pois terão a mesma representação. A relação entre os conceitos definidos pode ser representada pelo diagrama de classes da figura 3. Figura 3 – Relações entre os conceitos manipulados no projeto 4.5. ENTRADA DA REDE Dado o modelo de informações a ser manipulado, vários formatos de entrada do mesmo na rede neural podem ser concebidos. Seguem um trecho musical e exemplos de possíveis representações segundo o modelo proposto (figura 4a e 4b): a) b) Figura 4 – a) Representação de um trecho em notação musical e b) Representação de um trecho em binário e numérico. Ao observar a figura 4b é possível perceber a divisão das entradas nos formatos A, B ou C pelos conceitos apresentados na seção anterior. As representações A e B, respectivamente binária e decimal (numérica), são formas de representar os conceitos definidos pelo presente trabalho. Na representação binária, a preocupação é o número de elementos diferentes que um conjunto de bits pode representar. Um conjunto de n bits pode ter 2n elementos representados. Na representação chamada de numérica, foi utilizada a base decimal. Portanto, cada número pode representar 10 elementos diferentes. Tomando como base estas informações, é possível esclarecer o tamanho do conjunto numérico para cada conceito apresentado: • Tonalidade – Apenas as tonalidades maiores e menores naturais, ou seja sem acidentes na nota fundamental, serão tratadas pelo projeto. Três bits na representação binária ou um número na decimal serão suficientes. • Grau – Os Graus são sete: I, II, III, IV, V, VI, VII. Portanto, ocupam três bits ou um número também. • Intervalo – Os intervalos possuem três elementos: o salto, a classificação e a oitava. O salto pode ser de 1°, 2°, 3°, 4°, 5°, 6° ou 7° (três bits ou um número decimal). A classificação varia entre Maior, Menor, Aumentado, Diminuto ou Justo, ou seja, pode representada também por um conjunto de três bits ou um número decimal. As oitavas são oito, representando todo o intervalo de notas da escala geral. Por tudo isso, os intervalos precisam de nove bits ou seis números decimais para serem representados. • Passagem – Uma passagem nada mais é que um Intervalo entre as notas dos dois acordes do trecho. Porém, é necessário anotar também qual o tipo de movimento está acontecendo na Passagem, isto é, se é um movimento ascendente ou descendente. Esta última informação acrescenta mais um bit ou um número para a representação de passagem, além dos nove bits ou seis números decimais do Intervalo. • Acorde – Um acorde é representado pelo Grau da fundamental e pelos três Intervalos nele contido. Com isso, é possível definir que um Trecho é composto por 103 bits ou 37 números decimais. Como a RNA proposta terá como entrada um Trecho, pode-se determinar que a camada de entrada da rede deverá possuir 103 neurônios, caso venha a ser utilizado o modelo binário de representação, ou 37 neurônios, caso seja utilizado o modelo numérico decimal. A partir destes dois modelos base, foram derivados 4 tipos de entradas: E1 - Entrada base propriamente dita: 103 neurônios, binária, valores discretos (-1 ou 1). E2 - Entrada base com reforço do grau de cada nota no acorde: 121 neurônios, binária, valores discretos (-1 ou 1). E3 – Entrada base com normalização: 17 neurônios, inteira, valores discretos entre -1 e 1. E4 – Entrada base com reforço normalizada: 23 neurônios, inteira, valores discretos entre -1 e 1. O elemento de reforço é proposto em algumas entradas com o objetivo de melhorar o nível de informação harmônica para a melhor análise por algumas regras. A técnica de normalização sugerida em E3 e E4 reduz o intervalo numérico para [-1 a 1], mantendo a proporção entre as distâncias originais entre os valores decimais primários. 4.6. SAÍDA DA REDE Como saída, a rede deverá acusar ou não a presença de um problema harmônico específico. A idéia é utilizar neurônios que indicarão a presença de uma má prática pela sua ativação, ou seja, se um determinado neurônio for ativado, o problema representado por ele foi detectado no trecho analisado. Para este modelo, sugere-se a utilização de uma camada de saída com o número de neurônios igual ao número de regras tratadas pela RNA construída, cada um representando a presença ou não de um dos problemas harmônicos validados. Nesta linha, o valor de ativação de cada neurônio de saída será dividido em três classes: • Intervalo de resultado confirmativo: de -1,00 a -0,40. • Intervalo de resultado em dúvida: de -0,41 a 0,39. • Intervalo de resultado não confirmativo: de 0,40 a 1,00. O índice de acertos da rede será dado apenas pelo número de trechos com e sem problemas harmônicos avaliados com exatidão. Os trechos com dúvida não serão levados em consideração para a definição do nível de acertos, já que serão merecedores de tratamento especial antes de qualquer conclusão. 5. EXPERIMENTOS A proposta apresentada na seção anterior foi avaliada através da construção automatizada de redes neurais e dos demais componentes do ambiente. Um script em Matlab de construção, treinamento e seleção das melhores redes foi construído. Além disso, programas em JAVA foram desenvolvidos para os demais componentes do MusiK. As subseções abaixo detalham este processo. 5.1. CRIAÇÃO DAS REDES NEURAIS ARTIFICIAIS Na criação das redes neurais foi utilizado o ambiente MatLab. Através do toolbox NNTool, disponibilizado por este software, foi possível criar diversos tipos de RNA, escolher entre várias funções de ativação e entre várias heurísticas de treinamento. Com o MatLab foram efetuados tanto testes preliminares, com o objetivo de explorar algoritmos de treinamento ou métodos de entrada, quanto elaboradas as redes efetivamente utilizadas nos experimentos. Um conjunto com 500 exemplos contendo diversos erros harmônicos foi elaborado. Neste conjunto, foram construídos aproximadamente 50 exemplos para cada uma das regras harmônicas a serem avaliadas, de forma única - apenas infringindo determinada regra - ou mista - um exemplo contendo problemas em mais de uma regra. Outro conjunto contendo 150 exemplos, diferentes dos primeiros, foi também elaborado. Este conjunto foi utilizado para medir a taxa de generalização da rede já construída, ao simular exemplos diferentes daqueles utilizados no treinamento. No treinamento, foi utilizado o algoritmo de Gradient Descent Backpropagation with Adaptive Learning Rate (chamado de traingdx no MatLab), que é um algoritmo de treinamento com uma proposta de backpropagation otimizada, utilizando taxa de aprendizado adaptável que muda ao longo do processo de treinamento com objetivo de chegar mais rápido aos valores mínimos de erro. Como alternativa, foi também avaliado como algoritmo de treinamento o backpropagation baseado no gradiente conjugado escalonado. Gradiente conjugado escalonado (chamado de trainscg no MatLab) é baseado no trabalho de MOLLER (1993) e tem o objetivo de minimizar o tempo de convergência e otimização da rede. Ele combina o modelo de LevenbergMarquardt com o gradiente conjugado. Baseia-se em informações da derivada segunda da ordem da função de erro. 5.2. SELEÇÃO DAS MELHORES REDES Durante o treinamento foram utilizados indicadores para que fosse possível extrair as melhores redes obtidas em cada iteração e também analisar as RNAs produzidas de uma forma quantitativa. São eles: • Percentual de acertos – contempla o percentual de acertos obtidos na avaliação de trecho correto ou trecho errado, excluindo todos os resultados obtidos como dúvida. É este índice o primeiro responsável pela escolha da melhor rede. • Percentual de dúvida – apresenta um percentual das respostas dadas pela rede que foram classificadas como dúvida. Uma boa rede deverá ter um percentual pequeno de dúvidas. • Média de acertos – é a média do percentual de acertos obtida através da simulação com o conjunto de treinamento e, depois, no teste com o conjunto de simulação. • Média de dúvidas – é a média do percentual de dúvidas obtida através da simulação com o conjunto de treinamento e, depois, no teste com o conjunto de simulação. Com o uso destes quatro indicadores, as melhores redes puderam ser escolhidas entre aquelas que apresentaram a melhor média de acertos e o menor percentual de dúvidas. Faixas de tolerância foram dadas ao programa de treinamento automatizado para que fossem descartadas redes produzidas com baixo desempenho. Além disso, em alguns casos várias redes foram escolhidas como melhores, fazendo com que a escolha final fosse manual. 5.3. REGRAS HARMÔNICAS EXPERIMENTADAS As regras testadas foram (os números indicam apenas a ordem dos experimentos): • Regra 01 – Notas repetidas em sequência • Regra 02 – Duplicação da Mediante • Regra 03 – Inversão de Vozes • Regra 06 – Vozes em oitavas em sequência • Regra 07 – Vozes em uníssono em sequência • Regra 09 – Salto das quatro vozes por movimento direto • diminuta • Regra 12 – Salto resultando em quarta aumentada ou quinta Regra 13 – Salto maior que uma quinta, exceto no Baixo. Estas regras foram extraídas do curso condensado de harmonia tradicional de HINDEMITH (1998). 5.4. CONECTOR COM O SOFTWARE DE EDITORAÇÃO Nos experimentos efetuados, foi utilizado o software Musescore 0.9.6 como editor de partituras. O Musescore armazena as composições no formato MusicXML. Um programa de conversão do formato MusicXML para cada representação apresentada na figura 4 foi desenvolvido. Neste programa simples, escrito em JAVA, um arquivo gravado com o formato MusicXML é lido e, para cada representação de nota encontrada (elemento <pitch> no MusicXML), seus valores e propriedades são coletados e devidamente convertidos em uma representação binária (ou numérica decimal). A identificação da voz e da nota é obtida das propriedades do elemento <pitch> capturado do arquivo XML. A Tonalidade, o Grau, o Intervalo e sua classificação e as Passagens são cálculos efetuados pelo programa que, ao final, concatena todos os valores obtidos e convertidos em uma das representações possíveis (binária ou numérica decimal) numa saída única, válida como uma matriz de entrada para a rede especialista de validação harmônica. 6. RESULTADOS E CONCLUSÕES Para cada tipo de entrada, foram realizados testes com todas as oito regras definidas no escopo e escolhidas as melhores redes através das métricas apresentadas. Tanto os algoritmos de backpropagation com taxa de aprendizado adaptativa (traingdx) quanto o de backpropagation com gradiente escalar conjugado (trainscg) foram utilizados. A partir dos experimentos realizados, foi possível tirar várias conclusões. Uma delas é que o modelo de entrada E1 foi o que se mostrou mais generalizado, obtendo o melhor resultado em um maior número de regras (R01, R12 e R13). O gráfico abaixo (figura 5) ilustra este resultado. Figura 5 – a) Melhores redes por regra e b) Número de melhores redes obtidas por cada algoritmo A regra que apresentou o pior índice de acertos após o treinamento foi a R02. Coincidentemente, o modelo menos generalizado (E2) apresentou melhores resultados justamente nesta regra. Daí é possível especular que tal modelo pode ser um bom ponto de partida para estudos de futuras otimizações na rede especialista que avalia a R02. Ao realizar a pesquisa e modelagem do trabalho proposto, conclui-se que é possível desenvolver um sistema CAC capaz de utilizar Redes Neurais Artificiais como validadores harmônicos inteligentes. Para todas as regras experimentadas, o modelo proposto nesta solução apresentou índices de acerto consideráveis e por isso podem ser utilizados como base para posterior complementação de informações que atendam as demais regras harmônicas que venham a ser incorporadas ao MusiK. Neste projeto, trabalhou-se com restrições de tonalidades nas composições, que poderão ser removidas em evoluções. Outras regras harmônicas básicas, como a verificação de quintas paralelas, podem ser também validadas em uma nova versão do projeto. Porém, para alcançar a alçada profissional outras limitações deveriam ser trabalhadas, como por exemplo, a identificação de notas de passagem, notas estranhas (apoggiaturas, borbaduras, dissonâncias, etc.) e acidentes de modulação. Com estas questões resolvidas, seria possível analisar composições reais, baseadas em harmonia tradicional. Validação de regras de contraponto (harmonia horizontal), formatos de composição (forma sonata, por exemplo) e detecção encadeamentos harmônicos também poderiam ser incluídos em futuros projetos, desenvolvendo redes neurais especializadas nestas avaliações ou até mesmo utilizando agentes inteligentes. REFERÊNCIAS BIBLIOGRÁFICAS ANDERS, T. (2007) Composing Music by Composing Rules: Design and Usage of a Generic Music Constraint System, Tese de Ph.D em Tecnologia Musical, School of Music & Sonic Arts, Queen’s University Belfast. BENNETT, R. (1986) Uma Breve História da Música, 1ª ed., Jorge Zahar Editor. BRAGA, A. P. (2000) CARVALHO, A. P. L. F.; LUDERMIR, T. B., Redes Neurais Artificiais Teoria e Aplicações,Livros Técnicos e Científicos Editora. CORRÊA, D. C., SAITO, J. H. (2007) Aplicação de redes neurais para auxílio nas composições musicais utilizando compassos como primitivas e inspiração em relevos naturais, Simpósio Brasileiro de Computação e Música, São Paulo, Brasil. ECK, D., SCHMIDHUBER, J. (2002) A First Look at Music Composition using LSTM Recurrent Neural Networks. GOLDMAN, C. V., GANG, D., ROSENCHEIN, J. S. (1996) NetNeg: A Hybrid Interactive Architecture for Composing Polyphonic Music in Real Time. GOLDSCHMIDT, R. R. ; PASSOS, E. P. L. (2005) Data Mining: Um Guia Prático - Conceitos, Técnicas, Ferramentas, Orientações e Aplicações. 1. ed. Rio de Janeiro: Editora Campus. SCHOENBERG, A. (1910) Harmonia, 1ª ed., UNESP, 2002. HAYKIN, S. (1999) Neural Networks - A Comprehensive Foundation. HINDEMITH, P. (1998) Curso Condensado de Harmonia Tradicional, 13ª ed, Irmãos Vitale. MOLLER, M. F. (1993) A scaled conjugate gradient algorithm for fast supervised learnig. PACHET, F. , ROY, P. (2001) Musical Harmonization with Constraints: A Survey, Constraints Journal. REZENDE, S. O. (2003) Sistemas Aplicações, 1ª ed., Manoele. Inteligentes – Fundamentos e