37 lines
932 B
C
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
|