gu.pro.br
LyraZZZ

LyraZZZ

WELCOME TO LYRA version ZZZ codename 'zOEzZOo'

LyraZZZ is a fork() of LyraXX,
making it the latest version of the Fraktwerk project,
music made with mathematics!

Straight to the point: This code generates a MIDI which I track with Renoise traCKER all powered by Gentoo GNU/Linux.

The MIDI is structured in a way that there are three main tracks, each one with two mirror tracks, that are just the same melody transposed up or down 1 octave.
Therefore Nine tracks are generated,
which can be easily edited and further sampled in any tracker by importing MIDI;

Here are example outputs so you can ‘picture’ this mathmuzic thing; the main 3 tracks are sampled by timidity++ with Piano soundfont from Musyng Kite pak

NOTE: There is an issue with the output .MID file; it creates as format 0 (single-track) not format = 1 – It’s something wrong with my dealing with libmidi.
Anyway I’ve managed to create this kung-fu that changes the 1 byte necessary to fix the Header Chunck.
After applying the fix, all tracks will be played in timidity++, per example, instead of only the first.
Trackers like Renoise or LMMS have no problem dealing with this Chunk Header detail. They import properly without the trick.

Following shell script code applies ‘patch’ to newest ‘.mid’ inside exec directory


#!/bin/bash
## grab first (newest) midi on dir
NEO_MIDI=$( ls -1t *.mid | head -n1 )

( dd if=$NEO_MIDI \
bs=1 count=9 && echo -n $'\x01' \
&& dd if=$NEO_MIDI \
bs=1 skip=10 ) > \
./$( echo $NEO_MIDI | cut -d \. -f1 )-fix.mid;

#inspect result, our MIDI is the newest :D
file $( ls -1t *.mid | head -n1 );

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 no GNU/Linux via timidity++ (Fluid soundfont):.
.

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 4 parametros: a – b, (+/-) c & d.

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. O valor de c é em ms a duração padrão de notas durante a composição.
d) a quantia máx de notas que uma frase musical pode alcançar durante a operação.

++

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++ LyraZZZ.cpp -lm -lgmp -lmidi -o LYRA

e gere as músicas seguindo os 3 parâmetros
a, b, (-/+)c & [d]
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 ms
d = 8 notas máx por frase musical gerada

exemplo:

./LYRA 1 1111 100 5

Vai tocar o realejo de Fib(1) até Fib(1111) partindo sempre da 60ª nota do keyboard musical, com um padrão de 100ms por unidade de duração e cinco notas máx para armazenamento de frases musicais. Desde a versão LyraXv3 foi implementado o MOJO, que acelera/desacelera o intervalo entre as notas segundo o numero de iterações;

em breve maiores explicações.