private void InitializeInstance() { _audioInput = new CSCoreAudioInput(); _audioInput.Initialize(); _audioBuffer = new AudioBuffer(4096); // Working with ~93ms - _audioInput.DataAvailable += (left, right) => _audioBuffer.Put(left, right); _processors.Add(new FourierSpectrumProvider(_audioBuffer)); foreach (IAudioProcessor processor in _processors) { processor.Initialize(); } }
// ==================================================================== #region CONSTRUCTION / DISPOSAL // ==================================================================== /// <summary> /// Creates and returns a new agent using the provided dependencies. /// </summary> /// /// <param name="chatroomNetwork">The chatroom network implementation /// for chatroom access and sending data to peers in a chatroom. /// </param> /// /// <param name="audioInput">The source of the outgoing audio</param> /// /// <param name="audioOutputFactory"> /// The factory used for creating <see cref="IAudioOutput"/> instances /// for peers so that incoming audio from peers can be played. /// </param> public ChatroomAgent( IChatroomNetwork chatroomNetwork, IAudioInput audioInput, IAudioOutputFactory audioOutputFactory ) { AudioInput = audioInput ?? throw new ArgumentNullException(nameof(audioInput)); Network = chatroomNetwork ?? throw new ArgumentNullException(nameof(chatroomNetwork)); AudioOutputFactory = audioOutputFactory ?? throw new ArgumentNullException(nameof(audioOutputFactory)); CurrentMode = ChatroomAgentMode.Unconnected; MuteOthers = false; MuteSelf = false; PeerSettings = new Dictionary <short, ChatroomPeerSettings>(); PeerOutputs = new Dictionary <short, IAudioOutput>(); Init(); }
public VisualizerConfig(IAudioInput input, IVisualizingOutput output, IAudioOutput passthroughOutput = null) { Input = input; Output = output; PassthroughOutput = passthroughOutput; }