Desarrollo de un secuenciador MIDI modular reconfigurable en caliente

Pérez Torrero, Fernando (2019). Desarrollo de un secuenciador MIDI modular reconfigurable en caliente. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. Industriales (UPM).

Description

Title: Desarrollo de un secuenciador MIDI modular reconfigurable en caliente
Author/s:
  • Pérez Torrero, Fernando
Contributor/s:
  • Torroja Fungairiño, Yago
Item Type: Final Project
Degree: Grado en Ingeniería en Tecnologías Industriales
Date: June 2019
Subjects:
Freetext Keywords: secuenciador, MIDI, digital, microcontrolador, interfaz, SPI, comunicación, música, DAW
Faculty: E.T.S.I. Industriales (UPM)
Department: Automática, Ingeniería Eléctrica y Electrónica e Informática Industrial
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (5MB) | Preview

Abstract

El objetivo del presente trabajo es el de diseñar e implementar un secuenciador MIDI para su utilización en estaciones de trabajo de audio digital (DAW, por sus siglas en inglés, Digital Audio Workstation) por vía USB. En el contexto de la producción musical, los secuenciadores son herramientas que generan una serie de señales de control, las cuales son recibidas por dispositivos que las interpretan y reproducen sonido acorde a la información codificada en ellas. Un DAW es un software que permite la producción, grabación y edición de audio, y con frecuencia son receptores y emisores de las señales mencionadas. Estas señales, que en los primeros secuenciadores eran analógicas, aparecen actualmente con más frecuencia en su implementación digital mediante el estándar MIDI (Musical Instrument Digital Interface). El estándar MIDI se basa en la transmisión de los llamados mensajes MIDI, piezas de información formadas por paquetes de un número variable de bytes. Aunque pueden transmitir otro tipo de información, el uso más importante de estos mensajes es el de caracterizar notas musicales en cuanto a su tono (frecuencia) y volumen (también llamado “velocidad” en la comunicación MIDI).Los secuenciadores generan un número determinado de estos mensajes en bucle, formando así secuencias de notas que se repiten en el tiempo. A las notas que forman estas secuencias también se les suele llamar pasos. Es en este punto donde reside la característica más destacable e innovadora del secuenciador que se quiere desarrollar. Se busca diseñar una interfaz de usuario que permita modificar el número de pasos por vía hardware de forma sencilla y rápida durante la operación del secuenciador, ampliando esa interfaz mediante la conexión de módulos que incorporen controles de pasos individuales. Los dos aspectos fundamentales que determinan el diseño de un secuenciador son la interfaz mencionada, compuesta por los controles con los que interactúa el usuario para caracterizar las secuencias, y las funcionalidades que implementa. Los objetivos en cuanto a la interfaz del secuenciador que se quiere diseñar son, además de que sea reconfigurable en caliente, intentar que sea lo más intuitiva posible y que esté orientada a una utilización cómoda e inmediata, mediante la selección del tipo y posicionamiento de sus controles. En cuanto a las funcionalidades, se ha mantenido el enfoque de simplicidad en el uso y se quiere poder controlar los parámetros básicos de cada paso (tono y volumen) dentro de unos márgenes amplios de valores y con una libertad suficiente. En definitiva, se quieren implementar unas herramientas software que faciliten la composición de melodías, especialmente para usuarios con poca o nula formación en teoría musical. Planteado el problema, se procedió al diseño de la interfaz y su estructura, que resultó en un sistema modular físicamente formado por varios módulos esclavos idénticos y un módulo maestro único que los controla. Sus características son las siguientes: - Cada módulo esclavo lleva implementados unos controles que permiten controlar los parámetros básicos de 4 pasos, y pueden ser conectados uno detrás de otro para formar secuencias del número de pasos que se desee. Cada paso tiene asociados tres controles: un potenciómetro deslizante (también llamado fader), con el que se controla el tono de la nota correspondiente, un botón, que activa o desactiva el paso, y un LED, que se ilumina cuando la secuencia llega a dicho paso y suena su nota. - El módulo maestro se encarga de comunicarse con estos módulos esclavos para recoger los datos que reciben de los inputs del usuario, secuenciarlos y mandarlos en forma de mensajes MIDI por USB al ordenador en el que se encuentra el DAW. El maestro también dispone de una serie de controles que le permiten actuar sobre los datos recogidos y transformarlos, mediante una serie de funcionalidades. Concretamente, dispone de dos botones multifunción con tareas distintas según el modo de funcionamiento que esté activado. Se puede rotar entre los distintos modos con las pulsaciones de un tercer botón. Además, tiene un display de 7 segmentos y 3 dígitos para mostrar al usuario la información de los parámetros del secuenciador, y un fader que controla el tempo de reproducción de las secuencias. Para controlar cada módulo esclavo, se optó por usar los microcontroladores ATmega 328/P con arquitectura AVR, ya que ofrecen las herramientas necesarias para tratar los problemas que se presentan. Principalmente, estos problemas son la lectura de señales digitales y analógicas procedentes de los controles, temporización de eventos y comunicación con otros módulos. Para el módulo maestro, se escogió una placa de Arduino Uno, (basada en el mismo microcontrolador AVR), ya que incluye el chip ATmega 16U2 y un hardware asociado que permite realizar fácilmente las comunicaciones serie con el ordenador necesarias para mandar los mensajes MIDI. Posteriormente, se desarrolló la topología de la comunicación entre módulos. Tras barajar las típicas formas de comunicación serie entre microcontroladores, se optó por una solución basada en la interfaz SPI (Serial Peripheral Interface) en configuración Daisy-Chain, o en cadena. Esta topología determina gran parte de la implementación física (rutado de PCBs, conectores, etc.), por ello fue necesario diseñarla previamente. Después, se desarrolló la implementación en hardware del sistema. Para los módulos esclavos, se diseñó una PCB y se hizo una selección de componentes. Para el módulo esclavo, se diseñó una PCB para ser montada a modo de shield sobre la placa de Arduino, con su selección de componentes correspondiente. El diseño de PCBs se hizo con el software Altium CircuitMaker. Tras la fabricación y montaje del hardware, se procedió al desarrollo del software en C de los microcontroladores, utilizando el entorno de programación Atmel Studio 7 para los esclavos y el IDE de Arduino para el módulo maestro. Inicialmente se programó la comunicación entre módulos y la comunicación MIDI con el ordenador. Posteriormente, se fueron implementando una serie de funcionalidades para satisfacer los objetivos expuestos anteriormente. Estas funcionalidades son las siguientes: - Transposición de tono en incrementos de octavas musicales y semitonos, tanto de un paso individual como de todos simultáneamente. - Cuantización de notas a escalas. - Aleatorización de notas en tres modalidades distintas. - Selección de velocidad de cada paso ajustable, tanto de un paso individual como de todos simultáneamente. - Tempo de reproducción de la secuencia ajustable. Las funcionalidades fueron testeadas mediante el análisis de las secuencias generadas en el DAW Ableton Live 9, constituyendo las pruebas de carácter técnico o cuantitativo. Por otra parte, también se hicieron pruebas con carácter subjetivo para evaluar la experiencia de usuario en cuanto a la comodidad de uso de la interfaz y utilidad de las funcionalidades. También fueron puestos a prueba los mecanismos de uso de la interfaz. De los resultados de estas pruebas se puede concluir que, en general, los objetivos han sido cumplidos, aunque con aspectos mejorables. Se ha conseguido la creación de un secuenciador MIDI funcional reconfigurable en caliente por vía hardware, con una interfaz que resulta cómoda e intuitiva para los usuarios. El sistema modular funciona correctamente y otorga una gran flexibilidad en cuanto a la longitud de las secuencias con las que el usuario desee trabajar, gestionando el espacio físico y manteniendo la interfaz. Los controles seleccionados y su posicionamiento son en general bien recibidos por los usuarios. Puntos mejorables en cuanto a la interfaz incluyen la navegación entre los distintos modos de funcionamiento y su visualización, que se hace algo incómoda inicialmente, y un mejor aprovechamiento del espacio en general. Las funcionalidades implementadas, por su parte, permiten caracterizar los pasos generados en un rango de valores de tono de 76 notas y de 128 valores de velocidad. La velocidad de envío de las secuencias (tempo) es ajustable en un rango de valores de 60-187 BPM (pulsos por minuto). En cuanto al aspecto temporal de cómo se ajustan las notas al tempo seleccionado, se ha conseguido una precisión más que suficiente, con una variabilidad en la latencia de recepción de notas en los DAWs de +/- 5 milisegundos. Esta variabilidad es imperceptible al oído humano, por lo que no se considera de especial importancia para los objetivos propuestos. Por otra parte, en cuanto a los recursos utilizados por el microcontrolador del maestro, únicamente se ha utilizado un 22% de la memoria de programa, y el código ha sido escrito de forma que permita su escalabilidad, por lo que las posibles ampliaciones de software son perfectamente posibles. El uso de la memoria de programa de los AVR de los módulos esclavos es incluso menor.

More information

Item ID: 56051
DC Identifier: http://oa.upm.es/56051/
OAI Identifier: oai:oa.upm.es:56051
Deposited by: Biblioteca ETSI Industriales
Deposited on: 07 Aug 2019 04:48
Last Modified: 29 Sep 2019 22:30
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM