Logiciel de génération audio ou bibliothèque .NET

Je dois être capable de jouer certains sons dans l’application ac #. Je ne me soucie pas de savoir si cela les génère à la volée ou s’il les lit à partir d’un fichier, mais j’ai juste besoin de quelques moyens pour générer des sons qui ont non seulement un volume et une fréquence variables, mais un timbre variable. Ce serait particulièrement utile si tout ce que j’utilisais pour générer ces sons avait beaucoup de préréglages de timbres, et ce serait encore plus impressionnant si ces timbres ne sonnaient pas tous comme midi (ce qui signifie enregistrements d’instruments réels).

Aucune suggestion?

Vous voudrez peut-être jeter un coup d’œil à ma question Création d’une onde carrée ou sinusoïdale en C #

Utiliser NAudio en particulier était un excellent choix

Cet article m’a aidé avec quelque chose de similaire: http://social.msdn.microsoft.com/Forums/vstudio/en-US/18fe83f0-5658-4bcf-bafc-2e02e187eb80/beep-beep

La partie en particulier est la classe Beep:

public class Beep { public static void BeepBeep(int Amplitude, int Frequency, int Duration) { double A = ((Amplitude * (System.Math.Pow(2, 15))) / 1000) - 1; double DeltaFT = 2 * Math.PI * Frequency / 44100.0; int Samples = 441 * Duration / 10; int Bytes = Samples * 4; int[] Hdr = {0X46464952, 36 + Bytes, 0X45564157, 0X20746D66, 16, 0X20001, 44100, 176400, 0X100004, 0X61746164, Bytes}; using (MemoryStream MS = new MemoryStream(44 + Bytes)) { using (BinaryWriter BW = new BinaryWriter(MS)) { for (int I = 0; I < Hdr.Length; I++) { BW.Write(Hdr[I]); } for (int T = 0; T < Samples; T++) { short Sample = System.Convert.ToInt16(A * Math.Sin(DeltaFT * T)); BW.Write(Sample); BW.Write(Sample); } BW.Flush(); MS.Seek(0, SeekOrigin.Begin); using (SoundPlayer SP = new SoundPlayer(MS)) { SP.PlaySync(); } } } } } 

Il peut être utilisé comme suit

 Beep.BeepBeep(100, 1000, 1000); /* 10% volume */ 

Il existe un article populaire sur CodeProject dans ce sens: http://www.codeproject.com/KB/audio-video/CS_ToneGenerator.aspx

Vous pouvez également consulter ce fil de discussion: http://episteme.arstechnica.com/eve/forums/a/tpc/f/6330927813/m/197000149731

Pour que les sons générés ne sonnent pas «midi-ish», vous devez utiliser des échantillons réels et les reproduire. Essayez de trouver une bonne banque d’échantillons d’instruments, telle que http://www.sampleswap.org/filebrowser-new.php?d=INSTRUMENTS+single+samples%2F

Ensuite, lorsque vous souhaitez composer une mélodie à partir d’eux, alternez simplement la fréquence de lecture par rapport à la fréquence d’échantillon d’origine.

S’il vous plaît laissez-moi un mot si vous trouvez cette réponse utile.