miércoles, 10 de marzo de 2010

¡Vaya pedazo de código!


Imagina que estas componiendo tu canción y quieres copiar los compases 5, 6, 7 y 8, en los compases  15, 16, 17 y 18 (por poner un ejemplo) Esto tan sencillo se vuelve arduamente complejo en E-Code.

La sección “Song” de REQUIEM opera sobre objetos transformadores a modo de matrices de memoria. Esta técnica es empleada en cualquier parte “memorizable” de REQUIEM, sólo que en esta ocasión la estructura es distinta. En un único objeto transformador se almacenan los 128 patrones que se reproducen en cada uno de los 128 compases. Por ejemplo, el compás 1 reproduce el patrón 54, el compás 2 el 13, el compás 3 el 120, etc…

Lo interesante es ofrecer funciones tipo copiar / pegar de modo que el usuario pueda copiar una sección de compases sobre otra sección de compases de la misma duración. Así pues, técnicamente hay que copiar parte de los 128 datos almacenados en el transformador, pasarlos a otro transformador a modo de almacén temporal, reubicar el puntero de memoria del primer transformador (del que hemos copiado los datos), y disparar los datos almacenados en el segundo transformador escribiéndolos en la posición actual del primero. Los datos existentes de esa porción quedarán eliminados y sustituidos por los nuevos.

El código E-Code para esta operación lo puedes ver en el siguiente vídeo. Actualmente la ejecución de este código provoca un bug gráfico en mi Logic 5.5, así que habrá que descubrir qué funciona mal, teniendo en cuenta que el código en sí funciona y efectúa todo lo narrado.

No hay comentarios:

Publicar un comentario