Beispiel #1
0
 public void ConnectToSkpe()
 {
     Stop();
     DisconnectFromSkype();
     interceptor = new SkypeConnector(log, effects);
     effectStream = interceptor.OutputStream;
 }
Beispiel #2
0
 public void PlayNonStop()
 {
     var reader = new WaveFileReader(_sample);
         var loop = new LoopStream(reader);
         var effects = new EffectChain();
         var effectStream = new EffectStream(effects, loop);
         _pitch = new SuperPitch();
         effectStream.AddEffect(_pitch);
         _wave = new WaveOut();
         _wave.Init(effectStream);
         _wave.Play();
 }
Beispiel #3
0
        public SkypeConnector(ILog log, EffectChain effects)
        {
            this.log = log;
            InitSockets();

            skype = new Skype();
            ISkype iSkype = (ISkype)skype;

            if (!iSkype.Client.IsRunning)
            {
                log.Error("Skype is not running");
            }

            _ISkypeEvents_Event events = (_ISkypeEvents_Event)skype;

            events.AttachmentStatus += OnSkypeAttachmentStatus;
            skype.CallStatus += OnSkypeCallStatus;
            skype.Error += OnSkypeError;
            skype.Attach(Protocol, false);

            bufferStream = new SkypeBufferStream(44100);
            OutputStream = new EffectStream(effects, bufferStream);
        }
Beispiel #4
0
        private void LoadSample(Map map)
        {
            try
            {
                int index = 0;
                foreach (Channel channel in map.Channels)
                {
                    foreach (Sample sample in channel.ListSample)
                    {
                        List<int> listIndexSample = new List<int>();
                        dicSample.Add(sample.Name, listIndexSample);

                        for (int i = 0; i < CountInstancePerSample; i++)
                        {
                            WaveStream outStream = new WaveFileReader(sample.FileName);

                            //--- Détection de la fréquence moyenne du son
                            if (i == 0 && sample.Frequency == -1f)
                            {

                                //=======
                                IWaveProvider waveFloat = null;

                                if (outStream.WaveFormat.Channels > 1)
                                {
                                    StereoToMonoProvider16 stereo = new StereoToMonoProvider16(outStream);
                                    stereo.LeftVolume = 1f;
                                    stereo.RightVolume = 1f;

                                    waveFloat = new Wave16ToFloatProvider(stereo);
                                }
                                else
                                {
                                    waveFloat = new Wave16ToFloatProvider(outStream);
                                }

                                IWaveProvider outStream2 = new AutoTuneWaveProvider(waveFloat);
                                IWaveProvider wave16 = new WaveFloatTo16Provider(outStream2);

                                byte[] buffer = new byte[8192];
                                int _bytesRead;
                                do
                                {
                                    _bytesRead =
                                    wave16.Read(buffer, 0, buffer.Length);
                                    //writer.WriteData(buffer, 0, _bytesRead);
                                } while (_bytesRead != 0);//&& writer.Length < waveFileReader.Length);
                                //writer.Close();
                                //=======
                                outStream.Position = 0;

                                //---> Fréquence sonore du sample
                                sample.Frequency = ((AutoTuneWaveProvider)outStream2).Frequency;
                                //---> Note sur un clavier de 88 touches pour la fréqence
                                sample.NoteKey = (12f * (float)Math.Log(sample.Frequency / 55f) + 13f * (float)Math.Log(2f)) / ((float)Math.Log(2f));

                                Debug.WriteLine(sample.Name + " == " + sample.Frequency.ToString() + " == " + sample.NoteKey.ToString());
                            }
                            //---

                            outStream = WaveFormatConversionStream.CreatePcmStream(outStream);
                            outStream = new BlockAlignReductionStream(outStream);

                            reader[index] = outStream;

                            offsetStream[index] = new EffectStream(CreateEffectChain(sample), reader[index]);
                            channelSteam[index] = new WaveChannel32(offsetStream[index]);

                            channelSteam[index].Position = channelSteam[index].Length;
                            mixer.AddInputStream(channelSteam[index]);

                            listIndexSample.Add(index);

                            index++;
                        }

                        sample.Duration = channelSteam[dicSample[sample.Name][0]].TotalTime;
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
Beispiel #5
0
 private void passThroughEffectToolStripMenuItem_Click(object sender, EventArgs e)
 {
     OpenFileDialog openFileDialog = new OpenFileDialog();
     openFileDialog.Filter = "*.wav|*.wav";
     if (openFileDialog.ShowDialog() == DialogResult.OK)
     {
         using (WaveFileReader reader = new WaveFileReader(openFileDialog.FileName))
         {
             SaveFileDialog saveFileDialog = new SaveFileDialog();
             saveFileDialog.Filter = "*.wav|*.wav";
             if (saveFileDialog.ShowDialog() == DialogResult.OK)
             {
                 string fileName = saveFileDialog.FileName;
                 EffectStream effectStream = new EffectStream(new PitchDown(), reader);
                 WaveFileWriter.CreateWaveFile(fileName, effectStream);
                 System.Diagnostics.Process.Start(fileName);
             }
         }
     }
 }
Beispiel #6
0
 public void Play(IntPtr handle)
 {
     effectStream = new EffectStream(effects, outStream);
     CreatePlayer();
     player.Init(effectStream);
     player.Play();
 }