stelatoris / XTronical-I2S-Audio

5 stars 1 forks source link

not working with ESP32 - S3 #1

Open sartyx opened 4 months ago

sartyx commented 4 months ago

I like the work of XTronical, too sad there is little attention on most libs for newer chips like the S3. While his example based on #include <driver/i2s.h> does work, the lib doesn't compile for the S3. Looks like I need to find out how to play different samples with the non-lib version meanwhile...

C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio_orig.cpp: In member function 'void XT_Instrument_Class::SetWaveForm(uint8_t)':
C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio_orig.cpp:647:18: error: deleting object of polymorphic class type 'XT_Wave_Class' which has non-virtual destructor might cause undefined behavior [-Werror=delete-non-virtual-dtor]
  delete (WaveForm);          // free any previous memory for a previous waveform
                  ^
C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio_orig.cpp: In member function 'virtual void XT_Instrument_Class::NextSample(int16_t*, int16_t*)':
C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio_orig.cpp:705:10: error: unused variable 'ByteToPlay' [-Werror=unused-variable]
  uint8_t ByteToPlay;
          ^~~~~~~~~~
C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio_orig.cpp: In constructor 'XT_I2S_Class::XT_I2S_Class(uint8_t, uint8_t, uint8_t, i2s_port_t)':
C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio_orig.cpp:866:60: warning: 'I2S_COMM_FORMAT_I2S' is deprecated [-Wdeprecated-declarations]
      i2s_config.communication_format = (i2s_comm_format_t)(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB);
                                                            ^~~~~~~~~~~~~~~~~~~
In file included from C:\Users\default\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14/tools/sdk/esp32s3/include/driver/include/driver/i2s.h:16,
                 from C:\Arduino\libraries\XT_I2S_audio/XT_I2S_Audio.h:13,
                 from C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio_orig.cpp:9:
C:\Users\default\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14/tools/sdk/esp32s3/include/hal/include/hal/i2s_types.h:87:5: note: declared here
     I2S_COMM_FORMAT_I2S       __attribute__((deprecated)) = 0x01, /*!< I2S communication format I2S, correspond to `I2S_COMM_FORMAT_STAND_I2S`*/
     ^~~~~~~~~~~~~~~~~~~
C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio_orig.cpp:866:82: warning: 'I2S_COMM_FORMAT_I2S_MSB' is deprecated [-Wdeprecated-declarations]
      i2s_config.communication_format = (i2s_comm_format_t)(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB);
                                                                                  ^~~~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\default\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14/tools/sdk/esp32s3/include/driver/include/driver/i2s.h:16,
                 from C:\Arduino\libraries\XT_I2S_audio/XT_I2S_Audio.h:13,
                 from C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio_orig.cpp:9:
C:\Users\default\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14/tools/sdk/esp32s3/include/hal/include/hal/i2s_types.h:88:5: note: declared here
     I2S_COMM_FORMAT_I2S_MSB   __attribute__((deprecated)) = 0x01, /*!< I2S format MSB, (I2S_COMM_FORMAT_I2S |I2S_COMM_FORMAT_I2S_MSB) correspond to `I2S_COMM_FORMAT_STAND_I2S`*/
     ^~~~~~~~~~~~~~~~~~~~~~~
C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio.cpp: In member function 'void XT_Instrument_Class::SetWaveForm(uint8_t)':
C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio.cpp:647:18: error: deleting object of polymorphic class type 'XT_Wave_Class' which has non-virtual destructor might cause undefined behavior [-Werror=delete-non-virtual-dtor]
  delete (WaveForm);          // free any previous memory for a previous waveform
                  ^
C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio.cpp: In member function 'virtual void XT_Instrument_Class::NextSample(int16_t*, int16_t*)':
C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio.cpp:705:10: error: unused variable 'ByteToPlay' [-Werror=unused-variable]
  uint8_t ByteToPlay;
          ^~~~~~~~~~
C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio.cpp: In constructor 'XT_I2S_Class::XT_I2S_Class(uint8_t, uint8_t, uint8_t, i2s_port_t)':
C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio.cpp:866:60: warning: 'I2S_COMM_FORMAT_I2S' is deprecated [-Wdeprecated-declarations]
      i2s_config.communication_format = (i2s_comm_format_t)(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB);
                                                            ^~~~~~~~~~~~~~~~~~~
In file included from C:\Users\default\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14/tools/sdk/esp32s3/include/driver/include/driver/i2s.h:16,
                 from C:\Arduino\libraries\XT_I2S_audio/XT_I2S_Audio.h:13,
                 from C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio.cpp:9:
C:\Users\default\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14/tools/sdk/esp32s3/include/hal/include/hal/i2s_types.h:87:5: note: declared here
     I2S_COMM_FORMAT_I2S       __attribute__((deprecated)) = 0x01, /*!< I2S communication format I2S, correspond to `I2S_COMM_FORMAT_STAND_I2S`*/
     ^~~~~~~~~~~~~~~~~~~
C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio.cpp:866:82: warning: 'I2S_COMM_FORMAT_I2S_MSB' is deprecated [-Wdeprecated-declarations]
      i2s_config.communication_format = (i2s_comm_format_t)(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB);
                                                                                  ^~~~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\default\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14/tools/sdk/esp32s3/include/driver/include/driver/i2s.h:16,
                 from C:\Arduino\libraries\XT_I2S_audio/XT_I2S_Audio.h:13,
                 from C:\Arduino\libraries\XT_I2S_audio\XT_I2S_Audio.cpp:9:
C:\Users\default\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14/tools/sdk/esp32s3/include/hal/include/hal/i2s_types.h:88:5: note: declared here
     I2S_COMM_FORMAT_I2S_MSB   __attribute__((deprecated)) = 0x01, /*!< I2S format MSB, (I2S_COMM_FORMAT_I2S |I2S_COMM_FORMAT_I2S_MSB) correspond to `I2S_COMM_FORMAT_STAND_I2S`*/
     ^~~~~~~~~~~~~~~~~~~~~~~
cc1plus.exe: some warnings being treated as errors
sartyx commented 4 months ago

by disabling row 647 // delete (WaveForm);
and the unused variable at 705
// uint8_t ByteToPlay;

it compiles for the S3 Mini but something is still wrong