if (pos % 2 != 0)                                            // если чётная строка
               if (REVERSE) leds[pos * HEIGHT + HEIGHT - j - 1] = color;   // заливаем в обратном/прямом порядке
               else leds[pos * HEIGHT + j] = color;
              else                                                         // если нечётная
               if (REVERSE) leds[pos * HEIGHT + j] = color;                // заливаем в прямом/обратном порядке
               else leds[pos * HEIGHT + HEIGHT - j - 1] = color;if (pos % 2 != 0)                                     // если чётная строка
            {
           if (maxLevel[pos] > HEIGHT) maxLevel[pos] = HEIGHT;
              leds[pos * HEIGHT + HEIGHT - maxLevel[pos]] = MAX_COLOR;      // заливаем в прямом порядке
            } else {                                             // если нечётная
              if (maxLevel[pos] >= HEIGHT) maxLevel[pos] = HEIGHT-1;
              leds[pos * HEIGHT + maxLevel[pos]] = MAX_COLOR;               // заливаем в обратном порядкеНет, тут дело в размерности фильтра тонов, как мне думается. Ваши корректировки в эффектах по WIDTH и HEIGHT я не трогал.@rufat66, неправильно выставлено видимо где то в коде ширина/высота. Выше примеры кусков кода отвечающих за это, надо все проверить и попробовать менять для тестов. либо 32 полосы просто не могут быть сделаны в прошивке, там вроде столько полос даже в фильтре нету.
Так, чего то я запутался... WIDTH (вертикальные столбики) у вас 8 или 32?Если поставить 32 полосы, анализатор превращается в кашу, а режиме лампы вся матрица работает нормально. Анализатор начинает работать если в настройках выставить 15 полос.

//Ширина спектра (0 - 16 кГц, 1 - 6.4 кГц)
#define SPECTRUM  1#if (SPECTRUM == 0)
#define FHT_N 256   // ширина спектра х2
byte posOffset[31] = {2, 3, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 60, 80, 100, 120};
#else
#define FHT_N 128  // ширина спектра х
byte posOffset[31] = {2, 3, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 60, 80, 100, 120};
#endif

Скетч использует 17214 байт (56%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 1989 байт (97%) динамической памяти, оставляя 59 байт для локальных переменных. Максимум: 2048 байт.#define WIDTH 32            // ширина матрицы (число диодов) количество полос
#define HEIGHT 8           // высота матрицы (число диодов) высота полос
#define FHT_N 256         // ширина спектра х2
byte posOffset[65] = {2, 3, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 60, 80, 100, 120, 140, 150, 170, 190, 230, 240, 290, 320, 360, 390, 420, 460, 500, 560, 650, 720, 800, 900, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000, 5500, 6000, 7000, 8000, 9000, 10000, 12500}; //оригинал AlexGyver для 16 полосА она и не будет включаться. Там надо код под 128 править.при уменшьении размера массива с 256 на 128, не включается совсем.
А 65 вы откуда взяли???rufat66 написал(а):
byte posOffset[65]
