Pregunta

Comencé un pequeño proyecto que incluye trabajar con archivos MIDI.Me he estado preguntando, ¿existe algún código C# o VB.Net que realice la transmisión entre archivos MIDI y WAV?

¿Fue útil?

Solución

Podrías intentar interactuar de alguna manera con Timidez, que es de código abierto:

TiMidity++ es un sintetizador de software.Puede reproducir archivos MIDI convirtiéndolos en datos de forma de onda PCM;proporciónele datos MIDI junto con archivos de datos de instrumentos digitales, luego los sintetiza en tiempo real y los reproduce.No sólo puede reproducir sonidos, sino que también puede guardar las formas de onda generadas en discos duros como varios formatos de archivos de audio.

Sintetizador fluido es un proyecto de código abierto actualizado más recientemente en una línea similar:

FluidSynth es un sintetizador de software en tiempo real basado en las especificaciones de SoundFont 2.

Puede descargar algunos SoundFonts gratuitos (los datos PCM reales utilizados por estos sintetizadores para "renderizar" los archivos MIDI) desde los sitios en esta lista.

Otros consejos

archivos MIDI contiene única nota y la información del controlador, no se sonidos. Con el fin de obtener sonidos de un archivo MIDI, lo que tiene que pasar el archivo a través de un sintetizador de música o sampler, que convertirá la información de notas y el controlador en sonidos reales.

En la práctica esto significa que cualquier archivo MIDI dada no tiene un sonido específico para ello. El sonido que resulta de la conversión de un archivo MIDI a audio variará dependiendo de la calidad de la biblioteca sintetizador o de la muestra, y los sonidos que se han seleccionado para realizar la conversión.

Muchas tarjetas de sonido tienen la capacidad de producir sonido a partir de archivos MIDI. Ellos pueden hacer esto porque muchos archivos MIDI siguen un estándar llamado el especificación General MIDI . La especificación General MIDI proporciona una forma estandarizada para asignar tareas específicas de los instrumentos. Si el archivo MIDI se ajusta a esta norma, se puede jugar a través de un generador de sonido MIDI general y esperar un tambor a sonar como un tambor, y no como una trompeta.

Si usted tiene un paquete de producción de música sofisticada, como el Cakewalk , puede cargar un archivo MIDI en ella, y hará uso de sus bibliotecas de sonido de a bordo para hacer un archivo de sonido para usted, y esto se puede hacer realmente más rápido que en tiempo real (es decir, no tiene que reproducir el sonido a través del sonido tarjeta y capturar la salida).

Creo que lo que estoy tratando de decir es que hay una gran cantidad de partes móviles para esto. No hay una sola pieza de código o un módulo de clase que va a hacer esto para usted.

Hay una serie de programas que puede comprar que hará esto (Google "convertir MIDI a WAV"), pero nunca ha llegado a través de código .Net públicamente disponible que hace esto (creo que algunos de estos programas son escrito en .Net, pero el código fuente no está disponible).

Tengo un amigo en línea que está trabajando en un convertidor comercial-MIDI a WAV, pero no lo es en .Net y no va a ser de código abierto. Como se ha mencionado Robert Harvey, esto no es una tarea sencilla en absoluto, ya que básicamente consiste en escribir su propio sintetizador de software (una tarea después de mi propio corazón).

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