diff --git a/package-lock.json b/package-lock.json
index e64d2c5a..c6f6d971 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "wled",
- "version": "0.14.0.4.0",
+ "version": "0.14.0.4.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "wled",
- "version": "0.14.0.4.0",
+ "version": "0.14.0.4.1",
"license": "ISC",
"dependencies": {
"clean-css": "^4.2.3",
diff --git a/package.json b/package.json
index 1d7a3de6..36f53bd3 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "wled",
- "version": "0.14.0.4.0",
+ "version": "0.14.0.4.1",
"description": "Tools for WLED project",
"main": "tools/cdata.js",
"directories": {
diff --git a/wled00/FX.cpp b/wled00/FX.cpp
index 4b2756f2..d21b8dd7 100644
--- a/wled00/FX.cpp
+++ b/wled00/FX.cpp
@@ -4537,7 +4537,7 @@ uint16_t mode_wavesins(void) {
for (int i = 0; i < SEGLEN; i++) {
uint8_t bri = sin8(millis()/4 + i * SEGMENT.intensity);
- uint8_t index = beatsin8(SEGMENT.speed, SEGMENT.custom1, SEGMENT.custom1+SEGMENT.custom2, 0, i * (SEGMENT.custom3));
+ uint8_t index = beatsin8(SEGMENT.speed, SEGMENT.custom1, SEGMENT.custom1+SEGMENT.custom2, 0, i * (SEGMENT.custom3<<3));
//SEGMENT.setPixelColor(i, ColorFromPalette(SEGPALETTE, index, bri, LINEARBLEND));
SEGMENT.setPixelColor(i, SEGMENT.color_from_palette(index, false, PALETTE_SOLID_WRAP, 0, bri));
}
@@ -5080,8 +5080,6 @@ uint16_t mode_2DLissajous(void) { // By: Andrew Tuline
const uint16_t cols = SEGMENT.virtualWidth();
const uint16_t rows = SEGMENT.virtualHeight();
- if (SEGENV.call == 0) SEGMENT.setUpLeds();
-
SEGMENT.fadeToBlackBy(SEGMENT.intensity);
//for (int i=0; i < 4*(cols+rows); i ++) {
@@ -5422,7 +5420,7 @@ uint16_t mode_2Dsquaredswirl(void) { // By: Mark Kriegsman. https://g
SEGMENT.fadeToBlackBy(24);
- uint8_t blurAmount = SEGMENT.custom3>>1; // reduced resolution slider
+ uint8_t blurAmount = SEGMENT.custom3<<3; // reduced resolution slider
SEGMENT.blur(blurAmount);
// Use two out-of-sync sine waves
@@ -7243,7 +7241,7 @@ uint16_t mode_2DAkemi(void) {
const uint16_t cols = SEGMENT.virtualWidth();
const uint16_t rows = SEGMENT.virtualHeight();
- if (SEGENV.call == 0) SEGMENT.setUpLeds();
+ // if (SEGENV.call == 0) SEGMENT.setUpLeds();
uint16_t counter = (strip.now * ((SEGMENT.speed >> 2) +2)) & 0xFFFF;
counter = counter >> 8;
diff --git a/wled00/FX.h b/wled00/FX.h
index 14ac7dd4..49722556 100644
--- a/wled00/FX.h
+++ b/wled00/FX.h
@@ -467,7 +467,6 @@ typedef struct Segment {
}
Segment(uint16_t sStartX, uint16_t sStopX, uint16_t sStartY, uint16_t sStopY) : Segment(sStartX, sStopX) {
- Serial.println("Segment"); //WLEDMM jMap
startY = sStartY;
stopY = sStopY;
}
@@ -756,7 +755,7 @@ class WS2812FX { // 96 bytes
hasCCTBus(void),
// return true if the strip is being sent pixel updates
isUpdating(void),
- useLedsArray = false;
+ useLedsArray = true; //WLEDMM default true as recommended for overlapping segments
inline bool isServicing(void) { return _isServicing; }
inline bool hasWhiteChannel(void) {return _hasWhiteChannel;}
diff --git a/wled00/FX_fcn.cpp b/wled00/FX_fcn.cpp
index 0631ad43..1a748eb1 100644
--- a/wled00/FX_fcn.cpp
+++ b/wled00/FX_fcn.cpp
@@ -1591,6 +1591,7 @@ void WS2812FX::setSegment(uint8_t n, uint16_t i1, uint16_t i2, uint8_t grouping,
seg.stop = i2 > matrixWidth ? matrixWidth : i2;
if (startY < matrixHeight) seg.startY = startY;
seg.stopY = stopY > matrixHeight ? matrixHeight : MAX(1,stopY);
+ if (Segment::_globalLeds) seg.setUpLeds(); //WLEDMM force all effects to use globalleds
#endif
} else {
if (i1 < _length) seg.start = i1;
diff --git a/wled00/data/settings_leds.htm b/wled00/data/settings_leds.htm
index 64421454..6e38a208 100644
--- a/wled00/data/settings_leds.htm
+++ b/wled00/data/settings_leds.htm
@@ -608,6 +608,7 @@ Length:
Custom bus start indices:
Use global LED buffer:
+ Recommended for overlapping segments (0.13 style)