Archivo de la categoría: 50 Ways to Play Una Plata d’Enciam

50 ways… #6. Editores de partituras: Lilypond

En el anterior post creamos un soundfont para acordeón diatónico, castagnari.sf2, y con sus sonidos tocamos mi canción preferida: Una Plata d’Enciam, dentro del proyecto 50 ways to play Una Plata d’Enciam. Vamos a ver ahora cómo con el editor de partituras Lilypond podemos crear una partitura muy correcta, que responda a los retos que nos plantea la notación para el acordeón. Lo que haremos en este post no es nada del otro mundo. En el blog amigo Scores of Beauty, http://lilypondblog.org/, se lleva al extremo las posibilidades de lilypond.

Básicamente lo que queremos es visualizar correctamente la melodía, los acordes, y cómo se han de tocar los bajos/acordes de la mano izquierda (es decir, el acompañamiento). La idea es crear unas partituras didácticas que ayuden a mi hija a poner los dedos de la mano izquierda.

Lo primero que haremos es crear la melodía, pondremos encima de las notas los acordes en la forma habitual, y mostraremos cuándo se ha de tocar un bajo (b) o un acorde (a) con la mano izquierda. Esto último lo haremos con \\lyrics, como si fuese la letra de una canción.

\\version «2.12.1»
\\header {
title = «Una Plata d’Enciam»
composer = «tradicional catalana»
}

baixosnotacio = \\chordmode {
c4 c f c f g g c c c f c f g g c
c4 c f c f g g c c c f c f g g c
}

partitura = \\relative c’
<<
\ew ChordNames {
\t\\set chordChanges = ##t
\t\\baixosnotacio
}

\ew Staff = «veu 1»
{
\\clef treble
\\key c \\major
\\time 2/4
\\tempo 4=80

\te8 f g g a a g4 \\times 2/3 { a8 a g } f f \\times 2/3 { f f f } g e e f g g a a g4 \\times 2/3 { a8 a g } f f f g e4
\te8 f g g a a g4 \\times 2/3 { a8 a g } f f \\times 2/3 { f f f } g e e f g g a a g4 \\times 2/3 { a8 a g } f e f g e4
}
\\addlyrics {
\tb _ a _ b _ a b _ _ a _ b _ _ a _ b _ a _
\tb _ a _ b _ a b _ _ a _ b _ _ a _ b _ a _
\tb _ a _ b _ a b _ _ a _ b _ _ a _ b _ a _
\tb _ a _ b _ a b _ _ a _ b _ _ a _ b _ a _
}

>>

\\score {
\\partitura
\\layout { }
\\midi { }
}

Ahora vamos a poner los bajos. Si lo hacemos en la forma habitual funciona, pero queda una partitura que no és útil para su lectura. Además, no es correcta, pues como se ha explicado en el anterior post la asociación entre los acordes CM, DM,… y las notas midi 24, 26,… fue una decisión arbitria. Quedaría de la siguiente manera:

\\version «2.12.1»
\\header {
title = «Una Plata d’Enciam»
composer = «tradicional catalana»
}

baixosnotacio = \\chordmode {
c4 c f c f g g c c c f c f g g c
c4 c f c f g g c c c f c f g g c
}

partitura =
<<
\ew ChordNames {
\t\\set chordChanges = ##t
\t\\baixosnotacio
}

\\relative c’
\ew Staff = «veu 1»
{
\\clef treble
\\key c \\major
\\time 2/4
\\tempo 4=80
\t%notes amb valors relatius
\te8 f g g a a g4 \\times 2/3 { a8 a g } f f \\times 2/3 { f f f } g e e f g g a a g4 \\times 2/3 { a8 a g } f f f g e4
\te8 f g g a a g4 \\times 2/3 { a8 a g } f f \\times 2/3 { f f f } g e e f g g a a g4 \\times 2/3 { a8 a g } f e f g e4
}
\\addlyrics {
\tb _ a _ b _ a b _ _ a _ b _ _ a _ b _ a _
\tb _ a _ b _ a b _ _ a _ b _ _ a _ b _ a _
\tb _ a _ b _ a b _ _ a _ b _ _ a _ b _ a _
\tb _ a _ b _ a b _ _ a _ b _ _ a _ b _ a _
}

\ew Staff = «baixosnotes»
{
\\key c \\major
\t%notes amb valors absoluts
\tc,8. r16 c,,8 r f,8. r16 c,,8 r f,8. r16 g,,8 r g,8. r16 c,,8 r
\tc,8. r16 c,,8 r f’8. r16 c,,8 r f,8. r16 g,,8 r g,8. r16 c,,8 r
\tc,8. r16 c,,8 r f,8. r16 c,,8 r f,8. r16 g,,8 r g,8. r16 c,,8 r
\tc,8. r16 c,,8 r f,8. r16 c,,8 r f,8. r16 g,,8 r g,8. r16 c,,8 r
}
>>

\\score {
\\partitura
\\layout { }
\\midi { }
}

Aquí es importante remarcar que se ha utilizado la notación relativa para la melodía, y la notación absoluta para los bajos, que simplifica mucho escribir la alternancia entre bajos y acordes. Esta partitura no es correcta para su impresión, pero el fichero midi que produce sí que es correcto. ¿Hay una manera de solucionarlo? Sí. Se puede definir un \\score para ser impreso, y otro \\score para generar el fichero midi. El resultado queda de la siguiente manera: la partitura para imprimir es correcta (no aparecen las notas de los bajos, sólo las posiciones donde hemos de poner los dedos de la mano izquierda); y el fichero midi resultante también es correcto:

\\version «2.12.1»
\\header {
title = «Una Plata d’Enciam»
composer = «tradicional catalana»
}

baixosnotacio = \\chordmode {
c4 c f c f g g c c c f c f g g c
c4 c f c f g g c c c f c f g g c
}

partitura = \\relative c’
<<
\ew ChordNames {
\t\\set chordChanges = ##t
\t\\baixosnotacio
}

\ew Staff = «veu 1»
{
\\clef treble
\\key c \\major
\\time 2/4
\\tempo 4=80
\te8 f g g a a g4 \\times 2/3 { a8 a g } f f \\times 2/3 { f f f } g e e f g g a a g4 \\times 2/3 { a8 a g } f f f g e4
\te8 f g g a a g4 \\times 2/3 { a8 a g } f f \\times 2/3 { f f f } g e e f g g a a g4 \\times 2/3 { a8 a g } f e f g e4
}
\\addlyrics {
\tb _ a _ b _ a b _ _ a _ b _ _ a _ b _ a _
\tb _ a _ b _ a b _ _ a _ b _ _ a _ b _ a _
\tb _ a _ b _ a b _ _ a _ b _ _ a _ b _ a _
\tb _ a _ b _ a b _ _ a _ b _ _ a _ b _ a _
}
>>

fitxermidi =
<<
\\relative c’
\ew Staff = «veu 1»
{
\\clef treble
\\key c \\major
\\time 2/4
\\tempo 4=80
\t%notes amb valors relatius
\te8 f g g a a g4 \\times 2/3 { a8 a g } f f \\times 2/3 { f f f } g e e f g g a a g4 \\times 2/3 { a8 a g } f f f g e4
\te8 f g g a a g4 \\times 2/3 { a8 a g } f f \\times 2/3 { f f f } g e e f g g a a g4 \\times 2/3 { a8 a g } f e f g e4
}

\ew Staff = «baixosnotes»
{
\\key c \\major
\t%notes amb valors absoluts
\tc,8. r16 c,,8 r f,8. r16 c,,8 r f,8. r16 g,,8 r g,8. r16 c,,8 r
\tc,8. r16 c,,8 r f’8. r16 c,,8 r f,8. r16 g,,8 r g,8. r16 c,,8 r
\tc,8. r16 c,,8 r f,8. r16 c,,8 r f,8. r16 g,,8 r g,8. r16 c,,8 r
\tc,8. r16 c,,8 r f,8. r16 c,,8 r f,8. r16 g,,8 r g,8. r16 c,,8 r
}
>>

\\score {
\\partitura
\\layout { }
}

\\score {
\\fitxermidi
\\midi { }
}

Finalmente podemos escuchar la canción Una Plata d’Enciam tal como quedaría con un acordeón diatónico:

Una Plata d’Enciam by joanillo

Referencias:

50 ways… #5. Cómo hacer un soundfont para acordeón

Mi hija está aprendiendo a tocar el acordeón diatónico. Se trata de un acordeón de botones de la marca Castagnari, modelo Studio, con dos hileras de botones en la mano derecha (afinadas en Sol y en Do), y los 8 botones de la mano izquierda son los bajos, divididos en 4 bajos y 4 acordes. Este es el tipo de acordeones que sonaban en les fiestas mayores de los pequeños pueblos del Pirineo. Cuando todavía no había carreteras para llegar a estos pueblos, en el siglo XIX y hasta entrado el siglo XX, los músicos habían de subir a los pueblos a pie o en mula. Por tanto era necesario acarrear instrumentos transportables. Muchas veces un acordeón y un violín animaban el baile en la plaza del pueblo.

En esta ocasión, ya que dispongo de un instrumento nuevo para mi, quiero hacer la práctica de crear un soundfont desde cero, y de esta manera podré utilizar el sonido de este instrument en diferents proyectos. Evidentmente, se ha de empezar mostreando todas las notas. Para hacerlo se utilizará un micrófono de una calidad óptima, intentando que no haya ruidos de fondo. Se grabará a un volumen adecuado, notas largas, y sin producir saturación, en un solo canal. Las muestras se van grabando de forma ordenada y utilizando un nombre de fichero adecuado de manera que no hi haya confusión posible. Para grabar las muestras he utilizado un Ubuntu 12.04 32 bits, interfície Edirol UA-25EX y un micrófono Beyerdynamic TG I5d2d. Se ha utilizado el siguiente comando:

arecord -r 44100 -f cd -t wav -D plughw:UA25EX accordion_C4.wav

Deberemos tener cuidado al samplear los bajos y los acordes, que son botones especiales. Una vez tengamos todas las muestras, con el Audacity editamos los ficheros de onda. Cogemos una parte significativa de la muestra sampleada, intentando que la envolvente sea periódica, y evidentmente no coger los extremos del fichero de onda. Nos aseguramos de que la muestra no tenga saturación, y amplificamos la muestra a un nivel razonable, de manera que todas las muestras tengan un volumen similar. El resultado de las muestras es el siguiente:

Samples Accordion Castagnari Studio by joanillo

Samples Accordion Castagnari Studio (Bass and chords) by joanillo

Entonces ya podemos empezar a utilizar el Polyphone, que será el entorno gráfico que utilizaremos para construir el soundfont. Lo primero que haremos es importar todas las muestras, y diremos cuál es la nota raíz de cada nota, de manera que ya le estamos asignando una frecuencia. Entonces creamos un instrument nuevo (por ejemplo Accordion), que será el único instrumento que contendrá este soundfont. Ahora es cuando tenemos que asociar cada muestra a una nota midi del instrumento que estamos editando. Por ejemplo, para la muestra accordion_C4.wav pondremos:

    \t

  • root key = 60
  • \t

  • key range = 60-60
  • \t

  • attack = 0,2s
  • \t

  • release = 0,2 s

Las notas de los bajos que se hacen con la mano izquierda se corresponden con las siguientes notas midi:

    \t

  • Bajo C = 36 (C2)
  • \t

  • Bajo D = 38 (D2)
  • \t

  • Bajo E = 40 (E2)
  • \t

  • Bajo F = 41 (F2)
  • \t

  • Bajo G = 43 (G2)
  • \t

  • Bajo A = 45 (A2)

Y un caso especial son los acordes que se hacen con la mano izquierda, que se asocian por convenio a las siguientes notas midi.

    \t

  • Acorde CM = 24 (C1)
  • \t

  • Acorde DM = 26 (D1)
  • \t

  • Acorde EM = 28 (E1)
  • \t

  • Acorde FM = 29 (F1)
  • \t

  • Acorde GM = 31 (G1)
  • \t

  • Acorde Am = 33 (A1)

Y es importante recalcar que esta asociación es un convenio. Cuando toque la nota midi 24 se disparará el sonido sampleado que corresponde al acorde CM.

Para los bajos y acordes se ha fijado los valores de attack y release a 0,6s.

Para acabar de definir el soundfont hemos de crear un nuevo preset asociado a este instrumento, de manera que el sonido de acordeón lo tendremos en el banco=0 y canal=0 (000:000). Finalmente ya puedo guardar el soundfont, castagnari.sf2, y ya lo puedo testear, en este caso con fluidsynth, haciendo sonar mi canción preferida: Una Plata d’Enciam, tocada a la manera cómo se hace con el diatónico: la melodía con la mano derecha, y alternando los bajos y los acordes con la mano izquierda.

/usr/bin/fluidsynth -s -l -j -a jack -m jack ./accordion_castagnari_studio.sf2 ./una_plata_denciam.midi

Una Plata d’Enciam by joanillo

En el siguiente post explicaremos cómo se ha generado el fichero midi que acabamos de tocar a partir del editor de partituras lilypond. Tenía ganas de hacer un post sobre lilypond, y concretament ahora que mi hija esta aprendiendo el diatónico, cómo se puede utilizar lilypond para la notación de acordeón.

Referencias:

Wacom Theremin

El Theremin es un instrumento inventado por Léon Theremin en 1918 que tiene la particularidad de que se toca con los gestos de las manos. Está considerado uno de los primeros instrumentos electrónicos, y su sonido sintético y característico se ha utilizado muchas veces para películas de ciencia ficción y efectos especiales.

En este proyecto se implementa la manera de tocar y el sonido de un theremin con un controlador poco convencional: una tableta gráfica Wacom de las que utilizan los diseñadores gráficos. Si sabes cómo se toca un theremin la implementación es evidente:  con el eje x cambias el tono (Pitch Bend en terminología MIDI; con el eje y cambias el volumen; y claro: apretar el lápiz produce el sonido de la nota (mensaje MIDI NoteOn) y levantar el lápiz apaga la nota (NoteOff). Además de la posición XY, la tecnología wacom proporciona otros sensores que dan información como es la presión y la inclinación. Aunque no se ha hecho en este proyecto, se podría haber asociado la presión y la inclinación a otros mensajes MIDI CC (Continuous Controller) com pueden ser la modulación (efecto de vibrato).

Se ha utilizado un sintetizador Roland JV-2080 para producir un sonido de Theremin, aunque no estoy muy contento con el resultado obtenido. Lo bueno del JV-2080 es que tiene un espacio de memoria para guardar los patch de usuari y muchos parámetros, osciladores y efectos para poder ir jugando si tienes suficiente tiempo. Y lo que es mejor del JV-2080 es que puedes configurar el pitch bend (variación del tono) con una amplitud muy grande, también configurable, cosa que normalmente no pasa en otros sintes (sobretodo los sintes software).

Una de las cosas que me ha gustado más del proyecto es la integración de la aplicación desarrollada en lenguaje C (hay un enlace para descargar el código más abajo) con Gimp (el editor de imágenes y fotos de referencia en el mundo Linux). Esto da pie a múltiples posibilidades y ideas para hacer proyectos que combinen Gimp con efectos sonoros y interactivos.

Evidentmente, la idea no es nueva, hay otra gente que ha hecho Theremins con wacom’s y otros controladores como la Wii, pero en el proyecto 50 Ways to Play Una Plata d’Enciam no podía faltar un Wacom Theremin hecho exclusivamente con herramientas de Código Libre.

El sintetizador más simple, controlado con un sensor lineal

simplest_synth
Después de bastante tiempo, una nueva entrega del proyecto 50 maneras de tocar Una Plata d’Enciam. Esta vez quiero enseñaros los principios más básicos de la síntesis de audio. Es un proyecto muy sencillo, básic y barato, con grandes posibilidades de éxito incluso para los novatos en electrónica.

Recuerdo de las épocas de la universidad cuando estudiaba los circuitos RC, las ecuaciones diferenciales asociadas, y cómo la curva de carga y descarga de un condensador es una función exponencial. En este circuito conseguimos cargar y descargar el condensador de forma cíclica, gracias a dos transistores que se abren cuando el condensador está cargado, y se cierran cuando el condensador se descarga. Escogiendo los valores de resistencia y condensador adecuados la frecuencia de resonancia está dentro del espectro audible, que podemos escuchar con un pequeño altavoz. Con una resistencia variable podemos conseguir variar la frecuencia, consiguiendo un pequeño theremin o tanerino.

I aquí va el video mostrando cómo se construye este pequeño sintetizador, y cómo se puede tocar una canción como Una Plata d’Enciam.

Más información en la wiki

50 Ways… ALSA y programación MIDI a bajo nivel

alsalogo

ALSA (Advanced Linux Sound Architecture) proporciona la funcionalitat MIDI a Linux. Gràcies als drivers d’ALSA podem utilitzar moltes de les targetes de so comercials, i disposem d’una API per tal que els programadors puguin fer aplicacions d’audio i MIDI.

Els programadors poden construir aplicacions d’audio i midi utilitzant la API d’ALSA (alsa-lib, libasound), o d’altres llibreries que estan en capes d’abstracció més elevades. Nosaltres, en aquest video del projecte 50 Ways to Play Una Plata d’Enciam, mostrarem tres maneres diferents de poder tocar la nostra cançó peferida, Una Plata d’Enciam, acostant-nos tot el que puguem a la capa de hardware, a la targeta de so. Es tracta de poder enviar missatges MIDI directament a la targeta de so des de la shell de Linux.

50 ways… caja de música con tarjeta perforada

diy music box

Por fin he conseguido mi DIY Music Box que se puede comprar en ThinkGeek.com. La cosa no ha sido fácil: desde España no se puede comprar en ThinkGeek.com (dicen que tienen demasiadas devoluciones y no les sale a cuenta, somos unos impresentables…). Y es que tengo ganas de jugar con el cacharrito y tocar unas cuantas canciones infantile, a ver qué cara pone Pere!…

Antes de entrar a hacer música electrónica y meternos a trastear con hardware en el proyecto que estoy llevando a cabo (50 ways to play Una Plata d’Enciam), me ha parecido que tocar Una Plata d’Enciam con esta caja de música es una buena idea. Y el resultado que he obtenido es muy satisfactorio.

El grueso del trabajo ha sido hacer una pequeña aplicación en lenguaje C++ para convertir un fichero simplificado de lilypond (fichero de partitura musical) a las imágenes que, una vez impresas, serán las plantillas para perforar la tarjeta que codificará la música. Esta aplicación seguro que la utilitzaré más adelante en el proyecto, pues el tema de les cajas de música volverá a salir más adelante en el proyecto 50 ways to play Una Plata d’Enciam.

os dejo con el enlace del proyecto en la wiki (http://wiki.joanillo.org/index.php/50_ways…_DIY_punched_card_Music_Box), donde podréis encontrar información técnica, descargaros el aplicativo lilypond2musicbox.cpp, y consultar las transcripciones del vídeo en catalán y castellano.

Proyecto: 50 Ways to Play Una Plata d’Enciam

Una Plata d'Enciam

Con este post inauguramos un nuevo proyecto: 50 maneras de tocar Una Plata d’Enciam. Una Plata d’Enciam es una canción infantil que cantan los niños en Cataluña, y que últimamente he tenido que cantar mucho con mi hija. Cómo últimamente me ha interesado las diferentes maneras de programar audio y midi en entornos linux, y me ha interesado la posibilidad de construir instrumentos musicales nuevos y nuevas interfícies hombre-máquina que producen sonido y música, es por esto que quiero recopilar y ordenar esta información y producir unos videotutoriales para mostrar las diferentes posibilidades y técnicas.

Espero poder ir produciendo los videotutoriales con cierta regularidad. No se si llegaré a 50 videos, o quizás me pasaré de este número… es sólo una intención, un número indicativo.

Aquí os dejo con el primer video, la introducción al proyecto y la primera manera de hacer sonar esta canción: cantando con la voz humana (el instrumento perfecto) y tocando con un instrumento (en este caso un instrumento de viento, una melódica).

Los videos son en inglés, pero siempre se facilitará la dirección del proyecto en la wiki donde encontraréis la transcripción del video al catalán y al castellano, e información técnica sobre el proyecto.

Wiki: Información técnica y transcripción de los videos