コード例 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Mono"/> class.
        /// </summary>
        /// <param name="samples">Input samples.</param>
        /// <param name="settings">Settings associated with this audio data.</param>
        public Mono(ImmutableArray <double> samples, IAudioProcessingSettings settings)
        {
            if (settings is null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            this.Settings    = settings;
            this.monoChannel = new Channel(samples, settings);
        }
コード例 #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Channel"/> class.
        /// </summary>
        /// <param name="inputSamples">Input audio samples.</param>
        /// <param name="settings">Audio setting.</param>
        public Channel(double[] inputSamples, IAudioProcessingSettings settings)
        {
            if (inputSamples is null)
            {
                throw new ArgumentNullException(nameof(inputSamples));
            }

            var inputImmutable = ImmutableArray.Create(inputSamples);

            this.scannerTools = new ScannerTools(inputImmutable, settings);
        }
コード例 #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Stereo"/> class.
        /// </summary>
        /// <param name="leftChannelSamples">Input samples (left channel).</param>
        /// <param name="rightChannelSamples">Input samples (right channel.</param>
        /// <param name="settings">Settings associated with this audio data.</param>
        public Stereo(
            ImmutableArray <double> leftChannelSamples,
            ImmutableArray <double> rightChannelSamples,
            IAudioProcessingSettings settings)
        {
            if (settings is null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            this.Settings     = settings;
            this.leftChannel  = new Channel(leftChannelSamples, settings);
            this.rightChannel = new Channel(rightChannelSamples, settings);
        }
コード例 #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ScannerTools"/> class.
        /// </summary>
        /// <param name="inputSamples">Input audio samples.</param>
        /// <param name="settings">Settings for processing audio.</param>
        public ScannerTools(ImmutableArray <double> inputSamples, IAudioProcessingSettings settings)
        {
            this.PatchCollection = new PatchCollection();

            this.Input = inputSamples;

            this.Settings = settings;

            this.InputPatcher = new Patcher(
                this.Input,
                this.PatchCollection,
                (patch, position) => patch.GetValue(position));

            this.Predictor = new FastBurgPredictor(
                settings.CoefficientsNumber,
                settings.HistoryLengthSamples);

            this.NormCalculator = new AveragedMaxErrorAnalyzer();
        }
コード例 #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Channel"/> class.
 /// </summary>
 /// <param name="inputSamples">Input audio samples.</param>
 /// <param name="settings">Audio setting.</param>
 public Channel(ImmutableArray <double> inputSamples, IAudioProcessingSettings settings)
 {
     this.scannerTools = new ScannerTools(inputSamples, settings);
 }