JeCodeLeSoir

HAAAAAAAAAAAAAAAAAA

Apr 10th, 2023
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.71 KB | None | 0 0
  1. using NAudio.Wave;
  2.  
  3. Dictionary<string, double> notes = new Dictionary<string, double>
  4. {
  5.     { "C0", 16.35 },
  6.     { "C#0/Db0", 17.32 },
  7.     { "D0", 18.35 },
  8.     { "D#0/Eb0", 19.45 },
  9.     { "E0", 20.60 },
  10.     { "F0", 21.83 },
  11.     { "F#0/Gb0", 23.12 },
  12.     { "G0", 24.50 },
  13.     { "G#0/Ab0", 25.96 },
  14.     { "A0", 27.50 },
  15.     { "A#0/Bb0", 29.14 },
  16.     { "B0", 30.87 },
  17.     { "C1", 32.70 },
  18.     { "C#1/Db1", 34.65 },
  19.     { "D1", 36.71 },
  20.     { "D#1/Eb1", 38.89 },
  21.     { "E1", 41.20 },
  22.     { "F1", 43.65 },
  23.     { "F#1/Gb1", 46.25 },
  24.     { "G1", 49.00 },
  25.     { "G#1/Ab1", 51.91 },
  26.     { "A1", 55.00 },
  27.     { "A#1/Bb1", 58.27 },
  28.     { "B1", 61.74 },
  29.     { "C2", 65.41 },
  30.     { "C#2/Db2", 69.30 },
  31.     { "D2", 73.42 },
  32.     { "D#2/Eb2", 77.78 },
  33.     { "E2", 82.41 },
  34.     { "F2", 87.31 },
  35.     { "F#2/Gb2", 92.50 },
  36.     { "G2", 98.00 },
  37.     { "G#2/Ab2", 103.83 },
  38.     { "A2", 110.00 },
  39.     { "A#2/Bb2", 116.54 },
  40.     { "B2", 123.47 },
  41.     { "C3", 130.81 },
  42.     { "C#3/Db3", 138.59 },
  43.     { "D3", 146.83 },
  44.     { "D#3/Eb3", 155.56 },
  45.     { "E3", 164.81 },
  46.     { "F3", 174.61 },
  47.     { "F#3/Gb3", 185.00 },
  48.     { "G3", 196.00 },
  49.     { "G#3/Ab3", 207.65 },
  50.     { "A3", 220.00 },
  51.     { "A#3/Bb3", 233.08 },
  52.     { "B3", 246.94 },
  53.     { "C4", 261.63 },
  54.     { "C#4/Db4", 277.18 },
  55.     { "D4", 293.66 },
  56.     { "D#4/Eb4", 311.13 },
  57.     { "E4", 329.63 },
  58.     { "F4", 349.23 },
  59.     { "F#4/Gb4", 369.99 },
  60.     { "G4", 392.00 },
  61.     { "G#4/Ab4", 415.30 },
  62.     { "A4", 440.00 },
  63.     { "A#4/Bb4", 466.16 },
  64.     { "B4", 493.88 },
  65.     { "C5", 523.25 },
  66.     { "C#5/Db5", 554.37 },
  67.     { "D5", 587.33 },
  68.     { "D#5/Eb5", 622.25 },
  69.     { "E5", 659.26 },
  70.     { "F5", 698.46 },
  71.     { "F#5/Gb5", 739.99 },
  72.     { "G5", 783.99 },
  73.     { "G#5/Ab5", 830.61 },
  74.     { "A5", 880.00 },
  75.     { "A#5/Bb5", 932.33 },
  76.     { "B5", 987.77 },
  77.     { "C6", 1046.50 },
  78.     { "C#6/Db6", 1108.73 },
  79.     { "D6", 1174.66 },
  80.     { "D#6/Eb6", 1244.51 },
  81.     { "E6", 1318.51 },
  82.     { "F6", 1396.91 },
  83.     { "F#6/Gb6", 1479.98 },
  84.     { "G6", 1567.98 },
  85.     { "G#6/Ab6", 1661.22 },
  86.     { "A6", 1760.00 },
  87.     { "A#6/Bb6", 1864.66 },
  88.     { "B6", 1975.53 },
  89.     { "C7", 2093.00 },
  90.     { "C#7/Db7", 2217.46 },
  91.     { "D7", 2349.32 },
  92.     { "D#7/Eb7", 2489.02 },
  93.     { "E7", 2637.02 },
  94.     { "F7", 2793.83 },
  95.     { "F#7/Gb7", 2959.96 },
  96.     { "G7", 3135.96 },
  97.     { "G#7/Ab7", 3322.44 },
  98.     { "A7", 3520.00 },
  99.     { "A#7/Bb7", 3729.31 },
  100.     { "B7", 3951.07 },
  101.     { "C8", 4186.01 },
  102.     { "C#8/Db8", 4434.92 },
  103.     { "D8", 4698.63 },
  104.     { "D#8/Eb8", 4978.03 },
  105.     { "E8", 5274.04 },
  106.     { "F8", 5587.65 },
  107.     { "F#8/Gb8", 5919.91 },
  108.     { "G8", 6271.93 },
  109.     { "G#8/Ab8", 6644.88 },
  110.     { "A8", 7040.00 },
  111.     { "A#8/Bb8", 7458.62 },
  112.     { "B8", 7902.13 }
  113. };
  114.  
  115.  
  116. static void PlayNote(double frequency, int duration)
  117. {
  118.     int sampleRate = 44100;
  119.     int amplitude = 32760;
  120.     int numSamples = duration * sampleRate / 1000;
  121.     double[] sample = new double[numSamples];
  122.  
  123.     for (int i = 0; i < numSamples; i++)
  124.     {
  125.         sample[i] = amplitude * Math.Sin(2 * Math.PI * i * frequency / sampleRate);
  126.     }
  127.  
  128.     byte[] byteSample = new byte[numSamples * 2];
  129.     for (int i = 0; i < numSamples; i++)
  130.     {
  131.         short value = (short)sample[i];
  132.         byteSample[2 * i] = (byte)(value & 0xff);
  133.         byteSample[2 * i + 1] = (byte)((value >> 8) & 0xff);
  134.     }
  135.  
  136.     using (var _WaveStream = new MemoryStream())
  137.     {
  138.         using (var fileWriter = new WaveFileWriter(_WaveStream, new WaveFormat(sampleRate, 16, 1)))
  139.         {
  140.             fileWriter.Write(byteSample, 0, byteSample.Length);
  141.             fileWriter.Flush();
  142.         }
  143.  
  144.         using (var _ReaderWaveStream = new MemoryStream(_WaveStream.ToArray()))
  145.         {
  146.             using (var audioFile = new WaveFileReader(_ReaderWaveStream))
  147.             using (var outputDevice = new WaveOutEvent())
  148.             {
  149.                 outputDevice.Init(audioFile);
  150.                 outputDevice.Play();
  151.                 while (outputDevice.PlaybackState == PlaybackState.Playing)
  152.                 {
  153.                     System.Threading.Thread.Sleep(10);
  154.                 }
  155.             }
  156.         }
  157.     }
  158. }
  159.  
  160.  
  161.  
  162. List<string> Music_notes = new List<string>()
  163. {
  164.     "E5", "E5", " ", "E5", " ", "C5", "E5", " ", "G5", " ", "G4", " ", "C5", " ", "G4", " ", "E4", " ", "A4", "B4", "A#4/Bb4", "A4", "G4", "E5", "G5", "A5", "F#5/Gb5", "G5", "E5", "C5", "D5", "B4", " ", " ", " ", "C5", " ", "G4", " ", "E4", " ", "A4", "B4", "A#4/Bb4", "A4", "G4", "E5", "G5", "A5", "F#5/Gb5", "G5", "E5", "C5", "D5", "B4", " ", " ", " ", " "
  165. };
  166.  
  167. foreach (string note in Music_notes)
  168. {
  169.     if(note.Equals(" "))
  170.     {
  171.         Thread.Sleep(10);
  172.     }
  173.     else
  174.         PlayNote(notes[note], 150);
  175. }
Advertisement
Add Comment
Please, Sign In to add comment