Files
klubhaus-doorbell/libraries/FastLED/src/noisegen.h
2026-02-12 00:45:31 -08:00

37 lines
932 B
C

/// @file noisegen.h
/// Noise generation classes
#pragma once
#include "fl/stdint.h"
#include "noise.h"
#include "fl/math_macros.h"
#include "fl/namespace.h"
FASTLED_NAMESPACE_BEGIN
// Simple noise generator for 1-d waves. Default values will give good results
// for most cases.
struct NoiseGenerator {
int32_t iteration_scale;
unsigned long time_multiplier;
NoiseGenerator() : iteration_scale(10), time_multiplier(10) {}
NoiseGenerator(int32_t itScale, int32_t timeMul) : iteration_scale(itScale), time_multiplier(timeMul) {}
uint8_t Value(int32_t i, unsigned long time_ms) const {
uint32_t input = iteration_scale * i + time_ms * time_multiplier;
uint16_t v1 = inoise16(input);
return uint8_t(v1 >> 8);
}
int LedValue(int32_t i, unsigned long time_ms) const {
int val = Value(i, time_ms);
return MAX(0, val - 128) * 2;
}
};
FASTLED_NAMESPACE_END