[MÚSICA] En este video veremos cómo utilizar datos extra musicales para la creación sonora. Esto significa que vamos a entrar a bases de datos y repositorios públicos con información interesante que querramos convertir en sonido. Los archivos que vamos a utilizar en este ejemplo son de formato csv, comma separated values. Es decir, son archivos de texto que representan tablas donde cada renglón es una línea y las columnas se separan por comas, como vemos en este ejemplo. Son archivos muy fáciles de encontrar en la red, incluso los programas de hojas de cálculo ofrecen la opción de importar y exportarlos. Podemos abrir estos archivos con un editor de hoja de cálculo como Open Office o Libre Office. En la sección de archivos les adjuntamos un ejemplo de uno de ellos. Existe mucha información en línea muy interesante a la que podemos acceder de manera libre y gratuita. En ella tenemos repositorios de información pública de instituciones de gobierno, incluso algunas bases de datos de entrenamiento. También es fácil encontrar información de clima y otras estadísticas. Por ejemplo, podemos entrar a la página del inegi y descargar diferentes bases de datos con diferentes estadísticas. En esta página se encuentra información pública de México en formato csv. Para abrir un archivo csv en Supercollider, aseguren de colocar el archivo en el mismo lugar que este script y lo cargamos con el mismo comando con el cargábamos los archivos de audio para los buffer. Utilizaremos la clase csw file reader para convertir el archivo csv en un arreglo. Como podemos ver, x es una variable que ahora nos muestra en cada elemento del arreglo una de las líneas del archivo, separada por comas. Si corremos el código anterior, podemos ver que tenemos un arreglo compuesto de arreglos, y cada uno de ellos es una línea del csv. El primer renglón de un csv contiene los nombres de las columnas. Podemos extraer columnas completas de esta información. Por ejemplo, si deseamos obtener una lista con todos los valores de la primera columna, podemos crear un nuevo arreglo que tenga el mismo tamaño que los elementos de la columna y con un ciclo pedir solo los elementos de la columna 2. Esto lo logramos pidiéndole que de el valor de cada renglón, nos imprima solo el elemento 2. Ahora, podemos pedir los valores de la columna 3 de la misma forma, solo cambiando el índice. Recuerden que los índices en Supercollider siempre empiezan de 0 en adelante, por lo cual la columna 3 realmente sería la columna con el índice número 2. Podemos ver que estoy llamando al comando as float, esto es necesario you que cuando el programa carga el archivo, lo carga como texto. Si lo queremos manejar como número, tenemos que pedirle que lo transforme a un número flotante. Podemos verificar que obtenemos la lista de cada columna corriendo cada una de las variables en la que lo guardamos. Ahora, necesitamos preparar o preprocesar los datos. Esto significa prepararlos para transformarlos a contenido musical. Como cada columna de nuestro archivo probablemente tenga un rango distinto de valores, puede ser de 0 a 1000 o de 50 a 80, necesitamos traducirlos a un rango común. Es una buena idea normalizar nuestros datos. Esto significa transportarlos o escalarlos de su rango original al rango entre 0 y 1. En este caso, cada columna tiene un rango distinto. Es una buena idea normalizar los datos. Es decir, escalarlos para que el mayor de la lista sea 1 y el menor sea 0, y los demás se ajusten proporcionalmente. Para esto, utilizamos el comando normalize. [AUDIO_EN_BLANCO] Si corremos el resultado de la lista normalizada, vemos que tenemos un arreglo con valores entre 0 y 1 escalados de acuerdo a los valores originales. Ahora, hay que recorrerlo a un rango que tenga sentido para la música. Para eso utilizamos la función lin lin que mapea un rango lineal a otro. Toma cuatro argumentos que son los rangos actuales y los rangos nuevos. En este caso vamos a mapear los rangos de 0 a 1 al rango midi digamos de 40 a 70. Podemos comparar por medio de una gráfica el nuevo rango. Hagamos esto para las otras columnas. [AUDIO_EN_BLANCO] Ahora que tenemos un par de arreglos, podemos asignarlos para que representen parámetros musicales como nota, volumen, o duración. Podemos generar Pseq con datos de la red para melodía y ritmos. Intentemos escuchar la primera columna. [MÚSICA] Ahora veamos cómo suena la segunda columna. [MÚSICA] [MÚSICA] Depende la tabla que elijamos, a veces los cambios pueden ser muy lentos. Podríamos intentar solo tomar un elemento del arreglo cada n número de notas. Por ejemplo, 20. Para esto corremos un ciclo y tomamos los elementos cada que el índice sea múltiple de 20. Lo realizamos para todos los arreglos de las columnas correspondientes. De esta forma, generamos nuevas listas que están filtradas. Por último, intentemos correr los audios de forma simultánea para obtener un resultado polifónico. [MÚSICA] Los invitamos a que prueben mapeando diferentes columnas a diferentes parámetros musicales. Experimenten con diferentes combinaciones y vean qué tipo de sonoridades pueden crear. En este ejercicio estamos utilizando las columnas solo para generar melodías y duraciones, pero como vimos en videos pasados, podrían ustedes hacer que una columna genere la posición de play de un buffer, podrían asociarlo a un filtro o a cualquier parámetro de un sintetizador que ustedes quisieran. En realidad, aquí estarán solo limitados por su imaginación y por la formas creativas en las que ustedes manipulen los datos para generar cosas interesantes. Con esto terminamos la sección de sonificación de datos, lo cual como vimos significa transformar datos extra musicales a contenido sonoro. Vieron que es muy importante elegir bien qué parámetros queremos sonificar, así como escalar los rangos para que tengan sentido sonoro. En el siguiente video, veremos una conclusión del curso en el cual le mostraremos nuevas perspectivas e ideas que pueden seguir al terminar para continuar su formación musical desde el punto de vista de composición algorítmica. [MÚSICA]