Hi-
I recently completed the Audio tutorial, and I'm really enjoying it. I want to use it (eventually) in a project involving comb filters, so I wanted to get to know how to use the fir filter. I don't have a mic connected to the set up, so I was attempting to make a sketch from scratch, utilizing the buttons to play a song and turn the filter on/off. I was able to get the sketch to run when the filter was in passthrough mode, but as soon as I tried to attach an array to it, I got a very long list of error messages. I created the array using TFilter, if that's important.
I'm pretty new to coding, so I'm not really even sure how to parse the language in the error message. Below is my code:
The error messages are as follows:
Thanks in advance!
I recently completed the Audio tutorial, and I'm really enjoying it. I want to use it (eventually) in a project involving comb filters, so I wanted to get to know how to use the fir filter. I don't have a mic connected to the set up, so I was attempting to make a sketch from scratch, utilizing the buttons to play a song and turn the filter on/off. I was able to get the sketch to run when the filter was in passthrough mode, but as soon as I tried to attach an array to it, I got a very long list of error messages. I created the array using TFilter, if that's important.
I'm pretty new to coding, so I'm not really even sure how to parse the language in the error message. Below is my code:
Code:
// Advanced Microcontroller-based Audio Workshop
//
// https://github.com/PaulStoffregen/AudioWorkshop2015/raw/master/workshop.pdf
// https://hackaday.io/project/8292-microcontroller-audio-workshop-had-supercon-2015
//
// Part 1-3: First "Hello World" program, play a music file
//
// WAV files for this and other Tutorials are here:
// http://www.pjrc.com/teensy/td_libs_AudioDataFiles.html
#include <Bounce.h>
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>
// GUItool: begin automatically generated code
AudioPlaySdWav playSdWav1; //xy=241,415
AudioFilterFIR fir1; //xy=393,485
AudioFilterFIR fir2; //xy=399,524
AudioMixer4 mixer1; //xy=580,434
AudioOutputI2S i2s1; //xy=764,438
AudioConnection patchCord1(playSdWav1, 0, mixer1, 0);
AudioConnection patchCord2(playSdWav1, 0, fir1, 0);
AudioConnection patchCord3(playSdWav1, 1, mixer1, 1);
AudioConnection patchCord4(playSdWav1, 1, fir2, 0);
AudioConnection patchCord5(fir1, 0, mixer1, 2);
AudioConnection patchCord6(fir2, 0, mixer1, 3);
AudioConnection patchCord7(mixer1, 0, i2s1, 0);
AudioConnection patchCord8(mixer1, 0, i2s1, 1);
AudioControlSGTL5000 sgtl5000_1; //xy=535,208
// GUItool: end automatically generated code
Bounce button0 = Bounce(0, 15);
Bounce button1 = Bounce(1, 15); // 15 ms debounce time
Bounce button2 = Bounce(2, 15);
const int filterArray[16]= {
641177394499741,
-912565366389671,
-277830563849637,
1168842801724910,
-586425339303592,
-464669631669128,
715631940112409,
-284161235123925,
-284161235123925,
715631940112409,
-464669631669128,
-586425339303592,
1168842801724910,
-277830563849637,
-912565366389671,
641177394499741,
};
void setup() {
Serial.begin(9600);
pinMode(0, INPUT_PULLUP);
pinMode(1, INPUT_PULLUP);
pinMode(2, INPUT_PULLUP);
AudioMemory(8);
sgtl5000_1.enable();
sgtl5000_1.volume(0.5);
SPI.setMOSI(7);
SPI.setSCK(14);
if (!(SD.begin(10))) {
while (1) {
Serial.println("Unable to access the SD card");
delay(500);
}
}
delay(1000);
}
void loop() {
fir1.begin(filterArray, 16);
fir2.begin(filterArray, 16);
button0.update();
button1.update();
button2.update();
if (button0.fallingEdge()) {
playSdWav1.play("SDTEST1.WAV");
delay (10);
Serial.println("Play song 1");
}
if (button1.fallingEdge()) {
mixer1.gain(0, 0.4);
mixer1.gain(1, 0.4);
mixer1.gain(2, 0.0);
mixer1.gain(3, 0.0);
}
if (button2.fallingEdge()) {
mixer1.gain(0, 0.0);
mixer1.gain(1, 0.0);
mixer1.gain(2, 0.4);
mixer1.gain(3, 0.4);
}
/*int knob = analogRead(A3); // knob = 0 to 1023
float gain1 = (float)knob / 1023.0 * 0.4;
mixer1.gain(0, gain1);
mixer1.gain(1, gain1);
*/
}
The error messages are as follows:
Code:
Arduino: 1.6.11 (Windows 10), TD: 1.30, Board: "Teensy 3.2 / 3.1, Serial, 96 MHz optimize speed (overclock), US English"
NewFilterTest:59: warning: narrowing conversion of '641177394499741ll' from 'long long int' to 'const int' inside { }
};
^
NewFilterTest:59: warning: overflow in implicit constant conversion
NewFilterTest:59: warning: narrowing conversion of '-912565366389671ll' from 'long long int' to 'const int' inside { }
NewFilterTest:59: warning: overflow in implicit constant conversion
NewFilterTest:59: warning: narrowing conversion of '-277830563849637ll' from 'long long int' to 'const int' inside { }
NewFilterTest:59: warning: overflow in implicit constant conversion
NewFilterTest:59: warning: narrowing conversion of '1168842801724910ll' from 'long long int' to 'const int' inside { }
NewFilterTest:59: warning: overflow in implicit constant conversion
NewFilterTest:59: warning: narrowing conversion of '-586425339303592ll' from 'long long int' to 'const int' inside { }
NewFilterTest:59: warning: overflow in implicit constant conversion
NewFilterTest:59: warning: narrowing conversion of '-464669631669128ll' from 'long long int' to 'const int' inside { }
NewFilterTest:59: warning: overflow in implicit constant conversion
NewFilterTest:59: warning: narrowing conversion of '715631940112409ll' from 'long long int' to 'const int' inside { }
NewFilterTest:59: warning: overflow in implicit constant conversion
NewFilterTest:59: warning: narrowing conversion of '-284161235123925ll' from 'long long int' to 'const int' inside { }
NewFilterTest:59: warning: overflow in implicit constant conversion
NewFilterTest:59: warning: narrowing conversion of '-284161235123925ll' from 'long long int' to 'const int' inside { }
NewFilterTest:59: warning: overflow in implicit constant conversion
NewFilterTest:59: warning: narrowing conversion of '715631940112409ll' from 'long long int' to 'const int' inside { }
NewFilterTest:59: warning: overflow in implicit constant conversion
NewFilterTest:59: warning: narrowing conversion of '-464669631669128ll' from 'long long int' to 'const int' inside { }
NewFilterTest:59: warning: overflow in implicit constant conversion
NewFilterTest:59: warning: narrowing conversion of '-586425339303592ll' from 'long long int' to 'const int' inside { }
NewFilterTest:59: warning: overflow in implicit constant conversion
NewFilterTest:59: warning: narrowing conversion of '1168842801724910ll' from 'long long int' to 'const int' inside { }
NewFilterTest:59: warning: overflow in implicit constant conversion
NewFilterTest:59: warning: narrowing conversion of '-277830563849637ll' from 'long long int' to 'const int' inside { }
NewFilterTest:59: warning: overflow in implicit constant conversion
NewFilterTest:59: warning: narrowing conversion of '-912565366389671ll' from 'long long int' to 'const int' inside { }
NewFilterTest:59: warning: overflow in implicit constant conversion
NewFilterTest:59: warning: narrowing conversion of '641177394499741ll' from 'long long int' to 'const int' inside { }
NewFilterTest:59: warning: overflow in implicit constant conversion
NewFilterTest: In function 'void loop()':
NewFilterTest:82: error: no matching function for call to 'AudioFilterFIR::begin(const int [16], int)'
fir1.begin(filterArray, 16);
^
C:\Users\Doug\Documents\Arduino\NewFilterTest\NewFilterTest.ino:82:29: note: candidate is:
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\Audio/Audio.h:82:0,
from C:\Users\Doug\Documents\Arduino\NewFilterTest\NewFilterTest.ino:13:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\Audio/filter_fir.h:41:7: note: void AudioFilterFIR::begin(const short int*, int)
void begin(const short *cp, int n_coeffs) {
^
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\Audio/filter_fir.h:41:7: note: no known conversion for argument 1 from 'const int [16]' to 'const short int*'
NewFilterTest:83: error: no matching function for call to 'AudioFilterFIR::begin(const int [16], int)'
fir2.begin(filterArray, 16);
^
C:\Users\Doug\Documents\Arduino\NewFilterTest\NewFilterTest.ino:83:29: note: candidate is:
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\Audio/Audio.h:82:0,
from C:\Users\Doug\Documents\Arduino\NewFilterTest\NewFilterTest.ino:13:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\Audio/filter_fir.h:41:7: note: void AudioFilterFIR::begin(const short int*, int)
void begin(const short *cp, int n_coeffs) {
^
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\Audio/filter_fir.h:41:7: note: no known conversion for argument 1 from 'const int [16]' to 'const short int*'
Multiple libraries were found for "SD.h"
Used: C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SD
Not used: C:\Program Files (x86)\Arduino\libraries\SD
no matching function for call to 'AudioFilterFIR::begin(const int [16], int)'
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Thanks in advance!