public static WavFile Compose(IModulator modulator, SampleRateType sampleRate, BitArray data) { using MemoryStream ms = new MemoryStream(); BinaryWriter bw = new BinaryWriter(ms); bw.Write(new byte[(int)(0.5 * 2 * (int)sampleRate)]); foreach (bool bit in data) { if (bit) { modulator.WriteOne(ms); } else { modulator.WriteZero(ms); } } bw.Write(new byte[(int)(0.5 * 2 * (int)sampleRate)]); var wavFile = new WavFile((int)sampleRate, ms.ToArray()); return(wavFile); }
public StreamSynthesizer(SampleRateType sampleRate, int bufferSize = 4096, int maxpoly = 60) { this.sampleRate = (int)sampleRate; this.audioChannels = 1; //UnitySynth this.samplesperBuffer = bufferSize; this.polyphony = maxpoly; setupSynth(); }
public static NzrModulator GetCustomBitDurationModulator(SampleRateType sampleRate, double bitDuration, double carrierFrequency) { var modulator = new NzrModulator( carrierFrequency: carrierFrequency, sampleRate: sampleRate, bitDuration: bitDuration ); return(modulator); }
public NzrDemodulator(double carrierFrequency, SampleRateType sampleRate, double bitDuration) { CarrierFrequency = carrierFrequency; SampleRate = sampleRate; BitDuration = bitDuration; }
public static NzrDemodulator GetCustomBitDurationDemodulator(double carrierFrequency, SampleRateType sampleRate, double bitDuration) { var demodulator = new NzrDemodulator( carrierFrequency: carrierFrequency, sampleRate: sampleRate, bitDuration: bitDuration ); return(demodulator); }
public HighPassFilter(double cutoffFrequency, SampleRateType sampleRate) { filter = new HighpassFilterButterworthImplementation(cutoffFrequency, 1, (double)sampleRate); }