public void ConnectToSkpe() { Stop(); DisconnectFromSkype(); interceptor = new SkypeConnector(log, effects); effectStream = interceptor.OutputStream; }
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(); }
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); }
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) { } }
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); } } } }
public void Play(IntPtr handle) { effectStream = new EffectStream(effects, outStream); CreatePlayer(); player.Init(effectStream); player.Play(); }