I2S Stereo Decoder with Metro express

Please tell us which board you are using.
For CircuitPython issues, ask in the Adafruit CircuitPython forum.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
Mor0051
 
Posts: 4
Joined: Wed Mar 02, 2022 3:18 am

I2S Stereo Decoder with Metro express

Post by Mor0051 »

Hi,

I am trying to use I2S Stereo Decoder - UDA1334A with Metro M0 and I2S MEMS microphone,
Can you send me an example of a working code or information I could not find in the forums and the website...
so I will have the basic knowledge?

Thank you

User avatar
mikeysklar
 
Posts: 13936
Joined: Mon Aug 01, 2016 8:10 pm

Re: I2S Stereo Decoder with Metro express

Post by mikeysklar »

Are you using Arduino or CircuitPython on your Metro M0?

Here are the general links that include all platforms:

https://learn.adafruit.com/adafruit-i2s ... r-uda1334a
https://learn.adafruit.com/adafruit-i2s ... e-breakout

User avatar
Mor0051
 
Posts: 4
Joined: Wed Mar 02, 2022 3:18 am

Re: I2S Stereo Decoder with Metro express

Post by Mor0051 »

thanks for the help.

I am using the Arduino app,
should I use CircuitPython?

User avatar
Mor0051
 
Posts: 4
Joined: Wed Mar 02, 2022 3:18 am

Re: I2S Stereo Decoder with Metro express

Post by Mor0051 »

I am trying this code:

Code: Select all

/*

 This example reads audio data from an Invensense's ICS43432 I2S microphone

 breakout board, and prints out the amplitude to the Serial console. The

 Serial Plotter built into the Arduino IDE can be used to plot the audio

 amplitude data (Tools -> Serial Plotter)

 Circuit:

 * Arduino Zero, MKRZero or MKR1000 board

 * ICS43432:

   * GND connected GND

   * 3.3V connected 3.3V (Zero) or VCC (MKR1000, MKRZero)

   * WS connected to pin 0 (Zero) or pin 3 (MKR1000, MKRZero)

   * CLK connected to pin 1 (Zero) or pin 2 (MKR1000, MKRZero)

   * SD connected to pin 9 (Zero) or pin A6 (MKR1000, MKRZero)

 created 23 November 2016

 by Sandeep Mistry

 */

#include <ArduinoSound.h>

// create an amplitude analyzer to be used with the I2S input

AmplitudeAnalyzer amplitudeAnalyzer;

void setup() {

  // Open serial communications and wait for port to open:

  // A baud rate of 115200 is used instead of 9600 for a faster data rate

  // on non-native USB ports

  Serial.begin(115200);

  while (!Serial) {

    ; // wait for serial port to connect. Needed for native USB port only

  }

  // setup the I2S audio input for 44.1 kHz with 32-bits per sample

  if (!AudioInI2S.begin(44100, 32)) {

    Serial.println("Failed to initialize I2S input!");

    while (1); // do nothing

  }

  // configure the I2S input as the input for the amplitude analyzer

  if (!amplitudeAnalyzer.input(AudioInI2S)) {

    Serial.println("Failed to set amplitude analyzer input!");

    while (1); // do nothing

  }
}

void loop() {

  // check if a new analysis is available

  if (amplitudeAnalyzer.available()) {

    // read the new amplitude

    int amplitude = amplitudeAnalyzer.read();

    // print out the amplititude to the serial monitor

    Serial.println(amplitude);

  }
}
and I getting these errors:

Code: Select all

Arduino: 1.8.19 (Windows Store 1.8.57.0) (Windows 10), Board: "Arduino Uno"





















WARNING: library ArduinoSound claims to run on samd architecture(s) and may be incompatible with your current board which runs on avr architecture(s).

In file included from C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioInI2S.cpp:19:0:

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src/I2S.h:115:2: error: #error "I2S is not supported on your board!"

 #error "I2S is not supported on your board!"

  ^~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioInI2S.cpp: In member function 'int AudioInI2SClass::begin(long int, int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioInI2S.cpp:36:8: error: 'I2S' was not declared in this scope

   if (!I2S.begin(I2S_PHILIPS_MODE, sampleRate, bitsPerSample)) {

        ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioInI2S.cpp:44:3: error: 'I2S' was not declared in this scope

   I2S.onReceive(AudioInI2SClass::onI2SReceive);

   ^~~

In file included from C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioOutI2S.cpp:19:0:

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src/I2S.h:115:2: error: #error "I2S is not supported on your board!"

 #error "I2S is not supported on your board!"

  ^~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioInI2S.cpp: In member function 'virtual void AudioInI2SClass::end()':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioInI2S.cpp:58:3: error: 'I2S' was not declared in this scope

   I2S.end();

   ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioInI2S.cpp: In member function 'virtual int AudioInI2SClass::read(void*, size_t)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioInI2S.cpp:85:14: error: 'I2S' was not declared in this scope

   int read = I2S.read(buffer, size);

              ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioOutI2S.cpp: In member function 'virtual int AudioOutI2SClass::resume()':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioOutI2S.cpp:84:3: error: 'I2S' was not declared in this scope

   I2S.write(silence, sizeof(silence));

   ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioOutI2S.cpp: In member function 'virtual int AudioOutI2SClass::stop()':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioOutI2S.cpp:99:3: error: 'I2S' was not declared in this scope

   I2S.end();

   ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioOutI2S.cpp: In member function 'int AudioOutI2SClass::startPlayback(AudioIn&, bool)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioOutI2S.cpp:120:3: error: 'I2S' was not declared in this scope

   I2S.onTransmit(AudioOutI2SClass::onI2STransmit);

   ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioOutI2S.cpp: In member function 'void AudioOutI2SClass::onTransmit()':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioOutI2S.cpp:169:7: error: 'I2S' was not declared in this scope

       I2S.end();

       ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\AudioOutI2S.cpp:183:3: error: 'I2S' was not declared in this scope

   I2S.write(data, n);

   ^~~

In file included from C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:27:0:

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.h:115:2: error: #error "I2S is not supported on your board!"

 #error "I2S is not supported on your board!"

  ^~~~~

In file included from C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:22:0:

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/DMA.h:56:5: error: 'DmacDescriptor' does not name a type

     DmacDescriptor _descriptors[NUM_DMA_CHANNELS] __attribute__ ((aligned (16)));

     ^~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/DMA.h:57:5: error: 'DmacDescriptor' does not name a type

     DmacDescriptor _descriptorsWriteBack[NUM_DMA_CHANNELS]  __attribute__ ((aligned (16)));

     ^~~~~~~~~~~~~~

In file included from C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:23:0:

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:25:27: error: expected ')' before '&' token

   I2SDevice_SAMD21G18x(I2s& _i2s) :

                           ^

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:235:12: error: 'I2s' does not name a type

   volatile I2s &i2s;

            ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::reset()':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:32:11: error: 'i2s' was not declared in this scope

     while(i2s.SYNCBUSY.bit.SWRST);

           ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:33:5: error: 'i2s' was not declared in this scope

     i2s.CTRLA.bit.SWRST = 1;

     ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::disable()':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:37:11: error: 'i2s' was not declared in this scope

     while(i2s.SYNCBUSY.bit.ENABLE);

           ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:38:5: error: 'i2s' was not declared in this scope

     i2s.CTRLA.bit.ENABLE = 0;

     ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::enable()':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:42:11: error: 'i2s' was not declared in this scope

     while(i2s.SYNCBUSY.bit.ENABLE);

           ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:43:5: error: 'i2s' was not declared in this scope

     i2s.CTRLA.bit.ENABLE = 1;

     ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'int I2SDevice_SAMD21G18x::glckId(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:47:27: error: 'I2S_GCLK_ID_0' was not declared in this scope

     return (index == 0) ? I2S_GCLK_ID_0 : I2S_GCLK_ID_1;

                           ^~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:47:43: error: 'I2S_GCLK_ID_1' was not declared in this scope

     return (index == 0) ? I2S_GCLK_ID_0 : I2S_GCLK_ID_1;

                                           ^~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::setSerialClockSelectMasterClockDiv(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:51:5: error: 'i2s' was not declared in this scope

     i2s.CLKCTRL[index].bit.SCKSEL = I2S_CLKCTRL_SCKSEL_MCKDIV_Val;

     ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:51:37: error: 'I2S_CLKCTRL_SCKSEL_MCKDIV_Val' was not declared in this scope

     i2s.CLKCTRL[index].bit.SCKSEL = I2S_CLKCTRL_SCKSEL_MCKDIV_Val;

                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::setSerialClockSelectPin(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:55:5: error: 'i2s' was not declared in this scope

     i2s.CLKCTRL[index].bit.SCKSEL = I2S_CLKCTRL_SCKSEL_SCKPIN_Val;

     ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:55:37: error: 'I2S_CLKCTRL_SCKSEL_SCKPIN_Val' was not declared in this scope

     i2s.CLKCTRL[index].bit.SCKSEL = I2S_CLKCTRL_SCKSEL_SCKPIN_Val;

                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::setFrameSyncSelectSerialClockDiv(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:59:5: error: 'i2s' was not declared in this scope

     i2s.CLKCTRL[index].bit.FSSEL = I2S_CLKCTRL_FSSEL_SCKDIV_Val;

     ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:59:36: error: 'I2S_CLKCTRL_FSSEL_SCKDIV_Val' was not declared in this scope

     i2s.CLKCTRL[index].bit.FSSEL = I2S_CLKCTRL_FSSEL_SCKDIV_Val;

                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::setFrameSyncSelectPin(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:63:5: error: 'i2s' was not declared in this scope

     i2s.CLKCTRL[index].bit.FSSEL = I2S_CLKCTRL_FSSEL_FSPIN_Val;

     ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:63:36: error: 'I2S_CLKCTRL_FSSEL_FSPIN_Val' was not declared in this scope

     i2s.CLKCTRL[index].bit.FSSEL = I2S_CLKCTRL_FSSEL_FSPIN_Val;

                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::set0BitDelay(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:67:5: error: 'i2s' was not declared in this scope

     i2s.CLKCTRL[index].bit.BITDELAY = I2S_CLKCTRL_BITDELAY_LJ_Val;

     ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\FFTAnalyzer.cpp: In member function 'virtual int FFTAnalyzer::configure(AudioIn*)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\FFTAnalyzer.cpp:89:54: warning: invalid conversion from 'int' to 'arm_cfft_radix4_instance_q15*' [-fpermissive]

     if (ARM_MATH_SUCCESS != arm_rfft_init_q15(&_S15, _length, 0, 1)) {

                                                      ^~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\FFTAnalyzer.cpp:89:67: error: too few arguments to function 'arm_status arm_rfft_init_q15(arm_rfft_instance_q15*, arm_cfft_radix4_instance_q15*, uint32_t, uint32_t, uint32_t)'

     if (ARM_MATH_SUCCESS != arm_rfft_init_q15(&_S15, _length, 0, 1)) {

                                                                   ^

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:67:39: error: 'I2S_CLKCTRL_BITDELAY_LJ_Val' was not declared in this scope

     i2s.CLKCTRL[index].bit.BITDELAY = I2S_CLKCTRL_BITDELAY_LJ_Val;

                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~

In file included from C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\FFTAnalyzer.h:25:0,

                 from C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\FFTAnalyzer.cpp:21:

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src/arm_math.h:2509:14: note: declared here

   arm_status arm_rfft_init_q15(

              ^~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\FFTAnalyzer.cpp:93:54: warning: invalid conversion from 'int' to 'arm_cfft_radix4_instance_q31*' [-fpermissive]

     if (ARM_MATH_SUCCESS != arm_rfft_init_q31(&_S31, _length, 0, 1)) {

                                                      ^~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\FFTAnalyzer.cpp:93:67: error: too few arguments to function 'arm_status arm_rfft_init_q31(arm_rfft_instance_q31*, arm_cfft_radix4_instance_q31*, uint32_t, uint32_t, uint32_t)'

     if (ARM_MATH_SUCCESS != arm_rfft_init_q31(&_S31, _length, 0, 1)) {

                                                                   ^

In file included from C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\FFTAnalyzer.h:25:0,

                 from C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\FFTAnalyzer.cpp:21:

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src/arm_math.h:2539:14: note: declared here

   arm_status arm_rfft_init_q31(

              ^~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::set1BitDelay(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:71:5: error: 'i2s' was not declared in this scope

     i2s.CLKCTRL[index].bit.BITDELAY = I2S_CLKCTRL_BITDELAY_I2S_Val;

     ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:71:39: error: 'I2S_CLKCTRL_BITDELAY_I2S_Val' was not declared in this scope

     i2s.CLKCTRL[index].bit.BITDELAY = I2S_CLKCTRL_BITDELAY_I2S_Val;

                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::setNumberOfSlots(int, int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:75:5: error: 'i2s' was not declared in this scope

     i2s.CLKCTRL[index].bit.NBSLOTS = nbslots;

     ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::setSlotSize(int, int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:81:8: error: 'i2s' was not declared in this scope

        i2s.CLKCTRL[index].bit.SLOTSIZE = I2S_CLKCTRL_SLOTSIZE_32_Val;

        ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:81:42: error: 'I2S_CLKCTRL_SLOTSIZE_32_Val' was not declared in this scope

        i2s.CLKCTRL[index].bit.SLOTSIZE = I2S_CLKCTRL_SLOTSIZE_32_Val;

                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:85:42: error: 'I2S_CLKCTRL_SLOTSIZE_24_Val' was not declared in this scope

        i2s.CLKCTRL[index].bit.SLOTSIZE = I2S_CLKCTRL_SLOTSIZE_24_Val;

                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:89:42: error: 'I2S_CLKCTRL_SLOTSIZE_16_Val' was not declared in this scope

        i2s.CLKCTRL[index].bit.SLOTSIZE = I2S_CLKCTRL_SLOTSIZE_16_Val;

                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:93:42: error: 'I2S_CLKCTRL_SLOTSIZE_8_Val' was not declared in this scope

        i2s.CLKCTRL[index].bit.SLOTSIZE = I2S_CLKCTRL_SLOTSIZE_8_Val;

                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::setDataSize(int, int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:101:8: error: 'i2s' was not declared in this scope

        i2s.SERCTRL[index].bit.DATASIZE = I2S_SERCTRL_DATASIZE_32_Val;

        ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:101:42: error: 'I2S_SERCTRL_DATASIZE_32_Val' was not declared in this scope

        i2s.SERCTRL[index].bit.DATASIZE = I2S_SERCTRL_DATASIZE_32_Val;

                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:105:42: error: 'I2S_SERCTRL_DATASIZE_24_Val' was not declared in this scope

        i2s.SERCTRL[index].bit.DATASIZE = I2S_SERCTRL_DATASIZE_24_Val;

                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\SDWaveFile.cpp: In member function 'void SDWaveFile::readHeader()':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\SDWaveFile.cpp:241:20: error: '__REV' was not declared in this scope

   header.chunkId = __REV(header.chunkId);

                    ^~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\SDWaveFile.cpp:241:20: note: suggested alternative: 'O_READ'

   header.chunkId = __REV(header.chunkId);

                    ^~~~~

                    O_READ

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:109:42: error: 'I2S_SERCTRL_DATASIZE_16_Val' was not declared in this scope

        i2s.SERCTRL[index].bit.DATASIZE = I2S_SERCTRL_DATASIZE_16_Val;

                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:113:42: error: 'I2S_SERCTRL_DATASIZE_8_Val' was not declared in this scope

        i2s.SERCTRL[index].bit.DATASIZE = I2S_SERCTRL_DATASIZE_8_Val;

                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::setSlotAdjustedRight(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:119:5: error: 'i2s' was not declared in this scope

     i2s.SERCTRL[index].bit.SLOTADJ = I2S_SERCTRL_SLOTADJ_RIGHT_Val;

     ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:119:38: error: 'I2S_SERCTRL_SLOTADJ_RIGHT_Val' was not declared in this scope

     i2s.SERCTRL[index].bit.SLOTADJ = I2S_SERCTRL_SLOTADJ_RIGHT_Val;

                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::setSlotAdjustedLeft(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:123:5: error: 'i2s' was not declared in this scope

     i2s.SERCTRL[index].bit.SLOTADJ = I2S_SERCTRL_SLOTADJ_LEFT_Val;

     ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:123:38: error: 'I2S_SERCTRL_SLOTADJ_LEFT_Val' was not declared in this scope

     i2s.SERCTRL[index].bit.SLOTADJ = I2S_SERCTRL_SLOTADJ_LEFT_Val;

                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::setClockUnit(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:127:5: error: 'i2s' was not declared in this scope

     i2s.SERCTRL[index].bit.CLKSEL = (index == 0) ? I2S_SERCTRL_CLKSEL_CLK0_Val : I2S_SERCTRL_CLKSEL_CLK1_Val;

     ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:127:52: error: 'I2S_SERCTRL_CLKSEL_CLK0_Val' was not declared in this scope

     i2s.SERCTRL[index].bit.CLKSEL = (index == 0) ? I2S_SERCTRL_CLKSEL_CLK0_Val : I2S_SERCTRL_CLKSEL_CLK1_Val;

                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:127:82: error: 'I2S_SERCTRL_CLKSEL_CLK1_Val' was not declared in this scope

     i2s.SERCTRL[index].bit.CLKSEL = (index == 0) ? I2S_SERCTRL_CLKSEL_CLK0_Val : I2S_SERCTRL_CLKSEL_CLK1_Val;

                                                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::setTxMode(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:131:5: error: 'i2s' was not declared in this scope

     i2s.SERCTRL[index].bit.SERMODE = I2S_SERCTRL_SERMODE_TX_Val;

     ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:131:38: error: 'I2S_SERCTRL_SERMODE_TX_Val' was not declared in this scope

     i2s.SERCTRL[index].bit.SERMODE = I2S_SERCTRL_SERMODE_TX_Val;

                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::setRxMode(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:135:5: error: 'i2s' was not declared in this scope

     i2s.SERCTRL[index].bit.SERMODE = I2S_SERCTRL_SERMODE_RX_Val;

     ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:135:38: error: 'I2S_SERCTRL_SERMODE_RX_Val' was not declared in this scope

     i2s.SERCTRL[index].bit.SERMODE = I2S_SERCTRL_SERMODE_RX_Val;

                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::enableClockUnit(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:140:13: error: 'i2s' was not declared in this scope

       while(i2s.SYNCBUSY.bit.CKEN0);

             ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:141:7: error: 'i2s' was not declared in this scope

       i2s.CTRLA.bit.CKEN0 = 1;

       ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:143:13: error: 'i2s' was not declared in this scope

       while(i2s.SYNCBUSY.bit.CKEN1);

             ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:144:7: error: 'i2s' was not declared in this scope

       i2s.CTRLA.bit.CKEN1 = 1;

       ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::disableClockUnit(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:150:13: error: 'i2s' was not declared in this scope

       while(i2s.SYNCBUSY.bit.CKEN0);

             ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:151:7: error: 'i2s' was not declared in this scope

       i2s.CTRLA.bit.CKEN0 = 0;

       ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:153:13: error: 'i2s' was not declared in this scope

       while(i2s.SYNCBUSY.bit.CKEN1);

             ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:154:7: error: 'i2s' was not declared in this scope

       i2s.CTRLA.bit.CKEN1 = 0;

       ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::enableSerializer(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:160:13: error: 'i2s' was not declared in this scope

       while(i2s.SYNCBUSY.bit.SEREN0);

             ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:161:7: error: 'i2s' was not declared in this scope

       i2s.CTRLA.bit.SEREN0 = 1;

       ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:163:13: error: 'i2s' was not declared in this scope

       while(i2s.SYNCBUSY.bit.SEREN1);

             ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:164:7: error: 'i2s' was not declared in this scope

       i2s.CTRLA.bit.SEREN1 = 1;

       ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::disableSerializer(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:170:13: error: 'i2s' was not declared in this scope

       while(i2s.SYNCBUSY.bit.SEREN0);

             ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:171:7: error: 'i2s' was not declared in this scope

       i2s.CTRLA.bit.SEREN0 = 0;

       ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:173:13: error: 'i2s' was not declared in this scope

       while(i2s.SYNCBUSY.bit.SEREN1);

             ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:174:7: error: 'i2s' was not declared in this scope

       i2s.CTRLA.bit.SEREN1 = 0;

       ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'int I2SDevice_SAMD21G18x::dmaTriggerSource(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:179:9: error: 'i2s' was not declared in this scope

     if (i2s.SERCTRL[index].bit.SERMODE == I2S_SERCTRL_SERMODE_TX_Val) {

         ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:179:43: error: 'I2S_SERCTRL_SERMODE_TX_Val' was not declared in this scope

     if (i2s.SERCTRL[index].bit.SERMODE == I2S_SERCTRL_SERMODE_TX_Val) {

                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:180:29: error: 'I2S_DMAC_ID_TX_0' was not declared in this scope

       return (index == 0) ? I2S_DMAC_ID_TX_0 : I2S_DMAC_ID_TX_1;

                             ^~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:180:48: error: 'I2S_DMAC_ID_TX_1' was not declared in this scope

       return (index == 0) ? I2S_DMAC_ID_TX_0 : I2S_DMAC_ID_TX_1;

                                                ^~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:182:29: error: 'I2S_DMAC_ID_RX_0' was not declared in this scope

       return (index == 0) ? I2S_DMAC_ID_RX_0 : I2S_DMAC_ID_RX_1;

                             ^~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:182:48: error: 'I2S_DMAC_ID_RX_1' was not declared in this scope

       return (index == 0) ? I2S_DMAC_ID_RX_0 : I2S_DMAC_ID_RX_1;

                                                ^~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'int I2SDevice_SAMD21G18x::txReady(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:187:27: error: 'i2s' was not declared in this scope

     return (index == 0) ? i2s.INTFLAG.bit.TXRDY0 :i2s.INTFLAG.bit.TXRDY1;

                           ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::writeData(int, int32_t)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:192:14: error: 'i2s' was not declared in this scope

       while (i2s.SYNCBUSY.bit.DATA0);

              ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:194:14: error: 'i2s' was not declared in this scope

       while (i2s.SYNCBUSY.bit.DATA1);

              ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:197:5: error: 'i2s' was not declared in this scope

     i2s.DATA[index].bit.DATA = value;

     ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::clearTxReady(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:202:6: error: 'i2s' was not declared in this scope

      i2s.INTFLAG.bit.TXRDY0 = 1;

      ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:204:6: error: 'i2s' was not declared in this scope

      i2s.INTFLAG.bit.TXRDY1 = 1;

      ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'int I2SDevice_SAMD21G18x::rxReady(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:209:27: error: 'i2s' was not declared in this scope

     return (index == 0) ? i2s.INTFLAG.bit.RXRDY0 :i2s.INTFLAG.bit.RXRDY1;

                           ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'int32_t I2SDevice_SAMD21G18x::readData(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:214:14: error: 'i2s' was not declared in this scope

       while (i2s.SYNCBUSY.bit.DATA0);

              ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:216:14: error: 'i2s' was not declared in this scope

       while (i2s.SYNCBUSY.bit.DATA1);

              ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:219:12: error: 'i2s' was not declared in this scope

     return i2s.DATA[index].bit.DATA;

            ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void I2SDevice_SAMD21G18x::clearRxReady(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:224:6: error: 'i2s' was not declared in this scope

      i2s.INTFLAG.bit.RXRDY0 = 1;

      ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:226:6: error: 'i2s' was not declared in this scope

      i2s.INTFLAG.bit.RXRDY1 = 1;

      ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h: In member function 'void* I2SDevice_SAMD21G18x::data(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/SAMD21_I2SDevice.h:231:20: error: 'i2s' was not declared in this scope

     return (void*)&i2s.DATA[index].reg;

                    ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp: At global scope:

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:25:35: error: 'I2S' was not declared in this scope

 static I2SDevice_SAMD21G18x i2sd(*I2S);

                                   ^~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp: In member function 'int I2SClass::begin(int, long int, int, bool)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:101:5: error: 'PM' was not declared in this scope

     PM->APBCMASK.reg |= PM_APBCMASK_I2S;

     ^~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:101:5: note: suggested alternative: 'PI'

     PM->APBCMASK.reg |= PM_APBCMASK_I2S;

     ^~

     PI

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:101:25: error: 'PM_APBCMASK_I2S' was not declared in this scope

     PM->APBCMASK.reg |= PM_APBCMASK_I2S;

                         ^~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:133:26: error: 'PIO_COM' was not declared in this scope

   pinPeripheral(_sckPin, PIO_COM);

                          ^~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:133:3: error: 'pinPeripheral' was not declared in this scope

   pinPeripheral(_sckPin, PIO_COM);

   ^~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp: In member function 'void I2SClass::end()':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:179:5: error: 'PM' was not declared in this scope

     PM->APBCMASK.reg &= ~PM_APBCMASK_I2S;

     ^~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:179:5: note: suggested alternative: 'PI'

     PM->APBCMASK.reg &= ~PM_APBCMASK_I2S;

     ^~

     PI

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:179:26: error: 'PM_APBCMASK_I2S' was not declared in this scope

     PM->APBCMASK.reg &= ~PM_APBCMASK_I2S;

                          ^~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp: In member function 'virtual int I2SClass::available()':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:189:32: error: '__get_PRIMASK' was not declared in this scope

   uint8_t enableInterrupts = ((__get_PRIMASK() & 0x1) == 0);

                                ^~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:193:3: error: '__disable_irq' was not declared in this scope

   __disable_irq();

   ^~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:209:5: error: '__enable_irq' was not declared in this scope

     __enable_irq();

     ^~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp: In member function 'virtual int I2SClass::peek()':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:242:32: error: '__get_PRIMASK' was not declared in this scope

   uint8_t enableInterrupts = ((__get_PRIMASK() & 0x1) == 0);

                                ^~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:248:3: error: '__disable_irq' was not declared in this scope

   __disable_irq();

   ^~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:254:5: error: '__enable_irq' was not declared in this scope

     __enable_irq();

     ^~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp: In member function 'virtual int I2SClass::availableForWrite()':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:289:32: error: '__get_PRIMASK' was not declared in this scope

   uint8_t enableInterrupts = ((__get_PRIMASK() & 0x1) == 0);

                                ^~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:293:3: error: '__disable_irq' was not declared in this scope

   __disable_irq();

   ^~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:299:5: error: '__enable_irq' was not declared in this scope

     __enable_irq();

     ^~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp: In member function 'int I2SClass::read(void*, size_t)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:311:32: error: '__get_PRIMASK' was not declared in this scope

   uint8_t enableInterrupts = ((__get_PRIMASK() & 0x1) == 0);

                                ^~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:314:3: error: '__disable_irq' was not declared in this scope

   __disable_irq();

   ^~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:330:5: error: '__enable_irq' was not declared in this scope

     __enable_irq();

     ^~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp: In member function 'size_t I2SClass::write(const void*, size_t)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:363:32: error: '__get_PRIMASK' was not declared in this scope

   uint8_t enableInterrupts = ((__get_PRIMASK() & 0x1) == 0);

                                ^~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:367:3: error: '__disable_irq' was not declared in this scope

   __disable_irq();

   ^~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:383:5: error: '__enable_irq' was not declared in this scope

     __enable_irq();

     ^~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp: In member function 'void I2SClass::enableClock(int)':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:406:13: error: 'SystemCoreClock' was not declared in this scope

   int div = SystemCoreClock / divider;

             ^~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:407:13: error: 'GCLK_GENCTRL_SRC_DFLL48M_Val' was not declared in this scope

   int src = GCLK_GENCTRL_SRC_DFLL48M_Val;

             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:412:11: error: 'GCLK_GENCTRL_SRC_OSC8M_Val' was not declared in this scope

     src = GCLK_GENCTRL_SRC_OSC8M_Val;

           ^~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:416:10: error: 'GCLK' was not declared in this scope

   while (GCLK->STATUS.bit.SYNCBUSY);

          ^~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:416:10: note: suggested alternative: 'SCL'

   while (GCLK->STATUS.bit.SYNCBUSY);

          ^~~~

          SCL

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:417:3: error: 'GCLK' was not declared in this scope

   GCLK->GENDIV.bit.ID = _clockGenerator;

   ^~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:417:3: note: suggested alternative: 'SCL'

   GCLK->GENDIV.bit.ID = _clockGenerator;

   ^~~~

   SCL

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp: In member function 'void I2SClass::disableClock()':

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:438:10: error: 'GCLK' was not declared in this scope

   while (GCLK->STATUS.bit.SYNCBUSY);

          ^~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:438:10: note: suggested alternative: 'SCL'

   while (GCLK->STATUS.bit.SYNCBUSY);

          ^~~~

          SCL

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:439:3: error: 'GCLK' was not declared in this scope

   GCLK->GENCTRL.bit.ID = _clockGenerator;

   ^~~~

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:439:3: note: suggested alternative: 'SCL'

   GCLK->GENCTRL.bit.ID = _clockGenerator;

   ^~~~

   SCL

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\I2S.cpp:440:27: error: 'GCLK_GENCTRL_SRC_DFLL48M_Val' was not declared in this scope

   GCLK->GENCTRL.bit.SRC = GCLK_GENCTRL_SRC_DFLL48M_Val;

                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

exit status 1

Error compiling for board Arduino Uno.



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.


User avatar
Mor0051
 
Posts: 4
Joined: Wed Mar 02, 2022 3:18 am

Re: I2S Stereo Decoder with Metro express

Post by Mor0051 »

I found all the libraries that are missing,
got this error:

Code: Select all

Arduino: 1.8.19 (Windows Store 1.8.57.0) (Windows 10), Board: "Adafruit Metro M0 Express (SAMD21), Small (-Os) (standard), Arduino, Off"


In file included from C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src/ArduinoSound.h:28,

                 from C:\Users\MORDEC~1.UKS\AppData\Local\Temp\arduino_modified_sketch_681018\ClapDetector.ino:19:

C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src/AmplitudeAnalyzer.h:24: warning: "ARM_MATH_CM0PLUS" redefined

   24 | #define ARM_MATH_CM0PLUS

      | 

<command-line>: note: this is the location of the previous definition

c:/users/mordechai.uksusman/documents/arduinodata/packages/adafruit/tools/arm-none-eabi-gcc/9-2019q4/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: libraries\Adafruit_ZeroDMA\Adafruit_ZeroDMA.cpp.o: in function `DMAC_Handler':

C:\Users\mordechai.uksusman\Documents\ArduinoData\packages\adafruit\hardware\samd\1.7.10\libraries\Adafruit_ZeroDMA/Adafruit_ZeroDMA.cpp:124: multiple definition of `DMAC_Handler'; libraries\ArduinoSound\utility\DMA.cpp.o:C:\Users\mordechai.uksusman\Documents\Arduino\libraries\ArduinoSound\src\utility/DMA.cpp:279: first defined here

collect2.exe: error: ld returned 1 exit status

exit status 1

Error compiling for board Adafruit Metro M0 Express (SAMD21).



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

User avatar
mikeysklar
 
Posts: 13936
Joined: Mon Aug 01, 2016 8:10 pm

Re: I2S Stereo Decoder with Metro express

Post by mikeysklar »

You should enable verbose mode under File --> Preferences as the log warning suggests so we can see the full compilation issue.

Can you start with one of our examples to get going.

Code: Select all

#include <Arduino.h>

#include <Adafruit_ZeroI2S.h>
#include <math.h>

/* max volume for 32 bit data */
#define VOLUME ( (1UL << 31) - 1)

/* create a buffer for both the left and right channel data */
#define BUFSIZE 128
int left[BUFSIZE];
int right[BUFSIZE];

// Use default pins in board variant
Adafruit_ZeroI2S i2s = Adafruit_ZeroI2S();

void setup()
{
  while (!Serial) delay(10);

  Serial.println("I2S demo");

  for(int i=0; i<BUFSIZE; i++){
      /* create a sine wave on the left channel */
        left[i] = sin( (2*PI / (BUFSIZE) ) * i) * VOLUME;

        /* create a cosine wave on the right channel */
        right[i] = cos( (2*PI / (BUFSIZE) ) * i) * VOLUME;
  }

  /* begin I2S on the default pins. 24 bit depth at
   * 44100 samples per second
   */
  i2s.begin(I2S_32_BIT, 44100);
  i2s.enableTx();
}

void loop()
{
  /* write the output buffers
   * note that i2s.write() will block until both channels are written.
   */
  for(int i=0; i<BUFSIZE; i++){
    i2s.write(left[i], right[i]);
  }
}
https://learn.adafruit.com/adafruit-i2s ... -2976018-4

User avatar
mikeysklar
 
Posts: 13936
Joined: Mon Aug 01, 2016 8:10 pm

Re: I2S Stereo Decoder with Metro express

Post by mikeysklar »

You should enable verbose mode under File --> Preferences as the log warning suggests so we can see the full compilation issue.

Can you start with one of our examples to get going.

Code: Select all

#include <Arduino.h>

#include <Adafruit_ZeroI2S.h>
#include <math.h>

/* max volume for 32 bit data */
#define VOLUME ( (1UL << 31) - 1)

/* create a buffer for both the left and right channel data */
#define BUFSIZE 128
int left[BUFSIZE];
int right[BUFSIZE];

// Use default pins in board variant
Adafruit_ZeroI2S i2s = Adafruit_ZeroI2S();

void setup()
{
  while (!Serial) delay(10);

  Serial.println("I2S demo");

  for(int i=0; i<BUFSIZE; i++){
      /* create a sine wave on the left channel */
        left[i] = sin( (2*PI / (BUFSIZE) ) * i) * VOLUME;

        /* create a cosine wave on the right channel */
        right[i] = cos( (2*PI / (BUFSIZE) ) * i) * VOLUME;
  }

  /* begin I2S on the default pins. 24 bit depth at
   * 44100 samples per second
   */
  i2s.begin(I2S_32_BIT, 44100);
  i2s.enableTx();
}

void loop()
{
  /* write the output buffers
   * note that i2s.write() will block until both channels are written.
   */
  for(int i=0; i<BUFSIZE; i++){
    i2s.write(left[i], right[i]);
  }
}
https://learn.adafruit.com/adafruit-i2s ... -2976018-4

Locked
Please be positive and constructive with your questions and comments.

Return to “Metro, Metro Express, and Grand Central Boards”