Paul,
I ran into an error with Beta 3 and Teensy 3.0 and the audio library.
I was using Teensyduino 3.1 Beta 2, Arduino 1.6.12 on Windows 10 with a Teensy 3.0 and the Audio library to show my son how odd harmonics can create a square wave and it worked great. After Installing 3.1 Beta 3 over Beta 2 we and ran into "Error Compiling for Board Teensy 3.0." with the details below. The problem occurred with all Audio.h examples that I tried. The Blink example works fine. I tried Teensy 3.2/3.1 and Teensy 3.6 and it compiled fine.
I then reinstalled Teensyduino 3.1 Beta 2 (verified that it installed in "Help\About Arduino") and strangely the problem remained with Teensy 3.0 selected. Finally I deleted Arduino\hardware\teensy, reinstalled Beta 2 and everything compiles and runs fine.
It looks like analog.c is not getting the definition of "__MK20DX128__".
Thanks for your hard work on Teensy. I'm really liking my Teensy 3.6!
Code:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\Audio\input_adcs.cpp: In function 'int analogReadADC1(uint8_t)':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\Audio\input_adcs.cpp:335:27: error: 'pin2sc1a' was not declared in this scope
if (pin >= sizeof(pin2sc1a)) return 0;
^
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\Audio\input_adcs.cpp:336:27: error: 'pin2sc1a' was not declared in this scope
uint8_t channel = pin2sc1a[pin];
^
...
Error compiling for board Teensy 3.0.
Code:
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>
// GUItool: begin automatically generated code
AudioSynthWaveformSine sine1;
AudioSynthWaveformSine sine2;
AudioSynthWaveformSine sine3;
AudioSynthWaveformSine sine4;
AudioSynthWaveformSine sine5;
AudioSynthWaveformSine sine6;
AudioSynthWaveformSine sine7;
AudioSynthWaveformSine sine8;
AudioMixer4 mixer1;
AudioMixer4 mixer2;
AudioMixer4 mixer3;
AudioOutputI2S i2s1;
AudioConnection patchCord1(sine1, 0, mixer1, 0);
AudioConnection patchCord2(sine2, 0, mixer1, 1);
AudioConnection patchCord3(sine3, 0, mixer1, 2);
AudioConnection patchCord4(sine4, 0, mixer1, 3);
AudioConnection patchCord5(sine5, 0, mixer2, 0);
AudioConnection patchCord6(sine6, 0, mixer2, 1);
AudioConnection patchCord7(sine7, 0, mixer2, 2);
AudioConnection patchCord8(sine8, 0, mixer2, 3);
AudioConnection patchCord94(mixer1, 0, mixer3, 0);
AudioConnection patchCord10(mixer2, 0, mixer3, 1);
AudioConnection patchCord11(mixer3, 0, i2s1, 0);
AudioConnection patchCord12(mixer3, 0, i2s1, 1);
AudioControlSGTL5000 sgtl5000_1;
// GUItool: end automatically generated code
float firstHarmonic = 300.0;
void setup() {
AudioMemory(30);
sgtl5000_1.enable();
sgtl5000_1.volume(0.8);
float Amplitude = 1.0 / (1.0 + 1.0 / 3.0 + 1.0 / 5.0 + 1.0 / 7.0 + 1.0 / 9.0 + 1.0 / 11.0 + 1.0 / 13.0 + 1.0 / 15.0);
sine1.amplitude(Amplitude);
sine1.frequency(firstHarmonic * 1);
sine2.amplitude(Amplitude * 1.0 / 3.0);
sine2.frequency(firstHarmonic * 3);
sine3.amplitude(Amplitude * 1.0 / 5.0);
sine3.frequency(firstHarmonic * 5);
sine4.amplitude(Amplitude * 1.0 / 7.0);
sine4.frequency(firstHarmonic * 7);
sine5.amplitude(Amplitude * 1.0 / 9.0);
sine5.frequency(firstHarmonic * 9);
sine6.amplitude(Amplitude * 1.0 / 11.0);
sine6.frequency(firstHarmonic * 11);
sine7.amplitude(Amplitude * 1.0 / 13.0);
sine7.frequency(firstHarmonic * 13);
sine8.amplitude(Amplitude * 1.0 / 15.0);
sine8.frequency(firstHarmonic * 15);
delay(4000);
}
void loop() {
// put your main code here, to run repeatedly:
}