[Enrique Franco: Guitarra con BASIC Stamp II]

Página 1 de 8

Guitarra con BASIC Stamp II

El objetivo de este proyecto es generar música con ordenador mediante la programación en PD, sin dejar de lado los conceptos y estructuras musicales que por tanto tiempo nos han permitido comunicarnos y disfrutar con la música. Asimismo involucra una parte interactiva que es fundamental a la hora de presentar la música ante un auditorio. Esta parte interactiva está soportada por un sistema que recibe y analiza acciones en tiempo real y una interface física que combina la apariencia estética, la facilidad de manejo, y la lectura y transformación de los gestos del interprete en datos. El sistema puede ser usado para crear piezas musicales y generar música en tiempo real, además de otras posibilidades como instalaciones y otro tipo de puestas en escena que involucren una parte musical. El sistema es flexible en su funcionamiento y control, por lo tanto es adaptable a necesidades específicas. Se basa en algoritmos que permiten generar bases rítmicas y secuencias de notas dentro de la estructura de las escalas modales. Asimismo permite guardar estos ritmos y secuencias para ser reutilizados. También tiene un sampler para disparar y modificar ficheros de audio. Los sistemas de control y generación se basan en mensajes MIDI procesados en PD. Lo interesante que puede llegar a resultar el sistema a partir de un lógico y simple proceso algorítmico, depende en buena medida de la manipulación que haga el interprete de las variables de control de acuerdo a su propio criterio para lograr sonidos más expresivos. La gama de timbres puede ser tan diversa como los bancos de sonido del sintetizador que se esté usando. La música se genera a partir de secuencias predefinidas (listas, tablas), de fragmentos de audio pregrabados (samples) y / o de un proceso de generación de números (notas, golpes) en los que el interprete controla algunos parámetros como la dinámica, el tempo, la altura o la densidad entre otros. Todos los programas están sujetos a un mismo tempo, lo cual unifica los diferentes eventos musicales. El uso constante del objeto Random en diferentes maneras le añade un grado de indeterminación al sistema, pero a la vez ofrece grados de control en los diferentes algoritmos que lo usan. Con objetos como Randomize (Todd Winkler) se controla la mayor o menor variación de los valores del algoritmo. La mayor parte de variaciones que se hacen en tiempo real en el sistema se controlan desde la interface física. En cada patch o programa se reconfiguran los controles según sus necesidades específicas. El proceso de interacción tiene varios niveles: uno que se puede catalogar como "improvisación o jam session", que consiste en fijar un tempo, a partir del cual se activan los programas de generación de notas y ritmos. En estos programas se definen parámetros tales como la tónica, el tipo de escala y el instrumento entre otros. Una vez se logra cierta estabilidad en esta etapa, se puede empezar a grabar secuencias de notas o de ritmos. A partir de estas secuencias se hace un control más fino como escoger grupos de notas, variar la dirección de la secuencia, hacer transposiciones y cambios de duración. La posibilidad de fijar dos secuencias de notas diferentes y hacerlas sonar a la vez permite que se establezca una especie de contrapunto. Cuando se tienen estas secuencias de base, se pueden hacer "solos" cambiando la configuración de los controles en el programa que genera las escalas y de esta manera tener mayor control con el instrumento. Por último hay un nivel que consiste en guardar las secuencias de notas y golpes en ficheros de texto, que después pueden ser usados para reproducir los resultados de la "improvisación" y generar estructuras más complejas. Aunque he descrito el proceso en cierto orden, cabe la posibilidad de probar diferentes métodos. SISTEMAS INTERACTIVOS MUSICALES C

d

h bl

i t

i t

ti

http://www.todomicrostamp.com/pdf.php

i

l

h

l

i

d

l

t

í

04/01/2006

[Enrique Franco: Guitarra con BASIC Stamp II]

Página 2 de 8

Cuando se habla sistemas interactivos musicales hay que pensar en campos relacionados como la teoría musical, el conocimiento y aprendizaje musical y la inteligencia artificial entre otros. Se pueden analizar datos como velocidad, densidad, dinámica, ritmo y armonía. Uno de los puntos básicos en los sistemas interactivos, es que el músico pueda reconocer y aprovechar el potencial de los elementos que puede controlar. Robert Rowe define los sistemas interactivos musicales con ordenador, como aquellos en los que se presentan cambios como consecuencia de entradas o acciones de tipo musical. Lo que han hecho posible los ordenadores es un mayor manejo de la composición del timbre. Sin embargo se presentan problemas en cuanto a la expresividad, como por ejemplo, hacer que el programa del ordenador la añada antes de que el músico haya terminado de tocar una frase. También se ha llegado a diseñar sistemas para hacer música tocada sin intérprete, como la "objective music", lo cual elimina la intervención de la personalidad del músico que es quien entiende como funciona la música y como se comunica esto a una audiencia. Los sistemas interactivos musicales contribuyen en los procesos de composición mediante las decisiones y variaciones que hace el intérprete. Clasificación de sistemas interactivos según Robert Rowe Score-driven programs: organiza eventos usando las categorías tradicionales de pulso, metro y tempo. Partituras. Performance-driven programs: usan parámetros más generales, involucrando medidas perceptuales como densidad y regularidad para describir el comportamiento temporal de la música que está entrando. Métodos - Métodos transformativos (Transformative methods): toman material musical existente y aplica transformaciones para producir variaciones. - Métodos generativos (Generative methods): el material de entrada es fragmentario o elemental, se usan sets de reglas para producir una salida completamente musical. - Técnicas de secuenciación(Sequenced technics): usa música pregrabada que responde a algunas entradas en tiempo real. Algunos de estos fragmentos se pueden variar en el performance. Paradigmas entre el instrumento y el interprete (Instrument and player paradigm systems): - Instrument paradigm systems: consisten en la construcción y expansión de las posibilidades musicales de un instrumento. Por ejemplo los gestos del interprete son analizados por el ordenador y elabora una salida que excede la respuesta normal de un instrumento. - Systems following a player paradigm: tratan de construir un intérprete artificial. Un sistema así controlado por un solo usuario podrá dar como resultado algo como un dueto. Básicamente un sistema interactivo musical debe seguir los siguientes pasos: -

Gestos y acciones: el interprete toca el instrumento y envía datos al ordenador. Entrada de datos: el ordenador recibe la información de los gestos y acciones del interprete. Análisis: se analizan los datos y se extrae la información relevante. Composición: el ordenador calcula lo que sea necesario para producir su respuesta. Generación de sonido: salida de audio del ordenador.

Machine listening Hay varios tipos de algoritmos que son usados comunmente para hacer música como por ejemplo los de análisis armónico y melódico, patrones rítimicos o densidad. Hay objetos que generan información, otros que pueden capturar gestos y acciones y otros que pueden guardar datos para ser usados en un momento determinado. Estos últimos pueden contener datos predeterminados y cargados antes de la performance. Interfaces La tecnología digital, con su incremento de memoria y capacidad de procesamiento más flexible, promueve un reconocimiento más sofisticado de gestos externos. Con los ordenadores se pueden crear respuestas a los gestos que detectan. Además de esto la separación entre el dispositivo de control y la producción de sonido abre la posibilidad de procesar y mapear la información de muchas maneras permitiendo el control simultáneo de varios parámetros. La complejidad del mapeado proviene de tres fuentes según Curtis Roads: - Dispositivos de control programables. - Remapeando los controladores o el software para acciones en tiempo real.

http://www.todomicrostamp.com/pdf.php

04/01/2006

[Enrique Franco: Guitarra con BASIC Stamp II]

p - Sintetizadores programables.

p

Página 3 de 8

p

Los instrumentos electrónicos son muy flexibles en timbre y afinación, sin embargo en la relación entre control y producción del sonido se puede perder buena parte del “feel”. El uso de diversas clases de sensores ayudan a aprovechar la gestualidad del interprete. Se deben tener en cuenta su funcionamiento y su resolución espacial y temporal. Una alta precisión temporal es necesaria para capturar las sutilezas en la ejecución de los músicos. Entre más fácil sea de manipular una interface, más fácil será de usar con precisión. La información o “feedback” se puede enviar al músico de diferentes maneras: visual, táctil y auditivamente. Usar instrumentos tradicionales como modelo también tiene muchas ventajas, ya que el interprete puede aplicar toda su técnica. Sin embargo puede poner muchas restricciones, por ejemplo las capacidades de un sintetizador se pueden ver muy limitadas al ser controladas por un instrumento tradicional, ya que en general este ha sido diseñado para los sonidos que produce, antes que para los gestos asociados con su interpretación. Ejemplo de flujo de la señal:

Otros aspectos a tener en cuenta en el diseño de nuevas interfaces físicas son:

z El tiempo de aprendizaje para controlar adecuadamente una performance. z La cantidad y tipo de gestos que se pueden aplicar. z El grado de control de los diferentes parámetros. z El grado de precisión temporal.

DESCRIPCIÓN DEL SISTEMA El ordenador contiene el programa con todos los patches y objetos para la generación y transformación de la música. Esta parte se hace con PD que procesa los datos que entran en tiempo real. Se deben configurar los puertos MIDI para que reciban la señal del convertidor de señal analógica a MIDI. Los sonidos se cargan en la memoria de la tarjeta de sonido o se puede usar un sintetizador externo con bancos de sonido conectado a los puertos MIDI. La programación del microcontrolador Basic Stamp II se hace con el Basic Stamp Editor. Los programas se envían por un puerto serial. Instrumentos y controladores Para este proyecto he diseñado una guitarra que tiene dos botones, tres faders y tres potenciómetros. La caja que convierte la señal analógica a MIDI tiene otros dos botones y potenciómetros y funciona con un microcontrolador Basic Stamp 2. Conexiones

http://www.todomicrostamp.com/pdf.php

04/01/2006

[Enrique Franco: Guitarra con BASIC Stamp II]

Página 4 de 8

Implementación PD PD es un lenguaje de programación visual que se basa en jerarquías de patches y objetos que se unen con cables de entrada y salida de datos. Este lenguaje está siendo desarrollado por Miller Puckette y es “open source”. Se descarga gratis de internet. Audio y MIDI El control del programa se realiza con mensajes de Control Change que son enviados por el convertidor de señal analógica a MIDI. Los sonidos también se tocan a partir de bancos MIDI de la tarjeta de sonido del ordenador. En esta versión del programa el audio se limita al uso de ficheros wav que han sido editados a partir de cds de audio y tomas en directo. Algoritmos y Programas Control En este patch están incluidos los demás patches del programa y desde aquí se abren. En este patch se controla el tempo general y la figura de nota que servirá de unidad para marcar el pulso, que va desde blancas (1) hasta fusas (32). Para ponerlo en marcha basta con activar el switch (objeto toggle). Escala En este patch se generan notas dentro de las estructuras de las escalas modales jónica, dórica, frigia, lidia, mixolidia, eólica y locria. Cada estructura está contenida en un objeto aparte y se basa en la teoría de “pitch classes”, donde a cada grado de la escala cromática (12 tonos), le corresponde un número de 0 a 11 con sus respectivas transposiciones. Es así como en una escala de do mayor el 0 corresponde al do y el 11 al si. El objeto Densidad recibe el golpe de cada pulso y según los valores que se le den genera más o menos notas dentro de la escala. Los demás parámetros que se controlan en este patch son la tónica, la dinámica, la duración de las notas, el instrumento y el canal. Módulo Ritmo Este patch contiene 3 subpatches ModRitmo que generan los ritmos con tres instrumentos diferentes. Los parámetros que se controlan son la dinámica, la cantidad de golpes o densidad rítmica, la duración de cada golpe y el instrumento. Graba Melodías Este patch permite guardar secuencias de notas en dos tablas distintas. Básicamente lo que recibe es números de notas y los va escribiendo en orden en la tabla seleccionada mientras esté activado el objeto Record. Para poner la secuencia en marcha se activa el objeto Play. Los parámetros que se controlan aquí son la dinámica, la duración de las notas y el orden en que son tocadas. También se controla cada cuanto es disparada una nota de la secuencia con el objeto Densidad. Graba Ritmo Este patch permite guardar secuencias de ritmos en tres tablas distintas. Recibe valores de velocity y números de nota en el canal 10 MIDI que es el reservado a

http://www.todomicrostamp.com/pdf.php

04/01/2006

[Enrique Franco: Guitarra con BASIC Stamp II]

Página 5 de 8

en el canal 10 MIDI, que es el reservado a sonidos de percusión. Así cuando la velocity es cero se producen silencios en la secuencia. Los números de nota y los silencios los va escribiendo en orden en las tablas mientras esté activado el objeto Record. Para poner la secuencia en marcha se activa el objeto Play. Los parámetros que se controlan aquí son la dinámica, la duración de los golpes y el orden en que son tocados. Listas Este patch permite guardar las listas de números de los patches Record Melodías, Record Ritmo. Para esto se selecciona el número de array y se escribe en el objeto textfile. Para recuperarlo se envía un mensaje para guardarlo en un fichero y otro para cargarlo. Para tocar estas listas se activa el metrónomo. Se pueden leer todas las listas o escoger una o varias. Esto se puede usar para tener secuencias de notas más largas o simplemente como memoria (score) para reconstruír las melodías generadas en tiempo real. Sampler Loop Este es un sampler muy sencillo en el que se pueden cargar ficheros de audio y variar su frecuencia e intensidad. Estos ficheros quedan en bucle una vez que son activados.

INSTRUMENTOS Para la parte de control e interacción con el programa, he diseñado un cuerpo de guitarra en el que van montados dos botones, tres faders lineales de 100k y tres potenciómetros lineales de 100k. La distribución de estos controles sugiere gestos y acciones similares a los que se usan en una guitarra eléctrica normal y son activados mecánicamente por el interprete. Los botones en el brazo hacen la analogía con la digitación de notas. Los valores de los faders aumentan al deslizarse hacia el cuerpo de la guitarra, de manera similar al cambio de altura en el brazo de la guitarra. Dos de los potenciómetros son similares a los que tienen las guitarras eléctricas para controlar el tono y el volumen. El tercer potenciómetro es similar en apariencia a la barra trémolo, pero a diferencia de esta, funciona con un movimiento de rotación. La forma de esta guitarra surge de la asociación con un clave de sol invertida. Está hecha en madera con dimensiones similares a las de una Stratocaster. Convertidor de señal analógica a MIDI Este convertidor está montado en una caja que contiene el circuito con un microcontrolador Basic Stamp BS2. Consta de dos potenciómetros lineales de 100k, dos botones, un conector DB9 hembra para programar el Stamp, un conector DIN8 hembra para el cable de señal analógica que viene de la guitarra, un conector DIN5 hembra para la salida de datos MIDI, una entrada de alimentación, un switch de encendido y nueve conectores RCA hembra que ofrecen la posibilidad de conectar otros controladores en lugar de la guitarra. La fuente de alimentación es una batería de 9 voltios.

Circuito Este es el diseño de circuito base que se repite para cada pin del stamp. Hay que tener en cuenta que para las entradas de botones se pone una resistencia de 1Kohm en lugar de la de 220ohm que se usa para los

http://www.todomicrostamp.com/pdf.php

04/01/2006

[Enrique Franco: Guitarra con BASIC Stamp II]

Página 6 de 8

de 220ohm que potenciómetros.

se

usa

para

los

Programación del Basic Stamp II La ventaja de este tipo de microcontrolador es su flexibilidad y posibilidad de modificación del programa para futuras versiones del sistema. Este programa ha sido desarrollado por Orestis Farileas y Félix Luque como parte de su proyecto de Master en Artes Digitales “The FX project”, al cual he hecho las modificaciones requeridas por mi sistema. Básicamente lo que hace es leer los valores de cada control y envía los valores de los que presentan variaciones.

'{ $STAMP BS2} input 1 'boton1 input 2 'boton2 input 3 'boton3 input 4 'boton4 NPot var word Ctrl var byte Mcnt var byte cnt var byte baudmode con 12 Mcnt=13 'numero de controles OLoop: cnt=1 'numero de pin loop: if cnt=1 if cnt=2 if cnt=3 if cnt=4

then then then then

equation1 equation2 equation3 equation4

HIGH cnt RCTIME cnt,1,NPot PAUSE 1 Npot=Npot/70 'para calibrar goto send send:ctrl=cnt+80 serout 14,12,0,[176,ctrl,NPot] cnt=cnt+1 if cnt>=MCnt+1 then OLoop goto loop equation1: NPot = in1 goto send equation2: NPot = in2 goto send equation3: NPot = in3 goto send equation4: NPot = in4 goto send

http://www.todomicrostamp.com/pdf.php

04/01/2006

[Enrique Franco: Guitarra con BASIC Stamp II]

Página 7 de 8

CONCLUSIONES

z En estos meses dedicados al proyecto antes que conseguir composiciones elaboradas, he

desarrollado una gran cantidad de herramientas con módulos que han ido añadiendo funcionalidad a los programas. z Para hacer más versátil e interesante el resultado musical del sistema, se deben implementar

procesos de análisis armónico y melódico más sofisticados. z El hecho de tener varias posibilidades de control y varios programas que hacen cosas diferentes,

lleva a pensar en la posibilidad de involucrar más personas en la interacción. Así por ejemplo alguien se puede encargar de la parte rítmica, mientras otro se dedica a la parte melódica. Esto también pensando en otros controladores que aprovechen más los gestos del interprete en relación a cada parámetro. z Aunque hasta el momento me he dedicado a usar sonidos MIDI, cabe la posibilidad de trabajar más

con audio y aplicar las estructuras del programa a síntesis de sonido y / o implementar nuevos algoritmos de control que permitan “tocar” más el sintetizador. z Queda abierta la posibilidad de probar el sistema en ámbitos diferentes al puramente musical. z Ahora veo la programación musical como un “juego muy entretenido” en el que cada vez que se

plantea un problema o una pregunta se pueden encontrar muchas respuestas posibles. Además es una herramienta que permite aprovechar la teoría musical dándole nuevos matices y haciéndola accesible a más gente mediante la creación de programas que promuevan la interacción. z La colaboración entre profesionales de diferentes campos como la electrónica, la física, el diseño, la

música y las artes se hace necesaria en propuestas musicales interactivas con el uso de nuevas tecnologías.

REFERENCIAS BIBLIOGRÁFICAS - Bahn, Curtis. “Electronic Chamber Ensemble”. Paper for the New Interfaces for Musical Expression Workshops. Seattle 2001. - D’Arcangelo, Gideon. “Creating Contexts of Creativity: Musical Composition with Modular Components” Paper for the New Interfaces for Musical Expression Workshops. Seattle 2001. - Gurevich, Michael- Von Muehlen, Stephan. “The Accordiatron: A MIDI Controller For Interactive Music” Paper for the New Interfaces for Musical Expression Workshops. Seattle 2001. - Orio, Nicola- Schnell, Norbert- Wanderley, Marcelo. “Input Devices for Musical Expression: Borrowing Tools from HCI” Paper for the New Interfaces for Musical Expression Workshops. Seattle 2001. - Roads, Curtis. “The computer music tutorial” Cambridge MIT Press 1996. - Robson, Dominic. “PLAY! : Sound Toys For the Non Musical”. Paper for the New Interfaces for Musical Expression Workshops. Seattle 2001. - Rowe, Robert. “Interactive music systems” Cambridge MIT Press 1993. - Winkler, Todd. “Composing interactive music” Cambridge MIT Press 1998.

RECURSOS ELECTRÓNICOS Interfaces Físicas: Batuta digital Hiperinstrumentos New Interfaces for Musical Expression Workshops. Seattle 2001 Perry R. Cook, Princeton University Laetitia Sonami: composer, performer and sound installation artist Instrumentos y controladores en Standford The Studio for Electro-Instrumental Music-STEIM “Chromasone” - Walter Fabeck Home page de Bert Bongers Dragos Stefan Munteanu Accordiatron Links a otros sitios de investigación

PD Página principal PD Nueva página oficial Página principal GEM

http://www.todomicrostamp.com/pdf.php

04/01/2006

[Enrique Franco: Guitarra con BASIC Stamp II]

Página 8 de 8

Página principal GEM Objetos externos y documentos Lista PD, links y download Muchos links

Videos “Chromasone” - Walter Fabeck “Chromasone” - Walter Fabeck-1 Sensorband

Microcontroladores Construir cosas con microcontroladores Construir cosas con microcontroladores 1 Construir cosas con microcontroladores 2 Fabricantes del Basic Stamp Craig Sapp. Electronic Music Devices for Basic Stamp II

Diseño de Instrumentos Teuffel guitars Lemelson guitars Midi Guitar

Sonidos Bancos de sonidos

Página web personal del autor: http://www.iua.upf.es/%7Effranco/pfm.htm

Palabras claves: guitarra, instrumento musical, MIDI, Artes digitales, The FX project

Cualquier nombre de productos o marcas registradas que puedan aparecer en este sitio web, aparecen con fines de identificación y están registrad por sus respectivas compañías. 'BASIC Stamp' es una marca registrada de Parallax, Inc. Aviso legal

http://www.todomicrostamp.com/pdf.php

04/01/2006