setBinauralBeat method

  1. @override
void setBinauralBeat({
  1. double beat = 0,
})
override

Implementation

@override
void setBinauralBeat({double beat = 0}) {
  final clampedBeat = beat.clamp(
    -NeomGeneratorConstants.binauralBeatMax,
    NeomGeneratorConstants.binauralBeatMax,
  );

  currentBeat.value = clampedBeat;
  _sineEngine.beat = clampedBeat.abs();

  // Record user-driven beat change
  if (inciensoRecorder.isRecording) {
    inciensoRecorder.captureUserAction(
      rightHz: currentFreq.value + clampedBeat,
    );
  }

  if (clampedBeat != 0) {
    final secondFreq = currentFreq.value + clampedBeat;

    chamberPreset.binauralFrequency = NeomFrequency(
      frequency: secondFreq,
      description: clampedBeat > 0
          ? "Binaural +${clampedBeat.toStringAsFixed(0)}"
          : "Binaural ${clampedBeat.toStringAsFixed(0)}",
    );
  } else {
    chamberPreset.binauralFrequency = null;
  }

  update([AppPageIdConstants.generator]);
}