ES2305182T3 - Sintetizador de sonido. - Google Patents
Sintetizador de sonido. Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/02—Instruments 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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/00—General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
- G10H2230/025—Computing or signal processing architecture features
- G10H2230/041—Processor 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/171—Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
- G10H2240/201—Physical 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/241—Telephone transmission, i.e. using twisted pair telephone lines or any type of telephone network
- G10H2240/251—Mobile 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/541—Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
- G10H2250/621—Waveform 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.
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.
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.
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.
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.
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.
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.
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)
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)
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 |
-
2002
- 2002-09-02 DE DE60226435T patent/DE60226435D1/de not_active Expired - Lifetime
- 2002-09-02 ES ES02256081T patent/ES2305182T3/es not_active Expired - Lifetime
- 2002-09-02 AT AT02256081T patent/ATE394771T1/de not_active IP Right Cessation
- 2002-09-02 EP EP02256081A patent/EP1394768B1/en not_active Expired - Lifetime
-
2003
- 2003-08-11 JP JP2004532083A patent/JP4939753B2/ja not_active Expired - Fee Related
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) | 楽曲データ配信装置及び楽曲データ受信装置 |