initializeStreamController method

void initializeStreamController()

Implementation

void initializeStreamController(){
  _audioStreamController = StreamController<Uint8List>(sync: true);
  _audioStreamController!.stream.listen((audioData) async {
    if (_isDisposed) return;

    // Get exact sample rate from AudioContext + detect mono/stereo
    if (kIsWeb) _detectWebSampleRate(audioData.length);

    // Feed real-time waveform visualization
    _pushMicAmplitude(audioData);

    double freqPitch = await getPitchFromAudioData(audioData);
    if(freqPitch > NeomGeneratorConstants.frequencyMin && freqPitch < (isAdmin ? NeomGeneratorConstants.frequencyMax : NeomGeneratorConstants.frequencyLimit)) {
      AppConfig.logger.d("Pitch: $freqPitch Hz");
      detectedFrequency.value = freqPitch;
      detectedPitches.add(freqPitch);
    }

    update([AppPageIdConstants.generator]);
  });
}