12
votes

Comment puis-je convertir entre MIDI en WAV / MP3 dans C #?

J'ai lancé un petit projet qui inclut de travailler avec des fichiers MIDI. Je me demandais, y a-t-il un code C # ou VB.NET que PEFORMS qui jette entre les fichiers MIDI et WAV?


0 commentaires

3 Réponses :


8
votes

Fichiers MIDI contient uniquement des informations de note et de contrôleur, non des sons. Pour obtenir des sons d'un fichier MIDI, vous devez transmettre le fichier via un synthétiseur de musique ou un échantillonneur, qui convertira les informations de la note et du contrôleur en sons réels.

En pratique, cela signifie que tout fichier MIDI donné n'a pas de son spécifique. Le son résultant de la conversion d'un fichier MIDI en audio variera en fonction de la qualité du synthétiseur ou de la bibliothèque d'échantillons et les sons sélectionnés pour effectuer la conversion.

De nombreuses cartes son ont la capacité de produire du son à partir de fichiers MIDI. Ils peuvent le faire car de nombreux fichiers MIDI suivent une norme appelée Spécification générale MIDI < / a>. La spécification MIDI General fournit un moyen normalisé de mapper des missions d'instruments spécifiques. Si votre fichier MIDI est conforme à cette norme, vous pouvez le lire via un générateur de son MIDI General MIDI et s'attendre à ce qu'un caisse claire sonne comme un tambour claire, et non comme une trompette.

Si vous avez un package de production de musique sophistiqué comme Cakewalk , vous pouvez Chargez un fichier MIDI dans celui-ci, et il utilisera ses bibliothèques sonores à bord pour rendre un fichier sonore pour vous, ce qui peut être fait plus rapidement que le temps réel (c'est-à-dire qu'il n'a pas à jouer au son à travers le son carte et capturer la sortie).

Je suppose que ce que j'essaie de dire, c'est qu'il y a beaucoup de pièces mobiles à cela. Il n'y a pas un seul morceau de code ni un module de classe qui le fera pour vous.


5 commentaires

Je souhaite pouvoir jouer aux fichiers MIDI sur Silverlight, je m'attends trop?


Je ne pense pas que vous ayez besoin de convertir MIDI en WAV afin de la jouer à Silverlight. Si Silverlight ne peut pas gérer des fichiers MIDI Nativement, vous pouvez alors appuyer sur l'API Windows Multimédia pour lire les fichiers MIDI.


Comment je fais ça? L'environnement de Silverlight me bloque d'avoir accès à cela. Comment puis-je ajouter une référence Com référence à Windows Multimédia API?


Pas Silverlight, mais j'ai trouvé que ceci très cool ... JQuery Media Plugin: MALSUP.com/JQUERY / Media / # Vue d'ensemble


"Beaucoup de pièces mobiles à cela" - Je ne peux penser que deux. Le pack de synthétiseur utilisé pour le rendu et le code qui effectue réellement le rendu.



0
votes

Il y a un certain nombre de programmes que vous pouvez acheter qui fera cela (Google "Convertir MIDI en WAV"), mais je n'ai jamais rencontré de code .NET non disponible publiquement qui le fait (je pense que certains de ces programmes sont écrit en .NET, mais le code source n'est pas disponible).

J'ai un ami en ligne qui travaille sur un convertisseur commercial MIDI-TO-WAV, mais ce n'est pas dans .NET et ce ne sera pas open source. Comme Robert Harvey a mentionné, il ne s'agit pas d'une tâche simple du tout, car il implique essentiellement de rédiger votre propre synthétiseur logiciel (une tâche après mon propre cœur).


0 commentaires

9
votes

Vous pouvez essayer d'une interface d'une manière d'une quelconque interface avec Temple , qui est open source:

TIMIDITÉ ++ est un synthétiseur logiciel. Il peut lire des fichiers MIDI en les convertissant en données de forme d'onde PCM; Donnez-lui des données MIDI avec des fichiers de données numériques de l'instrument, puis il les synthétise en temps réel et joue. Il peut non seulement lire des sons, mais peut également enregistrer les formes d'onde générées dans des disques durs en tant que formats de fichiers audio variés.

Fluidsynth est un projet open source plus récemment mis à jour dans une veine similaire:

FLUIDSYNTH est un synthétiseur de logiciel en temps réel basé sur les spécifications SoundFont 2.

Vous pouvez télécharger certains SoundFont gratuits (les données PCM réelles utilisées par ces synthétiseurs pour "rendre" les fichiers MIDI) des sites sur cette liste .