Wrong Kick sound with Teensy 3.6 internal DAC

Status
Not open for further replies.

urbanspaceman

Well-known member
Hi, i'm using teensy 3.6 internal DAC to play Wave mono files 44.1 16bit
from the SD (not the teensy internal SD)

Some snare, HH samples are ok but Kick sounds are always creepy

Is a problem of the dac resolution?
 
Drum machine Project need help!

Hi, after some research, me and my partner are in a blind alley!
We are working on the version 2 of our beloved drum machine Shapeshifter (www.faselunare.com)

the project has grown significantly and has become quite complex.

These are the current hardware specifications

Code:
24 buttons including 16 for the steps
3 potentiometers
1 encoder
1 128-matrix led WS2812C
Each pot/encoder/buttons/jack has his own rgb WS2812C led

Audio Out direct from DAC1 and DAC 2
Midi In
Midi Out

Clock In
Clock Out
Reset

Trig Out 1
Trig Out 2
Trig Out 3
Trig Out 4

Breadboard for prototyping
Expansion board space (we use it now for the display, in the next version we move the breadboard on the right to make space for a bigger display)

The drum now has 4 sample track (1,2,3,4)
The samples are read directly from the SD card (not the onboard SD)

Track 5,6,7,8 control the 4 triggers (very nice with modulars)

The Led Matrix show the 4 sample tracks with his length

Each Tracks may have a different length

The pots control a filter and a bit crusher

The six operation buttons (A B C D E F)
Button A + button 1...16 select The track
Button B + button 1...16 select the track sample (only for the first 4 track obviously)
Button C + button 1, 2, 3 change the time division

!!THE PROBLEM!!

First track is for the Kick Sound and here we have a strange problem, kick samples always sound wrong with huge amount of glitches (we have tried several samples)
We would like to understand with you if the problem is hardware or if there is something wrong in the samples ... would you like to give us a hand?

This is the schematics
View attachment Printing Stampa schema.pdf

This is the mechanical drawing
View attachment SHAPESHIFTER_470.pdf

And this is a pic of the prototype
65855483_2525408777477911_251824506773962752_o.jpg

This is the actual code
https://gitlab.com/agdl1/shapeshifter/tree/wip
 
Last edited:
Checked your samples, there is nothing wrong with them. But you already knew that since your problem persist with the use of AudioSynthSimpleDrum.

It's kind of hard to troubleshoot you problem without the actual hardware but there are two things I would try out first:

Reduce AudioMemory(250) to something more reasonable. Use AudioMemoryUsage() & AudioMemoryUsageMax() to estimate what your project needs.
Although I don't think this will make a difference, it's worth a shot.

Comment everything related to the scheduler lib(include, startLoop(), yield()).
Call readKeypadLoop() from the main loop() and not ledScan(), memoryManagement(), clkOut() assuming they are not essential to run shapeshifter.
See what happens from there. You have three possible outcomes. Problem persists, problem persists but sounds different, problem gone.
My rationale behind above is that the scheduler lib was not used in shapeshifter v1, assuming v1 did not suffer from this problem.
Personally, I would have made use of the variable type elapsedMillis in the main loop to call the functions instead of using the scheduler lib. It just gives you more control.
 
Update:
We have a 64Mbit Ram on board, the actual firmware does not use it
but the initial idea was to load some kit of samples from the SD to the RAM
how elektron does
 
Can you try creating a very small program which only plays the sample? Maybe use File > Examples > Audio > SamplePlayer, but load your own samples and adapt it to pins you have unused on your design?

Using a simple and known-good (or very likely good) example could at least help determine if there's a hardware problem corrupting the sound.
 
Some update and test

1st test, i have used this sketch to trigger a kick sound in memory : no problem
Code:
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>
#include <Bounce.h>

// WAV files converted to code by wav2sketch
#include "AudioSampleSnare.h"        // http://www.freesound.org/people/KEVOY/sounds/82583/
#include "AudioSampleTomtom.h"       // http://www.freesound.org/people/zgump/sounds/86334/
#include "AudioSampleHihat.h"        // http://www.freesound.org/people/mhc/sounds/102790/
#include "AudioSampleKick.h"         // http://www.freesound.org/people/DWSD/sounds/171104/
#include "AudioSampleGong.h"         // http://www.freesound.org/people/juskiddink/sounds/86773/
#include "AudioSampleCashregister.h" // http://www.freesound.org/people/kiddpark/sounds/201159/

AudioPlayMemory    sound0;
AudioPlayMemory    sound1;  // six memory players, so we can play
AudioPlayMemory    sound2;  // all six sounds simultaneously
AudioPlayMemory    sound3;
AudioPlayMemory    sound4;
AudioPlayMemory    sound5;
AudioMixer4        mix1;    // two 4-channel mixers are needed in
AudioMixer4        mix2;    // tandem to combine 6 audio sources
AudioOutputI2S     headphones;
AudioOutputAnalog  dac;     // play to both I2S audio board and on-chip DAC

// Create Audio connections between the components
//
AudioConnection c1(sound0, 0, mix1, 0);
AudioConnection c2(sound1, 0, mix1, 1);
AudioConnection c3(sound2, 0, mix1, 2);
AudioConnection c4(sound3, 0, mix1, 3);
AudioConnection c5(mix1, 0, mix2, 0);   // output of mix1 into 1st input on mix2
AudioConnection c6(sound4, 0, mix2, 1);
AudioConnection c7(sound5, 0, mix2, 2);
AudioConnection c8(mix2, 0, headphones, 0);
AudioConnection c9(mix2, 0, headphones, 1);
AudioConnection c10(mix2, 0, dac, 0);


void setup() {
  AudioMemory(10);

  mix1.gain(0, 0.4);
  mix1.gain(1, 0.4);
  mix1.gain(2, 0.4);
  mix1.gain(3, 0.4);
  mix2.gain(1, 0.4);
  mix2.gain(2, 0.4);
}

void loop() {
    sound3.play(AudioSampleKick);
    delay(500);
}

2nd test, as before but read my kick samples from sd card : no problem

Code:
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>

AudioPlaySdWav           playWav1;

AudioOutputAnalog      audioOutput;
AudioConnection          patchCord1(playWav1, 0, audioOutput, 0);
AudioConnection          patchCord2(playWav1, 1, audioOutput, 1);


// Use these with the Teensy 3.5 & 3.6 SD card
#define SDCARD_CS_PIN    BUILTIN_SDCARD
#define SDCARD_MOSI_PIN  11  // not actually used
#define SDCARD_SCK_PIN   13  // not actually used

void setup() {
  Serial.begin(9600);
  AudioMemory(8);

  SPI.setMOSI(SDCARD_MOSI_PIN);
  SPI.setSCK(SDCARD_SCK_PIN);
  if (!(SD.begin(SDCARD_CS_PIN))) {
    // stop here, but print a message repetitively
    while (1) {
      Serial.println("Unable to access the SD card");
      delay(500);
    }
  }
}

void playFile(const char *filename)
{
  Serial.print("Playing file: ");
  Serial.println(filename);

  playWav1.play(filename);
  delay(5);
}


void loop() {
  playFile("tr1_1.WAV");  // filenames are always uppercase 8.3 format
  delay(100);
  playFile("tr1_2.WAV");
  delay(100);
  playFile("tr1_3.WAV");
  delay(100);
  playFile("tr1_4.WAV");
  delay(100);
  playFile("tr1_5.WAV");
  delay(100);
  playFile("tr1_6.WAV");
  delay(100);
  playFile("tr1_7.WAV");
  delay(100);
  playFile("tr1_8.WAV");
  delay(100);
  playFile("tr1_9.WAV");
  delay(100);
  playFile("tr1_10.WAV");
  delay(100);
  playFile("tr1_11.WAV");
  delay(100);
  playFile("tr1_12.WAV");
  delay(100);
  playFile("tr1_13.WAV");
  delay(100);
  playFile("tr1_14.WAV");
  delay(100);
  playFile("tr1_15.WAV");
  delay(100);
  playFile("tr1_16.WAV");
  delay(100);
}


3rd test, with my actual drum firmware

Code:
  Serial.println("Memory: ");
  Serial.println(AudioMemoryUsage());
  Serial.println(",");
  Serial.println(AudioMemoryUsageMax());
  Serial.println("    ");

  Serial.println("Processor: ");
  Serial.println(AudioProcessorUsage());
  Serial.println(",");
  Serial.println(AudioProcessorUsageMax());
  Serial.println("    ");

With this result

Code:
Memory: 
1
,
5
    
Processor: 
3.87
,
82.26
    
Memory: 
1
,
5
    
Processor: 
3.87
,
82.26
    
Memory: 
1
,
5
    
Processor: 
3.87
,
82.26
    
Memory: 
1
,
5
    
Processor: 
3.87
,
82.26
    
Memory: 
1
,
5
    
Processor: 
3.87
,
82.26
    
Memory: 
1
,
5
    
Processor: 
24.77
,
82.26
    
Memory: 
1
,
5
    
Processor: 
24.77
,
82.26
    
Memory: 
1
,
5
    
Processor: 
24.77
,
82.26
    
Memory: 
1
,
5
    
Processor: 
24.77
,
82.26
 
Ah, I see your problem, on line 18 in SSLEDs.h:

https://gitlab.com/agdl1/shapeshifter/blob/wip/Firmware/shapeShifterV2/src/LEDs/SSLEDs.h#L18

The bad news is Adafruit_NeoPixel does not play well with audio, or anything else needing interrupts or CPU time while the LEDs update. It's a "blocking" library, meaning it hogs the CPU while working, so nothing else (like audio) gets to work. You really need to stop using Adafruit_NeoPixel to update the LEDs.

The good news is we do have a non-blockin library to (mostly) replace it, called WS2812Serial. It will work with audio, because it uses DMA to update the LEDs, leaving the CPU and interrupts free for audio and everything else.

https://github.com/PaulStoffregen/WS2812Serial

But WS2812Serial only supports certain pins. On Teensy 3.6 you can use pins (1, 5, 26), 8, 10, 32, 33. On that page, scroll down to "Supported Pins & Serial Ports" for details.

I didn't look through the *many* other header files in your project to find the definitions of LEDs_PIN and MATRIX_PIN. If you're extremely lucky, maybe you already chose pins among the ones supported by WS2812Serial. But odds are strong you'll need to cut traces on your PCB and solder mod wires to connect the LEDs to pins which can work with WS2812Serial.
 
Thank you Paul, i'm trying to change the library
but i get some error

in file https://gitlab.com/agdl1/shapeshifter/blob/wip/Firmware/shapeShifterV2/src/LEDs/SSLEDs.h#L18

Code:
//#include <Adafruit_NeoPixel.h>
#include <WS2812Serial.h>

in the same file

from this
Code:
Adafruit_NeoPixel LEDs = Adafruit_NeoPixel(LEDs_LENGTH, LEDs_PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel LEDsMatrix = Adafruit_NeoPixel(MATRIX_LENGTH, MATRIX_PIN, NEO_GRB + NEO_KHZ800);

to this

Code:
  byte drawingMemory[LEDs_LENGTH*3];         //  3 bytes per LED
    DMAMEM byte displayMemory[LEDs_LENGTH*12]; // 12 bytes per LED

    byte MatrixDrawingMemory[MATRIX_LENGTH*3];         //  3 bytes per LED
    DMAMEM byte MatrixDisplayMemory[MATRIX_LENGTH*12]; // 12 bytes per LED

    WS2812Serial LEDs(LEDs_LENGTH, displayMemory, drawingMemory, LEDs_PIN, WS2812_GRB);
    WS2812Serial LEDsMatrix(MATRIX_LENGTH, MatrixDisplayMemory, MatrixDrawingMemory, MATRIX_PIN, WS2812_GRB);

but we get this error

Code:
Arduino:1.8.10 (Mac OS X), TD: 1.48, Scheda:"Teensy 3.6, Serial, 180 MHz, Faster, US English"

In file included from /Users/Urbanspaceman/Documents/Arduino/shapeshifter/shapeshifter-wip 10/Firmware/shapeShifterV2/shapeShifterV2.ino:14:0:
/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/arduino_build_989962/sketch/src/LEDs/SSLEDs.h:72:45: error: section attribute not allowed for 'displayMemory'
     DMAMEM byte displayMemory[LEDs_LENGTH*12]; // 12 bytes per LED
                                             ^
/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/arduino_build_989962/sketch/src/LEDs/SSLEDs.h:72:45: warning: 'used' attribute ignored [-Wattributes]
/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/arduino_build_989962/sketch/src/LEDs/SSLEDs.h:75:53: error: section attribute not allowed for 'MatrixDisplayMemory'
     DMAMEM byte MatrixDisplayMemory[MATRIX_LENGTH*12]; // 12 bytes per LED
                                                     ^
/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/arduino_build_989962/sketch/src/LEDs/SSLEDs.h:75:53: warning: 'used' attribute ignored [-Wattributes]
In file included from /var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/arduino_build_989962/sketch/structures.h:14:0,
                 from /Users/Urbanspaceman/Documents/Arduino/shapeshifter/shapeshifter-wip 10/Firmware/shapeShifterV2/shapeShifterV2.ino:12:
constants.h:67: error: expected identifier before numeric constant
 #define LEDs_LENGTH               55

                                   ^
/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/arduino_build_989962/sketch/src/LEDs/SSLEDs.h:79:23: note: in expansion of macro 'LEDs_LENGTH'
     WS2812Serial LEDs(LEDs_LENGTH, displayMemory, drawingMemory, LEDs_PIN, WS2812_GRB);
                       ^
constants.h:67: error: expected ',' or '...' before numeric constant
 #define LEDs_LENGTH               55

                                   ^
/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/arduino_build_989962/sketch/src/LEDs/SSLEDs.h:79:23: note: in expansion of macro 'LEDs_LENGTH'
     WS2812Serial LEDs(LEDs_LENGTH, displayMemory, drawingMemory, LEDs_PIN, WS2812_GRB);
                       ^
constants.h:66: error: expected identifier before numeric constant
 #define MATRIX_LENGTH             128

                                   ^
/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/arduino_build_989962/sketch/src/LEDs/SSLEDs.h:80:29: note: in expansion of macro 'MATRIX_LENGTH'
     WS2812Serial LEDsMatrix(MATRIX_LENGTH, MatrixDisplayMemory, MatrixDrawingMemory, MATRIX_PIN, WS2812_GRB);
                             ^
constants.h:66: error: expected ',' or '...' before numeric constant
 #define MATRIX_LENGTH             128

                                   ^
/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/arduino_build_989962/sketch/src/LEDs/SSLEDs.h:80:29: note: in expansion of macro 'MATRIX_LENGTH'
     WS2812Serial LEDsMatrix(MATRIX_LENGTH, MatrixDisplayMemory, MatrixDrawingMemory, MATRIX_PIN, WS2812_GRB);
                             ^
Più di una libreria trovata per "SerialFlash.h"
Usata: /private/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/AppTranslocation/C2927641-5891-4D07-8ACE-BF531A812B9D/d/Arduino.app/Contents/Java/hardware/teensy/avr/libraries/SerialFlash
Più di una libreria trovata per "Adafruit_GFX.h"
Usata: /private/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/AppTranslocation/C2927641-5891-4D07-8ACE-BF531A812B9D/d/Arduino.app/Contents/Java/hardware/teensy/avr/libraries/Adafruit_GFX
Più di una libreria trovata per "Adafruit_SSD1306.h"
Usata: /Users/Urbanspaceman/Documents/Arduino/Sketch/libraries/Adafruit_SSD1306
Più di una libreria trovata per "Encoder.h"
Usata: /private/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/AppTranslocation/C2927641-5891-4D07-8ACE-BF531A812B9D/d/Arduino.app/Contents/Java/hardware/teensy/avr/libraries/Encoder
Più di una libreria trovata per "Scheduler.h"
Usata: /Users/Urbanspaceman/Documents/Arduino/Sketch/libraries/Arduino-Scheduler-master
Più di una libreria trovata per "WS2812Serial.h"
Usata: /private/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/AppTranslocation/C2927641-5891-4D07-8ACE-BF531A812B9D/d/Arduino.app/Contents/Java/hardware/teensy/avr/libraries/WS2812Serial
Non usata: /Users/Urbanspaceman/Documents/Arduino/Sketch/libraries/WS2812Serial-master
Più di una libreria trovata per "Audio.h"
Usata: /private/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/AppTranslocation/C2927641-5891-4D07-8ACE-BF531A812B9D/d/Arduino.app/Contents/Java/hardware/teensy/avr/libraries/Audio
Più di una libreria trovata per "SPI.h"
Usata: /private/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/AppTranslocation/C2927641-5891-4D07-8ACE-BF531A812B9D/d/Arduino.app/Contents/Java/hardware/teensy/avr/libraries/SPI
Più di una libreria trovata per "SD.h"
Usata: /private/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/AppTranslocation/C2927641-5891-4D07-8ACE-BF531A812B9D/d/Arduino.app/Contents/Java/hardware/teensy/avr/libraries/SD
Non usata: /private/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/AppTranslocation/C2927641-5891-4D07-8ACE-BF531A812B9D/d/Arduino.app/Contents/Java/libraries/SD
Più di una libreria trovata per "Wire.h"
Usata: /private/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/AppTranslocation/C2927641-5891-4D07-8ACE-BF531A812B9D/d/Arduino.app/Contents/Java/hardware/teensy/avr/libraries/Wire
Più di una libreria trovata per "ArduinoJson.h"
Usata: /Users/Urbanspaceman/Documents/Arduino/Sketch/libraries/ArduinoJson
expected identifier before numeric constant

Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"
 
Delete "DMAMEM".

Or define those as static arrays *not* within the C++ class, because the storage for the class is defined elsewhere. You can't use DMAMEM inside the class this way.
 
Thank you Paul, sorry if I'm boring you but we still have a problem

Code:
In file included from /var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/arduino_build_989962/sketch/structures.h:14:0,
                 from /Users/Urbanspaceman/Documents/Arduino/shapeshifter/shapeshifter-wip 10/Firmware/shapeShifterV2/shapeShifterV2.ino:12:
constants.h:67: error: expected identifier before numeric constant
 #define LEDs_LENGTH               55
                                   ^
/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/arduino_build_989962/sketch/src/LEDs/SSLEDs.h:79:23: note: in expansion of macro 'LEDs_LENGTH'
     WS2812Serial LEDs(LEDs_LENGTH, displayMemory, drawingMemory, LEDs_PIN, WS2812_GRB);
                       ^
constants.h:67: error: expected ',' or '...' before numeric constant
 #define LEDs_LENGTH               55
                                   ^
/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/arduino_build_989962/sketch/src/LEDs/SSLEDs.h:79:23: note: in expansion of macro 'LEDs_LENGTH'
     WS2812Serial LEDs(LEDs_LENGTH, displayMemory, drawingMemory, LEDs_PIN, WS2812_GRB);
                       ^
constants.h:66: error: expected identifier before numeric constant
 #define MATRIX_LENGTH             128
                                   ^
/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/arduino_build_989962/sketch/src/LEDs/SSLEDs.h:80:29: note: in expansion of macro 'MATRIX_LENGTH'
     WS2812Serial LEDsMatrix(MATRIX_LENGTH, MatrixDisplayMemory, MatrixDrawingMemory, MATRIX_PIN, WS2812_GRB);
                             ^
constants.h:66: error: expected ',' or '...' before numeric constant
 #define MATRIX_LENGTH             128
                                   ^
/var/folders/_2/6t2b67t970qbzld8fhtybsqh0000gp/T/arduino_build_989962/sketch/src/LEDs/SSLEDs.h:80:29: note: in expansion of macro 'MATRIX_LENGTH'
     WS2812Serial LEDsMatrix(MATRIX_LENGTH, MatrixDisplayMemory, MatrixDrawingMemory, MATRIX_PIN, WS2812_GRB);
^
 
Share the code which doesn't compile, the whole thing in a zip file. If using "quick reply", click the "go advanced" button. The advanced editor lets you attach a zip file to your message.

Before you post, please check the zip file by extracting on another computer and load it with Arduino and click Verify. Make sure the zip file's contents really are everything needed to get the exact same error. If you give something incomplete that doesn't really reproduce the same error, that just wastes everyone time.
 
Looks like you didn't follow my advice to copy to another computer and check that it really gives the same error. When I download it and try to compile, I get this:

Code:
/home/paul/teensy/sketch/shapeShifterV2/shapeShifterV2.ino:11:23: fatal error: Scheduler.h: No such file or directory
compilation terminated.

I will look again in ~12 hours, only 1 more time. Please make it count by truly verifying the file you provide has everything. Maybe others here on this forum will also try, but with me you have 1 more chance. If you upload another zip file missing stuff, that will be the last time I try to compile. I want to help you, but I'm not going to keep wasting time if you do not make the effort to upload a complete file and clearly specify everything I need to install... only to compile you code to help you fix an error!

Or if other libs need to be installed, you must give clear info about everything needed. Leave nothing out.
 
Sorry Paul, also in the second computer we have the scheduler library and the same configuration so we didn't notice the lack of the library

The sketch needs
- The scheduler library (attached) View attachment Arduino-Scheduler-master.zip

From the library manager
- ArduinoJson.h (https://arduinojson.org/?utm_source=meta&utm_medium=library.properties)

- Encoder.h
- SD.h
- SPI.h
- SerialFlash.h
- Wire.h
- Audio.h
- WS2812Serial.h

Usually only the scheduler and the arduinoJson are missing (in our setup)

I'm sorry to waste your time but right now our developer is not available.
I hope to have included all the information you need, I don't know how to include these libraries in the zip so that everything is included and ready to compile, I tried but without result.

Thanks
 
I looked at this again today. Looks like I still don't have the right ArduinoJson.h library, so it doesn't fully compile, but I was able to get the LED part figured out.

The main problem you're facing is the syntax for creating the objects within SSLEDsClass.

Replace this:

Code:
    WS2812Serial LEDs(LEDs_LENGTH, displayMemory, drawingMemory, LEDs_PIN, WS2812_GRB);
    WS2812Serial LEDsMatrix(MATRIX_LENGTH, MatrixDisplayMemory, MatrixDrawingMemory, MATRIX_PIN, WS2812_GRB);

With this:

Code:
    WS2812Serial LEDs = WS2812Serial(LEDs_LENGTH, displayMemory, drawingMemory, LEDs_PIN, WS2812_GRB);
    WS2812Serial LEDsMatrix = WS2812Serial(MATRIX_LENGTH, MatrixDisplayMemory, MatrixDrawingMemory, MATRIX_PIN, WS2812_GRB);

With this change, the class definition compiles, but then the LED code has tons of errors because WS2812Serial and Adafruit_NeoPixel have slightly different functions. I've added the Adafruit functions you need. The WS2812Serial.h file is attached, and also committed to github (so these will be in future Teensyduino releases).

This still doesn't give you LEDs.setBrightness(). WS2812Serial doesn't have this feature and it's not something I can do quickly. For now, I recommend you comment out that part of your project and just go with full brightness until you get the sound and LEDs are playing together nicely.

I'm not sure if this is really all the errors, since I'm missing the correct ArduinoJson, but hopefully it helps you get past this hurdle and move forward with fixing the sound problems?
 

Attachments

  • WS2812Serial.h
    2.8 KB · Views: 189
Looking at Paul's github, I don't see any additions to brightness control. From what little I know of the ws2812 protocol, I doubt it would really be feasible to add it in a non-blocking way. That's why the FastLED and other libraries use blocking code to achieve it.

Paul is extremely busy working on Teensy 4.1 and the bootloader chip and who knows what else, please understand that.
 
Thanks for the infos wcalvert
there is a thread on this 4.1? I'm just curious if it will be retro-compatible with the 3.6 pinout (i hope yes)
Thanks
 
Status
Not open for further replies.
Back
Top