|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- // 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
- //
- // This reference file has all the design tool output. If you are
- // learning, please follow the PDF manual and draw these in the design
- // tool. This reference material is mainly interested for software
- // testing and ongoing maintenance as Arduino and the audio library
- // are updated with new features.
-
- #include <Audio.h>
- #include <Wire.h>
- #include <SPI.h>
- #include <SD.h>
- #include <SerialFlash.h>
-
- /*
- // Part 2-1: First Design Tool Use
- // GUItool: begin automatically generated code
- AudioPlaySdWav playSdWav1; //xy=88,55
- AudioOutputI2S i2s1; //xy=280,79
- AudioConnection patchCord1(playSdWav1, 0, i2s1, 0);
- AudioConnection patchCord2(playSdWav1, 1, i2s1, 1);
- AudioControlSGTL5000 sgtl5000_1; //xy=209,140
- // GUItool: end automatically generated code
- */
-
- /*
- // Part 2-2: Mixers & Playing Multiple Sounds
- // GUItool: begin automatically generated code
- AudioPlaySdWav playSdWav1; //xy=88,55
- AudioPlaySdWav playSdWav2; //xy=109,123
- AudioMixer4 mixer1; //xy=284,44
- AudioMixer4 mixer2; //xy=286,123
- AudioOutputI2S i2s1; //xy=456,104
- AudioConnection patchCord1(playSdWav1, 0, mixer1, 0);
- AudioConnection patchCord2(playSdWav1, 1, mixer2, 0);
- AudioConnection patchCord3(playSdWav2, 0, mixer1, 1);
- AudioConnection patchCord4(playSdWav2, 1, mixer2, 1);
- AudioConnection patchCord5(mixer1, 0, i2s1, 0);
- AudioConnection patchCord6(mixer2, 0, i2s1, 1);
- AudioControlSGTL5000 sgtl5000_1; //xy=382,209
- // GUItool: end automatically generated code
- */
-
- /*
- // Part 2-3: Playing Samples (Short Sound Clips)
- // GUItool: begin automatically generated code
- AudioPlayMemory playMem1; //xy=92,48
- AudioPlayMemory playMem2; //xy=96,104
- AudioPlayMemory playMem3; //xy=99,160
- AudioPlayMemory playMem4; //xy=100,222
- AudioMixer4 mixer1; //xy=287,125
- AudioOutputI2S i2s1; //xy=454,99
- AudioConnection patchCord1(playMem1, 0, mixer1, 0);
- AudioConnection patchCord2(playMem2, 0, mixer1, 1);
- AudioConnection patchCord3(playMem3, 0, mixer1, 2);
- AudioConnection patchCord4(playMem4, 0, mixer1, 3);
- AudioConnection patchCord5(mixer1, 0, i2s1, 0);
- AudioConnection patchCord6(mixer1, 0, i2s1, 1);
- AudioControlSGTL5000 sgtl5000_1; //xy=397,205
- // GUItool: end automatically generated code
- */
-
- /*
- // Part 2-4: Using the Microphone
- // GUItool: begin automatically generated code
- AudioInputI2S i2s2; //xy=95,64
- AudioOutputI2S i2s1; //xy=286,88
- AudioConnection patchCord1(i2s2, 0, i2s1, 0);
- AudioConnection patchCord2(i2s2, 0, i2s1, 1);
- AudioControlSGTL5000 sgtl5000_1; //xy=226,155
- // GUItool: end automatically generated code
- */
-
- /*
- // Part 2-5: Simple Delay
-
- // GUItool: begin automatically generated code
- AudioInputI2S i2s2; //xy=95,64
- AudioEffectDelay delay1; //xy=230,145
- AudioMixer4 mixer1; //xy=367,97
- AudioMixer4 mixer2; //xy=402,188
- AudioMixer4 mixer3; //xy=526,59
- AudioOutputI2S i2s1; //xy=654,112
- AudioConnection patchCord1(i2s2, 0, delay1, 0);
- AudioConnection patchCord2(i2s2, 0, mixer3, 0);
- AudioConnection patchCord3(delay1, 0, mixer1, 0);
- AudioConnection patchCord4(delay1, 1, mixer1, 1);
- AudioConnection patchCord5(delay1, 2, mixer1, 2);
- AudioConnection patchCord6(delay1, 3, mixer1, 3);
- AudioConnection patchCord7(delay1, 4, mixer2, 0);
- AudioConnection patchCord8(delay1, 5, mixer2, 1);
- AudioConnection patchCord9(delay1, 6, mixer2, 2);
- AudioConnection patchCord10(delay1, 7, mixer2, 3);
- AudioConnection patchCord11(mixer1, 0, mixer3, 1);
- AudioConnection patchCord12(mixer2, 0, mixer3, 2);
- AudioConnection patchCord13(mixer3, 0, i2s1, 0);
- AudioConnection patchCord14(mixer3, 0, i2s1, 1);
- AudioControlSGTL5000 sgtl5000_1; //xy=583,208
- // GUItool: end automatically generated code
- */
-
- /*
- // Part 2-6: Feedback (Echo) Delay
-
- // GUItool: begin automatically generated code
- AudioInputI2S i2s2; //xy=95,73
- AudioMixer4 mixer1; //xy=278,62
- AudioEffectDelay delay1; //xy=361,227
- AudioOutputI2S i2s1; //xy=536,221
- AudioConnection patchCord1(i2s2, 0, mixer1, 0);
- AudioConnection patchCord2(mixer1, delay1);
- AudioConnection patchCord3(delay1, 0, mixer1, 3);
- AudioConnection patchCord4(delay1, 0, i2s1, 0);
- AudioConnection patchCord5(delay1, 0, i2s1, 1);
- AudioControlSGTL5000 sgtl5000_1; //xy=161,241
- // GUItool: end automatically generated code
- */
-
- /*
- // Part 2-7: Filters
-
- // GUItool: begin automatically generated code
- AudioPlaySdWav playSdWav1; //xy=84,67
- AudioFilterStateVariable filter1; //xy=259,83
- AudioFilterStateVariable filter2; //xy=270,168
- AudioMixer4 mixer1; //xy=424,80
- AudioMixer4 mixer2; //xy=433,168
- AudioOutputI2S i2s1; //xy=580,117
- AudioConnection patchCord1(playSdWav1, 0, filter1, 0);
- AudioConnection patchCord2(playSdWav1, 1, filter2, 0);
- AudioConnection patchCord3(filter1, 0, mixer1, 0);
- AudioConnection patchCord4(filter1, 1, mixer1, 1);
- AudioConnection patchCord5(filter1, 2, mixer1, 2);
- AudioConnection patchCord6(filter2, 0, mixer2, 0);
- AudioConnection patchCord7(filter2, 1, mixer2, 1);
- AudioConnection patchCord8(filter2, 2, mixer2, 2);
- AudioConnection patchCord9(mixer1, 0, i2s1, 0);
- AudioConnection patchCord10(mixer2, 0, i2s1, 1);
- AudioControlSGTL5000 sgtl5000_1; //xy=594,179
- // GUItool: end automatically generated code
- */
-
- /*
- // Part 2-8: Oscillators and Envelope
-
- // GUItool: begin automatically generated code
- AudioSynthWaveform waveform1; //xy=77,30
- AudioSynthWaveformSine sine1; //xy=87,159
- AudioSynthNoisePink pink1; //xy=110,221
- AudioSynthWaveformSineModulated sine_fm1; //xy=145,102
- AudioMixer4 mixer1; //xy=313,111
- AudioEffectEnvelope envelope1; //xy=454,165
- AudioMixer4 mixer2; //xy=589,87
- AudioOutputI2S i2s1; //xy=725,149
- AudioConnection patchCord1(waveform1, sine_fm1);
- AudioConnection patchCord2(waveform1, 0, mixer1, 0);
- AudioConnection patchCord3(sine1, 0, mixer1, 2);
- AudioConnection patchCord4(pink1, 0, mixer1, 3);
- AudioConnection patchCord5(sine_fm1, 0, mixer1, 1);
- AudioConnection patchCord6(mixer1, envelope1);
- AudioConnection patchCord7(mixer1, 0, mixer2, 0);
- AudioConnection patchCord8(envelope1, 0, mixer2, 1);
- AudioConnection patchCord9(mixer2, 0, i2s1, 0);
- AudioConnection patchCord10(mixer2, 0, i2s1, 1);
- AudioControlSGTL5000 sgtl5000_1; //xy=317,208
- // GUItool: end automatically generated code
- */
-
- /*
- // Part 3-1: Peak Detection
-
- // GUItool: begin automatically generated code
- AudioPlaySdWav playSdWav1; //xy=136,65
- AudioAnalyzePeak peak2; //xy=348,219
- AudioAnalyzePeak peak1; //xy=358,171
- AudioOutputI2S i2s1; //xy=380,92
- AudioConnection patchCord1(playSdWav1, 0, i2s1, 0);
- AudioConnection patchCord2(playSdWav1, 0, peak1, 0);
- AudioConnection patchCord3(playSdWav1, 1, i2s1, 1);
- AudioConnection patchCord4(playSdWav1, 1, peak2, 0);
- AudioControlSGTL5000 sgtl5000_1; //xy=155,192
- // GUItool: end automatically generated code
- */
-
- /*
- // Part 3-2: Fourier Transform
-
- // GUItool: begin automatically generated code
- AudioPlaySdWav playSdWav1; //xy=90,44
- AudioPlayMemory playMem1; //xy=94,113
- AudioSynthWaveform waveform1; //xy=104,170
- AudioMixer4 mixer1; //xy=290,91
- AudioAnalyzeFFT1024 fft1024_1; //xy=461,132
- AudioOutputI2S i2s1; //xy=465,58
- AudioConnection patchCord1(playSdWav1, 0, mixer1, 0);
- AudioConnection patchCord2(playSdWav1, 1, mixer1, 1);
- AudioConnection patchCord3(playMem1, 0, mixer1, 2);
- AudioConnection patchCord4(waveform1, 0, mixer1, 3);
- AudioConnection patchCord5(mixer1, 0, i2s1, 0);
- AudioConnection patchCord6(mixer1, 0, i2s1, 1);
- AudioConnection patchCord7(mixer1, fft1024_1);
- AudioControlSGTL5000 sgtl5000_1; //xy=352,195
- // GUItool: end automatically generated code
- */
-
- /*
- // Part 3-3: Add a TFT Display
-
- // GUItool: begin automatically generated code
- AudioPlaySdWav playSdWav1; //xy=136,65
- AudioAnalyzePeak peak2; //xy=348,219
- AudioAnalyzePeak peak1; //xy=358,171
- AudioOutputI2S i2s1; //xy=380,92
- AudioConnection patchCord1(playSdWav1, 0, i2s1, 0);
- AudioConnection patchCord2(playSdWav1, 0, peak1, 0);
- AudioConnection patchCord3(playSdWav1, 1, i2s1, 1);
- AudioConnection patchCord4(playSdWav1, 1, peak2, 0);
- AudioControlSGTL5000 sgtl5000_1; //xy=155,192
- // GUItool: end automatically generated code
- */
-
- void loop() {
- }
-
- void setup() {
- }
|