MCPcopy Create free account
hub / github.com/FastLED/FastLED / MapDecayTime

Function MapDecayTime

examples/LuminescentGrand/shared/util.cpp:34–66  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

32}
33
34float MapDecayTime(uint8_t key_idx) {
35 typedef InterpData<uint8_t, float> Datum;
36 static const float bias = 1.3f;
37 // key then time for decay in milliseconds.
38 // First value is the KEY on the keyboard, second value is the
39 // time. The KEY must be IN ORDER or else the algorithm will fail.
40 static const Datum kInterpData[] = {
41 Datum(0, 21.0f * 1000.0f * bias),
42 Datum(11, 19.4 * 1000.0f * bias),
43 Datum(22, 15.1f * 1000.0f * bias),
44 Datum(35, 12.5f * 1000.0f * bias),
45 Datum(44, 10.f * 1000.0f * bias),
46 Datum(50, 8.1f * 1000.0f * bias),
47 Datum(53, 5.3f * 1000.0f * bias),
48 Datum(61, 4.0f * 1000.0f * bias),
49 Datum(66, 5.0f * 1000.0f * bias),
50 Datum(69, 4.6f * 1000.0f * bias),
51 Datum(70, 4.4f * 1000.0f * bias),
52 Datum(71, 4.3f * 1000.0f * bias),
53 Datum(74, 3.9f * 1000.0f * bias),
54 Datum(80, 1.9f * 1000.0f * bias),
55 Datum(81, 1.8f * 1000.0f * bias),
56 Datum(82, 1.7f * 1000.0f * bias),
57 Datum(83, 1.5f * 1000.0f * bias),
58 Datum(84, 1.3f * 1000.0f * bias),
59 Datum(86, 1.0f * 1000.0f * bias),
60 Datum(87, 0.9f * 1000.0f * bias),
61 };
62
63 static const int n = sizeof(kInterpData) / sizeof(kInterpData[0]);
64 float approx_val = Interp(key_idx, kInterpData, n);
65 return approx_val;
66}
67
68// Returns a value in the range 1->0 indicating how intense the note is. This
69// value will go to 0 as time progresses, and will be 1 when the note is first

Callers 1

CalcDecayFactorFunction · 0.85

Calls 1

InterpFunction · 0.85

Tested by

no test coverage detected