Ejercicio de arpegios No. 2

Hola!

Tengo el proposito de publicar una pequeña pieza/ejercicio cada semana. Para explorar cómo hacer música algorítmica. La de hoy consiste en una serie de arpegios alternando con acordes de doble dominante, saludos y les paso el código también.

codigoArpegios


/*
Dominates secundarios
Copyright (C) 2015 Cristian Bañuelos

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
*/
MIDIClient.init;
~mid = MIDIOut(2);

(
~arms = Array.new(1000);
~t=Tonalidad(0,"M");

~listaAcordes = Array.new(100);
~acord = Array.new(1000);
~listaAcordes.add(~t.getArmonia(0,"3").notasArmonia+24);
6.do({arg i;
 ~listaAcordes.add(~t.getArmonia(6-i,"DD").notasArmonia+24);
 ~listaAcordes.add(~t.getArmonia(6-i,"3").notasArmonia+24);
});
~listaAcordes.add(~t.getArmonia(0,"3").notasArmonia+24);
~listaAcordes.add(~t.getArmonia(0,"3").notasArmonia+24);
~listaAcordes.add(~t.getArmonia(0,"3").notasArmonia+24);
~listaAcordes.add(~t.getArmonia(0,"3").notasArmonia+24);

// ~listaAcordes.add(~t.getArmonia3(0).notasArmonia+24);
// ~listaAcordes.add(~t.getArmonia3(4).notasArmonia+24);
// ~listaAcordes.add(~t.getArmonia3(2).notasArmonia+24);
// ~listaAcordes.add(~t.getArmonia7(5).notasArmonia+24);
// ~listaAcordes.add(~t.getArmonia3(0).notasArmonia+24);

// Hacer concatenación de arpegios

~arms.add(~listaAcordes[0]+12);
~listaAcordes.collect({|acorde, idx|
 4.do({arg i;// octavas
 var ac =(acorde[1..acorde.size]+12)+(12*(i));
 acorde.postln;
 ~arms.add(ac)
 });
 3.do({arg i;
 var ac =(~listaAcordes[idx][1..~acord.size]+36)+(12*(i));
 ~arms.add(ac)
 });
});
~arms=~arms.flatten;
~arms=~arms.add(~arms.reverse[1..~arms.size]).flatten;


// 2.do({~arms=~arms.add(~arms[1..~arms.size]).flatten;});

// ~arms2=Array.new(1000);
// ~arms.collect({|nota, idx|
// ~arms2.add([nota, nota+[0,5,12].choose]);
// });



// Violin
~notasV = ~arms;
~dursV = ([0.3]).stutter(3000);
~ampV =Pbrown(0.5, 1.0, 0.1, inf).asStream.nextN(10000);

// Piano
~notasP = ~arms;
~dursP = ([0.3]).stutter(3000);
~ampP = Pbrown(0.5, 1.0, 0.1, inf).asStream.nextN(10000);


//Esto que sea la entrada de una funcion
~notasTotales=[~notasP,~notasV];
~dursTotales=[~dursP,~dursV];
~ampsTotales=[~ampP,~ampV];

// Play Score
("funcion.scd").loadRelative;
)

(
f = Fomus();
f.put(~partituraEventos);
f.xml;
)

~notasP.size

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s