ES2305182T3 - Sintetizador de sonido. - Google Patents

Sintetizador de sonido. Download PDF

Info

Publication number
ES2305182T3
ES2305182T3 ES02256081T ES02256081T ES2305182T3 ES 2305182 T3 ES2305182 T3 ES 2305182T3 ES 02256081 T ES02256081 T ES 02256081T ES 02256081 T ES02256081 T ES 02256081T ES 2305182 T3 ES2305182 T3 ES 2305182T3
Authority
ES
Spain
Prior art keywords
synthesizer
active
voices
interpolation
sample points
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES02256081T
Other languages
English (en)
Inventor
Thomas Jacobsson
Andrej Petef
Alberto Jimenez Feltstrom
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES2305182T3 publication Critical patent/ES2305182T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/02Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2230/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/025Computing or signal processing architecture features
    • G10H2230/041Processor load management, i.e. adaptation or optimization of computational load or data throughput in computationally intensive musical processes to avoid overload artifacts, e.g. by deliberately suppressing less audible or less relevant tones or decreasing their complexity
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/201Physical layer or hardware aspects of transmission to or from an electrophonic musical instrument, e.g. voltage levels, bit streams, code words or symbols over a physical link connecting network nodes or instruments
    • G10H2240/241Telephone transmission, i.e. using twisted pair telephone lines or any type of telephone network
    • G10H2240/251Mobile telephone transmission, i.e. transmitting, accessing or controlling music data wirelessly via a wireless or mobile telephone receiver, analog or digital, e.g. DECT GSM, UMTS
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/541Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
    • G10H2250/621Waveform interpolation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)
  • Medicines Containing Plant Substances (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)
  • Stereophonic System (AREA)

Abstract

Un sintetizador que comprende: una memoria (6), que contiene una pluralidad de puntos de muestra de audio únicos almacenados; unos medios (4) para calcular una señal de salida para cada una de una pluralidad de voces activas, usando una pluralidad de puntos de muestra de audio únicos seleccionados de entre los puntos de muestra almacenados para cada una de las voces activas; en donde el número de puntos de muestra usados para cada voz activa por los medios (4) de cálculo se deriva del número de voces activas por medio de una tabla de búsqueda.

Description

Sintetizador de sonido.
Campo técnico de la invención
Esta invención se refiere a sintetizadores de sonido y más específicamente a sintetizadores de sonido utilizados en dispositivos en donde los recursos computacionales son limitados, tales como dispositivos portátiles.
Antecedentes de la invención
Se requiere que los sintetizadores de sonido modernos tengan un gran número de voces. El número de voces que tiene un sintetizador está definido por el número de sonidos que puede generarse simultáneamente.
Existen varios protocolos y normas diferentes que definen cómo los sintetizadores de sonido electrónicos reproducen un conjunto requerido de sonidos.
Una manera popular de generar sonidos en dispositivos electrónicos es usando el protocolo MIDI (Interfaz Digital de Instrumento Musical). A diferencia de los archivos de audio digital (tales como los presentes en discos compactos) un archivo MIDI no contiene detalles de sonidos específicos. En vez de ello, el archivo MIDI contiene una lista de eventos que un dispositivo debe ejecutar con el fin de recrear el sonido correcto. Se almacenan sonidos muestreados en el sintetizador y se accede a ellos según las instrucciones contenidas en el archivo MIDI. Por tanto, los archivos MIDI pueden ser mucho más pequeños que los archivos de audio digital y son adecuados para un entorno en el que la memoria de almacenamiento es limitada.
En el Nivel 1 de Sistema MIDI General (GM-1), se requiere que un sintetizador tenga al menos 24 voces.
Los sintetizadores, tales como los sintetizadores MIDI, que generan sonidos a partir de sonidos registrados previamente son conocidos como sintetizadores basados en tabla de ondas. En un sintetizador de esta clase, se almacenarán en una tabla de ondas una o varias secuencias registradas previamente de un instrumento musical. Cada secuencia contendrá una serie de muestras que se tocan en orden a recrear el sonido.
A menudo, un instrumento musical puede generar un gran número de notas, y dado que muestrear y registrar todas las notas posibles requeriría mucha memoria, únicamente se almacenan unas pocas notas.
Por tanto, cuando se requiere que un sintetizador produzca una nota o sonido que tiene una frecuencia que es diferente de la almacenada en la memoria, el sintetizador usa una de las secuencias almacenadas y una técnica conocida como "conversión de tasa de muestreo" para muestrearla otra vez y cambiar la frecuencia y obtener el tono requerido.
El cambio de frecuencia de la secuencia almacenada se logra accediendo a las muestras almacenadas a tasas diferentes. Es decir, por ejemplo, si las muestras almacenadas representan una nota musical con una frecuencia de 300 Hz, al acceder a cada muestra se reproducirá, a su vez, la nota musical a 300 Hz. Si se da salida dos veces a cada muestra almacenada antes de que se lea la siguiente muestra almacenada, la nota reproducida por el sintetizador tendrá una frecuencia de 150 Hz. Similarmente, si se solicita una nota de 600 Hz entonces se leen todas las demás notas almacenadas.
Es importante observar que la tasa a la cual se da salida a las muestras por el sintetizador permanece constante y es igual a un período de muestra (el tiempo entre cada muestra almacenada).
En el ejemplo anterior, al acceder dos veces a cada muestra, se introducirán artefactos (distorsiones) en el sonido de salida. Para superar estas distorsiones, el sintetizador computa muestras adicionales basadas en las muestras almacenadas. Por tanto, en el anterior ejemplo de 150 Hz, en vez de repetir dos veces cada muestra almacenada, el sintetizador dará salida a una muestra almacenada y calculará la siguiente muestra sobre la base de las muestras almacenadas circundantes.
Para hacer esto, el sintetizador necesita una técnica de interpolación.
La técnica de interpolación más sencilla usa una media ponderada de las dos muestras circundantes. Sin embargo, esta técnica a menudo es imprecisa y aún da como resultado distorsiones audibles.
El algoritmo de interpolación óptimo usa una función de sen (x)/x y requiere un número infinito de cálculos. Por supuesto, esto no es práctico y, por ello, se han desarrollado algoritmos subóptimos.
Una técnica de interpolación subóptima se describe en el Capítulo 8 de "Aplicaciones de DSP a Audio y Acústica" de Dana C. Massie, en donde se emplean varias muestras almacenadas en el cálculo (el número de muestras usado en la interpolación se conoce como el grado de interpolación). Cuanto mayor sea el número de muestras empleado en la interpolación, mejor será el rendimiento del sintetizador.
En un sintetizador cada voz se implementa usando uno o varios procesadores de señal digital (DSPs) y la potencia computacional del sistema DSP impone un límite al número de voces que puede reproducir un sintetizador y también limita el grado de interpolación empleado para cada voz.
Cuando se usa un algoritmo de interpolación subóptimo tal como el algoritmo (x)/x truncado sen, la complejidad computacional crece linealmente con el grado de interpolación.
En muchos sintetizadores comerciales, se usa a menudo un grado de interpolación de 10, ya que éste da como resultado un buen equilibrio entre complejidad computacional y calidad sonora.
El documento EP 0750290 describe que el número de muestras de forma de onda por unidad de tiempo, es decir, la resolución de formación de muestra de forma de onda, se ajusta variablemente dependiendo de las características de un tono que se ha de generar, tal como la construcción de componentes armónicos del tono. El número se incrementa para un tono o porción (por ejemplo, porción de ataque) de un tono que contenga un número relativamente grande de componentes armónicos de orden alto. Por el contrario, para un tono o porción (por ejemplo, porción de sostenido) de un tono que contiene unos pocos componentes armónicos de orden alto, se disminuye el número.
El documento US 2001/045155 describe que para comprimir un archivo de formato MIDI, éste se convierte a un archivo de formato 0. El archivo de formato 0 se explora a continuación para reducir a 16 el número de posibles instrumentos. Los comandos MIDI que no tienen salida de sonido se eliminan entonces y se reemplazan los comandos NoteOn y NoteOff por un comando PlayNote. Esto elimina instancias de tiempoDELTA igual a 0. Basado en las características de un instrumento que tiene que ejecutar el archivo comprimido, las notas se vuelven a centrar en un ancho de banda compatible con el instrumento, después de lo cual se explora el archivo para buscar instancias de polifonía. Si una instancia de polifonía supera las capacidades del instrumento ésta se reduce según una lista de prioridad de instrumento y un tono de nota.
Sumario de la invención
Es deseable ser capaz de implementar sintetizadores de sonido MIDI en dispositivos portátiles, tal como teléfonos móviles, para permitir que los dispositivos reproduzcan tonos de llamada polifónicos y sonidos de mayor calidad.
Sin embargo, los límites de potencia computacional de un dispositivo portátil (tales como coste y espacio disponible en el dispositivo) no son suficientes para permitir la implementación de un sintetizador de sonido que satisfaga el Nivel 1 de Sistema MIDI General (GM-1) (es decir que tenga 24 voces) y que tenga un grado de interpolación de aproximadamente 10.
Por tanto, la presente invención busca proporcionar un sintetizador de sonido que reduzca las necesidades computacionales de un sintetizador con un alto grado de polifonía, al tiempo que mantiene al mínimo los artefactos audibles.
Por tanto, según un primer aspecto de la presente invención se proporciona un sintetizador que comprende una memoria que contiene una pluralidad de muestras almacenadas; medios para calcular una señal de salida para cada una de una pluralidad de voces activas, usando una pluralidad de muestras seleccionadas de entre las muestras almacenadas para cada una de las voces activas; en donde el número de muestras usadas por los medios de cálculo para cada voz activa depende del número de voces activas.
Preferiblemente, cada voz únicamente es capaz de computar una salida cada vez.
Preferiblemente, el número de muestras usadas para cada voz activa por los medios de cálculo disminuye a medida que aumenta el número de voces activas.
Preferiblemente, el número de muestras usadas para voz activa por los medios de cálculo disminuye a medida que aumenta el número de voces activas de modo que no se supere una complejidad computacional máxima.
Alternativamente, el número de muestras usadas para voz activa por los medios de cálculo disminuye de manera no lineal a medida que aumenta el número de voces activas.
Preferiblemente, la pluralidad de muestras almacenadas en la memoria comprende muestras de notas musicales.
Preferiblemente, la pluralidad de muestras almacenadas en la memoria comprende muestras de notas musicales producidas por instrumentos musicales diferentes.
Según un segundo aspecto de la presente invención, se proporciona un dispositivo portátil que comprende un sintetizador de música según se describió anteriormente.
Preferiblemente, el dispositivo portátil es un teléfono móvil.
Alternativamente, el dispositivo portátil es un buscapersonas.
Debe observarse que el término "comprende/que comprende" cuando se emplea en esta memoria pretende especificar la presencia de las características, enteros, pasos o componentes indicados, pero no excluye la presencia o adición de una o más características, enteros, pasos, componentes o grupos de los mismos.
Breve descripción de los dibujos
Para una mejor comprensión de la presente invención y para mostrar cómo puede llevarse a efecto, se hará ahora referencia a modo de ejemplo a los dibujos anexos, en los que:
La figura 1 muestra un sintetizador de sonido según la invención.
La figura 2 muestra un método realizado por el controlador de la figura 1 según la invención.
La figura 3 muestra un esquema para determinar el grado de interpolación basado en el número de voces activas según la invención.
La figura 4 muestra un esquema alternativo para determinar el grado de interpolación basado en el número de voces activas según la invención.
La figura 5 muestra con más detalle una voz del sintetizador de la figura 1.
La figura 6 muestra un teléfono móvil con un sintetizador de música según la invención.
Descripción detallada de las realizaciones preferidas
La figura 1 muestra un sintetizador de música según la invención. Como es convencional, el sintetizador comprende un controlador 2, una pluralidad de voces 4, una memoria 6 de tabla de ondas, una tabla 8 de filtro, un mezclador 10 y un módulo 12 de conversión de digital a analógico.
Aunque el sintetizador se describe de aquí en adelante como un sintetizador basado en una tabla de ondas que usa el protocolo MIDI, se apreciará que la invención es aplicable a cualquier sintetizador basado en tabla de ondas que necesite calcular una muestra que se encuentra entre dos muestras almacenadas.
Debe observarse que el término "muestra" usado en el presente documento hace referencia a un único punto de muestra de audio.
El número total N de voces 4 del sintetizador define la polifonía máxima del sistema. A medida que aumenta N, aumenta la polifonía permitiendo que se produzca simultáneamente un mayor número de sonidos. Para un sintetizador MIDI conforme al Nivel 1 de Sistema MIDI General (GM-1), el valor de N será al menos de 24. Por motivos de claridad, únicamente se muestran tres voces en la figura 1.
El controlador 2 recibe datos a través de una entrada 14. Los datos comprenderán un flujo de información MIDI que se refiere a una pieza de música o conjunto específico de sonidos. Cada archivo MIDI contendrá una lista de eventos que describen los pasos específicos que el sintetizador debe realizar con el fin de generar los sonidos requeridos.
En el caso de archivos MIDI almacenados dentro de dispositivos de comunicación portátiles, un archivo puede referirse, por ejemplo, a una pieza musical corta que puede usarse como tono de llamada.
El controlador 2 procesa el flujo de datos MIDI y dirige las partes apropiadas de los datos a las voces relevantes 4 de modo que pueda sintetizarse el sonido requerido. Por ejemplo, el sonido requerido puede consistir en varios instrumentos diferentes tocando al mismo tiempo y, por tanto, cada voz 4 manejará a la vez un instrumento monofónico o una parte de un instrumento polifónico. A menudo, el archivo MIDI contendrá instrucciones referidas a las voces particulares 4 que se han de usar al sintetizar la siguiente salida.
Dependiendo del contenido particular del archivo MIDI, puede estar en uso en cualquier momento un número diferente de voces según la pieza particular de música que se esté reproduciendo.
Cada voz 4 está conectada al controlador 2, el mezclador 10, la memoria 6 de tabla de ondas y la tabla 8 de filtro.
La memoria 6 de tabla de ondas contiene una serie de secuencias de muestras digitales. Cada secuencia puede representar, por ejemplo, una nota musical para un instrumento musical particular. Debido a restricciones de memoria, únicamente pueden almacenarse unas pocas notas por instrumento.
La tabla 8 de filtro contiene una serie de valores de un filtro. En una realización preferida, los valores representan una función sinc (en donde una función sinc es (sin (x))/x).
Aunque no se muestra en la figura 1, tanto la memoria 6 de tabla de ondas como la tabla 8 de filtro tienen un multiplexor que permite acceder a cada tabla más de una vez por periodo de muestra (se define un periodo de muestra como la inversa de la tasa de muestreo, es decir, la tasa a la cual se muestreó el sonido original). Por tanto, cada una de las voces 1 a N puede compartir el mismo conjunto de recursos.
Como es convencional, una voz 4, basada en las instrucciones recibidas desde el controlador 2 y el grado de interpolación del sistema, produce la muestra de salida requerida 16.
A menudo el sonido que se ha de producir por una voz particular 4 no se corresponde en frecuencia con una de las secuencias almacenadas de muestras. Por tanto, la voz 4 debe "cambiar" la frecuencia de la secuencia almacenada para producir un sonido con la frecuencia requerida.
Por ejemplo, si una secuencia almacenada de muestras representa una nota Do media en un piano, entonces esta secuencia puede cambiarse de frecuencia para obtener un nota Do# o una nota Re.
La frecuencia del sonido requerido puede expresarse como un múltiplo de la frecuencia de la secuencia almacenada. Este múltiplo se escribe como un número racional M/L y se conoce como el incremento de fase.
Por tanto, si la frecuencia requerida es el doble de la frecuencia de la secuencia almacenada, entonces el incremento de fase será igual a 2. Si la frecuencia requerida es la mitad de la frecuencia de la secuencia almacenada, entonces el incremento de fase será igual a ½. En el ejemplo en el que se requiere una nota Do#, el incremento de fase será la raíz decimosegunda de 2 (un número irracional) que puede ser aproximado por un número racional.
A menudo, cuando se cambia la frecuencia de una secuencia almacenada de muestras, las muestras requeridas no se almacenan en la memoria. Es decir, la muestra requerida cae entre dos muestras almacenadas.
Por tanto, la voz 4 recupera un número de muestras que circundan a la muestra requerida de la memoria 6 de tabla de ondas y un número igual de coeficientes de filtro de la tabla 8 de filtro. Cada muestra recuperada de la memoria 6 de tabla de ondas se multiplica entonces por un coeficiente de filtro adecuado de la tabla 8 de filtro y se combinan los productos para proporcionar la salida de la voz 16.
Los coeficientes de la tabla 8 de filtro se eligen de modo que, si la memoria 6 de tabla de ondas contiene la muestra requerida, entonces las otras muestras recuperadas de la memoria 6 de tabla de ondas se multiplican por un coeficiente de filtro cero y se da salida a la muestra almacenada.
En una realización preferida en la que la tabla 8 de filtro contiene valores que son representativos de una función sinc, el período de la función sinc es el doble del periodo de muestra.
Cada salida 16 de una voz 4 se envía a un mezclador 10 en donde las salidas 16 de todas las voces activas 4 se combinan en una salida combinada 18 y se hacen pasar al módulo DAC 12.
El módulo DAC 12 contiene uno o más conversores de digital a analógico que convierten la salida combinada 18 del mezclador 10 en una señal analógica 20.
La figura 2 muestra un método realizado por el controlador 2 de la figura 1 según la invención.
En el paso 101, el controlador 2 analiza el flujo de datos MIDI y determina el número de voces 4 que estarán activas durante el siguiente periodo de muestra. Es decir, el controlador 2 determina cuántas voces diferentes 4 serán salidas contributivas 16 hacia el mezclador 10.
En el paso 103, el controlador 2 determina el número de muestras que se han de usar por cada voz 4 al calcular la siguiente salida 16 (conocido como el grado de interpolación I_{D}) e instruye apropiadamente a las voces 4.
En el paso 105, cada voz activa 4 calcula una salida 16 sobre la base de instrucciones recibidas del controlador 2 usando en el cálculo un número de muestras almacenadas igual al grado de interpolación I_{D}. Cada voz activa 4 también usará un número de coeficientes de filtro de la tabla 8 de coeficiente de filtro igual al grado de interpolación I_{D}.
El proceso se repite para cada ciclo de salida, es decir, el proceso se repite una vez por cada periodo de muestra.
En las realizaciones de la invención descritas con referencia a las figuras 3 y 4, el sintetizador tiene 24 voces 4 y un grado de interpolación máximo de 11.
La figura 3 es una tabla que muestra un esquema para determinar el grado de interpolación basado en el número de voces activas según la invención. Específicamente, para cualquier número dado de voces activas, la tabla ofrece el grado de interpolación que se ha de usar.
Por ejemplo, si el controlador 2 determina que únicamente estará activa una voz 4 durante el siguiente periodo de muestra, el controlador 2 da instrucciones a la voz 4 para usar un grado de interpolación de 11.
\newpage
A medida que aumenta el número de voces activas 4, disminuye de un modo lineal el grado de interpolación usado en el cálculo de las salidas 16.
Si todas las 24 voces 4 del sintetizador están activas, el controlador 2 determina entonces que se usará un grado de interpolación de 4.
Alternativamente, si se define una complejidad computacional máxima para el sintetizador, tal como para un sintetizador usado en un dispositivo portátil, puede elegirse el grado de interpolación de tal manera que no se supere la complejidad computacional máxima.
La figura 4 es otra tabla que muestra un esquema de esta clase. De nuevo, el grado de interpolación disminuye a medida que aumenta el número de voces activas 4. Sin embargo, el cambio no es lineal. En vez de ello, se calcula el grado de interpolación de modo que no se supere la complejidad computacional máxima.
Por ejemplo, si un sintetizador tiene 24 voces, un grado de interpolación máximo de 11 y consume 0,5 MIPS/gra-
do/voz (Millones de Instrucciones por Segundo/grado/voz), entonces un sintetizador convencional puede requerir hasta 132 MIPS. Esta potencia computacional supera en mucho la disponible en un dispositivo portátil actual típico tal como un terminal móvil.
Usando el esquema mostrado en la figura 4, la potencia computacional no superará 50 MIPS. Este valor es más adecuado para un dispositivo portátil.
El esquema real usado estará determinado por la potencia computacional disponible para el sintetizador y la cantidad de potencia computacional requerida para implementar cada grado de interpolación.
La figura 5 muestra con más detalle una voz de la figura 1. La voz 4 se muestra con el controlador 2, la memoria 6 de tabla de ondas y la tabla 8 de filtro.
Un procesador 22 recibe las instrucciones relevantes para la voz 4 desde el controlador 2. Las instrucciones comprenderán la información MIDI relevante para la voz 4 y una indicación relativa al grado de interpolación que se ha de usar al calcular la siguiente salida 16.
El controlador 2 puede indicar a cada voz 4 el grado de interpolación real que se ha de usar al calcular la siguiente salida, o alternativamente, el controlador 2 puede indicar el número de voces activas para cada voz 4 y dejar que el procesador 22 determine el grado de interpolación apropiado.
El procesador 22 está conectado a un registro 24 de incremento de fase, un contador 26 y un selector 28 de coeficiente de filtro.
El selector 28 de coeficiente de filtro está conectado a la tabla 8 de filtro para recuperar coeficientes de filtro apropiados.
El selector 28 de coeficiente de filtro también está conectado al contador 26.
Según la invención, el procesador 22 informa al contador 26 y al selector 28 de coeficiente de filtro del grado de interpolación que se ha de usar para calcular la siguiente salida 16.
El procesador 22 establece el valor del registro 24 de incremento de fase para producir la salida requerida 16. El valor del registro 24 de incremento de fase será M/L, en donde L y M son enteros y se determinan por el procesador 22 sobre la base de las instrucciones recibidas desde el controlador 2.
El valor de incremento de fase se pasa a un sumador 30. El sumador 30 está conectado a un registro 32 de fase que registra la fase actual. La salida del sumador 30 comprende una parte de número entero y una parte de número fraccionario.
Tanto la parte de número entero como la parte de número fraccionario de la salida del registro de fase son retroalimentadas al sumador 30.
La parte de número entero de la salida del registro 32 de fase también se pasa a un segundo sumador 34 en donde es sumada a la salida del contador 26. La salida de número entero del sumador 34 está conectada a la memoria 6 de tabla de ondas y determina una muestra que se ha de leer.
Las muestras que se recuperan de la memoria de tabla de ondas se pasan a un circuito 36 de multiplicación-acumulación.
Además de ser alimentada al sumador 30, la parte de número fraccionario de la salida del registro 32 de fase se alimenta a un selector 28 de coeficiente de filtro.
La salida del selector 28 de coeficiente de filtro se pasa al circuito 36 de multiplicación-acumulación en donde es combinada con las muestras recuperadas de la memoria 6 de tabla de ondas.
El funcionamiento de la voz 4 se describe ahora brevemente.
Cuando la entrada del registro 32 de fase es un valor no entero, es decir, la parte de número fraccionario no es cero, la muestra requerida está entre dos muestras tabuladas. Por tanto, debe calcularse la muestra requerida.
El sumador 30 funciona una vez por periodo de muestra para sumar el incremento de fase proveniente del registro 24 de incremento de fase a la fase actual (proporcionada por el registro 32 de fase).
La parte de número entero de la salida del registro 32 de fase indica la dirección de la memoria de tabla de ondas que contiene la muestra almacenada inmediatamente antes de la muestra requerida. Para calcular la muestra requerida, se lee un número de muestras igual a I_{D} en la memoria 6 de tabla de ondas.
El contador 26 se incrementa cada vez en uno para seleccionar I_{D} muestras del entorno de la muestra requerida. Por tanto, cuando I_{D} es 8, se leen cuatro muestras antes de la muestra requerida junto con cuatro muestras después de la muestra requerida. Si I_{D} es 5, se leen tres muestras antes de la muestra requerida junto con dos muestras después de la muestra requerida. Alternativamente, se leen dos muestras antes de la muestra requerida y tres muestras después de la muestra requerida. Estas muestras se pasan al circuito 36 de multiplicación-acumulación.
Debe observarse que el contador funciona una vez en cada periodo de muestra desde su valor inicial hasta su valor final.
El selector 28 de coeficiente de filtro obtiene coeficientes de filtro apropiados de la tabla 8 de filtro dependiendo de la parte de número fraccionario de la salida del registro de fase y del grado de interpolación. El selector 28 de coeficiente de filtro es controlado por el contador 26 para obtener I_{D} coeficientes de la tabla 8 de filtro.
Una vez que se han obtenido los coeficientes 44 de filtro de la tabla 8 de filtro, la entrada recibida desde el contador 26 se usa para hacer pasar los coeficientes de filtro al circuito 36 de multiplicación-acumulación. Aquí, las muestras obtenidas de la memoria 6 de tabla de ondas se multiplican por los coeficientes 44 de filtro adecuados, y los productos son sumados para obtener la salida para la voz 16.
A medida que cambia la parte de número fraccionario del registro 32 de fase, también cambiarán los coeficientes de filtro obtenidos de la tabla 8 de filtro.
A medida que cambia el número de voces activas 4, el procesador instruirá al contador 26 y al selector 28 de coeficiente de filtro sobre el grado de interpolación requerido, según sea apropiado.
La figura 6 muestra un teléfono móvil con un sintetizador de música según la invención. Aunque la invención se describe como estando incorporada en un teléfono móvil, se apreciará que la invención es aplicable a cualquier dispositivo portátil tal como un asistente digital personal (PDA), buscapersonas, organizadores electrónicos, o cualquier otro equipo en el que sea deseable que se pueda reproducir sonido polifónico de alta calidad.
Como es convencional, el teléfono móvil 46 comprende una antena 48, una circuitería 50 de transceptor, una CPU 52, una memoria 54 y un altavoz 56.
El teléfono móvil 46 también comprende un sintetizador MIDI 58 según la invención. La CPU 52 proporciona al sintetizador MIDI 58 unos archivos MIDI. Los archivos MIDI pueden almacenarse en una memoria 54, o pueden descargarse de una red mediante la antena 48 y la circuitería 50 de transceptor.
Por tanto, se ha descrito un sintetizador de sonido que reduce los requisitos computacionales de un sintetizador con un alto grado de polifonía, al tiempo que garantiza que los artefactos audibles se mantengan al mínimo.

Claims (16)

1. Un sintetizador que comprende:
una memoria (6), que contiene una pluralidad de puntos de muestra de audio únicos almacenados;
unos medios (4) para calcular una señal de salida para cada una de una pluralidad de voces activas, usando una pluralidad de puntos de muestra de audio únicos seleccionados de entre los puntos de muestra almacenados para cada una de las voces activas;
en donde el número de puntos de muestra usados para cada voz activa por los medios (4) de cálculo se deriva del número de voces activas por medio de una tabla de búsqueda.
2. Un sintetizador según la reivindicación 1, en donde el número de puntos de muestra usados para cada voz activa por los medios (4) de cálculo disminuye a medida que aumenta el número de voces activas.
3. Un sintetizador según la reivindicación 2, en donde el número de puntos de muestra usados para cada voz activa por los medios (4) de cálculo disminuye a medida que aumenta el número de voces activas de modo que no se supera una complejidad computacional máxima.
4. Un sintetizador según la reivindicación 1, en donde el número de puntos de muestra usados para cada voz activa por los medios (4) de cálculo disminuye no linealmente a medida que aumenta el número de voces activas.
5. Un sintetizador según una de las reivindicaciones 1 a 4, en donde la pluralidad de puntos de muestra almacenados en la memoria (6) comprende puntos de muestra de notas musicales.
6. Un sintetizador según la reivindicación 5, en donde la pluralidad de puntos de muestra almacenados en la memoria (6) comprende puntos de muestra de notas musicales producidas por diferentes instrumentos musicales.
7. Un sintetizador según cualquier reivindicación anterior, en donde los medios (4) de cálculo de una señal de salida comprenden una tabla (8) de filtro.
8. Un sintetizador según la reivindicación 7, en donde la tabla (8) de filtro contiene coeficientes de una función sinc.
9. Un sintetizador según cualquier reivindicación anterior, en donde el sintetizador es un sintetizador de música MIDI.
10. Un dispositivo portátil, que comprende un sintetizador según se reivindica en cualquier reivindicación precedente.
11. Un dispositivo portátil según la reivindicación 10, en donde el dispositivo portátil es un teléfono móvil.
12. Un dispositivo portátil según la reivindicación 10, en donde el dispositivo portátil es un buscapersonas.
13. Un método de funcionamiento de un sintetizador que tiene una pluralidad de puntos de muestra de audio únicos almacenados en una memoria, comprendiendo el método los pasos de:
determinar el número de voces que estarán activas al producir un sonido (101);
determinar un grado de interpolación a partir de una tabla de búsqueda, seleccionándose el grado de interpolación sobre la base del número de voces que estarán activadas, en donde el grado de interpolación se define como el número de puntos de muestra que se han de seleccionar de entre la pluralidad de puntos de muestra almacenados en la memoria (103); y
calcular una salida para cada voz activa, usando el número de puntos de muestra almacenados determinado por el grado de interpolación (105).
14. Un método según la reivindicación 13, en donde el grado de interpolación disminuye a medida que aumenta el número de voces activas.
15. Un método según la reivindicación 13, en donde el grado de interpolación disminuye a medida que aumenta el número de voces activas de modo que no se supera una complejidad computacional máxima.
16. Un método según la reivindicación 13, en donde el grado de interpolación disminuye no linealmente a medida que aumenta el número de voces activas.
ES02256081T 2002-09-02 2002-09-02 Sintetizador de sonido. Expired - Lifetime ES2305182T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP02256081A EP1394768B1 (en) 2002-09-02 2002-09-02 Sound synthesiser

Publications (1)

Publication Number Publication Date
ES2305182T3 true ES2305182T3 (es) 2008-11-01

Family

ID=31197967

Family Applications (1)

Application Number Title Priority Date Filing Date
ES02256081T Expired - Lifetime ES2305182T3 (es) 2002-09-02 2002-09-02 Sintetizador de sonido.

Country Status (5)

Country Link
EP (1) EP1394768B1 (es)
JP (1) JP4939753B2 (es)
AT (1) ATE394771T1 (es)
DE (1) DE60226435D1 (es)
ES (1) ES2305182T3 (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7613287B1 (en) 2005-11-15 2009-11-03 TellMe Networks Method and apparatus for providing ringback tones

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2040537B (en) * 1978-12-11 1983-06-15 Microskill Ltd Digital electronic musical instrument
JP3435702B2 (ja) * 1992-05-19 2003-08-11 松下電器産業株式会社 楽音発生装置
CN1591564B (zh) * 1995-06-19 2010-10-06 雅马哈株式会社 形成乐音波形的方法和装置
JP3000894B2 (ja) * 1995-06-19 2000-01-17 ヤマハ株式会社 楽音発生方法
JP3267106B2 (ja) * 1995-07-05 2002-03-18 ヤマハ株式会社 楽音波形生成方法
JP3152156B2 (ja) * 1996-09-20 2001-04-03 ヤマハ株式会社 楽音発生システム、楽音発生装置および楽音発生方法
FR2808370A1 (fr) * 2000-04-28 2001-11-02 Cit Alcatel Procede de compression d'un fichier midi

Also Published As

Publication number Publication date
JP4939753B2 (ja) 2012-05-30
DE60226435D1 (de) 2008-06-19
EP1394768B1 (en) 2008-05-07
ATE394771T1 (de) 2008-05-15
JP2005537506A (ja) 2005-12-08
EP1394768A1 (en) 2004-03-03

Similar Documents

Publication Publication Date Title
US6900381B2 (en) Method for removing aliasing in wave table based synthesizers
EP1304678A1 (en) Musical composition reproducing apparatus, portable terminal, musical composition reproducing method, and storage medium
JP2002156975A (ja) 音生成装置及び方法
JP3862061B2 (ja) 楽音再生装置および楽音再生方法ならびに携帯端末装置
US8175525B2 (en) Conversion from note-based audio format to PCM-based audio format
KR101011286B1 (ko) 사운드 신시사이저
US20050204903A1 (en) Apparatus and method for processing bell sound
ES2305182T3 (es) Sintetizador de sonido.
JP3077944B2 (ja) 信号再生装置
US20020177997A1 (en) Programmable melody generator
KR100535428B1 (ko) 음원 회로 및 이것을 사용한 전화 단말
EP1788553B1 (en) Conversion from note-based audio format to PCM-based audio format
KR20060036980A (ko) Midi 재생 장치 및 방법
KR20050087368A (ko) 무선 단말기의 벨소리 처리 장치
KR100689495B1 (ko) Midi 재생 장치 및 방법
JP2579049B2 (ja) 楽音合成装置
JP2797140B2 (ja) 楽音波形発生装置
Roth et al. An Aliasing-Free Hybrid Digital-Analog Polyphonic Synthesizer
KR100598208B1 (ko) Midi 재생 장치 및 방법
KR20210050647A (ko) 악기 디지털 인터페이스 재생 장치 및 방법
JPH0519768A (ja) 楽音合成装置
JPH03200294A (ja) 楽音合成装置
JPS5918715B2 (ja) 電子楽器
JP2004226877A (ja) 音発生装置
JP2007256784A (ja) 楽曲データ配信装置及び楽曲データ受信装置