-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWavFileWriter.ino
76 lines (56 loc) · 1.69 KB
/
WavFileWriter.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include "WavFileWriter.hpp"
#include "Utils.hpp"
#include <SerialFlash.h>
#include <Audio.h>
#include <Wire.h>
const int Fs = 44100;
//const int myInput = AUDIO_INPUT_LINEIN;
const int myInput = AUDIO_INPUT_MIC;
AudioPlaySdWav audioSD;
AudioSynthWaveform sine;
AudioInputI2S audioInput;
AudioOutputI2S audioOutput;
AudioRecordQueue queue1;
//recod from mic
AudioConnection patchCord1(audioInput, 0, queue1, 0);
//AudioConnection patchCord1(sine, 0, queue1, 0);
AudioConnection patchCord2(audioSD, 0, audioOutput, 0);
AudioConnection patchCord3(audioSD, 0, audioOutput, 1);
AudioControlSGTL5000 audioShield;
elapsedMillis elapsedMs;
WavFileWriter wavWriter(queue1);
void setup() {
setI2SFreq(Fs);
Serial.begin(9600);
AudioMemory(60);
audioShield.enable();
audioShield.inputSelect(myInput);
audioShield.micGain(40); //0-63
audioShield.volume(0.7); //0-1
sine.begin(WAVEFORM_SINE);
sine.amplitude(0.9);
sine.frequency(440);
delay(1000);
elapsedMs = 0;
wavWriter.open("new.wav", Fs, 1);
Serial.println("Done initilizing! Starting now!");
}
void loop() {
/*if (Serial.available() > 0) {
// read the incoming byte:
byte incomingByte = Serial.read();
if ( incomingByte == '1' ) {
Serial.println("Start recording!");
wavWriter.open("second.wav", Fs, 1);
}
if ( incomingByte == '2' ) {
Serial.println("Stop recording!");
wavWriter.close();
}
}*/
if (elapsedMs > 5000) {
wavWriter.close();
}
if (wavWriter.isWriting())
wavWriter.update();
}