[TP1 - EJE TIEMPO]
MARITORIO:
Ensayo tecnopoético para la representación de un Paisaje Afectivo
Profesores:
Clara Cardinal
Paloma Catalá del Río
Leo Núñez
Alumna
Daniela Ignacia Vera
Maestría
Tecnología y Estética de las Artes Electrónicas Universidad Nacional de Tres de Febrero
Julio 2024
[SINOPSIS] Desarrollado para la materia “Estrategias de Comunicación” con Marcela Andino.
MARITORIO
ENSAYO TECNOPOÉTICO PARA LA REPRESENTACIÓN DE UN PAISAJE AFECTIVO
> SINOPSIS
“MARitorio” explora cómo recuperamos recuerdos dañados por el tiempo, utilizando imágenes de mi archivo fotográfico del Archipiélago de Chiloé. Contrasta la relación extractiva con el paisaje y su cambio acelerado con una relación afectiva, construida a partir de experiencias significativas. Este ensayo tecnopoético combina la fotografía, la escritura y el sonido, creando un dispositivo interactivo que invita a reflexionar sobre la identidad, la memoria y el entorno.
> STATEMENT
Mi trabajo explora la relación afectiva entre sujeto y paisaje, enfocándose en cómo nuestras experiencias y recuerdos construyen una identidad compartida con el entorno natural y cultural. Utilizo la tecnopoética para crear narrativas interactivas que revelan y cuestionan las transformaciones socioculturales y ambientales. En “MARitorio”, combino imágenes, escritos en clave poética y sonidos para representar un paisaje afectivo, buscando un vínculo más profundo y sostenible con la naturaleza, en contraposición al extractivismo predominante. A través de este proyecto, pretendo invitar a una reflexión sobre la memoria, la identidad y nuestras conexiones afectivas con el entorno.
[FIGURA 1] Código QR para acceder al Video de Proceso del prototipo MARITORIO. Enlace: https://youtu.be/px_ TlBokBqM?si=NJv9dftrYhfoJz_i
[TEXTO] Desarrollado en la materia “Escritura y presentación de proyectos” con Clara Cardinal.
INTRODUCCIÓN
Si nuestros recuerdos fueran archivos computacionales dañados por el paso del tiempo, la forma de recuperarlos sería intentando completar esas partes dañadas con nueva información que nos llene de sentido, para así volver a leerlos e imaginar que siguen intactos.
Revisando mí archivo fotográfico de los últimos diez años llamó mi atención la gran cantidad imágenes marinas del Archipiélago1, poblado de playas, orillas, islas, embarcaciones, oleajes y otros cuerpos de agua. Inmediatamente me día cuanta de lo mucho que ese entorno natural ha cambiado con el paso de los años, donde algunas playas son basurales y otras se han vuelto inaccesibles por su privatización, bosques que ya no existen y mares que sufren por la contaminación.
Nuestro hábitat se encuentra en constante transformación, pero es probable que la aceleración que percibimos se deba al incremento en la velocidad con la que circula la información y las decisiones se toman a partir de ello, repercutiendo particularmente en la forma de vida de quienes habitamos en zonas rurales, donde se ha normalizado una relación extractiva con el entorno a partir de la explotación económica de los recursos naturales y culturales.
En contraste, pienso que también podemos tener una relación afectiva con el paisaje, que se construye a partir de nuestras experiencias significativas en contacto con el entorno natural y cultural, y que son atesoradas en nuestra memoria contribuyendo a nuestro sentido de identidad.
1. En adelante y para efectos de este proyecto se estará refiriendo al Archipiélago de Chiloé, en la Patagonia chilena.
PALABRAS CLAVE
+ Paisaje afectivo
+ Memoria afectiva
+ Solastalgia
+ Tecnopoética
+ Interactividad Visual-Sonora
FUNDAMENTO
> CONCEPTOS CLAVE
+ Relación afectiva entre sujeto y paisaje.
+ Afectividad versus extractivismo en la relación con el paisaje.
+ Interactividad entre imagen y sonido para apelar a la memoria afectiva.
+ Tecnopoética como recurso narrativo para pensar nuevas relaciones afectivas con el entorno y sus conflictos socioculturales y ambientales.
> AFECTIVO VERSUS EXTRACTIVO
“La imagen de una materia intrínsecamente inanimada puede ser uno de los impedimentos del surgimiento de modos de producción y consumos más ecológicos y más sustentables materialmente.”
(Bennett, 2022)
En Chile existe una lógica extractivista en la manera en la que nos vinculamos con el entorno, y ello no sólo a partir de los recursos naturales con industrias como la minera o la forestal, sino que también en cuanto a los recursos culturales y el paisaje natural por medio de la industria del turismo y la inmobiliaria. En el caso del Archipiélago de Chiloé la actividad turística se ha ido intensificando notablemente en la última década, así como también la presión inmobiliaria sobre las áreas rurales.
En el ensayo “Ruralidad virtual: Reflexiones en torno a las representaciones mediales del
Archipiélago” 2escrito recientemente, me aventuré a especular sobre un nexo entre la creciente demanda turística y la manera en que el territorio estaba siendo representado en los medios virtuales, particularmente en las redes sociales y en algunas realizaciones audiovisuales contemporáneas. (Vera, 2024)
Me di cuenta de que se estaba propagando una versión estereotipada de la realidad cultural, y a raíz de lo expuesto por Leo Solaas en “La vida del hipersujeto” me pregunté si el conjunto de imágenes que circula en la web no sería también una suerte de “hipertexto” de este paisaje, en donde no hay continuidad y cada post vive en su tiempo separado, relegando al espectador la tarea de reconstrucción de sentido a partir del recuerdo de otros post con similar contenido. (Solaas, 2017)
Me quedé con la sensación de que estaba siendo testigo de una transformación de mi territorio sin precedentes, invadida por un sentimiento de “solastalgia” (Albrecht et al. 2007), un término medioambiental definido como “la aflicción producida por el cambio ambiental que impacta en las personas mientras están directamente conectadas a su entorno.”
> PAISAJE AFECTIVO
Por ello he querido introducir el concepto de “Paisaje afectivo” que se vincula al Eje Tiempo al tratarse de una representación visual –y en este caso también sonora, semejante a un recuerdo que se ve deteriorado con el tiempo, donde prevalecen fragmentos a los que nos aferramos producto de nuestros afectos.
Me interés explorara el vínculo afectivo entre sujeto
2. El texto fue publicado en junio de 2024 en la 3ra Edición de la revista Origen de la Corporación de Estudios Urbanos y Arquitectónicos de Chiloé, orientada a reflexionar sobre la actual condición de los entornos rurales. Disponible en: https:// drive.google.com/file/d/1Qep7bLyiK496wHLD_OWMuuue8sYDy0GL/ view
[FIGURA 2] Croquis que acompaña la observación arquitectónica: “La presencia requiere un tamaño. Desde el litoral la presencia viene configurándose como una interrupción luminosa ubicada en el horizonte.” (Pág. 86). Fuente: Purcell, J. (2013). Visión de Valparaíso 1953 – 2011. Ediciones Universitarias de Valparaíso.
[FIGURA 3] Set de imágenes escogidas del archivo fotográfico de acuerdo al criterio de selección pre-editadas en Photoshop. Fuente: Elaboración propia (2024).
y paisaje, donde existe una carga simbólica otorgada a ciertos elementos del entorno físico geográfico a partir de nuestras experiencias significativas o de nuestra carga cultural, que propicia una relación no extractiva con nuestro ecosistema circundante. En este sentido es vital comprender que los seres humanos somos una parte constitutiva y no separada del paisaje, y que estos se comportan en cuanto su medio ambiente existe. (Puentes, 2013:66)
Pero los paisajes no son fijos, sino que van mutando en el tiempo y a su vez aparecen otros nuevos, donde el conjunto de relaciones entre lo natural y lo cultural también van cambiando. Para efectos de este proyecto entenderemos paisaje como “el producto de la relación profunda de las comunidades con su territorio y de las estrategias de representación del mismo, en tanto sin imagen no hay tal cosa llamada Paisaje; sin imagen, solo tenemos entorno físico.”
(Castillo et al. 2021: 33)
UN ENSAYO TECNOPOÉTICO
Imagino que así como una geolocalización en redes sociales o el hashtag de un lugar determinado se encuentra asociado a un conjunto de fotografías aportadas por sus usuarios, un paisaje afectivo podría ser –en contraste, un imaginario creado a partir de imágenes reales o mentales, con carga simbólica para un individuo o para una comunidad. Me interesa indagar en el vínculo afectivo entre sujeto y paisaje, pues tengo la impresión de que el sentido de identidad que nos asocia a un territorio está fundado en éste vínculo, y que puede ser abordado desde la representación visual y sonora.
Esto me movilizó a querer desarrollar un ensayo tecnopoético como proyecto para el Eje Tiempo, diseñando un dispositivo sensible a partir de fotografías propias –y no tomadas de internet, sonidos y escritos en clave poética para presentar un punto de vista: que es posible establecer una relación afectiva y no extractivista para vincularnos con el
paisaje.
En este dispositivo creado con lenguaje de código, la interactividad estará dada por la acción-reacción entre imagen y sonido a partir de la variable “tiempo”, en donde la amplitud del sonido afectará la velocidad con la que percibimos la interacción entre las imágenes.
Quizás en el futuro este proyecto podría realizarse con una comunidad, pero comenzaré incursionando en un ejercicio individual para la representación tecnopoética de mi propio paisaje afectivo compuesto por aquellos recuerdos e imágenes en los que persiste la presencia del mar.
> UNA POÉTICA DE LAS IMÁGENES
La selección de fotografías requería un criterio ante todo poético para poder referirme al significado de las imágenes más allá de su contenido visual. Para ello recurrí a una de las observaciones de Alberto Cruz en donde se pregunta “¿Cuál es el tamaño de un barco en el horizonte?” (Figura 2) refiriéndose no a una medida métrica sino que a la relación simbólica entre sujeto y paisaje a partir de la relación entre luminosidad y presencia en el espacio. (Purcell, 2013: 86)
Esta relación simbólico-espacial con el paisaje, en donde lo que Purcell señala como “presencia” es en efecto una experiencia de “estar ante” el paisaje, me hizo recordar una de mis propias observaciones, en donde “Horizonte y orilla son una única línea que conecta nuestra escala humana con la escala del paisaje”.
A partir de estas dos observaciones determiné que las fotografías para este proyecto serían de fragmentos de horizontes y orillas que no revelaran su geolocalización a simple vista, y que además no fuesen enclaves ya instalados en el imaginario turístico del territorio. Junto con ello deberían tener una composición visual tal que, al momento de ser
[FIGURA 4] Maqueta del montaje visual del prototipo desarrollada en Photoshop. Fuente: Elaboración propia (2024).
editadas, pudieran ser imágenes en el límite entre lo figurativo y lo abstracto. (Figura 3)
Otro aspecto relevante para considerar en la composición visual del dispositivo es el color, que debía ser coherente con el concepto de tiempo pasado y la sensibilidad que desean transmitirse. Se adopta el Azul de Prusia, utilizado en la cianotipia, en concordancia a lo relatado por Rebeca Solnit acerca del vínculo con el paisaje: “el azul del horizonte, el azul del lugar donde la tierra parece fundirse con el cielo, es un azul más intenso, más onírico, un azul melancólico […], el azul de la distancia.” (Solnit, 202:29)
> DE LA IMAGEN AL DISPOSITIVO
Como punto de partida se realiza una maqueta visual utilizando Photoshop (Figura 4) combinando tres fotografías seleccionadas, y explorando sus posibilidades de montaje (rotación, tamaño y orientación), aplicando además una serie de efectos de imagen para emular el resultado de un cianotipo, perdiendo la definición de los detalles de la imagen, adicionando una textura y trayendo variantes del color Azul de Prusia.
A partir de esta imagen objetivo se establecen tres etapas para el desarrollo del prototipo:
1. Montaje Visual utilizando Kodelife Open Gl en donde se aplica un criterio estético y poético para la edición y combinatoria de imágenes en tiempo real. Esta etapa contempla una breve indagatoria en la escritura de código para lograr el resultado obtenido en la maqueta, realizada en la materia “Diseño Digital.” (Anexo 3)
2. Escritura en clave poética para la creación de sonido, realizando grabaciones de las lecturas de tres textos de propia autoría que permita apelar a una sensibilidad con la problemática planteada. Las grabaciones son lecturas performáticas con variaciones en el paneo, amplitud y tono, con una
mínima edición posterior. (Anexo 2)
3. Interactividad generada a partir un código en Processing en el que se inserte el shader creado en Kodelife Open Gl, donde la interacción con los archivos de sonido se vea reflejada en la variable “tiempo”. La alteración de esta variable por medio de la lectura de amplitud de onda del sonido, impactará en la velocidad del ciclo draw de las imágenes. (Anexo 3)
Finalmente se prevé una modificación futura en la que el proyecto pudiese ser ejecutado en la modalidad de performance, en donde el sonido pudiera ser generado en vivo interactuando con las imágenes en tiempo real, abriendo así la posibilidad de ser llevado a un contexto situado.
REFERENCIAS ARTÍSTICAS
El proyecto se vincula a las “Operaciones eidéticas” desarrolladas por el arquitecto paisajista James Corner, donde a través de la combinación de elementos visuales e información cartográfica sostiene que las imágenes eidéticas contienen una amplia gama de ideas que vigorizan la creatividad humana, y que en consecuencia, la forma en que uno “imagina” el mundo condiciona literalmente cómo se conceptualiza y se le da forma a la realidad. (Corner & Bick, 2014: 241)
Otras obras referenciales de interés debido a su narrativa no lineal son el “Atlas Mnemosyne” de Aby Warbug (1924-1929) y el proyecto web “Atlas do Chao” codirigido por Ana Luisa Nobre y David Sperling3 que utiliza el término “constelación” para referirse a la combinatoria de imágenes que representan conceptualmente conflictos territoriales sobre la propiedad del suelo en Brasil.
Desde el campo de las tecnopoéticas, resulta de especial interés el proyecto “Cruzar los límites”
3. Véase https://www.atlasdochao.org/
de Victoria Jolly y Juan Castillo4 (2022) una serie de instalaciones efímeras en donde los autores se interrogan por la posibilidad de generar imágenes de nuevas geografías como una manera de vincular poéticamente territorios aislados.
REFERENCIAS BIBLIOGRÁFICAS
ALBRECHT, G., SARTORE, G., CONNOR, L., HIGGINBOTHAM, N., FREEMAN, S., KELLY, B., STAIN, H., TONNA, A. & POLLARD, G. (2007). Solastalgia: The Distress Caused by Environmental Change. Australasian psychiatry : bulletin of Royal Australian and New Zealand College of Psychiatrists. 15 Suppl 1. https://www.researchgate.net/publication/5820433_ Solastalgia_The_Distress_Caused_by_Environmental_Change BENNET, J. (2022). Prefacio. En Materia vibrante. Una ecología política de las cosas. Caja Negra.
CASTILLO, C., DEL CASTILLO, M., VERA, D., CAÑULEF, M., & GONZÁLEZ, D. (2021). Paisajes en disputa, Pualhue Huilliche. Editorial Universidad de Los Lagos.
CORNER, J. & BICK HIRSCH, A. (Eds.). (2014). The landscape imagination: collected essays of James Corner 1990 – 2010. Princeton Architectural Press.
PUENTES, M. (2013). La observación arquitectónica de Valparaíso: su periferia efímera. Ediciones Universitarias de Valparaíso.
PURCELL, J. (2013). Visión de Valparaíso 1953 –2011. Ediciones Universitarias de Valparaíso.
SOLAAS, L. (2017, 26 de Julio). La doble vida del hipersujeto. Medium. https://solaas.medium.com/la-doble-vidadel-hipersujeto-fdaab9d43dd2 SOLNIT, R. (2021). Una guía sobre el arte de perderse. (C. Ministral, Trans.). (3ra ed.). Fiordo.
VERA, D. (2024). Ruralidad virtual: Reflexiones en torno a las representaciones mediales del Archipiélago. Origen, 1(3), 11-17.
4. Véase https://www.puntoespora.cl/cruzarloslimites2023/
[ANEXO 1] Mapa de Proyecto desarrollado en la materia “Pensamientos no-lineales” con Paloma Catalá del Río.
[ANEXO 2] Ecritos en clave poética que dieron origen a la sonoridad del proyecto desarrollados a partir de la materia “Pensamientos No Lineales” con Paloma Catalá del Río.
[ANEXO 3] Estructura de código del proyecto trabajado durante la materia de “Diseño Digital” con Leo Núñez y en Tutorías técnicas con Santiago Fernández.
SHADER
CÓDIGO PARA LA CREACIÓN DE LA PROPUESTA VISUAL
#version 120
uniform vec2 resolution; uniform sampler2D texture0; uniform sampler2D texture1; uniform sampler2D texture2; uniform sampler2D texture3; uniform float tiempoGlobal; // Variable de tiempo latente para todas las texturas uniform float tiempoDrone; uniform float tiempoVoz; uniform float tiempoVoz1; uniform float tiempoVoz2;
#define pi 3.14159265359
// Función para generar ruido float random(vec2 st, float seed) { return fract(sin(dot(st.xy + seed, vec2(12.9898, 78.233))) * 43758.5453123);
}
#define bucles 6
float random (vec2 _st) { return fract(sin(dot(floor(_st.xy), vec2(12.9898,78.233))) * 43000.3); }
float noise (vec2 _st,float fase) { vec2 i = floor(_st); vec2 f = fract(_st);
float a = sin(random(i) * fase);
float b = sin(random(i + vec2(1.0, 0.0))*fase); float c = sin(random(i + vec2(0.0, 1.0))*fase); float d = sin(random(i + vec2(1.0, 1.0))*fase);
vec2 u = f*f*(3.0-2.0*f);
return mix(a, b, u.x) + (c - a)* u.y * (1.0 - u.x) + (d - b) * u.x * u.y; }
float fbm (vec2 _uv, float _time) { float value = 0.0;
float amplitude = 0.5; float frequency = 0.0;
for (int i = 0; i < bucles; i++) { value += amplitude * noise(_uv, _time); _uv *= 2.0; amplitude *= 0.5; } return value; }
void main() { vec2 uv = gl_FragCoord.xy / resolution.xy;
vec2 uvInvertido = uv; uvInvertido.y = 1.0 - uvInvertido.y;
vec4 color0 = texture2D(texture0, uvInvertido);
vec4 color1 = texture2D(texture1, uv);
vec4 color2 = texture2D(texture2, uv);
vec4 color3 = texture2D(texture3, uv);
vec2 uvRuido = uv;
float ruidoFbm = fbm(vec2(uvRuido.x * 10.0, uvRuido.y), tiempoGlobal + tiempoDrone); color3.rgb = color3.rgb + ruidoFbm;
// Color azul y blanco
vec3 colorAzul = vec3(2.0 / 255.0, 57.0 / 255.0, 125.0 / 255.0);
vec3 colorBlanco = vec3(1.0);
// Convertir a escala de grises para obtener la luminosidad float luminosidad0 = dot(color0.rgb, vec3(0.2126, 0.7152, 0.0722));
float luminosidad1 = dot(color1.rgb, vec3(0.2126, 0.7152, 0.0722));
float luminosidad2 = dot(color2.rgb, vec3(0.2126, 0.7152, 0.0722));
// Definir la máscara para el color azul
float mascaraAzul0 = step(0.01, length(color0.rgb - colorAzul));
float mascaraAzul1 = step(0.01, length(color1.rgb - colorAzul));
float mascaraAzul2 = step(0.01, length(color2.rgb - colorAzul));
// Calcular el borde rasgado
float suavidadBorde = 13.0; // Suavidad de Borde
float contraste = 1.0; // Contraste
float bordeRasgado0 = smoothstep(0.5 - suavidadBorde / 200.0, 0.5 + suavidadBorde / 200.0, luminosidad0 * contraste);
float bordeRasgado1 = smoothstep(0.5 - suavidadBorde / 200.0, 0.5 + suavidadBorde / 200.0, luminosidad1 * contraste);
float bordeRasgado2 = smoothstep(0.5 - suavidadBorde / 200.0, 0.5 + suavidadBorde / 200.0, luminosidad2 * contraste);
// Calcular factores de interpolación modificados por tiempoVoz
float factor0 = sin(tiempoGlobal + tiempoVoz); // Modificado por tiempoVoz
float factor1 = (cos(tiempoGlobal + tiempoVoz1) + 1.0) / 2.0; // Modificado por tiempoVoz
float factor2 = (sin((tiempoGlobal + tiempoVoz2) * 2.0) + 1.0) / 2.0; // Modificado por tiempoVoz
// Mezclar el color azul y blanco según la transición y el borde rasgado para cada textura
vec3 colorFinal0 = mix(colorBlanco, colorAzul, mascaraAzul0);
colorFinal0 = mix(colorFinal0, colorBlanco, bordeRasgado0 * factor0);
vec3 colorFinal1 = mix(colorBlanco, colorAzul, mascaraAzul1);
colorFinal1 = mix(colorFinal1, colorBlanco, bordeRasgado1 * factor1);
vec3 colorFinal2 = mix(colorBlanco, colorAzul, mascaraAzul2);
colorFinal2 = mix(colorFinal2, colorBlanco, bordeRasgado2 * factor2);
vec3 colorFinal3 = color3.rgb;
// Promediar los colores finales de las cuatro texturas
vec3 colorFinal = (colorFinal0 + colorFinal1 + colorFinal2 + colorFinal3) / 4.0;
gl_FragColor = vec4(colorFinal, color0.a); // Usamos la alpha de la textura0
[FIGURA 5] Montaje visual realizado en Kodelife Open GL para el prototipo de obra “MARITORIO”. Fuente: Elaboración propia (2024).
PROCESSING
CÓDIGO PARA LA INTERACTIVIDAD ENTRE IMÁGENES Y SONIDOS
import processing.sound.*;
// Declarar las variables de sonido en Processing SoundFile sampleDrone; SoundFile sampleVoz; SoundFile sampleVoz1; SoundFile sampleVoz2; Amplitude rmsDrone; Amplitude rmsVoz; Amplitude rmsVoz1; Amplitude rmsVoz2;
// Declarar diferentes factores de suavisado para Drone y Voces
float smoothingFactorDrone = 0.4; float smoothingFactorVoz = 0.005; float smoothingFactorVoz1 = 0.005; float smoothingFactorVoz2 = 0.005;
// Declarar factores de relentización para Voces float ralentizacionFactorVoz = 0.5; // Reducir este valor para relentizar TiempoVoz float ralentizacionFactorVoz1 = 0.5; float ralentizacionFactorVoz2 = 0.5;
// Usado para almacenar los valores de amplitud suavizados float sumDrone; float sumVoz; float sumVoz1; float sumVoz2; PShader shader; PImage imagen; PImage imagen1; PImage imagen2; PImage imagen3;
float tiempoGlobal = 0.0; float tiempoDrone = 0.0; float tiempoVoz = 0.0; float tiempoVoz1 = 0.0;
float tiempoVoz2 = 0.0;
boolean activarTiempoDrone = false; boolean activarSampleDrone = false; boolean activarTiempoVoz = false; boolean activarSampleVoz = false; boolean activarTiempoVoz1 = false; boolean activarSampleVoz1 = false; boolean activarTiempoVoz2 = false; boolean activarSampleVoz2 = false;
void setup() { size(800, 600, P2D);
shader = loadShader(“shader.txt”); imagen = loadImage(“Imagen_0.jpg”); // Cargo la imagen 0 imagen1 = loadImage(“Imagen_1.jpg”); // Cargo la imagen 1 imagen2 = loadImage(“Imagen_2.jpg”); // Cargo la imagen 2 imagen3 = loadImage(“Imagen_3.jpg”); // Cargo la imagen 3
// Cargar y reproducir un archivo de sonido y hacerlo en bucle
sampleDrone = new SoundFile(this, “Drone1. mp3”);
sampleDrone.loop(); sampleDrone.amp(7.0); // Amplitud del sonido // Crear y conectar el rastreador de rms para Drone1 rmsDrone = new Amplitude(this); rmsDrone.input(sampleDrone);
sampleVoz = new SoundFile(this, “Voz0.mp3”); sampleVoz.loop(); sampleVoz.amp(2.0); // Amplitud del sonido // Crear y conectar el rastreador de rms para Voz0 rmsVoz = new Amplitude(this); rmsVoz.input(sampleVoz);
sampleVoz1 = new SoundFile(this, “Voz1.mp3”); sampleVoz1.loop(); sampleVoz1.amp(1.0); // Amplitud del sonido // Crear y conectar el rastreador de rms para Voz1
rmsVoz1 = new Amplitude(this); rmsVoz1.input(sampleVoz1);
sampleVoz2 = new SoundFile(this, “Voz2.mp3”); sampleVoz2.loop(); sampleVoz2.amp(2.0); // Amplitud del sonido // Crear y conectar el rastreador de rms para Voz2 rmsVoz2 = new Amplitude(this); rmsVoz2.input(sampleVoz2); }
void draw() { // Suaviza los datos de rms por separado para el drone y las voces
sumDrone += (rmsDrone.analyze() - sumDrone) * smoothingFactorDrone; sumVoz += (rmsVoz.analyze() - sumVoz) * smoothingFactorVoz; sumVoz1 += (rmsVoz1.analyze() - sumVoz1) * smoothingFactorVoz1; sumVoz2 += (rmsVoz2.analyze() - sumVoz2) * smoothingFactorVoz2;
// RMS escalado float rms_scaled_drone = sumDrone; float rms_scaled_voz = sumVoz; float rms_scaled_voz1 = sumVoz1; float rms_scaled_voz2 = sumVoz2;
// Actualizar los tiempos de manera independiente if (activarTiempoDrone) { tiempoDrone += rms_scaled_drone; // Actualiza tiempoDrone
} if (activarTiempoVoz) { tiempoVoz += rms_scaled_voz * ralentizacionFactorVoz; // Ralentiza tiempoVoz } if (activarTiempoVoz1) { tiempoVoz1 += rms_scaled_voz1 * ralentizacionFactorVoz1; // Ralentiza tiempoVoz1 }
if (activarTiempoVoz2) { tiempoVoz2 += rms_scaled_voz2 * ralentizacionFactorVoz2; // Ralentiza tiempoVoz2 }
// Enviar valores al shader shader.set(“resolution”, (float)width, (float)height); shader.set(“texture0”, imagen); shader.set(“texture1”, imagen1); shader.set(“texture2”, imagen2); shader.set(“texture3”, imagen3);
shader.set(“tiempoDrone”, tiempoDrone);
shader.set(“tiempoVoz”, tiempoVoz);
shader.set(“tiempoVoz1”, tiempoVoz1); shader.set(“tiempoVoz2”, tiempoVoz2);
shader.set(“tiempoGlobal”, (float)millis() * 0.0008);
shader(shader); rect(0, 0, width, height);
// Controlar la reproducción de sampleDrone if (activarSampleDrone) { if (!sampleDrone.isPlaying()) { sampleDrone.loop(); } } else { if (sampleDrone.isPlaying()) { sampleDrone.stop(); } }
// Controlar la reproducción de sampleVoz if (activarSampleVoz) { if (!sampleVoz.isPlaying()) { sampleVoz.loop();
} else { if (sampleVoz.isPlaying()) { sampleVoz.stop();
// Controlar la reproducción de sampleVoz1 if (activarSampleVoz1) { if (!sampleVoz1.isPlaying()) { sampleVoz1.loop(); } } else { if (sampleVoz1.isPlaying()) { sampleVoz1.stop(); } }
// Controlar la reproducción de sampleVoz2 if (activarSampleVoz2) { if (!sampleVoz2.isPlaying()) { sampleVoz2.loop(); } } else { if (sampleVoz2.isPlaying()) { sampleVoz2.stop();
} } }
void keyPressed() { if (key == ‘d’ || key == ‘D’) { activarTiempoDrone = !activarTiempoDrone; activarSampleDrone = !activarSampleDrone; // Reiniciar tiempoDrone cuando se active if (activarTiempoDrone) { tiempoDrone = 0.0;
} } if (key == ‘v’ || key == ‘V’) { activarTiempoVoz = !activarTiempoVoz; activarSampleVoz = !activarSampleVoz; // Reiniciar tiempoVoz cuando se active if (activarTiempoVoz) { tiempoVoz = 0.0; } } if (key == ‘1’) { activarTiempoVoz1 = !activarTiempoVoz1; activarSampleVoz1 = !activarSampleVoz1; // Reiniciar tiempoVoz1 cuando se active
if (activarTiempoVoz1) { tiempoVoz1 = 0.0; } }
if (key == ‘2’) { activarTiempoVoz2 = !activarTiempoVoz2; activarSampleVoz2 = !activarSampleVoz2; // Reiniciar tiempoVoz2 cuando se active if (activarTiempoVoz2) { tiempoVoz2 = 0.0;