示例#1
0
        public Main()
        {
            InitializeComponent();

            rtlLut = new float[256];
            for (int i = 0; i < 256; i++)
            {
                rtlLut[i] = (i - 128) * (1f / 127f);
            }

            List <AudioDevice> audioDevices = AudioDevice.GetDevices(AudioDeviceDirection.Output);
            AudioDevice        df           = new AudioDevice("", "", 0, AudioDeviceDirection.Output, true);

            foreach (AudioDevice d in audioDevices)
            {
                Console.WriteLine(d.Name);
                if (d.IsDefault)
                {
                    df = d;
                }
            }

            audioFifo = new Queue <float>();
            audioLock = new object();

            pl        = new AudioPlayer(df.Index, audioSampleRate, (uint)(audioBufferInMs * audioSampleRate / 1000), audioBufferNeeded);
            rtlDevice = new RtlDevice(0);
            rtlDevice.SamplesAvailable += RtlDevice_SamplesAvailable;
            rtlDevice.Frequency         = 200600000;
            rtlDevice.SampleRate        = 2560000;

            fmCrusher             = new FmCrusher(2560000, audioSampleRate);
            fmCrusher.AudioEvent += FmCrusher_AudioEvent;
            rtlDevice.Start();
        }
示例#2
0
        public unsafe SharpTest()
        {
            InitializeComponent();
            powerBuffer          = DataBuffer.Create(fftBins, sizeof(float));
            powerBufferDecimator = DataBuffer.Create(fftBins, sizeof(float));
            fftBuffer            = DataBuffer.Create(fftBins, sizeof(Complex));

            powerPtr          = (float *)powerBuffer;
            powerDecimatorPtr = (float *)powerBufferDecimator;
            fftBufferPtr      = (Complex *)fftBuffer;

            hammingWindow = Filters.generateHammingWindow(fftBins);

            offsetTrackBar.Value  = mainSpectrumAnalyzer.DisplayOffset;
            displayRangeBar.Value = mainSpectrumAnalyzer.DisplayRange;
            fmDemod = new FMDemodulator();
            List <AudioDevice> devices = AudioDevice.GetDevices(AudioDeviceDirection.Output);

            foreach (AudioDevice d in devices)
            {
                if (d.IsDefault)
                {
                    audioDeviceIdx = d.Index;
                    break;
                }
            }
            updateFrequency((uint)(105.7 * 1000 * 1000));
            sFFT = new SFFT(fftBins);
        }
    public void StartRecording()
    {
        var sampleRate   = 44100;
        var channelCount = 1;

        // Start recording from the main camera
        recordingClock = new RealtimeClock();
        videoRecorder  = new MP4Recorder(videoWidth, videoHeight, 30, sampleRate, channelCount, OnRecording);
        cameraInput    = new CameraInput(videoRecorder, recordingClock, Camera.main);
        // Start the microphone
        audioDevice = AudioDevice.GetDevices()[0];
        audioDevice.StartRecording(sampleRate, channelCount, this);
    }