Herramientas generativas al servicio de la composición musical

Arrays

Para algunos lenguajes de programación usamos Arrays de valores para describir la presencia y ausencia de eventos musicales tenemos varias aproximaciones:

Arrays Multidimensionales

Ventajas

Permiten extraer cada array conservando las cualidades de array

Desventajas

Son difíciles de escribir y es difícil la lógica para acceder a sus elementos, tienen que ser del mismo tipo, si un valor es flotante los otros arrays deben definirse como flotantes y el primer elemento debe estar un flotante

Definición

[[[0.0,0,1,0],[0.5, 0.5, 0,25, 1.0],[0.0,4, 8, 12]]] @=> float multi[][][];

Acceso

// acceso a cada array multi[0]; //[0.0, 0,1,0] multi[1]; //[0.5, 0.5, 0,25, 1.0]

Arrays con Tuplas

Ventajas

Al igual que los arrays, cada elemento de una tupla puede ser extraído de manera independiente, pero a diferencia de los arrays, en las tuplas pueden convivir diferentes tipos de objetos o tipos de datos. Tambien es importante saber que, las tuplas son Objetos, y como tales pueden ser almacenados también en arrays, con una gran ventaja, la lógica para extraer sus elementos es mucho mas simple que la de un array multidimensional de similares características.

Desventajas

Las tuplas no son objetos nativos del lenguaje (chucK) y deben ser definidas como una clase, esto hace que su rendimiento sea inferior.

Definición

[(60,0.25,1),(62,0.125,1),(64,0.125,1)] @=> Tuplas array[];

Acceso

array[0] // (60,0.25,1) array[0].x // 60 array[0].y // 0.25 array[0].z // 1

Ejemplos

Tuples.ck

——–