Pregunta

Necesito implementar un sintetizador de tabla de ondas en un núcleo ARM Cortex-M3.Estoy buscando algún código o herramienta que me ayude a comenzar.

Soy consciente de esta implementación de AVR.De hecho, lo convertí a PIC hace un tiempo.Ahora estoy buscando algo similar, pero que suene un poco mejor.

El código ANSI C sería genial.Cualquier fragmento de código (C o C++), muestra, herramienta o simplemente información general será muy apreciado.

Gracias.

¿Fue útil?

Solución

El Synthesis Toolkit (STK) es excelente, pero solo es C++:

http://ccrma.stanford.edu/software/stk/

Sin embargo, es posible que puedas extraer el código del sintetizador de tabla de ondas del STK.

Otros consejos

Dos sintetizadores de tabla de ondas de código abierto son Sintetizador fluido y Timidez.

Cualquier sintetizador ARM, los mejores, se puede convertir en escáner de ondas en menos de un día.Escanear la onda a partir de archivos o generarlos matemáticamente es casi lo mismo en términos de audio, WT proporciona bancos masivos de formas de onda sin costo de procesamiento, necesita las ondas, el código del oscilador WT en sí tiene 20 líneas.así que cambie su perilla de forma de onda de 3 a 100 para indicar qué WAV está leyendo, use una rampa/contador para leer los archivos WAV (como matrices).Peso fijo.

Después de 7 años de experiencia en sintetizadores, recomendaría cambiar 20 líneas de la función del oscilador de su sintetizador favorito para adaptarlo para leer matrices de ondas.El WT sólo utiliza 20 líneas de lógica, el resto del sintetizador es más importante:LFO's, Filtros, parámetros de entrada, memoria de presets...Utilice su sintetizador favorito y busque una biblioteca de ondas WT como archivos y carpetas WAV, y reemplace sus osciladores de sintetizador favoritos con funciones WT; sonará casi igual, solo que con menores costos de procesamiento.

Un sintetizador normalmente utiliza funciones OSC Sin, Sqr, Saw, Antialiased para la onda...

Un sintetizador de tabla de ondas utiliza alrededor de 20 líneas de código en su base y 10/20/100ds de ondas, idealmente cada onda muestreada en cada octava.Si puede obtener una biblioteca de sonidos de tabla de ondas, el sintetizador simplemente realiza bucles, cambios de tono, los sonidos y los sintetizadores profesionales también pueden tener varias octavas para mezclar las octavas.

Función PESO =

  • cargar archivos WAV en N matrices
  • cambiar forma de onda = seleccionar matriz de forma de onda de la lista WAV
  • leer la matriz de formas de onda a los Hz deseados

función del escáner de ondas =

  • fundido cruzado entre 2 ondas y asignar xfade al LFO, es decirseno y xfade.

La envolvente, el filtro, la amplitud y todas las demás funciones son independientes de la función de generación de ondas en todos los sintetizadores.

Recuerde que la herramienta psicoacústica más poderosa para los sintetizadores es la desviación del tono digital de las notas, se llama desafinación al unísono, el carácter sonoro de los sintetizadores proviene principalmente del coro y la desafinación al unísono.

Los WT son períodos únicos de ondas de secciones más largas, en sintetizadores más avanzados.el material de un solo período es muy fácil de escribir en código.los WT avanzados se muestrean por octava con ondas que duran N períodos, incluso 2-3 segundos, es decirpiano, y eso significa que cambian la calidad del sonido a través de las octavas, por lo que los WT complejos se funden cada octava con grabaciones de múltiples octavas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top