Pergunta

Eu comecei um pequeno projeto que inclui trabalhar com arquivos MIDI. Fiquei me perguntando, existe alguma C # ou VB.Net código que peforms que elenco entre arquivos MIDI e WAV?

Foi útil?

Solução

Você poderia tentar alguma forma de interface com timidez , que é Open Source:

TiMidity ++ é um sintetizador de software. Ele pode reproduzir arquivos MIDI, convertendo-os em dados de forma de onda PCM; dar-lhe dados MIDI juntamente com arquivos de instrumento de dados digitais, em seguida, ele sintetiza-los em tempo real, e joga. Não só pode reproduzir sons, mas também pode salvar as formas de onda geradas em discos rígidos como vários formatos de arquivo de áudio.

FluidSynth é um projeto Open Source mais recentemente atualizado em uma veia similar:

FluidSynth é um sintetizador de software em tempo real com base nas especificações SoundFont 2.

Você pode baixar alguns SoundFonts livres (os dados PCM reais usados ??por esses sintetizadores para "render" os arquivos MIDI) a partir de sites sobre esta lista .

Outras dicas

MIDI arquivos conter apenas informações nota e controlador, não sons. A fim de obter sons de um arquivo MIDI, você tem que passar o arquivo por meio de um sintetizador de música ou amostrador, que irá converter as informações de nota e controlador em sons reais.

Na prática, isso significa que qualquer arquivo MIDI não tem um som específico para ele. O som que resulta da conversão de um arquivo MIDI para áudio irá variar dependendo da qualidade do sintetizador ou biblioteca de samples, e os sons que são selecionados para realizar a conversão.

Muitas placas de som têm a capacidade de produzir som a partir de arquivos MIDI. Eles podem fazer isso porque muitos arquivos MIDI seguir um padrão chamado General MIDI especificação . O General Specification MIDI fornece uma maneira padronizada para mapear atribuições específicas do instrumento. Se seus conforma arquivo MIDI a este padrão, você pode jogá-lo através de um gerador de som General MIDI e esperar uma tarola a soar como um tambor, e não como uma trombeta.

Se você tem um pacote de produção de música sofisticada como Cakewalk , você pode carregar um arquivo MIDI para ele, e ele vai usar suas bibliotecas de som on-board para processar um arquivo de som para você, e isso pode realmente ser feito mais rápido do que em tempo real (ou seja, não tem que jogar o som através do som cartão e capturar a saída).

Eu acho que o que estou tentando dizer é que há um monte de peças móveis para isso. Não há um único pedaço de código ou um módulo de classe que vai fazer isso para você.

Há uma série de programas que você pode comprar que vai fazer isso (google "midi converter para WAV"), mas eu nunca se deparar com código .Net publicamente-disponível que faz isso (acho que alguns desses programas são escrito em .Net, mas o código fonte não está disponível).

Eu tenho um amigo online que está trabalhando em um conversor comercial MIDI-to-WAV, mas não é em .Net e não vai ser de código aberto. Como Robert Harvey mencionado, esta não é uma tarefa simples em tudo, pois envolve basicamente escrever seu próprio sintetizador de software (uma tarefa segundo o meu coração).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top