+ All Categories
Home > Documents > Introducción a Pure Data

Introducción a Pure Data

Date post: 07-Jul-2018
Category:
Upload: natanael-manrique
View: 217 times
Download: 0 times
Share this document with a friend

of 71

Transcript
  • 8/18/2019 Introducción a Pure Data

    1/71

    ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA

    INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN

    PURE DATA

    Realizado porDANIEL BECERRA VELA

    48884306Z

    Dirigido porVÍCTOR J. DÍAZ MADRIGAL

    DepartamentoLENGUAJES Y SISTEMAS INFORMÁTICOS

    Sevilla, Mayo de 2014

  • 8/18/2019 Introducción a Pure Data

    2/71

    U N I V E R S I D A D D E S E V I L L A

    ESCUELA TÉCNICA SUPERIOR DEINGENIERÍA INFORMÁTICA

  • 8/18/2019 Introducción a Pure Data

    3/71

    ÍndiceIntroducción y conclusiones...........................................................................3 Funcionamiento básico ...................................................................................7

    Las 3 cajas.................................................................................................................. 7 Atoms......................................................................................................................... 8 Conexiones................................................................................................................ 8 Datos.......................................................................................................................... 9 Parches....................................................................................................................... 9 ¡Hola Mundo!............................................................................................................ 9 Bang..........................................................................................................................10 Ayuda ....................................................................................................................... 10

    Matemática simple y lógica del bang............................................................11 Metro........................................................................................................................ 12

    MIDI y Makenote ..........................................................................................13 Makenote .................................................................................................................14

    Lógica condicional con spigot y moses.......................................................16

    Spigot ....................................................................................................................... 16 Moses ....................................................................................................................... 17

    Secuenciador simple.......................................................................................18 Sel.............................................................................................................................. 18 Counter .................................................................................................................... 19

    Números aleatorios........................................................................................20 Random.................................................................................................................... 20 TripleRand............................................................................................................... 20 Drunk....................................................................................................................... 21

    Enviar y recibir (send & receive)..................................................................22 Knob ........................................................................................................................ 22

    El objeto expr.................................................................................................23 reacTIVision y Tuio Client.................................................................................... 24

    Subpatching ....................................................................................................28 A Beat Machine..............................................................................................29 Gráficos con tablas y arrays..........................................................................33

    Tabwrite................................................................................................................... 33 Tabread .................................................................................................................... 34

  • 8/18/2019 Introducción a Pure Data

    4/71

    Objetos útiles y manejo de listas ..................................................................37

    Pack / Unpack........................................................................................................37 $.................................................................................................................................38 zl................................................................................................................................38

    slice / ecils ............................................................................................................................38 group......................................................................................................................................38 join..........................................................................................................................................38 union......................................................................................................................................39 sect..........................................................................................................................................39

    Bondo.......................................................................................................................39 Abstracciones..................................................................................................40 Leyendo audio con readsf~..........................................................................41 Osciladores osc~............................................................................................42

    Síntesis de AM (Modulador de amplitud)........................................................... 43 Síntesis de FM (Modulador de frecuencia)......................................................... 44

    Audio avanzado con tabread4~...................................................................45 Open Sound Control (OSC).........................................................................47 GEM................................................................................................................49

    Reproducción de video con GEM....................................................................... 49 Manipulación de video con GEM........................................................................ 50

    Abstracciones visuales...................................................................................52 Grabando audio a disco con writesf~.........................................................54 Filtros de audio...............................................................................................56

    High pass ................................................................................................................. 56 Low pass..................................................................................................................57 Band pass................................................................................................................. 58

    Reverb and Delay...........................................................................................59 CASO PRÁCTICO I: Secuenciador simple...............................................61 CASO PRÁCTICO II: Reproductor wav...................................................62 CASO PRÁCTICO III: Minireactable........................................................63 Anexo I: Instalando Pure Data.....................................................................65 Referencias......................................................................................................69

    Web .......................................................................................................................... 69

  • 8/18/2019 Introducción a Pure Data

    5/71

    I N T R O D U C C I Ó N A P U R E D A T A

    3

    Introducción y conclusionesste documento recoge la memoria presentada en la asignaturaProyectoInformático para la obtención del título “Ingeniería Técnica en Informática deGestión”. En ella se presenta un manual junto con una serie de ejemplosprácticos de uso y aplicación del lenguaje de programación musical y de audio

    Pure Data .

    Pure data, como proyecto, fue iniciado por el ingeniero de softwarenorteamericano Miller Puckette, quien previamente co-desarrolló el Max/Msp, unprograma muy conocido y de estructura similar. No es un programa comercial, no fuedesarrollado por una corporación y tampoco está a la venta. Pure Data es softwarelibre, este código no es propiedad de una corporación sino que esta disponible paracualquiera.

    Es un lenguaje de programación gráfico que hace más fácil construirprogramas para manipular y trabajar con señales de audio. Nos permite crearincontables tipos de sintetizadores, samplers y melodías e incluso poder conectar consoftware externo. Pure Data está en continuo desarrollo y mejora, es software libredesarrollado por una comunidad cuya web eshttp://puredata.info/.

    La principal aplicación de Pure Data y para lo que ha sido creado es elprocesado de señales de audio. Pero su desarrollo lo ha convertido en un medio de

    procesado de señales con otros diversos usos. Pure Data se puede usar para procesar ymanipular señales de video medianteGEM , crear imágenes en 2D y 3D conPDP yGridflow . Existe una colección de objetos que actúan como interfaces, con los que sepodrán conectar y controlar joysticks, sensores, prototipos de robótica e inclusocontroles de consolas de videojuegos comoDJ Hero oGuitar Hero.

    Su simplicidad y sencillez visual es apabullante, sin nada de adornos, hará quecomplejos programas sean agradables a la vista y den una descripción gráfica delsonido.

    “The Diagram is the program”

    Lo más atractivo de Pure Data es su sencillez en su entorno de desarrollo y lointuitivo de la escritura de su lenguaje. Es tan simple como arrastrar cajas a un lienzoque harán las veces de funciones o procesos, estas cajas tendrán unas marcas en suparte superior que equivalen a las entradas o argumentos de la función y marcas en suparte inferior a modo de salidas o resultados de la función, de forma, que las salidas deunas cajas serán las entradas de las siguientes dando esa sensación de que el flujo dedatos va de arriba a bajo, lo que hará que los programas sean legibles y entendibles sólodetectando algunas cajas en un solo golpe de vista.

    INTRODUCCIÓN

    E

  • 8/18/2019 Introducción a Pure Data

    6/71

    I N T R O D U C C I Ó N A P U R E D A T A

    4

    Aunque al principio uno debe aprender las ideas básicas del lenguaje, en poco

    tiempo, Pure Data, se hace disfrutar. Trabajar y “cacharrear” con Pure Data es de lomás entretenido sobre todo para aquellos a los que nos gusta la música yparticularmente la música electrónica. La capacidad de Pure Data de generar notasMIDI nos da la posibilidad de conectar multitud de instrumentos y programas externoscon lo que en poco tiempo se conseguirán resultados espectaculares a la par que se vanaprendiendo las palabras reservadas del lenguaje y su relación con la música como porejemplo el objeto metro (metrónomo), fundamental a la hora de hacer música.

    Tras este estudio, las desventajas que se detectan en este lenguaje deprogramación son, sobre todo, la escasa documentación en castellano, a lo cual aportomi humilde granito de arena con este manual, y algo meramente técnico relacionadocon el entorno de desarrollo, que dará algunos problemas, es la importación de libreríashaciendo uso del path. Respecto a esta segunda cuestión se supone que en versionesposteriores se irá subsanando el problema.

    Para escribir este sencillo y sobre todo práctico manual de introducción a PureData se ha seguido como guión de estudio un videotutorial (en inglés) de youtubesubido por el compositor y profesor de música Dr. Rafael Hernández( http://www.rafaelhernandez.org/ ) completado con el libroDesigning Sound de Andrew James Farnell. En definida, el manual es el producto resultante de hacer todos losejemplos de dicho videotutorial, usando herramientas y programas externos, como porejemplo reacTIVision, y dar una explicación breve de todos los aspectos técnicos y desemántica del lenguaje consultando tutoriales y manuales además del libro antes

    mencionado.Concluyendo, quizás lo más práctico que se encuentre en este manual, a parte

    de toda la semántica y técnicas de Pure Data, y para mi lo mas interesante y divertido esreacTIVsion, un software capaz de reconocer formas (fiduciales) y además detectarmovimientos en esas formas. Como con el reactable se puden asociar sonidos ysamples a esas fiduciales o formas y como con movimientos de esos fiduciales semanipulan esos sonidos sabiendo que una canción o performance con el reactable esúnica puesto que mover esos fiduciales por las mismas zonas de la mesa, con losmismo giros y en los mismos instantes es imposible. La música electrónica después deltodo no es tan cuadrada como dicen algunos, es igual de bonita e infinitesimal que elrock clásico y con el mismo mérito o incluso más, depende del programa.

    Aquí dejo un par de actuaciones o performance con reactable:

    Ver en youtube: ‘ReacTj ReacTable Trance live performance @ submixpro studio Torino 02’: https://www.youtube.com/watch?v=Mgy1S8qymx0

    Ver en youtube: ‘Reactable - SoulFul House Part1 (By Kokab)’:https://www.youtube.com/watch?v=psQIFVdLR4A

  • 8/18/2019 Introducción a Pure Data

    7/71

  • 8/18/2019 Introducción a Pure Data

    8/71

    I N T R O D U C C I Ó N A P U R E D A T A

    6

    • Lección 10- A Beat Machine : Se crea una caja de ritmos mediante un ejemplo

    práctico conReason.• Lección 11-Gráficos con tablas y arrays : Sobre el pintado y manipulación de

    gráficos y el uso de tablas para crear secuenciadores.

    • Lección 12-Objetos útiles y manejo de listas : Se explican objetos o cajasmuy útiles a la hora de manipular listas de números y cadenas.

    • Lección 13- Abstracciones : La forma en Pure Data de reutilizar y modularizarel código, tan importante en cualquier lenguaje de programación.

    • Lección 14-Leyendo audio con readsf~ : Útil para usar sonidos y samples yacreados en nuestros parches musicales.

    • Lección 15-Osciladores osc~ : En este capítulo se hace una pasada a lageneración de ondas y a su manipulación tanto en amplitud como enfrecuencia.

    • Lección 16- Audio avanzado con tabread4~ : Ejemplo de reproducción ymanipulación de un archivo de audio.

    • Lección 17-Open Sound Control (OSC) : Una reseña a la posibilidad de PureData de conectarse con dispositivos externos como puede ser un joystick de videojuego, el teléfono movil,Guitar Hero,…

    • Lección 18-GEM : Capitulo dedicado a la manipulación de video.

    • Lección 19- Abstracciones visuales : Dado que Pure Data es 100% visual ygráfico, en este capítulo se aprenderá a crear y reutilizar parches o código queson en definitiva indicadores gráficos.

    • Lección 20-Grabando audio a disco con writesf~ : Se explican un par deformas de grabar a nuestro disco duro los sonidos generados en Pure Data.

    • Lección 21-Filtros de audio : Manipulación de sonidos en sus tres grupos defrecuencias, agudos, graves y medios.

    • Lección 22-Reverb and Delay : Se ven las técnicas para producir lareverberación y el eco en el sonido.

  • 8/18/2019 Introducción a Pure Data

    9/71

    I N T R O D U C C I Ó N A P U R E D A T A

    7

    Funcionamiento básicoure Data usa un tipo de programación llamadodataflow (flujo de datos) porquelos datos fluyen a través de conexiones y son procesados en objetos. La salidade un objeto es la entrada del siguiente.

    Un objeto es una caja rectangular con entradas y salidas denominadasinlets y outlets representados mediante unas pequeñas rayitas negras. Los inlets están en la parte dearriba de la caja y los outlets en la parte de abajo. Un objeto realiza un determinadoproceso a los datos que le entran por sus inlets y envía los resultados por sus outlets.Cada objeto realiza una función diferente según el nombre que contenga dicho objeto.

    FIGURA 1. OBJETO.

    Hot inlet : es el inlet más a la izquierda, son lasentradas del objeto que activan el proceso.

    Cold inlet : es o son (puede haber mas de uno)‘argumentos’ o entradas adicionales al objeto.

    Las 3 cajasEn Pure Data se usan 3 “cajas” u objetos básicos,Objeto, Mensaje y Número. Las cajas delos objetos son rectangulares, las cajas de los mensajes tienen el lado vertical derechodistinto de los otros y la caja de los números tiene el ángulo superior derecho cortado.Hay un “edit mode” (modo edición) y un “execute mode” (modo ejecución). Se puedesaber en cual estado se está mirando el cursor.

    FIGURA 2. LAS 3 CAJAS.

    Estando en modo edición es posible alterar el valorde un número manteniendo apretada la teclaCTRL ymoviendo el cursor arriba o abajo. También es útilpara emitir los mensajes. La caja objeto se podría vercomo una función en la que sus inlets serían losargumentos de entrada de dicha función y sus outletsserían los argumentos de salida de la función.

    LECCIÓN

    xLECCIÓN

    1P

  • 8/18/2019 Introducción a Pure Data

    10/71

    I N T R O D U C C I Ó N A P U R E D A T A

    8

    FIGURA 3. USO DE OBJETOS YMENSAJES.

    El objeto “osc~ 440” es un oscilador. Al pulsar

    sobre el mensaje 1 se escucha un tono sinusoide conuna frecuencia de 440 Hertz. Con la caja número, semodifican los valores de esa frecuencia que hacenque el tono se modifique.Esta es la estructura básica en Pure Data: Un objetotiene un nombre (si produce señales, una tilde "~"sigue después de su nombre), después hay un espacioy se continua con uno o mas argumentos (En estecaso en particular el argumento inicial fue “440”).Con la mayoría de los objetos, los argumentospueden ser modificados cuando nuevos valoresingresan por sus inlets. Si nuevos valores ingresan deesta forma, el argumento en el objeto es ignorado.(en este ejemplo, 350 en lugar de 440).

    AtomsSe puede introducir información en los números y en los mensajes. Los mensajespueden contener letras, entonces se denominansímbolos . A toda esta información sehace referencia con losatoms(átomos).

    Un mensaje para un objeto tiene dos partes: Una designación de método ( selector ) ycero, uno, o varios valores ( argumentos ). Por ejemplo si el mensaje es “5”, en realidadel mensaje verdadero es “float 5” y se compone de los átomos “float” y “5”. Elmensaje “bang”, que se explicará mas adelante, se compone solo del selector “bang” yno contiene argumentos. El mensaje “1 2 3 4 5” es en realidad “list 1 2 3 4 5” (list =lista). Por tanto, existen dos tipos de átomos: un numero (en lenguaje de programación= “float”) que es un valor de 32-bit, o un símbolo, que es una sucesión de letras. Elmensaje “float 5” se compone de dos tipos de átomos, símbolo y float. La partesimbolo tiene el valor “float”(una sucesión de letras) y la parte float tiene el valor “5”El selector es siempre un símbolo.

    ConexionesLas conexiones entre los objetos se llaman cuerdas o cables. Van desde el outlet de unobjeto hasta el inlet de otro. Pueden cruzarse entre ellos a la hora de hacer el programapero debe evitarse para así favorecer la lectura del mismo.

    Hay 2 tipos de conexión o cable entre las cajas u objetos, grueso y fino. Los cablesgruesos transmiten señales de audio, mientras que los cables finos transmiten solodatos. Todos los objetos que producen señales o trabajan con señales en su entrada,tienen tilde "~" inmediatamente después de su nombre. Los otros objetos no. Estosdos niveles se denominan "control level” (donde solo "data de control" fluye, también

  • 8/18/2019 Introducción a Pure Data

    11/71

    I N T R O D U C C I Ó N A P U R E D A T A

    9

    denominado "message domain") y "signal level" (donde las señales fluyen, también

    denominado "signal domain").

    DatosLos datos a procesar por los objetos pueden ser muy variados. Mensajes, sonidos ytramas de video serán los que se vean en este humilde manual. El objeto da pistas deltipo de dato que procesa por su nombre. El carácter ‘~’ indica que el objeto procesaseñales de audio.

    ParchesUn programa o parche es una colección de objetos conectados con cables. En el mundode la síntesis de sonido la palabra parche (patch) y programa significan lo mismo. Paraconstruir el programa o parche se irán colocando objetos en una zona vacíadenominadacanvas .

    ¡Hola Mundo!Se creará un primer patch. Para ello se seleccionaráArchivo→ Nuevo para abrir uncanvas vacío. Antes de todo se cambiará el canvas a modo edición, para ello seselecionaráEditar→ Modo Edición o Ctrl+E. Para añadir objetos al canvas seseleccionaráPoner →→→ → Objeto oCTRL+1.

    FIGURA 4. HOLA MUNDO.

    Se seleccionaráPoner →→→ → Mensaje oCTRL+2 y seescribirá en el objeto mensaje ‘Hola Mundo!’.Los objetos mensajes soportanstring , floats (números) o instant floats (números condecimales), tienen una muesca en el lateralderecho u sólo tiene un inlet y un outlet. Senecesitará un objeto que interprete el mensaje.Se añadirá un objeto con la palabra reservada

    printque imprimirá el mensaje por consola.

    Si se escribiera una palabra no reservada o no reconocida en el path , la caja quedará encolor rojo y abierta con línea discontinua. Se unirá con cuerdas inlets y outlets tal comoaparecen en la imagen. Obsérvese como cambia el icono al acercarse a los inlets uoutlets indicando que se podrá crear una nueva cuerda de conexión. Al hacer clic sobreel mensaje la cadena ‘Hola Mundo!’ se imprimirá en consola. Pero antes habrá quedesactivar el modo edición conCtrl+E. Los patch se guardan en archivos con extensión.pd.

  • 8/18/2019 Introducción a Pure Data

    12/71

    I N T R O D U C C I Ó N A P U R E D A T A

    10

    BangExiste un objeto esencial en Pure Data denominadobang . Para crear este objeto seusará la palabra reservadabng . Esta vez no se quedará esa palabra escrita sino que sesustituirá por un símbolo consistente en cuadrado con un círculo en su interior (VerFigura 5) en el que al hacer clic se pondrá de color oscuro imitando un parpadeo.

    FIGURA 5. DISTINTOS BANGS.

    Al hacer clic en el bang se conseguirá el mismoefecto. El objeto bang sólo envía y recibemensajes de tipo bang, es usado para indicarque se haga algo, para indicarstart (fire, dosomethig). El objeto mensaje ‘bang’ equivale alobjeto ‘bng’.

    AyudaPure Data tiene un sistema de ayuda con información de uso y ejemplos de cadaobjeto. Al hacer clic con el botón derecho en un objeto y seleccionar la opción Ayudase abrirá un nuevo patch que explica la funcionalidad de la palabra reservada de dichoobjeto, como por ejemplo información sobre los inlets y outlets, argumentos, mensajesde inicialización de objetos, etc.…

    FIGURA 6. PARCHE DE AYUDA DE METRO.

  • 8/18/2019 Introducción a Pure Data

    13/71

    I N T R O D U C C I Ó N A P U R E D A T A

    11

    Matemática simple y lógica delbang

    ure Data puede realizar operaciones matemáticas pero es importante conocer elfuncionamiento y orden de realización de las operaciones en base al orden enque se conecte el bang con los inlets a los que afecte.

    FIGURA 7. SUMA ERRONEA.

    Al hacer clic en el bang la primera vez, el objeto número quealmacena el resultado mostrará 10. ¿Por qué 10 y no 15?.

    El motor de Pure Data envía los bangs de acuerdo al orden enel que se conectaron los objetos mensaje, que actúan comooperandos, al objeto bang. Como el primero en conectarsefue el 10, el objeto + que actúa como operador solo recibirá el

    10 de un hot inlet.

    Si se hubiera conectado el bang primero al mensaje 5 y luego al 10 el resultado hubiesesido correcto debido a que el 5 está conectado al segundo argumento del objeto +. Y elobjeto + necesita el argumento de su hot inlet para activarse.

    Esto puede llegar a ser una locura a la hora de trabajar con Pure Data. La solución esusar un objetotrigger , el cual forzara a hacer bang en los inlets del objeto ‘+’ de derechaa izquierda terminando por su hot inlet.

    FIGURA 8. SUMA CORRECTA.

    El objeto trigger ‘escupe’ sus salidas siempre de derechaa izquierda y por cada outlet saldrá el tipo de datodefinido en sus argumentos. Siempre tendrá un soloinlet y tantos outlets como argumentos se escriban. Eneste caso al escribir 2 argumentos de tipo bang secrearan 2 outlets y por cada uno de ellos se enviaranmensajes bang. Una forma resumida y equivalente de

    representar ese mismo trigger hubiera sido:

    LECCIÓN

    2P

  • 8/18/2019 Introducción a Pure Data

    14/71

    I N T R O D U C C I Ó N A P U R E D A T A

    12

    FIGURA 9. TRIGGER.

    En el trigger entrará el mensaje ‘dog my cats’, pero ese

    mensaje lleva consigo la señal de bang al hacer clic sobreél. Por el outlet izquierdo, como indica el tipo delargumento del trigger, saldrá un mensaje de tipo bangmientras que por el outlet derecho cualquier cosa(anything) que no sea la señal bang, por tanto, saldrá elmensaje en cuestión. En la consola se imprimirá:

    b: dog my catsa: bang

    Metro

    Uno de los objetos mas útiles a la hora de hacer música con Pure Data es el objetometro el cual permite generar bangs a intervalos regulares como si fuera unmetrónomo obteniendo así un ‘ritmo’.

    FIGURA 10. METRO.

    Para activar el metro se necesita, en su hot inlet un 1 ypara desactivarlo un 0 o un mensaje stop. Siendo másespecífico, para activarlo solo se necesita algo distintode 0 o un mensaje bang. Su segundo inlet es paraconfigurar la frecuencia o tempo del metro, enmilisegundos. En nuestro ejemplo se generará unbang cada medio segundo. Suele ponerse un objetobang en su salida para visualizar el ritmo que marca.

    FIGURA 11. METRO BPM.

    En la mayoría de programas de música, el tempo, viene dado enbpm (beats per minute). En la figura 11se muestra un parche que equivale a un metro bpm.Primero se hace el calculo para pasar de bpm amilisegundos, para ello, se dividen 60000 milisegundosque hay en un minuto ente el numero de beats que sequiera por minuto. 60000/144=416.6. Aproximando a416, este será el segundo argumento en milisegundosdel objeto metro. Con el objetoint , que traduce elbang a numero, el +1, el %8 y ese entrecruce de cabesse consigue hacer un contador de 0 a 7 en el que se

    visualizará la velocidad de incremento generada por elmetro. Obsérvese como al ir incrementando el BPMel contador irá contando mas rápido.Nota

    Los objetos número se crean por defecto a 0. Se puedenincrementar pulsando con el ratón y subiendo hacia arribao hacia abajo para decrementar. Si a la vez se pulsa la tecla‘mayusculas’ este incremento será decimal.

  • 8/18/2019 Introducción a Pure Data

    15/71

    I N T R O D U C C I Ó N A P U R E D A T A

    13

    MIDI y Makenoteno de los usos fundamentales de Pure Data es la manipulación deinstrumentos midi. Para el diseño de sonido resulta muy útil conectarinstrumentos midi y controlar sus parámetros desde Pure Data.En este manual se usará un instrumento midi virtual, de manera que este

    instrumento interprete y reproduzca las señales midi generadas por Pure Data.Concretamente se usaráFM 8 de Native Instruments( http://www.native-instruments.com/es/products/komplete/synths/fm8/ ). Para ‘conectar’ ambosprogramas se usará una pequeña aplicación o driver llamadoloopMidi ( http://www.tobias-erichsen.de/software/loopmidi.html ), capaz de crear un puertomidi virtual (loopMidiPort).

    FIGURA 12. LOOPMIDI Y FM8.

    LECCIÓN

    3U

  • 8/18/2019 Introducción a Pure Data

    16/71

    I N T R O D U C C I Ó N A P U R E D A T A

    14

    Tras arrancar loopMidi, se abrirá FM8 y en la barra de menú se seleccionaráFile→→→ → Audio and MIDI Settings…

    , en la pestaña ‘MIDI’ se activará ‘loopMIDI Port’ enla zona ‘Input Interface’. En Pure Data seleccionaráMedia→→→ → Preferencias de MIDI… yen ‘Dispositivo de salida 1’ se seleccionará ‘loopMIDI Port’. De esta forma seconseguirá que loopMIDI haga de ‘cable’ de conexión entre ambos programas ycualquier nota midi creada y reproducida en Pure Data será interpretada y sonará enFM8 pudiendo reproducirla con multitud de instrumentos.

    FIGURA 13.CONFIGURANDO LOOPMIDI COMO PUERTO DE ENTRADA EN FM8

    Y DE SALIDA EN PURE DATA.

    MakenoteCon makenote se pueden construir notas midi con una velocidad y duración enmilisegundos definidas. Haciendo un símil, esa velocidad se relaciona con la fuerza ointensidad con la que se pulsa la tecla del teclado y la duración sería el tiempo que setenga pulsada esa tecla. Estos parámetros serían cold inlets o inlets derechos del objetomakenote, su hot inlet o inlet izquierdo sería el de la entrada de la nota en cuestión, esdecir, la tecla que se pulsa.

    Los outlets de makenote serán de nuevo la nota y la velocidad que servirán de entrada a noteout el cualse encarga de enviar la nota midi al puerto de salida,loopMidi en nuestro caso.Con el mensaje 60 85 400 se está generando unanota 60, pulsando con velocidad o ‘fuerza’ de 85 ydurante 400 milisegundos.Pulsando el bang se generan tres notas 60, 64 y 67.En FM8 se puede observar como se pulsan tresteclas a la vez con una velocidad de 80 y durante 50milisegundos.

  • 8/18/2019 Introducción a Pure Data

    17/71

    I N T R O D U C C I Ó N A P U R E D A T A

    15

    FIGURA 14. MAKENOTE.

    A parte de los inlets de la nota y velocidad de noteout, el tercer inlet es para indicar canal midi por el que se transmitirá la nota. Existen 16 canales diferentes.

    Hay dos objetos muy interesantes y útiles para aumentar el control midi. Conctlin yctlout ,Pure Data puede recibir o enviar mensajes de control.

    FIGURA 15. CTLOUT.

    Inlet 1: valor a enviar. (0-127).Inlet 2: número de control.Inlet 3: canal midi.En las especificaciones de programas de música como puede serReason o Fruity Loops , los botones de los instrumentos tienenasociado un número. Si el botón que regula la frecuencia decierto instrumento es el 74, con el patch de la figura 15 se podrácontrolar ese botón desde Pure Data.

    Nota

    El objeto morado que controla la frecuencia es un objetovslider (vertical slider) que envía númerosa ctlout, se autogenera creando un objeto con la palabra reservada ‘vslider’. El vslider se puconfigurar pulsando con el botón derecho sobre él y seleccionando ‘Propiedades’, de forma quepondrá ese rango de 0 a 127. Con ‘hslider’ se creará la versión horizontal, elhslider .

  • 8/18/2019 Introducción a Pure Data

    18/71

    I N T R O D U C C I Ó N A P U R E D A T A

    16

    Lógica condicional con spigot ymoses

    a lógica condicional es la técnica con la que se hace que los parches tomendecisiones en base a las entradas. La lógica condicional más simple es probar sialgo es cierto, “si algo es cierto realiza tal acción”. Se actuará de forma similarque en losif de un lenguaje de programación, “si algo es cierto haz la acción A,

    si es falso, haz la acción B”.

    SpigotDeja pasar lo que entra por su inlet izquierdo o hot inlet y lo expulsa por su outlet sólosi su inlet derecho o cold inlet recibe algo distinto de 0. Actúa como si fuera una llavede paso.

    FIGURA 16. SPIGOT.

    Se comparan dos números con el objeto >. Si esacomparación es cierta se devuelve 1 y si no lo es sedevolverá 0. La certeza de la comparación provocaráque el spigot se ‘abra’ y ese mensaje 1 active el triggery por tanto se genere sonido. Si la comparación es

    falsa el spigot quedará ‘cerrado’, el trigger no seactivará y no sonara ningún sonido.

    LECCIÓN

    4L

  • 8/18/2019 Introducción a Pure Data

    19/71

    I N T R O D U C C I Ó N A P U R E D A T A

    17

    MosesSi el valor de su hot inlet o inlet izquierdo es menor que su cold inlet o inlet derecho(argumento), ese valor, saldrá por su outlet izquierdo. Si el valor de hot inlet o inletizquierdo es mayor o igual que su cold inlet o inlet derecho (argumento), ese valor,saldrá por su outlet derecho.

    FIGURA 17. MOSES.

    Se comparan dos números, elde entrada del moses y el de suargumento, 50. Si el valor deentrada es < 50 sonarán lasnotas 60 y 67 asociadas a suoutlet izquierdo. Si el valor deentrada es ≥ 50 sonarán lasnotas 66 y 71 asociadas a suoutlet derecho.

  • 8/18/2019 Introducción a Pure Data

    20/71

    I N T R O D U C C I Ó N A P U R E D A T A

    18

    Secuenciador simplen secuenciador es dispositivo físico o programa que permite reproducirsonidos de forma secuencial mediante una interfaz de control conectada auno o mas instrumentos musicales electrónicos. En este caso, la interfaz decontrol será MIDI y estará gobernada por Pure Data y FM8 (siempre a

    través de loopMidi) se encargará de cargar el instrumento.

    FIGURA 18. SECUENCIADOR SIMPLE.

    Aqui un secuenciador simple con 8 notasdiferentes. Para ello se crea un contador conel objetocounter de los mensajes bang queenvíe el objeto metro a una frecuenciacontrolada y que podrá cambiarse enejecución. A ese contador se le aplicará laoperación %8 para obtener una secuencia de8 valores de 0 a 7. Estos valores determinaránla nota que suena con ayuda de un selectorimplementado mediante el objetosel .

    SelEl objeto sel tiene tantos outlets comoargumentos se le añadan mas uno extra. Sufuncionamiento es sencillo, compara el valorde entrada con esos argumentos y si ese valores igual al n-esimo argumento enviará unmensaje bang por su n-esimo outlet, si nocoincidiera con ningún de sus argumentos elbang se enviaría por el outlet extra.

    FIGURA 19. SEL.

    LECCIÓN

    5U

  • 8/18/2019 Introducción a Pure Data

    21/71

    I N T R O D U C C I Ó N A P U R E D A T A

    19

    CounterCuenta el número de bangs recibidos.

    CONTADOR HASTA 50

    CONTADOR QUE EMPIEZA EN 50 Y HASTA 100

    FIGURA 20. INICIALIZACIÓN DE COUNTER

    FIGURA 21. INLETS Y OUTLETS DE COUNTER.

  • 8/18/2019 Introducción a Pure Data

    22/71

    I N T R O D U C C I Ó N A P U R E D A T A

    20

    Números aleatoriosn este capítulo se exponen varios objetos de Pure Data que resultan muyútiles para generar sonidos electrónicos. Se trata de objetos que generannúmeros aleatorios con cada bang que reciben. Estos números podrán serenteros o decimales e incluso podrán ir creciendo o decreciendo

    aleatoriamente. Se verá como manejar probabilidades mediante el uso de númerosaleatorios y el objeto moses visto en la anterior lección 4.

    FIGURA 22. RANDOM.

    Randomrandom genera números aleatorios entre 0 y n-1 a ritmo de losmensajes bang recibidos por su hot inlet, siendo n elargumento o cold inlet del objeto. Conseed se asegura quesiempre genere la misma secuencia de números aleatorios. En

    el patch de la figura 22 se generarán numero aleatorios de 0 a99 cada segundo, al enviar el mensaje seed 17, se generará lasecuencia 6, 31, 58, 7, 11, 41…

    randomF es igual que random salvo que genera númerosdecimales.

    Nota

    El objeto rojo de la figura 23 es un objetotoggle , autogenerado al escribir la palabrareservada ‘toggle’ o ‘tgl’. Al hacer clic enviará un mensaje bang y se marcará con un

    aspa, al hacer clic de nuevo se enviara un mensaje de stop y desaparecerá el aspa.

    FIGURA 24. TRIPLERAND.

    TripleRandtripleRand genera una lista de 3 números aleatorios decimalesentre 0 y n-1, siendo n el argumento de creación. Con elmensaje 30 10 2 se establece el rango máximo de cadanúmero de la lista.unpack desempaqueta la lista y las separa en tantos númeroscomo argumentos tenga.

    LECCIÓN

    6E

  • 8/18/2019 Introducción a Pure Data

    23/71

    I N T R O D U C C I Ó N A P U R E D A T A

    21

    FIGURA 25. DRUNK.

    Drunkdrunk genera números aleatorios entre 0 y n-1 pero estos iránascendiendo y descendiendo aleatoriamente pero con unatendencia ascendente primero y descendente después. Talcomo el nombre indica, los números irán ‘tambaleándose’como un borracho (drunk) pero poco a poco llegará a sudestino. Con el mensaje 20 se actualiza el limite superior a 20(0-19). Con el mensaje 5 se hace que los ‘saltos’ oincrementos sean mayores.

    En la lección 4 se vió como el objeto moses compara su hot inlet (H) y su cold inlet (C)de forma que si H

  • 8/18/2019 Introducción a Pure Data

    24/71

    I N T R O D U C C I Ó N A P U R E D A T A

    22

    Enviar y recibir (send & receive)n Pure Data se puede enviar mensajes de un objeto a otro sin necesidad deconectarlos con cables. Esto se consigue con el par de objetossend y receive(o‘s’ y ‘r’ de forma abreviada). El objeto send envía un mensaje (en la aplicaciónPure Data se usa el enviar símbolo) desde un lugar del patch a otro objeto que

    está muy separado de su origen, con receive se obtiene el valor de ese mensaje, paraello solo se tendrá que usar el mismo nombre como argumento al crear los objetossend y receive. Esta estrategia dará limpieza y legibilidad a los parches y permite que umismo mensaje enviado pueda ser usado en varios objetos simultáneamente y todo ellosin necesidad de cables.

    FIGURA 27. USO DE SEND Y RECEIVE.

    En el patch de la figura 27 se representa unejemplo de uso de send y receive. Concretamenteel tempo o frecuencia, con la que el metro envíabangs a makenote y por tanto se genera unsonido, es usado tanto como para el metro comopara establecer la duración de la pulsación enmakenote (inlet derecho). Al hacer clic en losmensajes 500 o 750 se va cambiando este valortempo.KnobEl objeto representado por el círculo abierto dearriba a la izquierda representa unknob .En los aparatos de música electrónica el knob esun botón que al girarse manipula el sonido. Seautogenera al escribir la palabra reservada ‘knob’.

    FIGURA 28. PROPIEDADES DEL KNOB.

    Al hacer clic con el segundo botón del ratónsobre el knob y seleccionar ‘Propiedades’ seaccederá a la ventana ‘KNOB Propiedades’ dondeaparte de configurar su límite inferior (izquierda) ysu rango superior (derecha)en la casilla ‘Enviarsímbolo’ (send) se pondrá ‘tempo’ para podercontrolar ese tempo girando el knob. También sepodría usar su outlet en vez de ‘enviar símbolo’(send).

    LECCIÓN

    7E

  • 8/18/2019 Introducción a Pure Data

    25/71

    I N T R O D U C C I Ó N A P U R E D A T A

    23

    El objeto expr as operaciones matemáticas en Pure Data se hacen con objetos querepresentan operadores y operandos y triggers para determinar el orden deejecución de dichas operaciones. Con el objeto expr se evitará toda esacomplicación, pudiendo hacer esas operaciones deforma natural en una simple

    línea y determinando el orden con el uso clásico de paréntesis.

    FIGURA 29. USO DE EXPR.

    El objeto expr tendrá tantos inlets como variables ‘$f’ se usen en las expresiones ytendrá tantos outlets como expresiones se definan dentro del objeto expr. En elejemplo de la figura 29 se usan 2 variables ($f1 y $f2, por tanto dos inlets) y solo hayuna expresión (un outlet).

    FIGURA 30. EXPR CON VARIAS EXPRESIONES.

    En el patch de la figura 30 se tiene unejemplo de expr con 4 expresiones separadaspor ‘;’ que generan 4 outlets. Si la entrada dela expresión viniera en forma de lista, estasería interpretada de izquierda a derecha.Debajo se ven los distintos resultados si sehiciera clic sobre el bang o si se hiciera sobrela lista 45 457.

    LECCIÓN

    8L

  • 8/18/2019 Introducción a Pure Data

    26/71

    I N T R O D U C C I Ó N A P U R E D A T A

    24

    FIGURA 31. EXPR Y EXPRESIONES LÓGICAS.

    reacTIVision y Tuio ClientSe hará un ejemplo práctico de uso del objeto expr. Para ello se conectará Pure Data areacTIVision que es un software opensource y multi-plataforma para reconocimiento depatrones fiduciales creado en laUniversidad Pompeu Fabra de Barcelona. Como puente deconexión entre reacTIVision y Pure Data existe un software llamadoTuio Client quetambién está disponible para otros lenguajes de programación.

    FIGURA 32. FIDUCIAL 7.

    La idea general es que Pure Data genere sonido almover los fiduciales delante de la cámara web.Los fiduciales no son mas que unos dibujos opatrones numerados que reacTIVision es capazde distinguir e incluso detectar su movimiento. Tuio Client facilita una serie de parches paraañadir a Pure Data que permitirá usar el objetoTuioClient el cual recibe información (mensaje)desde reacTIVision. La única labor será entendere interpretar esos mensajes a nuestro antojo conPure Data.

  • 8/18/2019 Introducción a Pure Data

    27/71

    I N T R O D U C C I Ó N A P U R E D A T A

    25

    Puede ser que no se disponga de cámara web en el ordenador. La solución es usar el

    simuladorTuio Simulator que incluye una abstracción de los 36 fiduciales y una ‘mesa’similar a la delreactable .

    Tanto Tuio Simulator como Tuio Client se pueden descargar desdehttp://reactivision.sourceforge.net/.

    FIGURA 33. DESCARGA DE TUIO SIMULATOR Y TUIO CLIENT.

    No es necesario instalar Tuio Simulator, bastara con descomprimir el .zip y ejecutar‘TuioSimulator.jar’. El .zip de Tuio Client contiene una carpeta que se deberá incluir enel path de Pure Data. Para seleccionando en la barra de menúEditar→ Preferencias yen la ventana que se abre añadir la carpeta ‘TUIO_PureData’ que se descomprimirápreviamente.

  • 8/18/2019 Introducción a Pure Data

    28/71

    I N T R O D U C C I Ó N A P U R E D A T A

    26

    FIGURA 34. TUIO SIMULATOR.

    FIGURA 35. PATCH QUE CALCULA LA DISTANCIA ENTRE FIDUCIALES 1 Y 4

    Cada vez que se mueve un fiducial sobre la mesa (zona blanca del Tuio Simulator), elobjeto TuioClient recibe mensajes con información de ese movimiento. Hay 3 tipos de‘movimientos’:addObject , cuando un fiducial entra en la mesa,updateObject , cuando unfiducial cambia su posición en la mesa yremoveObject , cuando un fiducial sale de la mesa.

  • 8/18/2019 Introducción a Pure Data

    29/71

    I N T R O D U C C I Ó N A P U R E D A T A

    27

    FIGURA 36. CONSOLA MOSTRANDO FIDUCIAL 6.

    Observesé este tipo de mensajes en la

    consola añadiendo un objeto print alobjeto TuioClient. En la figura 36 sepuede observar el rastro de mensajesque ha dejado la simple acción deintroducir el fiducial 6 en la mesa yretirarlo de ella.

    En el mensaje ‘updateObject 9 60.534375 0.075 0 0 0.322581 0 -3.269260’. El numero 9 es un contador que seincrementa cada vez que un fiducialentra en la mesa.

    El numero 6 es el identificador del fiducial. El par (0.534375 0.075) se relacionan conlas coordenadas (X, Y) dentro de la mesa y el resto de números están relacionados conla rotación del fiducial.

    En la figura 35 se presenta el parche que interpreta esos mensajes. Con el objetoroute seconsigue canalizar el mensaje de acuerdo al primer elemento del mensaje quitando delmensaje ese primer elemento. Por tanto el mensaje ‘updateObject 5 1 0.2515630.308333 0 0 0 0 0 0’ hará que por el tercer outlet salga ‘5 1 0.251563 0.308333 0 0 0 0 0’. Con el objeto zl slice 1 se dividirá el mensaje en dos trozos a partir del 1er carácter, eltrozo izquierdo con ese primer carácter incluido saldrá por el outlet izquierdo y el trozo

    derecho saldrá por el outlet derecho (ver lección 13). Así se habrá quitado el contadorde fiduciales que no se necesita. De nuevo con el route se canaliza cada mensaje a suoutlet de forma que por el outlet izquierdo de route 1 4 saldrán los mensajesrelacionados con el fiducial 1 y por el outlet derecho saldrán los mensajes relacionadoscon el fiducial 4. Con unpack f f se separarán las coordenadas X e Y del elemento.

    FIGURA 37. CALCULO DE LA DISTANCIA.

    La fórmula de la figura 37 calcula la distanciaentre dos objetos con coordenadas (x1, y1) y (x2,y2) respectivamente, que es justamente lo quehace el objeto expr en su primera expresión(outlet izquierdo). Por el segundo outlet saldrá un0 cuando esa distancia sea menor o igual a 0.5 y 1cuando sea mayor a 0.5, para así determinarmediante el objeto sel que nota sonará.

    Ver en youtube: ‘Mini reactable con Pure Data, FM8 y reacTIVision’:https://www.youtube.com/watch?v=jS8XdQrlTa4

  • 8/18/2019 Introducción a Pure Data

    30/71

    I N T R O D U C C I Ó N A P U R E D A T A

    28

    Subpatchingualquier canvas de un parche puede contener subparches que contienen suspropios canvas pero que comparten el mismo archivo físico que el parcheprincipal, al guardar el parche principal se guardaran todos sus subparches.Los subparches tienen inlets y outlets que se deben definir, por tanto, se

    parecen a los objetos regulares. El subpatching es un método para ocultar código,abstraerse de él y así dar limpieza y orden al programa final. Para crear un subparche secreará un objeto que empiece por ‘pd’, un espacio y el nombre del subparche de talmodo que al hacer clic en ese objeto se abrirá una ventana mostrando el interior delsubparche en el que se podrán crear más subparches.

    FIGURA 38. SUBPATCHING

    Para establecercomunicación entre elparche inicial y elsubparche se usaránobjetos inlet y outlet demanera que al crear unobjeto inlet dentro delsubparche le aparecerá elcuadradito de inlet alobjeto pd del parcheprincipal. Los outletssiguen la misma lógica.El orden de los inlets delobjeto pd del parcheprincipal será el orden de

    creación de los objetosinlet en el subparche.Nota

    El objeto azul se denominahradio y es básicamente un selector de 0 a n-1, siendo el n eltamaño, que puede ser modificado en las propiedades del objeto. Se autogenera creando unobjeto y escribiendo la palabra reservada ‘hradio’. En este caso el selector de tempo (Tempochooser) tiene tamaño 4 y por tanto enviara valores de 0 a 3. Estos valores se reciben con elobjeto receive ‘r sequence’. Previamente, y como se vió en la pasado lección 7, en laspropiedades del hradio se rellenará el campo ‘Enviar símbolo’ con el valor ‘sequence’.

    LECCIÓN

    9C

  • 8/18/2019 Introducción a Pure Data

    31/71

    I N T R O D U C C I Ó N A P U R E D A T A

    29

    A Beat Machinena caja de ritmos (beat machine) es un instrumento musical electrónico quepermite componer, programar y reproducir patrones de ritmo mediante unsecuenciador interno y un generador de sonidos de percusión. A diferenciade un secuenciador convencional, la caja de ritmos se basa en la

    programación de patrones, que son grupos limitados de compases que se reproducende forma cíclica. Esto significa que una vez puesta en marcha, la caja de ritmosreproducirá el mismo patrón en bucle (loop) hasta que no se dé la orden de pasar aotro.

    En este práctico capítulo se construirá una caja de ritmos con Pure Data y se conectaráa Reason una vez más mediante loopMidi. Reason es un software musical avanzado queemula todo tipo de instrumentos musicales y que permite ser controlado con uncontrolador midi. Precisamente ese controlador midi es el que se creará.

    Hay que asegurarse que Pure Data tiene como dispositivo de salida el puerto midi virtual loopMidi ( Media→ Preferencias de Midi… ) y que Reason tiene como dispositivode entrada midi el puerto midi virtual loopMidi ( Edit→ Preferences, Page: Advanced,BUS A: loopMidi ). De esta forma se asegurará la conexión midi entre Pure Data yReason. Ahora se activará el ‘BUS A’, asociado a loopMidi en la interfaz de hardwarede Reason pulsando en el botón ‘ADVANCED MIDI’. Bajará una nueva ventana enla que se podrá seleccionar el ‘BUS A’. Obsérvese que aparece la leyenda ‘loopMidi

    Para la caja de ritmos se usará un instrumento denominado ‘Dr. Octo Rex LoopPlayer’. Se activará haciendo clic en la barra de menú de Reason y seleccionandoCreate → Dr. Octo Rex Loop Player. Una se vea el aparato, el cual es azul, se volverá a la

    zona ‘ADVANCED MIDI DEVICE’ y en el ‘Channel 1’ se seleccionará dichoaparato. Hay que asegurarse que las ‘conexiones traseras’ son correctas. Para ellopulsando el tabulador se mostrará la parte de atrás de los aparatos. Hay que asegurarseque las salidas ‘AUDIO OUTPUT’ del aparato ‘AUDIO I/O’ están conectadas con lasalida principal (‘MAIN OUTPUT’) del ‘Dr. Octo Rex’. (Ver figuras 39 y 40 de lapágina siguiente).

    La idea es hacer un parche en Pure Data y enviar las notas midi al ‘ADVANCE MIDI’de Reason vía loopMidi. Estas notas serán interpretadas con el instrumento ‘Dr. OctoRex’ en el que se podrán cargar beats y melodías prediseñadas.

    LECCIÓN

    10U

  • 8/18/2019 Introducción a Pure Data

    32/71

    I N T R O D U C C I Ó N A P U R E D A T A

    30

    FIGURA 39. REASON

    FIGURA 40. CABLEADO TRASERO

  • 8/18/2019 Introducción a Pure Data

    33/71

    I N T R O D U C C I Ó N A P U R E D A T A

    31

    La estructura principal del parche será un objeto metro que genere las notas con la

    ayuda de makenote. El BPM se controlará mediante el subparche ‘bpm’ que seencargará de hacer el cálculo para pasar de bpm a milisegundos porque el inlet derechoo cold inlet del objeto metro para la frecuencia de los bangs viene determinado enmilisegundos. Por tanto, una entrada o inlet del subparche será el bpm. Como segundoinlet de entrada se configurará un selector de nota para poder optar por 4 velocidadesdistintas de bpm.

    FIGURA 41. PARCHE PRINCIPALFIGURA 42. SUBPARCHE (BPM)

    El ciclo inicial de la caja de ritmos contendrá 8 notas, de la 42 a la 49. Para hacer queesa longitud del ciclo de las notas pueda cambiarse sobre la marcha y que sea desde 1hasta 8, se crea el hradio ‘Cycle length’ y así ir cambiando esa operación módulo (%sobre la marcha con la ayuda del mensaje ‘cycleNotes’.

    También se crea un hslider (slider horizontal) para poder cambiar el ‘offset’ de creaciónde notas y así desplazarse por el teclado y no estar limitado solo al rango 42-49,mensaje ‘offset’.

  • 8/18/2019 Introducción a Pure Data

    34/71

    I N T R O D U C C I Ó N A P U R E D A T A

    32

    Losvsliders (vertical slider) ‘Freq’ y ‘Res’ son para enviar mensajes de control al puerto

    MIDI y así controlar los botones ‘Freq’ y ‘Res’ de la botonera ‘FILTER’ del ‘Dr. OctoRex’. Según la documentación de Reason, para el instrumento Dr. Octo Rex’ losnúmeros de mensajes de control que gobiernas esos botones son el 74 y 71.

    FIGURA 43. DOCUMENTACÍÓN CONTROL MIDI DE REASON

    Ver en youtube: ‘Beat Machine with Pure Data and Reason’:https://www.youtube.com/watch?v=SCM2XEXAx4I

  • 8/18/2019 Introducción a Pure Data

    35/71

    I N T R O D U C C I Ó N A P U R E D A T A

    33

    Gráficos con tablas y arraysas tablas y los arrays suelen ir de la mano en Pure Data. La tabla es un arrayalmacenado en un subparche y el array es la representación gráfica de esa tablaen el canvas. Al crear una tabla se crea un objeto sin inlets ni outlets y al hacerclic sobre el se abre el subparche que contiene el array como la representación

    gráfica de la tabla. Se entenderá fácilmente con el ejemplo de la figura 44.

    FIGURA 44. TABLA Y SU SUBPARCHE ARRAY

    Para crear el array directamente en el canvas principal sin tener que recurrir a unsubparche se seleccionará en la barra de menúPoner → Matriz.

    Tabwrite

    Existen varias formas para escribir en una tabla, una de ellas es con el objetotabwrite .En su hot inlet se indicará el valor a guardar y en el cold inlet o inlet derecho se indicaráel índice donde guardar ese valor.

    FIGURA 45. TABWRITE.

    El índice equivale a la coordenada X y el valor a lacoordenada Y. Primero se marca el índice y luego semarca el valor a guardar en dicho índice.Si se enviara un mensaje con un par de números alhot inlet el primero sería considerado el valor y elsegundo el índice.

    LECCIÓN

    11L

  • 8/18/2019 Introducción a Pure Data

    36/71

    I N T R O D U C C I Ó N A P U R E D A T A

    34

    Otra forma de escribir en una tabla es usando un objeto mensaje en el que se indicará

    el nombre de la tabla, el índice en el que se empezará a guardar valores y una lista de valores.

    FIGURA 46. ESCRITURA EN TABLA CONMENSAJE.

    Con el valor 5 se indica que es el primer índice en elque se empezara a guardar valores, por tanto en elíndice 5 se guardara 0.2, en el 6 se guarda 0.5, en el 7se guarda -0.3 y en el 8 el valor 0.6.

    TabreadPara leer de una tabla se usa el objetotabread . En su hot inlet se indicará el índice que sequiere leer y por su outlet se enviará el valor.

    FIGURA 47. TABREAD.

    Un uso muy útil de tabread es como secuenciador de notas de forma que una tablaalmacena las notas que sonarán en ese orden. Para ir cambiando de notas musicalesbastará con ir enviando distintos mensajes de escritura en la tabla.

    FIGURA 48. USO DE TABREAD COMO SECUENCIADOR.

  • 8/18/2019 Introducción a Pure Data

    37/71

    I N T R O D U C C I Ó N A P U R E D A T A

    35

    Con el uso de mensajes también se podrá cambiar la apariencia y configuración del

    array. Conresize se consigue que el array muestre solo el rango de índices que le ordene.

    FIGURA 49. RESIZE.

    Para cambiar las dimensiones en altura y anchura se usabounds . El primer valor (0)indica el índice de inicio del gráfico en su eje horizontal, el segundo valor (1) indica laaltura del gráfico hacia arriba, el tercer valor (5) indica el índice final del gráfico en sueje horizontal y el cuarto valor (0) indica la altura del gráfico hacia abajo.

    FIGURA 50. BOUNDS.

    Conxticks y yticks se podrán añadir marcas tanto al eje vertical como al horizontal. Conel primer valor se indica el valor a partir del cual se pondrán las marcas, el segundo valor es para indicar el espacio entre las marcas y el tercero para indicar cada cuantasmarcas se pondrá una marca más grande.

    FIGURA 51. XTICKS / YTICKS.

  • 8/18/2019 Introducción a Pure Data

    38/71

    I N T R O D U C C I Ó N A P U R E D A T A

    36

    Para añadir etiquetas se usaxlabel y ylabel . El primer valor indica la separación entre el

    eje y la etiqueta y el resto de valores son las etiquetas a añadir.

    FIGURA 52. XLABEL / YLABEL.

    El objeto expr resulta muy útil para leer tablas. En la figura 53 se aprecia un ejemplo desu uso.

    FIGURA 53. SECUENCIADOR LEYENDO UNA TABLA CON EXPR.

  • 8/18/2019 Introducción a Pure Data

    39/71

    I N T R O D U C C I Ó N A P U R E D A T A

    37

    Objetos útiles y manejo delistas

    as listas y su manipulación podrían suponer un manual completo. Usando sólooperaciones con listas, Pure Data tiene las mismas capacidades que un lenguajede programación completo comoLISP . A parte de las operaciones con listasdefinidas en Pure Data existen otros paquetes de operaciones con listas para

    añadir a Pure Data como por ejemplo la colecciónlist-abs de Frank Barknecht( http://puredata.info/author/fbar ) que contiene multitud de operaciones avanzadas deordenado, inserción, búsqueda y operaciones condicionales. En este capítulo solo se verán algunos simples objetos de básicas operaciones con listas.

    Pack / UnpackCon el objeto pack se empaquetan datos de distinto tipo en una lista y conunpack sedesempaquetan.

    FIGURA 54. PACK Y UNPACK.

    La cantidad y tipos de los datos a empaquetar odesempaquetar vienen determinados por losargumentos que acompañen al objeto pack ounpack. En el caso de pack se crearan tantosinlets como datos se quieran empaquetar, en elcaso de unpack se crearan tantos outlets comodatos se quieran desempaquetar.

    LECCIÓN

    12L

  • 8/18/2019 Introducción a Pure Data

    40/71

    I N T R O D U C C I Ó N A P U R E D A T A

    38

    $Un objeto mensaje puede funcionar como una plantilla. Cuando un mensaje contiene‘$1’ se entiende que se recibirá un mensaje de entrada en forma de lista.

    FIGURA 55. USO DE $.

    Cada elemento con el carácter dólar $1, $2,$3,… se corresponderá con los elementos deuna lista de izquierda a derecha o siguiendo elorden definido por los caracteres dólar.

    zlslice / ecilsDivide una lista en dos a partir de un índice dado, el primer trozo saldrá por su outletizquierdo y el segundo por su outlet derecho. Con slice el índice se cuenta desde elprincipio y con ecils desde el final.

    FIGURA 56. ZL SLICE Y ZL ECILS.

    group

    FIGURA 57. GROUP.

    Devuelve grupos de elementos de la listadada por su hot inlet, cada grupo tendrátantos elementos como se indiquen en suargumento o por su cold inlet.

    join

    Une dos listas.

  • 8/18/2019 Introducción a Pure Data

    41/71

    I N T R O D U C C I Ó N A P U R E D A T A

    39

    FIGURA 58. JOIN.

    union

    FIGURA 59. UNION.

    Envía el contenido común y no común delas litas, o sea, el contenido de ambas listassin repetir ninguno.

    sect

    FIGURA 60. SECT.

    Solo envía el contenido común de las litas.

    Bondo

    Como todos los objetos, el objeto ‘pack’ para empaquetar una lista sólo efectuará elempaquetado cuando su hot inlet o inlet izquierdo sea el que se active. Para hacer queel pack u otro tipo de objeto haga su función al activarse cualquiera de sus inlets seutilizará el objetobondo.

    FIGURA 61. BONDO.

    El bang del final se activará al modificarcualquiera de los objetos número delprincipio. Sin el bondo, sólo se activaría altocar el objeto número que correspondecon el hot inlet.

    FIGURA 62. BONDO Y EXPR.

    El bondo es muy útil para el uso defunciones en el que cambie alguno de susparámetros de entrada. Se usa mucho conel objeto expr.

  • 8/18/2019 Introducción a Pure Data

    42/71

    I N T R O D U C C I Ó N A P U R E D A T A

    40

    Abstraccionesuando hay cierta función o proceso que se repite y se usa mucho en tusparches de Pure Data, una buena idea es crear una ‘abstracción’ de esa funcióno proceso de forma que lo podrás modificar una sola vez y su funcionalidadseguirá viva en todos los parches en los que se use. Es una estrategia de

    modularización.

    Para crear una abstracción basta con crear un parche con el proceso y referenciarlo enotros parches con el mismo nombre con el que se guardó. Veámoslo con detalles.Un ejemplo de lecciones anteriores sería el cálculo de los milisegundos a partir de un‘bpm’ dado para poder trabajar cómodamente con el objeto metro que como ya se viófunciona recibiendo la frecuencia en milisegundos.

    FIGURA 63. BPM A MILISEGUNDOS.

    Se creará un parche nuevollamado‘bpm-mseg.pd’. Se añadirá eseparche al path enEditar→→→ → Preferencias , indicandola carpeta donde se guardó elparche. Es aconsejable tenertodos los parches deabstracciones ordenados yguardados en una misma carpetaque sea la que se añada al path.

    FIGURA 64. USANDO LA NUEVA ABSTRACCIÓN.

    Con el objeto f $1 se hará que laabstracción puede recibir un

    argumento además del inlet. Parausar el nuevo objeto sólo setendrá que escribir ‘bpm-mseg’, lacual pasa a ser palabra reservada.Es muy similar a los subparches,pero con las abstracciones se creaun archivo aparte mientras que elcontenido de un subparche seguarda todo en el mismo archivo.

    LECCIÓN

    13C

  • 8/18/2019 Introducción a Pure Data

    43/71

    I N T R O D U C C I Ó N A P U R E D A T A

    41

    Leyendo audio con readsf~on el objetoreadsf~ se podrá leer un archivo de sonido de tipo wav o aiff. Enprimer lugar se deberá abrir el archivo de sonido usando el mensaje “open” yel objeto readsf~ comenzará a leer inmediatamente, pero la salida sóloaparecerá después de enviar un “1” o el mensaje “start”, momento en el que

    se reproducirá el audio. Con un “0” o un mensaje de “stop” se parará la reproducción.

    Antes de usar el objeto readsf~ hay que asegurarse que el audio DSP (digital signalprocessor) esté encendido. Se activará seleccionando en la barra de menúMedia→ DSPEncendido o marcando el check correspondiente en la consola de Pure Data. Tambiénse puede hacer con el mensaje “pd dsp 1”.

    FIGURA 65. ACTIVAR DSP.

    Véase un ejemplo de lectura básica de un archivo de sonido:

    FIGURA 66. REPRODUCCIÓN BÁSICA.

    Lo primero será enviar el mensaje “open” paraabrir físicamente el archivo. Con start comenzarála reproducción del mismo. El objeto readsf~tendrá tantos outlets de salida de audio comocanales se indiquen en su argumento (2 en nuestrocaso) más el outlet de mas a la derecha que enviaráun bang cuando la reproducción haya finalizado.Con el objetodac~ se enviará la señal a la placa desonido, sus argumentos “1 2” son para indicar elnúmero de canales. Su hot inlet se correspondecon el lazo izquierdo del auricular y cold inlet conel lado derecho.

    LECCIÓN

    14C

  • 8/18/2019 Introducción a Pure Data

    44/71

    I N T R O D U C C I Ó N A P U R E D A T A

    42

    Osciladores osc~ras toda señal de audio en Pure Data hay un oscilador. El elementofundamental utilizado en la síntesis auditiva, al igual que en muchas otrastécnicas de síntesis, es el oscilador. Un oscilador digital es una unidadgeneradora que lee cíclicamente una función para generar una onda periódica.

    Los osciladores se usarán para generar sonido y se podrán unir más de uno para podermodular la amplitud de la onda y así crear nuevos sonidos. Los osciladores de PureData también pueden leer y escribir en tablas y otros tipos de datos.

    Se usará una señal de onda mediante un oscilador para crear un gráfico dentro de unarray a modo de osciloscopio.

    FIGURA 67. OSCILADOR.

    El objetomtof transforma una nota

    MIDI a su frecuencia numérica, con elobjeto sig~ se traduce esa señalnumérica a señal de audio. El objetoosc~ crea la onda sinusoidal con unafrecuencia inicial de 440 Hz. Esta señalde audio es enviada al objeto tabwriteque la pintará en el array oscil e irárefrescando ese gráfico cada 50milisegundos, y al objeto dac~ paraque la pase a la salida de la placa desonido. Con el objetoenv~ se podrá ver numéricamente la amplitud de laonda.

    Nota

    Los objetos de pd que manejan señal de audio se distinguen por dos características: llevan el sign~ junto al nombre del objeto, y el cable por donde circulan las muestras de audio son másgruesos que los de control.. Así por ejemplo el objeto que suma dos señales de audio se llama +~

    LECCIÓN

    15

  • 8/18/2019 Introducción a Pure Data

    45/71

    I N T R O D U C C I Ó N A P U R E D A T A

    43

    Síntesis de AM (Modulador de amplitud)La manipulación de la amplitud es una forma genial de familiarizarse con lososciladores de Pure Data y la generación de sonidos. Manipular la amplitud hace elefecto de aumentar el volumen de la señal. En la figura 68 se muestra una señal deaudio principal y su manipulación mediante un oscilador alternativo haciendo las vecesde modulador de la señal.

    FIGURA 68. MODULADOR DE AMPLITUD.

    A: Señal principal, también llamada “carrier”. Con el objetoline~ se genera la señalprincipal, el mensaje “5 10000” hace que se genere una señal con una amplitud 5progresivamente en 10000 milisegundos (10 segundos). Con el mensaje “0 5000” secambia en 5000 milisegundos (5 segundos) a una amplitud de 0, es decir, se apaga laseñal.

    B: Señal del modulador. Solapando otro objeto osc~ a o modo de modulador. Con elslider horizontal se manipulará la amplitud de la señal. Incrementando progresivamenteel knob se le dará frecuencia a dicha señal hasta ver como se aprecia la aparición de lamisma en el array.

  • 8/18/2019 Introducción a Pure Data

    46/71

    I N T R O D U C C I Ó N A P U R E D A T A

    44

    Síntesis de FM (Modulador de frecuencia)Mientras que con la modulación de la amplitud se consiguen cambios en el volumen dela señal, la manipulación de la frecuencia se usa para hacer cambios periódicos en lafrecuencia de la onda.

    En este ejemplo se crean dos ondas y se unirán para crear un sonido nuevo muy similaral típico sonido de la radio.

    FIGURA 69. MODULADOR DE FRECUENCIA.

    Carrier es la señal principal que serámodulada. El modulador consiste enun oscilador con su propia frecuenciaque tendrá un factor de multiplicacióncontrolado por “index”. Alincrementar este factor se observacomo la onda empieza a ‘vibrar’ a unafrecuencia determinada por “freq”. Entérminos generales la onda principal semueve arriba y abajo en función delmodulador y la parte del regulador deamplitud hará que la onda sea masancha o mas estrecha haciendo las veces de volumen, con el objeto line~se evitan los clicks típicos al cambiar de

    amplitud haciendo que el cambio seaprogresivo.

    En la zona inferior se consigue que las variables frecuencia, factor demultiplicación y amplitud se regulen alazar.

  • 8/18/2019 Introducción a Pure Data

    47/71

    I N T R O D U C C I Ó N A P U R E D A T A

    45

    Audio avanzado con tabread4~n este capítulo se cargará en Pure Data un archivo de audio para manipularlo. Seusará una tabla para almacenar la onda del audio y tabread4~ para leer de ella anuestro antojo.

    LECCIÓN

    16E

  • 8/18/2019 Introducción a Pure Data

    48/71

    I N T R O D U C C I Ó N A P U R E D A T A

    46

    FIGURA 70. REPRODUCTOR CON TABREAD Y SOUNDFILER.

    1): Se crean los dos arrays donde se pintarán las ondas de audio del archivo, uno para el

    canal derecho y otro para el izquierdo.2: Con openpanel se abre el audio en cuestión. Con 'read -resize' ysoundfiler se crean losdos arrays donde se pintarán los canales del audio. soundfiler devolverá el número totalde samples que han sido leídos.

    3: Dividiendo la frecuencia de muestreo del audio (44100) entre el nº total de samplesse obtiene la velocidad de reproducción del mismo.

    4: Esta velocidad de reproducción actuará como hot intlet de pashor~ que devolverá laseñal sonora preparada para que tabread4~ las lea y las pase al dac~ para sureproducción en la tarjeta de sonido.

    5: Con el objetosnapshot~ se podrá monitorear la posición de reproducción en un slidera ritmo del metro que irá refrescando esa posición cada 50 milisegundos.

    6: Manipulando el hot inlet del objeto phasor~ se podrá cambiar la velocidad dereproducción e incluso reproducir marcha atrás. Con el inlet derecho se podrán hacerbúsquedas directas.

    Ver en youtube:‘Audio Playback patch with Pure Data [tabread4~]’:https://www.youtube.com/watch?v=nToPeudym1U

  • 8/18/2019 Introducción a Pure Data

    49/71

    I N T R O D U C C I Ó N A P U R E D A T A

    47

    Open Sound Control (OSC)os objetos OSC se utilizan para compartir datos musicales a través de una red.OSC es un estándar que da estructura y formato a los mensajes de datosmusicales. OSC permite intercambiar información con multitud de dispositivoscomo eliPhone (a través deOsculator ),Dj Hero o Guitar Hero dePlayStation . En

    este capítulo se usará una aplicación musical para móvil capaz de transmitir mensajes aPure Data llamadaTouchOSC . Concretamente se usará la versión para Androidinstalada en un Samsung Galaxy S2. ( http://hexler.net/software/touchosc-android ).Primero se configurará la conexión entre el ordenador y el móvil. Ambos dispositivosdeberán estar conectados a la misma red wifi. En la aplicación TouchOSC seestablecerá una conexión con el PC, anotando como Host la IP del PC en cuestión ylos puertos, tanto para enviar información como para recibirla.

    FIGURA 71. CONFIGURACIÓN DE TOUCHOSC.

    LECCIÓN

    17L

  • 8/18/2019 Introducción a Pure Data

    50/71

    I N T R O D U C C I Ó N A P U R E D A T A

    48

    Como implementación de OSC en Pure Data se utilizará la implementaciónmrpeach .

    Será necesario importar mrpeach añadiéndola al path como en capítulos anteriores ohaciendo una importación explícita en el parche con el objetodeclare .

    FIGURA 72. RECIBIR DATOS OSC.

    Al tocar en la aplicación TouchOSC delmóvil cualquier botonera en un ‘Layout’cualquiera se apreciará como en laconsola se muestran mensajes que sepodrán interpretar como notas midi,frecuencias, vsliders, knob, etc…

    También se podrán enviar mensajes desde el PC a la aplicación TouchOSC del móvil ycontrolarla desde nuestro PC.

    FIGURA 73. ENVIAR DATOS OSC.

    Primero se deberá establecer unaconexión con el móvil. Se usará elmensaje connect con los argumentosreferentes a la IP del móvil en la red wifi y el puerto de entrada de datos.

    Con el mensaje send se enviarán losmensajes oportunos después de

    observar y estudiar previamente elfuncionamiento de los botones. Así elfader amarillo del ‘Beatmachine’ es‘/1/fader1 X’, siendo X un valor entre0 y 1.

    FIGURA 74. VISTA DEL FADER 1 DEL BEATMACHINE.

    El mensaje debe ser empaquetadopreviamente con el objeto packOSC yluego enviado con el objetoupdsend , el

    cual envía un mensaje de bang por suoutlet tras establecer una conexiónexitosa.

    Al activar el metro se verá como elfader amarillo del ‘Beatmachine’ semueve aleatoriamente con unafrecuencia de 5 milisegundos.

  • 8/18/2019 Introducción a Pure Data

    51/71

    I N T R O D U C C I Ó N A P U R E D A T A

    49

    GEMem, "Graphics Environment for Multimedia" ( http://gem.iem.at/ ), es unalibrería gráfica para Pure Data con la que se pueden generar y manipulargráficos 2D y 3D y animaciones así como procesar y modificar imágenes y videos. En este capítulo se verán los objetos más básicos y técnicas simples

    con las que podrás iniciarte para crear proyectos de más envergadura.

    Reproducción de video con GEM Antes de poder reproducir un video se deberña crear una pantalla donde reproducirlo,para ello se usará el objeto gemwinque representa la pantalla.

    FIGURA 75. USO DE GEM.

    1: Antes de crear la pantalla se deben

    especificar las dimensiones con elmensaje ‘dimen’. Con ‘create, 1’ se crearála pantalla y con ‘0, destroy’ se eliminará.2: gemhead activa o desactiva elrenderizado del video conectando con lapantalla previamente creada.3. pix_film se encargará del renderizadodel video. En su hot inlet recibirá unmensaje de apertura de archivo ‘open’ oun mensaje para iniciar (auto 1) o parar(auto 0) la reproducción. En su segundo

    inlet o cold inlet se podrá cambiar elframe a reproducir, usando un hslider sepodrá rebobinar adelante y atrás. En susegundo outlet muestra informaciónsobre el video: nº total de frames, anchoy alto.

    pix_texture carga y mapea el video enmemoria.

    LECCIÓN

    18G

  • 8/18/2019 Introducción a Pure Data

    52/71

    I N T R O D U C C I Ó N A P U R E D A T A

    50

    FIGURA 76. PANTALLA GEM. PIX_MIX 0.5.

    4. Con pix_mix se podrá hacer unafusión de dos videos distintos, pero conlas mismas dimensiones, de forma quesus dos primeros inlets recibirán objetospix_film y con el tercero se controlará el video a reproducir de forma que 0 secorresponde con el video del primer inlety 1 con el video del segundo inlet. Pordefecto, 0.5, mostrará una fusión de losdos.

    Manipulación de video con GEM

    FIGURA 77. TRANSLATEXYZ Y ROTATEXYZ

    Con el objetotranslateXYZ se podrá mover la imagen de izquierda a derecha (2do inlet),de arriba abajo (3er inlet) o de delante a atrás a modo de zoom (4to inlet).Con el objetorotateXYZ se podrá rotar el video sobre su eje X (2do inlet), sobre su eje Y

    (3er

    inlet) o girar el video (4to

    inlet).El objetoadc~ recoge el sonido del micrófono, por tanto, conectando la salida delobjeto line~ a alguno de los inlets de control de translateXYZ o rotateXYZ seconseguirá que la imagen del video se mueva al ritmo de nuestra voz. De igual forma sepodría cargar un archivo de audio y hacer que el video se mueva al ritmo de la música.

    Con el objeto pix_gain se creará una ganancia en el color. Por su 3er inlet recibirá el‘mensaje de ganancia’ en forma de 3 números para los canales B (blue), G (green) y R

  • 8/18/2019 Introducción a Pure Data

    53/71

    I N T R O D U C C I Ó N A P U R E D A T A

    51

    (red). Con pix_treshold es similar pero genera un efecto de umbral. Sus valores estarán

    entre 0 y 1.

    FIGURA 78. PIX_GAIN Y PIX_TRESHOLD

  • 8/18/2019 Introducción a Pure Data

    54/71

    I N T R O D U C C I Ó N A P U R E D A T A

    52

    Abstracciones visualesomo se vió en la lección 13, las abstracciones en Pure Data permiten crearcódigo reutilizable en distintos parches. De igual forma se podrán creardocumentos visuales reutilizables mediante las denominadas abstracciones visuales. En este capítulo se hará un ejemplo de abstracción visual, se creará

    un VU doble reutilizable.

    FIGURA 79. PROPIEDADES DEL LIENZO

    Para ello se abrirá un nuevo parche y sepinchará con el segundo botón sobre el canvasy se seleccionará Propiedades, en el diálogo‘Propiedades del lienzo’ se marcará ‘Dibujarcontenido’. Esto creará un cuadro rojo dondeponer los elementos visuales, todo lo que quedefuera de dicho cuadro rojo no será visible alusar la abstracción. Un doble VU entraperfectamente en un cuadro de 85x140, seintroducirán estos valores en el ancho (rangoX) y alto (rango Y) del cuadro.

    FIGURA 80. DOBLE VU

    Se crearán dos VU y se introducirán en elcuadro rojo. Para evitar el solapamiento de lasetiquetas, al primero de ellos se le ocultaránponiéndole el color de la etiqueta en blanco enlas propiedades del VU.Se crearán dos objetos env~, uno por canal, ydos objetos inlet~ y dos outlet~ que enviarán

    la misma señal de audio que reciben los inlets.Estos objetos deberán quedar fuera del cuadrorojo para evitar que se vean al usar laabstracción.

    LECCIÓN

    19C

  • 8/18/2019 Introducción a Pure Data

    55/71

    I N T R O D U C C I Ó N A P U R E D A T A

    53

    Se guardará el parche con el nombre vu-‘doble~.pd’ (en Windows el carácter ~ puede

    dar problemas). Hay que asegurarse que este archivo se incluye en el path( Editar→→→ → Preferencias ).Para poder usarlo sólo se tendrá que crear un objeto y escribir ‘vu-doble~’. El doble VU se autogenerará mostrando solo lo que se pintó dentro del cuadro rojo y dosmarcas inlets y otras dos outlets.

    FIGURA 81. USO DEL VU DOBLE EN UN PARCHE

  • 8/18/2019 Introducción a Pure Data

    56/71

    I N T R O D U C C I Ó N A P U R E D A T A

    54

    Grabando audio a disco conwritesf~

    ditando sonido hay veces que se necesitarán usar los sonidos generados porPure Data en otras aplicaciones o incluso en un editor de ondas paralimpiarlos y masterizarlos. Conwritesf~ se podrá grabar a disco nuestrossonidos y samples como archivos .wav para posteriormente disponer de ellos

    a nuestro antojo. En esta lección se verán ejemplos de grabación de audio tanto a discocomo a memoria, para ello se usará el siguiente secuenciador basado en dos osciladoresque ira leyendo las notas desde una tabla.

    FIGURA 82. USO DE WRITESF~ Y TABWRITE~

    LECCIÓN

    20E

  • 8/18/2019 Introducción a Pure Data

    57/71

    I N T R O D U C C I Ó N A P U R E D A T A

    55

    1: Con writesf~ se grabará el audio que entre por su hot inlet en 2 canales, por eso su

    argumento. Previamente se abrirá el archivo en el que se escribirá el audio con elmensaje open y con start y stop se controlará la grabación. Si en el mensaje open no seindica la ruta absoluta del archivo .wav, este se creará en el mismo directorio donde estéfísicamente el parche.

    2: Para grabar en memoria con tabwrite~ se hace de forma similar pero esta vez segrabará a un array previamente creado. Con tabplay~ se podrá reproducir. tabwrite~dejará de grabar cuando se llegue al final del array. Al crear el array ( Poner →→→ → Matriz ) eltamaño de este será de 44100 por cada segundo que se quiera grabar, ya que lafrecuencia de muestreo por defecto es de 44100 Hz. Por tanto para grabar 10 segundosse pondrá un tamaño de 441000.

  • 8/18/2019 Introducción a Pure Data

    58/71

    I N T R O D U C C I Ó N A P U R E D A T A

    56

    Filtros de audiounque en Pure Data existen multitud de filtros de audio en esta lección sólose verán tres filtros básicos capaces de filtrar y manipular agudos, graves ymedios. Para ver los ejemplos se usará el reproductor que se vió en la lección19.

    High passEl filtrohigh pass agudiza la señal transformándola como su nombre indica a frecuenciasmas altas. El objetohip~ se usa para crear este tipo de filtro. Cuanto mas alto sea el valor que recibe por su inlet derecho mayor será el efecto. Si observa el oscilador lasseñales varían antes y después de aplicarle el filtro. Parece que aparte de la frecuenciatambién afecta en cierto modo a la amplitud de la onda.

    FIGURA 83. FILTRO HIP~

    LECCIÓN

    21 A

  • 8/18/2019 Introducción a Pure Data

    59/71

    I N T R O D U C C I Ó N A P U R E D A T A

    57

    Low passEl filtrolow pass hace mas grave la señal transformándola como su nombre indica afrecuencias mas bajas. El objetolop~ se usa para crear este tipo de filtro. Cuanto mascercano a 0 señal el valor que recibe por su inlet derecho mayor será el efecto. En 0 laseñal bajará tanto que dejará de oírse. Véase en la figura de abajo el efecto que produceel filtro en los osciladores. Parece que también afecta algo a la amplitud de la onda.Pero se ve claramente como afecta a la frecuencia “estirando” la señal. Recuerda que lafrecuencia está asociada al eje horizontal y la amplitud al eje vertical.

    FIGURA 84. FILTRO LOP~

  • 8/18/2019 Introducción a Pure Data

    60/71

    I N T R O D U C C I Ó N A P U R E D A T A

    58

    Band passEl filtroband pass actúa sobre las frecuencias medias. El objetobp~ se usa para creareste tipo de filtro. Este objeto tiene un 3er inlet, llamado por algunos Q el cual le daresonancia al efecto. Con Q a 0 no hay efecto diferenciable pero aumentándololevemente el efecto se hace notar. Este efecto parece que “estiliza” aún mas la señal.

    FIGURA 85. FILTRO BP~

    El objeto vcf~ hace el mismo efecto que bp~ pero la entrada que “filtra” la señal esuna señal de audio en vez de un mensaje numérico. Con el objeto sig~ se traduce esenúmero a una señal sonora.

    FIGURA 86. FILTRO VCF~

  • 8/18/2019 Introducción a Pure Data

    61/71

    I N T R O D U C C I Ó N A P U R E D A T A

    59

    Reverb and Delaya reverberación es el efecto por el cual un sonido se mantiene un poco mastiempo en el ambiente después de que la fuente deje de emitirlo. En el mundodel sonido la señal sin procesar se llamadry (seca) y la señal procesadawet (mojada). En la comparación de osciloscopio se ve claramente la señal

    reverberizada que se mantiene después de dejar de emitirse sonido.

    FIGURA 87. EFECTO REVERB

    • wet : Nivel de señal ‘mojada’ o reverberizada. Valores de 0 – 1. Por defecto 0.3.

    • dry : Nivel de señal ‘seca’ o sin procesar. Valores de 0 – 1. Por defecto 0.

    • roomsize : Simula el tamaño de la habitación. Por defecto 0.85.

    LECCIÓN

    22L

  • 8/18/2019 Introducción a Pure Data

    62/71

    I N T R O D U C C I Ó N A P U R E D A T A

    60

    El efecto delay o retraso produce el clásico eco. Para hacer los efectos de delay se utiliza

    un array enmemoria en el que se escribirá y del que se leerá con un determinadoretraso. En el ejemplo se usan dos arrays, uno para cada canal. Se seguirá usando elefecto reverb para ‘tunear’ aun mas la señal.

    FIGURA 88. EFECTO DELAY

    Condelwrite~ se reserva un array en memoria para guardar la señal con el delay indicadoen milisegundos. Condelread~ se leerá ese delay indicándole en milisegundos lalongitud del mismo. Esta longitud de retraso al leer el delay será como máximo el delaycon el que se grabó. 4000 milisegundos en este caso.Convd~ se creará ese retraso con una longitud de onda. Se podrán aplicar tantos delays(delread o vd) como se desee hasta conseguir múltiples efectos de eco.

  • 8/18/2019 Introducción a Pure Data

    63/71

    I N T R O D U C C I Ó N A P U R E D A T A

    CASO PRÁCTICO I: Secuenciador simple

    FIGURA 89. SECUENCIADOR SIMPLE

    Este sque vritmo es el ode mediferengracianotas. miliseselecto

    El selede moselectopara qnotas s

    Los d velocimismafuerzay la dmante

    Descáhttp://g

    CASO

  • 8/18/2019 Introducción a Pure Data

    64/71

    I N T R O D U C C I Ó N A P U R E D A T A

    62

    CASO PRÁCTICO II: Reproductor wav

    FIGURA 90. REPRODUCTOR WAV

    Al pulsar en botón rojo se abrirá un panel para buscar el archivo wav que se quiera reproducir cuya odevolverá el número total de samples que contiene el archivo. Al dividir 44100 entre el número de samplese tendrá que introducir en los mensajes 'para delante' y 'para atrás' con el signo menos. Con estos meantojo o con el slider horizontal. RECUERDA AUMENTAR EL VOLUMEN. VER LECCIÓN 16: Descárgate el parche en:http://ge.tt/6A1iUdh1/v/0?c Ver en youtube:‘Audio Play

    https://www.youtube.com/

    CASO

  • 8/18/2019 Introducción a Pure Data

    65/71

    I N T R O D U C C I Ó N A P U R E D A T A

    63

    CASO PRÁCTICO III: Minireactable

    FIGURA 91. LECTOR REACTIVISION

    FIGURA 92. REAC

    VER LECCIÓN 16: Descárgate el parche en:http://ge.tt/4Ybszgh1/v/0?c Ver en youtube: ‘Mini reahttps://www.youtube.co

    CASO

  • 8/18/2019 Introducción a Pure Data

    66/71

    I N T R O D U C C I Ó N A P U R E D A T A

    El ejemplo de este caso práctico se basa en el ejemplo descrito en la LECCIÓN 8, portanto sería recomendable recordar dicho capítulo.

    Se hará un pequeño minireactable haciendo uso de ‘reacTIVision TUIO Simulator’ yde ‘TUIO Client’ para poder captar en Pure Data los movimientos de los fiduciales almoverse.

    Por tanto, el parche comienza con el TuioClient que recibe mensajes cada vez que unfiducial se mueve. Como ya se hizo en la LECCIÓN 8, con el objeto route se obviaránlos mensajes que se producen al añadir el fiducial y al retirarlo, quedando sólo losmovimientos que el fiducial haga por la mesa. Con el objeto unpack se separará la listade entrada y se aprovecharán los cuatro primeros valores. Como ya vimos, el primer valor es un contador, el segundo valor identifica al fiducial y el par siguiente determinanlas coordenadas (X, Y) del fiducial en la mesa. Este último par de valores son los queinteresan.

    El valor X que determina la posición horizontal del fiducial se asociará a una nota y el valor Y que determina la posición vertical del fiducial se asociará a otra nota. Se usará eidentificador del fiducial para determinar la duración de la pulsación de tecla de lasnotas que se emitan. Recuérdese que el segundo argumento (3er inlet) del objetomakenote determina esta característica.

    Obsérvese como al mover el fiducial por las distintas zonas de la mesa las notas vansonando más agudas o mas graves dependiendo de la zona por la que pase el fiducial.La zona superior-izquierda tiene valores bajos en posición (X, Y) y por tanto seráninterpretados con notas bajas y graves, sin embargo, la zona inferior-derecha tiene valores altos en posición (X, Y) y por tanto serán interpretados con notas altas yagudas.

    Lo más importante de este ejemplo es la ‘conexión’ con reacTIVisión y el fundamentobásico del objeto de deseo de cualquier DJ o aficionado a la música electrónica: elreactable .

    CASOS PRÁCTICOS

  • 8/18/2019 Introducción a Pure Data

    67/71

    I N T R O D U C C I Ó N A P U R E D A T A

    65

    Anexo I: Instalando Pure Dataajad de la web la última versión de Pure Data. En este manual se usaráPd- Extended que es una versión de Pure Data más completa que incluye librerías,extensiones y documentación abundante. Hay distintas versiones para Windows, Mac y Linux.

    Al arrancar el programa lo primero que aparecerá será la consola.

    FIGURA 93. CONSOLA DE PURE DATA.

    ANEXO

    B

  • 8/18/2019 Introducción a Pure Data

    68/71

    I N T R O D U C C I Ó N A P U R E D A T A

    66

    Lo primero que se hará es activar el sonido y probarlo. En la barra de menú se

    seleccionaráMedia→ DSP Encendido

    . Para probar que el sonido funcionacorrectamente se seleccionaráMedia→ Probar audio y midi… y se manipulará en lazonaTest Tones . Se debería oír un sonido claro por los altavoces.

    FIGURA 94. PRUEBA DE SONIDO.

    Si no se oyera el sonido se debería elegir la configuración correcta del sonido enMedia→ Preferencias de audio , que dependerá del ordenador. Las opciones suelen ser Jack, ASIO, OSS, ALSA o un nombre relacionado con la tarjeta de sonido que tengasinstalada.

    FIGURA 95. PREFERENCIAS DE AUDIO.

  • 8/18/2019 Introducción a Pure Data

    69/71

    I N T R O D U C C I Ó N A P U R E D A T A

    67

    Índice de figurasFIGURA 1. OBJETO. .................................................................................................................. 7 FIGURA 2. LAS 3 CAJAS............................................................................................................ 7 FIGURA 3. USO DE OBJETOS Y MENSAJES........................................................................... 8 FIGURA 4. HOLA MUNDO........................................................................................................ 9 FIGURA 5. DISTINTOS BANGS............................................................................................... 10 FIGURA 6. PARCHE DE AYUDA DE METRO........................................................................ 10 FIGURA 7. SUMA ERRONEA. ............................................................................


Recommended