FastLED 3.9.15
Loading...
Searching...
No Matches
noisegen.h
Go to the documentation of this file.
1
3
4#pragma once
5
6#include <stdint.h>
7#include "noise.h"
8
9#include "fl/math_macros.h"
10#include "fl/namespace.h"
11
13
14
15// Simple noise generator for 1-d waves. Default values will give good results
16// for most cases.
19 unsigned long time_multiplier;
20
22 NoiseGenerator(int32_t itScale, int32_t timeMul) : iteration_scale(itScale), time_multiplier(timeMul) {}
23
24 uint8_t Value(int32_t i, unsigned long time_ms) const {
25 uint32_t input = iteration_scale * i + time_ms * time_multiplier;
26 uint16_t v1 = inoise16(input);
27 return uint8_t(v1 >> 8);
28 }
29
30 int LedValue(int32_t i, unsigned long time_ms) const {
31 int val = Value(i, time_ms);
32 return MAX(0, val - 128) * 2;
33 }
34};
35
#define MAX(a, b)
Definition math_macros.h:4
uint16_t inoise16(uint32_t x, uint32_t y, uint32_t z, uint32_t t)
16-bit, fixed point implementation of Perlin's noise.
Definition noise.cpp:466
#define FASTLED_NAMESPACE_END
Definition namespace.h:22
Implements the FastLED namespace macros.
Functions to generate and fill arrays with noise.
unsigned long time_multiplier
Definition noisegen.h:19
int32_t iteration_scale
Definition noisegen.h:18
int LedValue(int32_t i, unsigned long time_ms) const
Definition noisegen.h:30
NoiseGenerator(int32_t itScale, int32_t timeMul)
Definition noisegen.h:22
uint8_t Value(int32_t i, unsigned long time_ms) const
Definition noisegen.h:24