Esta é a última versão de meu programa em C que gera música diretamente através da matemática envolvida na Progressão Áurea, conhecida como Sequência de Fibonacci no ocidente, um alicerce aritmético dentre viscerais leis do Universo enquanto Criação.
.: segue demos renderizadas com samples via tracker Renoise no GNU/Linux ou timidity++ (soundfont CRISIS):.

NEWS update: fixed negative third parameter bug. Use negative/positive 3rd param at will!

” BaLanCe ” LyraXX { Fib(1303-1984)_-33ms }

rendered with tracker RENOISE

” Boty’s II ” LyraXX { Fib(601-1984)_51ms }

music sampled with RENOISE, video rendered with projectM

” Boty’s ” LyraXX { Fib(601-1984)_-33ms }

Segue teste-longo, renderizado pelo timidity++ com o Crisis.sf2 como soundfont. 😛
updated source code! Below latest samplez:

” Aujourd’hui ” LyraXX { Fib(1-365)_100ms }

” Ritorno ” Lyra { Fib(512-1024)_66ms }

Lyra{Fib(1011-1465)_222ms}

Now generates only one track again, Since LyraXv3 I’ve implemented the mojo concept, which basically makes the “virtual piano player” a little more “human”, by working with differences between music speed note interval, making it vary much more while generating the song. By now, LyraXX had modifications in the Amalgamation process, the way “Amalgama” is determined at the beginning of code also changed, giving more room for bigger phrases per pattern cycle.

The routine which controls the process of making similar patterns was restricted to a value varying from 1 to MODULUS (which is twelve) iteractions max, to avoid huge songs.

Now I’ve implemented for the new Amalgamation, a counter of digits thaT COUNTs each Fibonacci iteraction while processing the Realejo matrix. This triggers SUPERNOTE mode and/or SILENTFLOW MODE, according to the parity of the resulting count of digits of Fib(n);

UPDATED ALGORITHM!
LATEST VERSION HERE _ _ _ previous versions here

.:
.
O algoritmo se alimenta dos números Fibonacci e seus intervalos aritméticamente peculiares para modular estes valores em notas musicais, números se tornam frequências, pois cada valor numérico resultante da modulação corresponde a uma nota no MIDI keyboard, e o programa portanto gera um arquivo do tipo MIDI ao final do processo.

O programa recebe pela linha de comando 3 parametros: a, b e o sinal c.

a) n Fibonacci inicial, indica o numero inteiro positivo < b donde o programa inicia a geração de números Fibonacci. b) n Fibonacci final, indica o número inteiro > a donde o programa finaliza a geração de números Fibonacci.
c) o sinal +/- e fração multiplicadora, influi na duração das notas e o sinal (positivo/negativo) influi na direção, se maior ou menor, dos intervalos de frequência a partir da inicial.

++

A progressão nada mais é que a soma de si com seu membro anterior, ex: 0 + 1 = 1, 1 + 1 = 2, 1 + 2 = 3, 2 + 3 = 5 -> gerando uma sequência que rapidamente cresce em valor quantitativo logo nas primeiras dezenas de n membros. [ 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, … ]

This is my latest antimusical experience which I call

Fraktwerk

It’s a mixture of not-a-samba with crypto-maracatu. Also electronic fractals compose fraktions of a lot of energy, straight from the heart thru the soul of both listener and composer — enlightened by the Golden Sequence of Fibonacci in nature, allied with the uniqueness of prime numbers, this is a total experience in pseudo-art. That’s why I call it; Fraktwerk.

Devido a necessidade de trabalhar com números inteiros muito grandes, pois o programa gera a música sequencialmente a partir de um N-ésimo membro da série de Fibonacci, determinando cada n-ésimo membro da série, o intervalo musical correspondente de uma nota para outra nas frases geradas no arquivo MIDI resultante, que pode ser editado em trackers e softwares em geral ou até mesmo tocados por um dispositivo MIDI como um teclado.

Utiliza de algumas bibliotecas, como a matemática ANSI C e também a libgmp de aritmética para números inteiros de ordem extraordinariamente gigantes.

Para (o gerar o arquivo MIDI resultante, eu utilizei a libmidi de Karol Krizka
www.krizka.net/projects/libmidi/


Compilar é moleza, simplesmente mande um


g++ Lira.cpp -lm -lgmp -lmidi -o LYRA

e gere as músicas seguindo os 3 parâmetros
a, b, (-/+)c.
onde a & b são inteiros positivos, X pode ser qualquer número de ponto flutuante, pois deste parametro só obtemos o sinal positivo ou negativo do número input para determinar o fluxo inicial da matriz Realejo e essa fração será a mínima duração das notas em millisegundos, ou seja, você aumenta a duração geral de todas as notas, ao entrar um valor maior por meio deste parâmetro.

a = Fib inicial
b = Fib final ( onde b > a )
c = 100

exemplo:

./LYRA 1 1111 100

Vai tocar o realejo de Fib(1) até Fib(1111) partindo sempre da 60ª nota do keyboard musical.
Ele então aplica um módulo fixo de valor 12 sobre N Fibonacci e gera intervalos imprimindo melodias no arquivo MIDI resultante. Todas as notas são multiplicadas pelo valor absoluto do parametro c, no caso, 100, ele toca com a duração mínima de 100 millisegundos para as notas… desde a versão LyraXv3 foi implementado o MOJO, que acelera/desacelera o intervalo entre as notas segundo o numero de iterações;

Agora na versão LyraXX temos também o uso do número de dígitos de Fib(n) para determinar, segundo a paridade do número de dígitos, o gatilho/desativação dos modos de composição supernote e/ou silentflow. São cruciais na “Amalgamation”, fase em que de fato se preenche a estrutura da libmidi com as notas na faixa, que ao final da geração da estrutura, será escrita em um arquivo que pode ser editado e samplerizado em qualquer editor que importe MIDI;

em breve maiores explicações.


GUSTAVO L CONTE INFORMATICA ME

"Porque [Deus] faz que o seu Sol se levante sobre Maus e Bons, e a chuva desça sobre Justos e Injustos." Mateus 5:45

Deixe uma resposta