Can't import Audio Library (v.1.3) in a private library in a PlatformIO

dkadish

New member
I'm having an issue using the Teensy Audio library as part of a private libraries (under the lib folder of a PlatformIO project, as described in https://github.com/platformio/platform-atmelavr/blob/develop/examples/arduino-blink/lib/README).

I am developing some Teensy code that uses the Audio library, but I would like to eventually break parts of the codebase out into reusable libraries. For now, I'm developing them as private libraries under the `lib` directory. The problem is that whenever I import Audio.h, I get all sorts of compilation errors. In my main codebase, the first one is usually a "uint8_t does not name a type", but there's a series of undefined variable errors.

As a MWE, I've created two PlatformIO projects, one that imports Audio.h in the main.cpp file and one that has a private library that depends on it in the library.json file. The one that imports Audio.h in main.cpp compiles and it looks like:
Code:
|-- TeensyAudio_main
|  |
|  |-- include
|  |  |-- README
|  |-- lib
|  |  |-- README
|  |-- src
|  |  |-- main.cpp
|  |-- test
|  |  |-- README
|  |-- .gitignore
|  |-- platformio.ini

main.cpp is
Code:
#include <Arduino.h>
#include <Audio.h> // <------ imports the audio library successfully

void setup() {
}

void loop() {
  // put your main code here, to run repeatedly:
}

and platformio.ini is
Code:
; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:teensymm]
platform = teensy
board = teensymm
framework = arduino



The second MWE has a private lib that just requires the Audio library (defined in its library.json) and this fails to compile.

Code:
|-- TeensyAudio_library
|  |
|  |-- include
|  |  |-- README
|  |-- lib
|  |  |-- AudioTestLibrary
|  |  |  |-- include
|  |  |  |  |-- AudioTestLibrary.h
|  |  |  |-- src
|  |  |  |  |-- AudioTestLibrary.cpp
|  |  |-- library.json
|  |-- src
|  |  |-- main.cpp
|  |-- test
|  |  |-- README
|  |-- .gitignore
|  |-- platformio.ini

main.cpp is
Code:
#include <Arduino.h>
#include <AudioTestLibrary.h>

void setup() {
}

void loop() {
  // put your main code here, to run repeatedly:
}

and platformio.ini is
Code:
; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:teensymm]
platform = teensy
board = teensymm
framework = arduino

AudioTestLibrary.h is
Code:
//
// Created by David Kadish on 10/09/2023.
//

#ifndef AUDIOTESTLIBRARY_H
#define AUDIOTESTLIBRARY_H

// These libraries are included because otherwise the compiler complains about missing Serial, Wire, and SPI files (e.g. "fatal error: Wire.h: No such file or directory")
#include <Arduino.h>
#include <Wire.h>
#include <SPI.h>

class AudioTestClass {

public:
    void setup();

    void loop();
};


#endif //AUDIOTESTLIBRARY_H

and AudioTestLibrary.cpp is
Code:
//
// Created by David Kadish on 10/09/2023.
//

#include "AudioTestLibrary.h"
AudioTestClass::AudioTestClass() {}

void AudioTestClass::loop() {}

void AudioTestClass::setup() {}

Finally, library.json is
Code:
{
    "name": "AudioTestLibrary",
    "version": "1.0.0",
    "description": "A library to test the TeensyAudio library.",
    "dependencies": {
      "paulstoffregen/Audio": "~1.3.0"
    },
    "frameworks": "arduino",
    "platforms": "teensy"
  }

This project, with the Audio library as a dependency of the AudioTestLibrary does not compile. The compilation log re reads:
Code:
 *  Executing task: platformio run --verbose --environment teensymm 

Processing teensymm (platform: teensy; board: teensymm; framework: arduino)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CONFIGURATION: https://docs.platformio.org/page/boards/teensy/teensymm.html
PLATFORM: Teensy (4.18.0) > SparkFun MicroMod Teensy
HARDWARE: IMXRT1062 600MHz, 512KB RAM, 7.75MB Flash
DEBUG: Current (jlink) External (jlink)
PACKAGES: 
 - framework-arduinoteensy @ 1.158.0 (1.58) 
 - tool-teensy @ 1.158.0 (1.58) 
 - toolchain-gccarmnoneeabi-teensy @ 1.110301.0 (11.3.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 94 compatible libraries
Scanning dependencies...
Dependency Graph
|-- AudioTestLibrary @ 1.0.0 (License: Unknown, Path: /Users/ca492/Documents/PlatformIO/Projects/TeensyAudio_library/lib/AudioTestLibrary)
|   |-- Audio @ 1.3.0 (License: Unknown, Path: /Users/ca492/Documents/PlatformIO/Projects/TeensyAudio_library/.pio/libdeps/teensymm/Audio)
|   |   |-- Wire @ 1.0 (License: Unknown, Path: /Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire)
|   |   |-- SPI @ 1.0 (License: Unknown, Path: /Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI)
|   |-- SPI @ 1.0 (License: Unknown, Path: /Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI)
|   |-- Wire @ 1.0 (License: Unknown, Path: /Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire)
Building in release mode
arm-none-eabi-g++ -o .pio/build/teensymm/lib729/Audio/analyze_print.cpp.o -c -fno-exceptions -felide-constructors -fno-rtti -std=gnu++14 -Wno-error=narrowing -fpermissive -fno-threadsafe-statics -Wall -ffunction-sections -fdata-sections -mthumb -mcpu=cortex-m7 -nostdlib -mfloat-abi=hard -mfpu=fpv5-d16 -O2 -DPLATFORMIO=60111 -D__IMXRT1062__ -DARDUINO_TEENSY_MICROMOD -DUSB_SERIAL -DARDUINO=10805 -DTEENSYDUINO=158 -DCORE_TEENSY -DF_CPU=600000000 -DLAYOUT_US_ENGLISH -I.pio/libdeps/teensymm/Audio -I.pio/libdeps/teensymm/Audio/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/cores/teensy4 .pio/libdeps/teensymm/Audio/analyze_print.cpp
arm-none-eabi-g++ -o .pio/build/teensymm/lib729/Audio/analyze_tonedetect.cpp.o -c -fno-exceptions -felide-constructors -fno-rtti -std=gnu++14 -Wno-error=narrowing -fpermissive -fno-threadsafe-statics -Wall -ffunction-sections -fdata-sections -mthumb -mcpu=cortex-m7 -nostdlib -mfloat-abi=hard -mfpu=fpv5-d16 -O2 -DPLATFORMIO=60111 -D__IMXRT1062__ -DARDUINO_TEENSY_MICROMOD -DUSB_SERIAL -DARDUINO=10805 -DTEENSYDUINO=158 -DCORE_TEENSY -DF_CPU=600000000 -DLAYOUT_US_ENGLISH -I.pio/libdeps/teensymm/Audio -I.pio/libdeps/teensymm/Audio/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/cores/teensy4 .pio/libdeps/teensymm/Audio/analyze_tonedetect.cpp
arm-none-eabi-g++ -o .pio/build/teensymm/lib729/Audio/effect_chorus.cpp.o -c -fno-exceptions -felide-constructors -fno-rtti -std=gnu++14 -Wno-error=narrowing -fpermissive -fno-threadsafe-statics -Wall -ffunction-sections -fdata-sections -mthumb -mcpu=cortex-m7 -nostdlib -mfloat-abi=hard -mfpu=fpv5-d16 -O2 -DPLATFORMIO=60111 -D__IMXRT1062__ -DARDUINO_TEENSY_MICROMOD -DUSB_SERIAL -DARDUINO=10805 -DTEENSYDUINO=158 -DCORE_TEENSY -DF_CPU=600000000 -DLAYOUT_US_ENGLISH -I.pio/libdeps/teensymm/Audio -I.pio/libdeps/teensymm/Audio/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/cores/teensy4 .pio/libdeps/teensymm/Audio/effect_chorus.cpp
arm-none-eabi-g++ -o .pio/build/teensymm/lib729/Audio/effect_flange.cpp.o -c -fno-exceptions -felide-constructors -fno-rtti -std=gnu++14 -Wno-error=narrowing -fpermissive -fno-threadsafe-statics -Wall -ffunction-sections -fdata-sections -mthumb -mcpu=cortex-m7 -nostdlib -mfloat-abi=hard -mfpu=fpv5-d16 -O2 -DPLATFORMIO=60111 -D__IMXRT1062__ -DARDUINO_TEENSY_MICROMOD -DUSB_SERIAL -DARDUINO=10805 -DTEENSYDUINO=158 -DCORE_TEENSY -DF_CPU=600000000 -DLAYOUT_US_ENGLISH -I.pio/libdeps/teensymm/Audio -I.pio/libdeps/teensymm/Audio/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/cores/teensy4 .pio/libdeps/teensymm/Audio/effect_flange.cpp
arm-none-eabi-g++ -o .pio/build/teensymm/lib729/Audio/filter_biquad.cpp.o -c -fno-exceptions -felide-constructors -fno-rtti -std=gnu++14 -Wno-error=narrowing -fpermissive -fno-threadsafe-statics -Wall -ffunction-sections -fdata-sections -mthumb -mcpu=cortex-m7 -nostdlib -mfloat-abi=hard -mfpu=fpv5-d16 -O2 -DPLATFORMIO=60111 -D__IMXRT1062__ -DARDUINO_TEENSY_MICROMOD -DUSB_SERIAL -DARDUINO=10805 -DTEENSYDUINO=158 -DCORE_TEENSY -DF_CPU=600000000 -DLAYOUT_US_ENGLISH -I.pio/libdeps/teensymm/Audio -I.pio/libdeps/teensymm/Audio/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/cores/teensy4 .pio/libdeps/teensymm/Audio/filter_biquad.cpp
arm-none-eabi-g++ -o .pio/build/teensymm/lib729/Audio/filter_variable.cpp.o -c -fno-exceptions -felide-constructors -fno-rtti -std=gnu++14 -Wno-error=narrowing -fpermissive -fno-threadsafe-statics -Wall -ffunction-sections -fdata-sections -mthumb -mcpu=cortex-m7 -nostdlib -mfloat-abi=hard -mfpu=fpv5-d16 -O2 -DPLATFORMIO=60111 -D__IMXRT1062__ -DARDUINO_TEENSY_MICROMOD -DUSB_SERIAL -DARDUINO=10805 -DTEENSYDUINO=158 -DCORE_TEENSY -DF_CPU=600000000 -DLAYOUT_US_ENGLISH -I.pio/libdeps/teensymm/Audio -I.pio/libdeps/teensymm/Audio/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/cores/teensy4 .pio/libdeps/teensymm/Audio/filter_variable.cpp
arm-none-eabi-g++ -o .pio/build/teensymm/lib729/Audio/input_adc.cpp.o -c -fno-exceptions -felide-constructors -fno-rtti -std=gnu++14 -Wno-error=narrowing -fpermissive -fno-threadsafe-statics -Wall -ffunction-sections -fdata-sections -mthumb -mcpu=cortex-m7 -nostdlib -mfloat-abi=hard -mfpu=fpv5-d16 -O2 -DPLATFORMIO=60111 -D__IMXRT1062__ -DARDUINO_TEENSY_MICROMOD -DUSB_SERIAL -DARDUINO=10805 -DTEENSYDUINO=158 -DCORE_TEENSY -DF_CPU=600000000 -DLAYOUT_US_ENGLISH -I.pio/libdeps/teensymm/Audio -I.pio/libdeps/teensymm/Audio/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/cores/teensy4 .pio/libdeps/teensymm/Audio/input_adc.cpp
arm-none-eabi-g++ -o .pio/build/teensymm/lib729/Audio/input_i2s.cpp.o -c -fno-exceptions -felide-constructors -fno-rtti -std=gnu++14 -Wno-error=narrowing -fpermissive -fno-threadsafe-statics -Wall -ffunction-sections -fdata-sections -mthumb -mcpu=cortex-m7 -nostdlib -mfloat-abi=hard -mfpu=fpv5-d16 -O2 -DPLATFORMIO=60111 -D__IMXRT1062__ -DARDUINO_TEENSY_MICROMOD -DUSB_SERIAL -DARDUINO=10805 -DTEENSYDUINO=158 -DCORE_TEENSY -DF_CPU=600000000 -DLAYOUT_US_ENGLISH -I.pio/libdeps/teensymm/Audio -I.pio/libdeps/teensymm/Audio/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/cores/teensy4 .pio/libdeps/teensymm/Audio/input_i2s.cpp
.pio/libdeps/teensymm/Audio/analyze_print.cpp: In member function 'virtual void AudioAnalyzePrint::update()':
.pio/libdeps/teensymm/Audio/analyze_print.cpp:68:33: error: 'Serial' was not declared in this scope; did you mean 'SerialUSB'?
   68 |                                 Serial.println(block->data[offset++]);
      |                                 ^~~~~~
      |                                 SerialUSB
.pio/libdeps/teensymm/Audio/analyze_print.cpp: In member function 'void AudioAnalyzePrint::trigger()':
.pio/libdeps/teensymm/Audio/analyze_print.cpp:87:17: error: 'Serial' was not declared in this scope; did you mean 'SerialUSB'?
   87 |                 Serial.print("trigger ");
      |                 ^~~~~~
      |                 SerialUSB
.pio/libdeps/teensymm/Audio/analyze_print.cpp:94:17: error: 'Serial' was not declared in this scope; did you mean 'SerialUSB'?
   94 |                 Serial.print("trigger ");
      |                 ^~~~~~
      |                 SerialUSB
In file included from .pio/libdeps/teensymm/Audio/effect_chorus.cpp:23:
.pio/libdeps/teensymm/Audio/effect_chorus.h:44:3: error: 'boolean' does not name a type; did you mean 'bool'?
   44 |   boolean begin(short *delayline,int delay_length,int n_chorus);
      |   ^~~~~~~
      |   bool
.pio/libdeps/teensymm/Audio/effect_chorus.cpp:32:1: error: 'boolean' does not name a type; did you mean 'bool'?
   32 | boolean AudioEffectChorus::begin(short *delayline,int d_length,int n_chorus)
      | ^~~~~~~
      | bool
In file included from .pio/libdeps/teensymm/Audio/analyze_tonedetect.cpp:27:
.pio/libdeps/teensymm/Audio/analyze_tonedetect.h: In member function 'void AudioAnalyzeToneDetect::frequency(float, uint16_t)':
.pio/libdeps/teensymm/Audio/analyze_tonedetect.h:38:38: error: 'cos' was not declared in this scope
   38 |                 set_params((int32_t)(cos((double)freq
      |                                      ^~~
*** [.pio/build/teensymm/lib729/Audio/analyze_print.cpp.o] Error 1
In file included from .pio/libdeps/teensymm/Audio/analyze_tonedetect.cpp:28:
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_saturate_rshift(int32_t, int, int)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:51:1: warning: no return statement in function returning non-void [-Wreturn-type]
   51 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_multiply_32x16b(int32_t, uint32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:64:1: warning: no return statement in function returning non-void [-Wreturn-type]
   64 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_multiply_32x16t(int32_t, uint32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:77:1: warning: no return statement in function returning non-void [-Wreturn-type]
   77 | }
      | ^
In file included from .pio/libdeps/teensymm/Audio/analyze_tonedetect.cpp:28:
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16t_16t(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:127:1: warning: no return statement in function returning non-void [-Wreturn-type]
  127 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16t_16b(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:140:1: warning: no return statement in function returning non-void [-Wreturn-type]
  140 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16b_16b(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:153:1: warning: no return statement in function returning non-void [-Wreturn-type]
  153 | }
      | ^
*** [.pio/build/teensymm/lib729/Audio/analyze_tonedetect.cpp.o] Error 1
*** [.pio/build/teensymm/lib729/Audio/effect_chorus.cpp.o] Error 1
In file included from .pio/libdeps/teensymm/Audio/input_adc.cpp:28:
.pio/libdeps/teensymm/Audio/utility/pdb.h:30:10: fatal error: kinetis.h: No such file or directory

*****************************************************************
* Looking for kinetis.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:kinetis.h"
* Web  > https://registry.platformio.org/search?q=header:kinetis.h
*
*****************************************************************

   30 | #include "kinetis.h"
      |          ^~~~~~~~~~~
compilation terminated.
In file included from .pio/libdeps/teensymm/Audio/effect_flange.cpp:23:
.pio/libdeps/teensymm/Audio/effect_flange.h:43:3: error: 'boolean' does not name a type; did you mean 'bool'?
   43 |   boolean begin(short *delayline,int d_length,int delay_offset,int d_depth,float delay_rate);
      |   ^~~~~~~
      |   bool
In file included from .pio/libdeps/teensymm/Audio/filter_biquad.cpp:27:
.pio/libdeps/teensymm/Audio/filter_biquad.h: In member function 'void AudioFilterBiquad::setLowpass(uint32_t, float, float)':
.pio/libdeps/teensymm/Audio/filter_biquad.h:58:32: error: 'sin' was not declared in this scope
   58 |                 double sinW0 = sin(w0);
      |                                ^~~
*** [.pio/build/teensymm/lib729/Audio/input_adc.cpp.o] Error 1
.pio/libdeps/teensymm/Audio/effect_flange.h:44:3: error: 'boolean' does not name a type; did you mean 'bool'?
   44 |   boolean voices(int delay_offset,int d_depth,float delay_rate);
      |   ^~~~~~~
      |   bool
.pio/libdeps/teensymm/Audio/filter_biquad.h:60:32: error: 'cos' was not declared in this scope
   60 |                 double cosW0 = cos(w0);
      |                                ^~~
.pio/libdeps/teensymm/Audio/filter_biquad.h: In member function 'void AudioFilterBiquad::setHighpass(uint32_t, float, float)':
.pio/libdeps/teensymm/Audio/filter_biquad.h:72:32: error: 'sin' was not declared in this scope
   72 |                 double sinW0 = sin(w0);
      |                                ^~~
.pio/libdeps/teensymm/Audio/filter_biquad.h:74:32: error: 'cos' was not declared in this scope
   74 |                 double cosW0 = cos(w0);
      |                                ^~~
.pio/libdeps/teensymm/Audio/filter_biquad.h: In member function 'void AudioFilterBiquad::setBandpass(uint32_t, float, float)':
.pio/libdeps/teensymm/Audio/filter_biquad.h:86:32: error: 'sin' was not declared in this scope
   86 |                 double sinW0 = sin(w0);
      |                                ^~~
In file included from .pio/libdeps/teensymm/Audio/filter_variable.cpp:27:
.pio/libdeps/teensymm/Audio/filter_variable.h: In member function 'void AudioFilterStateVariable::frequency(float)':
.pio/libdeps/teensymm/Audio/filter_variable.h:50:33: error: 'sinf' was not declared in this scope
   50 |                 setting_fmult = sinf(freq * (3.141592654/(AUDIO_SAMPLE_RATE_EXACT*2.0)))
      |                                 ^~~~
In file included from .pio/libdeps/teensymm/Audio/filter_variable.cpp:28:
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_saturate_rshift(int32_t, int, int)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:51:1: warning: no return statement in function returning non-void [-Wreturn-type]
   51 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_multiply_32x16b(int32_t, uint32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:64:1: warning: no return statement in function returning non-void [-Wreturn-type]
   64 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_multiply_32x16t(int32_t, uint32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:77:1: warning: no return statement in function returning non-void [-Wreturn-type]
   77 | }
      | ^
.pio/libdeps/teensymm/Audio/filter_biquad.h:88:32: error: 'cos' was not declared in this scope
   88 |                 double cosW0 = cos(w0);
      |                                ^~~
In file included from .pio/libdeps/teensymm/Audio/filter_variable.cpp:28:
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16t_16t(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:127:1: warning: no return statement in function returning non-void [-Wreturn-type]
  127 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16t_16b(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:140:1: warning: no return statement in function returning non-void [-Wreturn-type]
  140 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16b_16b(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:153:1: warning: no return statement in function returning non-void [-Wreturn-type]
  153 | }
      | ^
.pio/libdeps/teensymm/Audio/filter_biquad.h: In member function 'void AudioFilterBiquad::setNotch(uint32_t, float, float)':
.pio/libdeps/teensymm/Audio/filter_biquad.h:100:32: error: 'sin' was not declared in this scope
  100 |                 double sinW0 = sin(w0);
      |                                ^~~
*** [.pio/build/teensymm/lib729/Audio/filter_variable.cpp.o] Error 1
.pio/libdeps/teensymm/Audio/filter_biquad.h:102:32: error: 'cos' was not declared in this scope
  102 |                 double cosW0 = cos(w0);
      |                                ^~~
In file included from .pio/libdeps/teensymm/Audio/filter_biquad.cpp:28:
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_saturate_rshift(int32_t, int, int)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:51:1: warning: no return statement in function returning non-void [-Wreturn-type]
   51 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_multiply_32x16b(int32_t, uint32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:64:1: warning: no return statement in function returning non-void [-Wreturn-type]
   64 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_multiply_32x16t(int32_t, uint32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:77:1: warning: no return statement in function returning non-void [-Wreturn-type]
   77 | }
      | ^
In file included from .pio/libdeps/teensymm/Audio/filter_biquad.cpp:28:
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16t_16t(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:127:1: warning: no return statement in function returning non-void [-Wreturn-type]
  127 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16t_16b(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:140:1: warning: no return statement in function returning non-void [-Wreturn-type]
  140 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16b_16b(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:153:1: warning: no return statement in function returning non-void [-Wreturn-type]
  153 | }
      | ^
*** [.pio/build/teensymm/lib729/Audio/filter_biquad.cpp.o] Error 1
.pio/libdeps/teensymm/Audio/effect_flange.cpp:58:1: error: 'boolean' does not name a type; did you mean 'bool'?
   58 | boolean AudioEffectFlange::begin(short *delayline,int d_length,int delay_offset,int d_depth,float delay_rate)
      | ^~~~~~~
      | bool
.pio/libdeps/teensymm/Audio/effect_flange.cpp:97:1: error: 'boolean' does not name a type; did you mean 'bool'?
   97 | boolean AudioEffectFlange::voices(int delay_offset,int d_depth,float delay_rate)
      | ^~~~~~~
      | bool
*** [.pio/build/teensymm/lib729/Audio/effect_flange.cpp.o] Error 1
.pio/libdeps/teensymm/Audio/input_i2s.cpp:30:1: error: 'DMAMEM' does not name a type; did you mean 'DMA_ES'?
   30 | DMAMEM static uint32_t i2s_rx_buffer[AUDIO_BLOCK_SAMPLES];
      | ^~~~~~
      | DMA_ES
.pio/libdeps/teensymm/Audio/input_i2s.cpp: In member function 'void AudioInputI2S::begin()':
.pio/libdeps/teensymm/Audio/input_i2s.cpp:48:29: error: 'PORT_PCR_MUX' was not declared in this scope
   48 |         CORE_PIN13_CONFIG = PORT_PCR_MUX(4); // pin 13, PTC5, I2S0_RXD0
      |                             ^~~~~~~~~~~~
.pio/libdeps/teensymm/Audio/input_i2s.cpp:62:36: error: 'DMAMUX_SOURCE_I2S0_RX' was not declared in this scope; did you mean 'DMAMUX_SOURCE_SAI1_RX'?
   62 |         dma.triggerAtHardwareEvent(DMAMUX_SOURCE_I2S0_RX);
      |                                    ^~~~~~~~~~~~~~~~~~~~~
      |                                    DMAMUX_SOURCE_SAI1_RX
.pio/libdeps/teensymm/Audio/input_i2s.cpp:66:9: error: 'I2S0_RCSR' was not declared in this scope; did you mean 'I2S3_RCSR'?
   66 |         I2S0_RCSR |= I2S_RCSR_RE | I2S_RCSR_BCE | I2S_RCSR_FRDE | I2S_RCSR_FR;
      |         ^~~~~~~~~
      |         I2S3_RCSR
.pio/libdeps/teensymm/Audio/input_i2s.cpp:67:9: error: 'I2S0_TCSR' was not declared in this scope; did you mean 'I2S2_TCSR'?
   67 |         I2S0_TCSR |= I2S_TCSR_TE | I2S_TCSR_BCE; // TX clock enable, because sync'd to TX
      |         ^~~~~~~~~
      |         I2S2_TCSR
.pio/libdeps/teensymm/Audio/input_i2s.cpp: In static member function 'static void AudioInputI2S::isr()':
.pio/libdeps/teensymm/Audio/input_i2s.cpp:84:31: error: 'i2s_rx_buffer' was not declared in this scope
   84 |         if (daddr < (uint32_t)i2s_rx_buffer + sizeof(i2s_rx_buffer) / 2) {
      |                               ^~~~~~~~~~~~~
.pio/libdeps/teensymm/Audio/input_i2s.cpp: In member function 'void AudioInputI2Sslave::begin()':
.pio/libdeps/teensymm/Audio/input_i2s.cpp:183:29: error: 'PORT_PCR_MUX' was not declared in this scope
  183 |         CORE_PIN13_CONFIG = PORT_PCR_MUX(4); // pin 13, PTC5, I2S0_RXD0
      |                             ^~~~~~~~~~~~
.pio/libdeps/teensymm/Audio/input_i2s.cpp:197:36: error: 'DMAMUX_SOURCE_I2S0_RX' was not declared in this scope; did you mean 'DMAMUX_SOURCE_SAI1_RX'?
  197 |         dma.triggerAtHardwareEvent(DMAMUX_SOURCE_I2S0_RX);
      |                                    ^~~~~~~~~~~~~~~~~~~~~
      |                                    DMAMUX_SOURCE_SAI1_RX
.pio/libdeps/teensymm/Audio/input_i2s.cpp:201:9: error: 'I2S0_RCSR' was not declared in this scope; did you mean 'I2S3_RCSR'?
  201 |         I2S0_RCSR |= I2S_RCSR_RE | I2S_RCSR_BCE | I2S_RCSR_FRDE | I2S_RCSR_FR;
      |         ^~~~~~~~~
      |         I2S3_RCSR
.pio/libdeps/teensymm/Audio/input_i2s.cpp:202:9: error: 'I2S0_TCSR' was not declared in this scope; did you mean 'I2S2_TCSR'?
  202 |         I2S0_TCSR |= I2S_TCSR_TE | I2S_TCSR_BCE; // TX clock enable, because sync'd to TX
      |         ^~~~~~~~~
      |         I2S2_TCSR
*** [.pio/build/teensymm/lib729/Audio/input_i2s.cpp.o] Error 1
================================================================================================= [FAILED] Took 1.19 seconds =================================================================================================

 *  The terminal process "platformio 'run', '--verbose', '--environment', 'teensymm'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it.



A couple of things to note:
  • I have tried this with different Teensy versions (teensymm, teensy40, teensy31) and the builds all fail in the same way, so it is not a MicroMod issue.
  • I suspect the problem is that PlatformIO is missing some of the board-specific files/flags when compiling the private libraries, which is causing the problem here.
  • I haven't tested this with proper PlatformIO libraries, so I'm not sure if this problem persists there.

I have published these two examples on Github in hopes that someone else trying them might be able to figure out what is going on here. The one that compiles (importing Audio.h in main.cpp) is at https://github.com/dkadish/TeensyAudioPlatformIO_main and the one that does not compile (with the audio library as a dependency for a private library) is at https://github.com/dkadish/TeensyAudioPlatformIO_library.

I'd appreciate any insight into what's going wrong!
 
Nope, that doesn't do it (it's a good thought though). I appended that and got the same error message (I haven't checked it in detail but it looks the same). That was after a full clean, btw:

Code:
 *  Executing task: platformio run --verbose --environment teensymm 

Processing teensymm (platform: teensy; board: teensymm; framework: arduino; lib_ldf_mode: chain+)
---------------------------------------------------------------------------------------------------------------------------------------------------------
CONFIGURATION: https://docs.platformio.org/page/boards/teensy/teensymm.html
PLATFORM: Teensy (4.18.0) > SparkFun MicroMod Teensy
HARDWARE: IMXRT1062 600MHz, 512KB RAM, 7.75MB Flash
DEBUG: Current (jlink) External (jlink)
PACKAGES: 
 - framework-arduinoteensy @ 1.158.0 (1.58) 
 - tool-teensy @ 1.158.0 (1.58) 
 - toolchain-gccarmnoneeabi-teensy @ 1.110301.0 (11.3.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain+, Compatibility ~ soft
Found 94 compatible libraries
Scanning dependencies...
Dependency Graph
|-- AudioTestLibrary @ 1.0.0 (License: Unknown, Path: /Users/ca492/Documents/PlatformIO/Projects/TeensyAudio_library/lib/AudioTestLibrary)
|   |-- Audio @ 1.3.0 (License: Unknown, Path: /Users/ca492/Documents/PlatformIO/Projects/TeensyAudio_library/.pio/libdeps/teensymm/Audio)
|   |   |-- Wire @ 1.0 (License: Unknown, Path: /Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire)
|   |   |-- SPI @ 1.0 (License: Unknown, Path: /Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI)
|   |-- Wire @ 1.0 (License: Unknown, Path: /Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire)
|   |-- SPI @ 1.0 (License: Unknown, Path: /Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI)
|-- Wire @ 1.0 (License: Unknown, Path: /Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire)
|-- SPI @ 1.0 (License: Unknown, Path: /Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI)
Building in release mode
arm-none-eabi-g++ -o .pio/build/teensymm/lib729/Audio/analyze_print.cpp.o -c -fno-exceptions -felide-constructors -fno-rtti -std=gnu++14 -Wno-error=narrowing -fpermissive -fno-threadsafe-statics -Wall -ffunction-sections -fdata-sections -mthumb -mcpu=cortex-m7 -nostdlib -mfloat-abi=hard -mfpu=fpv5-d16 -O2 -DPLATFORMIO=60111 -D__IMXRT1062__ -DARDUINO_TEENSY_MICROMOD -DUSB_SERIAL -DARDUINO=10805 -DTEENSYDUINO=158 -DCORE_TEENSY -DF_CPU=600000000 -DLAYOUT_US_ENGLISH -I.pio/libdeps/teensymm/Audio -I.pio/libdeps/teensymm/Audio/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/cores/teensy4 .pio/libdeps/teensymm/Audio/analyze_print.cpp
arm-none-eabi-g++ -o .pio/build/teensymm/lib729/Audio/analyze_tonedetect.cpp.o -c -fno-exceptions -felide-constructors -fno-rtti -std=gnu++14 -Wno-error=narrowing -fpermissive -fno-threadsafe-statics -Wall -ffunction-sections -fdata-sections -mthumb -mcpu=cortex-m7 -nostdlib -mfloat-abi=hard -mfpu=fpv5-d16 -O2 -DPLATFORMIO=60111 -D__IMXRT1062__ -DARDUINO_TEENSY_MICROMOD -DUSB_SERIAL -DARDUINO=10805 -DTEENSYDUINO=158 -DCORE_TEENSY -DF_CPU=600000000 -DLAYOUT_US_ENGLISH -I.pio/libdeps/teensymm/Audio -I.pio/libdeps/teensymm/Audio/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/cores/teensy4 .pio/libdeps/teensymm/Audio/analyze_tonedetect.cpp
arm-none-eabi-g++ -o .pio/build/teensymm/lib729/Audio/effect_chorus.cpp.o -c -fno-exceptions -felide-constructors -fno-rtti -std=gnu++14 -Wno-error=narrowing -fpermissive -fno-threadsafe-statics -Wall -ffunction-sections -fdata-sections -mthumb -mcpu=cortex-m7 -nostdlib -mfloat-abi=hard -mfpu=fpv5-d16 -O2 -DPLATFORMIO=60111 -D__IMXRT1062__ -DARDUINO_TEENSY_MICROMOD -DUSB_SERIAL -DARDUINO=10805 -DTEENSYDUINO=158 -DCORE_TEENSY -DF_CPU=600000000 -DLAYOUT_US_ENGLISH -I.pio/libdeps/teensymm/Audio -I.pio/libdeps/teensymm/Audio/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/cores/teensy4 .pio/libdeps/teensymm/Audio/effect_chorus.cpp
arm-none-eabi-g++ -o .pio/build/teensymm/lib729/Audio/effect_flange.cpp.o -c -fno-exceptions -felide-constructors -fno-rtti -std=gnu++14 -Wno-error=narrowing -fpermissive -fno-threadsafe-statics -Wall -ffunction-sections -fdata-sections -mthumb -mcpu=cortex-m7 -nostdlib -mfloat-abi=hard -mfpu=fpv5-d16 -O2 -DPLATFORMIO=60111 -D__IMXRT1062__ -DARDUINO_TEENSY_MICROMOD -DUSB_SERIAL -DARDUINO=10805 -DTEENSYDUINO=158 -DCORE_TEENSY -DF_CPU=600000000 -DLAYOUT_US_ENGLISH -I.pio/libdeps/teensymm/Audio -I.pio/libdeps/teensymm/Audio/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/cores/teensy4 .pio/libdeps/teensymm/Audio/effect_flange.cpp
arm-none-eabi-g++ -o .pio/build/teensymm/lib729/Audio/effect_multiply.cpp.o -c -fno-exceptions -felide-constructors -fno-rtti -std=gnu++14 -Wno-error=narrowing -fpermissive -fno-threadsafe-statics -Wall -ffunction-sections -fdata-sections -mthumb -mcpu=cortex-m7 -nostdlib -mfloat-abi=hard -mfpu=fpv5-d16 -O2 -DPLATFORMIO=60111 -D__IMXRT1062__ -DARDUINO_TEENSY_MICROMOD -DUSB_SERIAL -DARDUINO=10805 -DTEENSYDUINO=158 -DCORE_TEENSY -DF_CPU=600000000 -DLAYOUT_US_ENGLISH -I.pio/libdeps/teensymm/Audio -I.pio/libdeps/teensymm/Audio/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/cores/teensy4 .pio/libdeps/teensymm/Audio/effect_multiply.cpp
arm-none-eabi-g++ -o .pio/build/teensymm/lib729/Audio/filter_biquad.cpp.o -c -fno-exceptions -felide-constructors -fno-rtti -std=gnu++14 -Wno-error=narrowing -fpermissive -fno-threadsafe-statics -Wall -ffunction-sections -fdata-sections -mthumb -mcpu=cortex-m7 -nostdlib -mfloat-abi=hard -mfpu=fpv5-d16 -O2 -DPLATFORMIO=60111 -D__IMXRT1062__ -DARDUINO_TEENSY_MICROMOD -DUSB_SERIAL -DARDUINO=10805 -DTEENSYDUINO=158 -DCORE_TEENSY -DF_CPU=600000000 -DLAYOUT_US_ENGLISH -I.pio/libdeps/teensymm/Audio -I.pio/libdeps/teensymm/Audio/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/cores/teensy4 .pio/libdeps/teensymm/Audio/filter_biquad.cpp
arm-none-eabi-g++ -o .pio/build/teensymm/lib729/Audio/filter_fir.cpp.o -c -fno-exceptions -felide-constructors -fno-rtti -std=gnu++14 -Wno-error=narrowing -fpermissive -fno-threadsafe-statics -Wall -ffunction-sections -fdata-sections -mthumb -mcpu=cortex-m7 -nostdlib -mfloat-abi=hard -mfpu=fpv5-d16 -O2 -DPLATFORMIO=60111 -D__IMXRT1062__ -DARDUINO_TEENSY_MICROMOD -DUSB_SERIAL -DARDUINO=10805 -DTEENSYDUINO=158 -DCORE_TEENSY -DF_CPU=600000000 -DLAYOUT_US_ENGLISH -I.pio/libdeps/teensymm/Audio -I.pio/libdeps/teensymm/Audio/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/cores/teensy4 .pio/libdeps/teensymm/Audio/filter_fir.cpp
arm-none-eabi-g++ -o .pio/build/teensymm/lib729/Audio/filter_variable.cpp.o -c -fno-exceptions -felide-constructors -fno-rtti -std=gnu++14 -Wno-error=narrowing -fpermissive -fno-threadsafe-statics -Wall -ffunction-sections -fdata-sections -mthumb -mcpu=cortex-m7 -nostdlib -mfloat-abi=hard -mfpu=fpv5-d16 -O2 -DPLATFORMIO=60111 -D__IMXRT1062__ -DARDUINO_TEENSY_MICROMOD -DUSB_SERIAL -DARDUINO=10805 -DTEENSYDUINO=158 -DCORE_TEENSY -DF_CPU=600000000 -DLAYOUT_US_ENGLISH -I.pio/libdeps/teensymm/Audio -I.pio/libdeps/teensymm/Audio/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/SPI -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire -I/Users/ca492/.platformio/packages/framework-arduinoteensy/libraries/Wire/utility -I/Users/ca492/.platformio/packages/framework-arduinoteensy/cores/teensy4 .pio/libdeps/teensymm/Audio/filter_variable.cpp
.pio/libdeps/teensymm/Audio/analyze_print.cpp: In member function 'virtual void AudioAnalyzePrint::update()':
.pio/libdeps/teensymm/Audio/analyze_print.cpp:68:33: error: 'Serial' was not declared in this scope; did you mean 'SerialUSB'?
   68 |                                 Serial.println(block->data[offset++]);
      |                                 ^~~~~~
      |                                 SerialUSB
In file included from .pio/libdeps/teensymm/Audio/analyze_tonedetect.cpp:27:
.pio/libdeps/teensymm/Audio/analyze_tonedetect.h: In member function 'void AudioAnalyzeToneDetect::frequency(float, uint16_t)':
.pio/libdeps/teensymm/Audio/analyze_tonedetect.h:38:38: error: 'cos' was not declared in this scope
   38 |                 set_params((int32_t)(cos((double)freq
      |                                      ^~~
In file included from .pio/libdeps/teensymm/Audio/analyze_tonedetect.cpp:28:
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_saturate_rshift(int32_t, int, int)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:51:1: warning: no return statement in function returning non-void [-Wreturn-type]
   51 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_multiply_32x16b(int32_t, uint32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:64:1: warning: no return statement in function returning non-void [-Wreturn-type]
   64 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_multiply_32x16t(int32_t, uint32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:77:1: warning: no return statement in function returning non-void [-Wreturn-type]
   77 | }
      | ^
In file included from .pio/libdeps/teensymm/Audio/analyze_tonedetect.cpp:28:
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16t_16t(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:127:1: warning: no return statement in function returning non-void [-Wreturn-type]
  127 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16t_16b(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:140:1: warning: no return statement in function returning non-void [-Wreturn-type]
  140 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16b_16b(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:153:1: warning: no return statement in function returning non-void [-Wreturn-type]
  153 | }
      | ^
.pio/libdeps/teensymm/Audio/analyze_print.cpp: In member function 'void AudioAnalyzePrint::trigger()':
.pio/libdeps/teensymm/Audio/analyze_print.cpp:87:17: error: 'Serial' was not declared in this scope; did you mean 'SerialUSB'?
   87 |                 Serial.print("trigger ");
      |                 ^~~~~~
      |                 SerialUSB
.pio/libdeps/teensymm/Audio/analyze_print.cpp:94:17: error: 'Serial' was not declared in this scope; did you mean 'SerialUSB'?
   94 |                 Serial.print("trigger ");
      |                 ^~~~~~
      |                 SerialUSB
*** [.pio/build/teensymm/lib729/Audio/analyze_tonedetect.cpp.o] Error 1
*** [.pio/build/teensymm/lib729/Audio/analyze_print.cpp.o] Error 1
In file included from .pio/libdeps/teensymm/Audio/effect_chorus.cpp:23:
.pio/libdeps/teensymm/Audio/effect_chorus.h:44:3: error: 'boolean' does not name a type; did you mean 'bool'?
   44 |   boolean begin(short *delayline,int delay_length,int n_chorus);
      |   ^~~~~~~
      |   bool
.pio/libdeps/teensymm/Audio/effect_chorus.cpp:32:1: error: 'boolean' does not name a type; did you mean 'bool'?
   32 | boolean AudioEffectChorus::begin(short *delayline,int d_length,int n_chorus)
      | ^~~~~~~
      | bool
*** [.pio/build/teensymm/lib729/Audio/effect_chorus.cpp.o] Error 1
In file included from .pio/libdeps/teensymm/Audio/effect_flange.cpp:23:
.pio/libdeps/teensymm/Audio/effect_flange.h:43:3: error: 'boolean' does not name a type; did you mean 'bool'?
   43 |   boolean begin(short *delayline,int d_length,int delay_offset,int d_depth,float delay_rate);
      |   ^~~~~~~
      |   bool
.pio/libdeps/teensymm/Audio/effect_flange.h:44:3: error: 'boolean' does not name a type; did you mean 'bool'?
   44 |   boolean voices(int delay_offset,int d_depth,float delay_rate);
      |   ^~~~~~~
      |   bool
In file included from .pio/libdeps/teensymm/Audio/effect_multiply.h:30,
                 from .pio/libdeps/teensymm/Audio/effect_multiply.cpp:27:
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_saturate_rshift(int32_t, int, int)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:51:1: warning: no return statement in function returning non-void [-Wreturn-type]
   51 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_multiply_32x16b(int32_t, uint32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:64:1: warning: no return statement in function returning non-void [-Wreturn-type]
   64 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_multiply_32x16t(int32_t, uint32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:77:1: warning: no return statement in function returning non-void [-Wreturn-type]
   77 | }
      | ^
In file included from .pio/libdeps/teensymm/Audio/effect_multiply.h:30,
                 from .pio/libdeps/teensymm/Audio/effect_multiply.cpp:27:
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16t_16t(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:127:1: warning: no return statement in function returning non-void [-Wreturn-type]
  127 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16t_16b(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:140:1: warning: no return statement in function returning non-void [-Wreturn-type]
  140 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16b_16b(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:153:1: warning: no return statement in function returning non-void [-Wreturn-type]
  153 | }
      | ^
In file included from .pio/libdeps/teensymm/Audio/filter_biquad.cpp:27:
.pio/libdeps/teensymm/Audio/filter_biquad.h: In member function 'void AudioFilterBiquad::setLowpass(uint32_t, float, float)':
.pio/libdeps/teensymm/Audio/filter_biquad.h:58:32: error: 'sin' was not declared in this scope
   58 |                 double sinW0 = sin(w0);
      |                                ^~~
.pio/libdeps/teensymm/Audio/filter_biquad.h:60:32: error: 'cos' was not declared in this scope
   60 |                 double cosW0 = cos(w0);
      |                                ^~~
In file included from .pio/libdeps/teensymm/Audio/filter_variable.cpp:27:
.pio/libdeps/teensymm/Audio/filter_variable.h: In member function 'void AudioFilterStateVariable::frequency(float)':
.pio/libdeps/teensymm/Audio/filter_variable.h:50:33: error: 'sinf' was not declared in this scope
   50 |                 setting_fmult = sinf(freq * (3.141592654/(AUDIO_SAMPLE_RATE_EXACT*2.0)))
      |                                 ^~~~
In file included from .pio/libdeps/teensymm/Audio/filter_variable.cpp:28:
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_saturate_rshift(int32_t, int, int)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:51:1: warning: no return statement in function returning non-void [-Wreturn-type]
   51 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_multiply_32x16b(int32_t, uint32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:64:1: warning: no return statement in function returning non-void [-Wreturn-type]
   64 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_multiply_32x16t(int32_t, uint32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:77:1: warning: no return statement in function returning non-void [-Wreturn-type]
   77 | }
      | ^
In file included from .pio/libdeps/teensymm/Audio/filter_variable.cpp:28:
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16t_16t(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:127:1: warning: no return statement in function returning non-void [-Wreturn-type]
  127 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16t_16b(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:140:1: warning: no return statement in function returning non-void [-Wreturn-type]
  140 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16b_16b(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:153:1: warning: no return statement in function returning non-void [-Wreturn-type]
  153 | }
      | ^
.pio/libdeps/teensymm/Audio/filter_biquad.h: In member function 'void AudioFilterBiquad::setHighpass(uint32_t, float, float)':
.pio/libdeps/teensymm/Audio/filter_biquad.h:72:32: error: 'sin' was not declared in this scope
   72 |                 double sinW0 = sin(w0);
      |                                ^~~
*** [.pio/build/teensymm/lib729/Audio/filter_variable.cpp.o] Error 1
.pio/libdeps/teensymm/Audio/filter_biquad.h:74:32: error: 'cos' was not declared in this scope
   74 |                 double cosW0 = cos(w0);
      |                                ^~~
.pio/libdeps/teensymm/Audio/filter_biquad.h: In member function 'void AudioFilterBiquad::setBandpass(uint32_t, float, float)':
.pio/libdeps/teensymm/Audio/filter_biquad.h:86:32: error: 'sin' was not declared in this scope
   86 |                 double sinW0 = sin(w0);
      |                                ^~~
.pio/libdeps/teensymm/Audio/filter_biquad.h:88:32: error: 'cos' was not declared in this scope
   88 |                 double cosW0 = cos(w0);
      |                                ^~~
.pio/libdeps/teensymm/Audio/filter_biquad.h: In member function 'void AudioFilterBiquad::setNotch(uint32_t, float, float)':
.pio/libdeps/teensymm/Audio/filter_biquad.h:100:32: error: 'sin' was not declared in this scope
  100 |                 double sinW0 = sin(w0);
      |                                ^~~
.pio/libdeps/teensymm/Audio/effect_flange.cpp:58:1: error: 'boolean' does not name a type; did you mean 'bool'?
   58 | boolean AudioEffectFlange::begin(short *delayline,int d_length,int delay_offset,int d_depth,float delay_rate)
      | ^~~~~~~
      | bool
.pio/libdeps/teensymm/Audio/filter_biquad.h:102:32: error: 'cos' was not declared in this scope
  102 |                 double cosW0 = cos(w0);
      |                                ^~~
.pio/libdeps/teensymm/Audio/effect_flange.cpp:97:1: error: 'boolean' does not name a type; did you mean 'bool'?
   97 | boolean AudioEffectFlange::voices(int delay_offset,int d_depth,float delay_rate)
      | ^~~~~~~
      | bool
In file included from .pio/libdeps/teensymm/Audio/filter_biquad.cpp:28:
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_saturate_rshift(int32_t, int, int)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:51:1: warning: no return statement in function returning non-void [-Wreturn-type]
   51 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_multiply_32x16b(int32_t, uint32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:64:1: warning: no return statement in function returning non-void [-Wreturn-type]
   64 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'int32_t signed_multiply_32x16t(int32_t, uint32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:77:1: warning: no return statement in function returning non-void [-Wreturn-type]
   77 | }
      | ^
In file included from .pio/libdeps/teensymm/Audio/filter_biquad.cpp:28:
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16t_16t(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:127:1: warning: no return statement in function returning non-void [-Wreturn-type]
  127 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16t_16b(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:140:1: warning: no return statement in function returning non-void [-Wreturn-type]
  140 | }
      | ^
.pio/libdeps/teensymm/Audio/utility/dspinst.h: In function 'uint32_t pack_16b_16b(int32_t, int32_t)':
.pio/libdeps/teensymm/Audio/utility/dspinst.h:153:1: warning: no return statement in function returning non-void [-Wreturn-type]
  153 | }
      | ^
*** [.pio/build/teensymm/lib729/Audio/filter_biquad.cpp.o] Error 1
*** [.pio/build/teensymm/lib729/Audio/effect_flange.cpp.o] Error 1
============================================================== [FAILED] Took 2.17 seconds ==============================================================

 *  The terminal process "platformio 'run', '--verbose', '--environment', 'teensymm'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it.

For reference, the example the does build has this dependency:
Code:
Scanning dependencies...
Dependency Graph
|-- Audio @ 1.3
Building in release mode
which is slightly different from how the Audio library dependency is written in the other (not building) example...
 
Some progress, based on looking closely at existing libs that depend on the Audio library (e.g. https://registry.platformio.org/libraries/newdigate/TeensyVariablePlayback). I have a version that compiles now.

The big difference is that I modified the library.json dependencies list for the private library
Code:
// OLD, compile fails
"dependencies": {
    "paulstoffregen/Audio": "~1.3.0"
},

// NEW, WORKING
"dependencies": "Audio",

I also modified the AudioTestLibrary.h slightly because an error was causing the build to fail and I also wanted to ensure I could include the Audio library and declare an object from it. The updated code is in a github commit at https://github.com/dkadish/TeensyAu...tree/a917236a085e6698e5fdf701bc5007fd1a10edbb



I still don't quite understand what is going on here. One factor seems to be that in using "Audio" instead of the more detailed dependency, platformio is using the builtin version of Audio which ships with the Teensy platform instead of downloading v1.3.0 and installing it separately. It's not clear to me what that changes (I'd love it it someone has some insights), but it does seem to change matters.
 
Back
Top