Pere i el Llop

De Wikijoan
Dreceres ràpides: navegació, cerca

Introducció

Es tracta d'aconseguir la idea ja vella de tocar les diferents veus d'una cançó o peça instrumental amb un instrument solista (un controlador MIDI com el WX5). Es tracta de sentar les bases per començar a fer coses musicalment interessants en aquesta direcció. El resultat final hauria de ser poder interpretar una adaptació del Pere i el Llop (amb WX5 + ordinador + projector + ...) que fos una obra amb component musical i gràfic (video animat, tècniques de videojocs, SDL,...). Els moviments dels personatges del video han d'anar controlats pels missatges MIDI, com pretén el llenguatge PuppetML.

Això ha de ser el resultat final... i ara toca assentar les bases per tal que això pugui ser una realitat. La idea és començar per una cançó a 4 veus (SATB), senzilleta, i passar-la a Lilypond (obtinc el pdf i el mid, per al conjunt i per a les veus individuals). Aleshores es tracta de fer una aplicació amb llenguatge C++ (programació ALSA-MIDI) per tal de fer sonar la 1a veu, i que l'aplicació faci sonar totes les altres veus.

Però això no és un Play Along (on hi ha un seqüenciador fent sonar les tres veus restants i tu toques a sobre), que també podria ser... En un Play Along hi ha un tempo i tu t'has d'adaptar al tempo. La idea no és ben bé aquesta.

La idea és més aviat que l'instrument solista, i tota la cadena de notes que sonen, siguin les que dirigeixen. Imaginem que totes les notes estan ficades en una matriu. De les notes només sabem l'ordre seqüencial. Aleshores el solista toca les notes, i pot fer una interpretació que s'ajusti perfectament a un tempo, o bé una interpretació més lliure. Totes les altres veus aniran seguint la melodia de manera que el tempo no és absolut, sinó que s'ha de calcular en cada compàs.

Així doncs, de quan succeeix un event de la nota de la melodia es pot deduir quan succeeixen els events de les notes de les altres veus, i altres events no musicals, com per exemple animacions, canvi d'escena, missatges de veu,... Podríem dir que és una animació assistida per l'instrument solista, que fa de mestre de cerimònies.

Anem a fer un exemple:

1a veu: c   d   e   f   | g   a   b   c   | p   c   b   a   | g   f   e   d   | c   p   p   p   
2a veu: c e g c c g e c   c d e f g a b c   c b a g f e d c   c e g c c g e c   c g c g e d c 

Toco amb el WX5 la primera veu. Quan faig el C el programa no sap quan sonarà el d, i per tant la 2a veu no sap quan ha de fer el e. Per tant, es farà necessari establir un tempo inicial, que podria ser en el cas 4/4, bufar 4 cops. Un cop sabem aquest tempo, ja sabré fer la 2a veu. Ara bé, quan jo faci sonar el re (d), ja tinc un lapsus entre el c i el d i sé quin és el temps real. Aleshores, en la segona veu, ja puc tocar la g i saber quan he de fer sonar la c. Tot això no és per fer bestieses amb el tempo... tan sols és per incidir en què tota l'orquestra segueix l'instrument solista.

Què passa en uns compassos en què no hi ha instrument solista? No pasa res: tinc un tempo establert i la melodia anirà sonant. Es tracta de començar amb un exemple simple, i anar afegint diferents casos musicals, i la programació s'anirà complicant. Aleshores es tracta de fer una llibreria o framework que englobi les causístiques, i que sigui un codi orientat a objectes elegant i net que respongui a la problemàtica que es vol resoldre i que es pugui reutilitzar en altres projectes.

Partim del fitxer lilypond, es parseja, i s'omple unes matrius de notes amb la informació musical.

matriu1 = {c X d X e X f X g X a X b X c X p X c X b X a X g X f X e X d X c X p X p X p} 
matriu2 = {c e g c c g e c c d e f g a b c c b a g f e d c c e g c c g e c c g c g e d c}

Si ens fixem, aquesta és la mateixa idea que ens hem trobat a RK4K (Percussió Musical per a nens). En aquestes dues matrius no hi ha cap informació del tempo. Senzillament estic dient com s'han de combinar la informació continguda en les dues matrius per produir una peça musical. L'intèrpret va produint sons de la matriu1, i el programa dispara els events (Note ON) de la matriu 2.

A més, la gràcia de què tinguem totes les notes que hem de tocar en una matriu, podem fer que les notes equivocades no sonin (pot ser usual en el WX5). Plantilla:Author, juny 2010

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
Institut Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines