
A program to automatically tune a guitar. Written by Justin Reidhead and Steven Swenson
Dependencies: FFT FrequencyFinder Motor NewTextLCD PinDetect mbed strings
strings/strings.cpp@2:9c0a83c5ded5, 2012-04-15 (annotated)
- Committer:
- melangeaddict
- Date:
- Sun Apr 15 00:37:37 2012 +0000
- Revision:
- 2:9c0a83c5ded5
- Child:
- 3:c672e782f19b
Uncommented mbed parts
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
melangeaddict | 2:9c0a83c5ded5 | 1 | #include "strings.h" |
melangeaddict | 2:9c0a83c5ded5 | 2 | |
melangeaddict | 2:9c0a83c5ded5 | 3 | |
melangeaddict | 2:9c0a83c5ded5 | 4 | strings::strings(int string_num) |
melangeaddict | 2:9c0a83c5ded5 | 5 | { |
melangeaddict | 2:9c0a83c5ded5 | 6 | index=4; |
melangeaddict | 2:9c0a83c5ded5 | 7 | switch(string_num){ |
melangeaddict | 2:9c0a83c5ded5 | 8 | case 6: |
melangeaddict | 2:9c0a83c5ded5 | 9 | frequencies[0]=65.4; |
melangeaddict | 2:9c0a83c5ded5 | 10 | frequencies[1]=69.3; |
melangeaddict | 2:9c0a83c5ded5 | 11 | frequencies[2]=73.4; |
melangeaddict | 2:9c0a83c5ded5 | 12 | frequencies[3]=77.7; |
melangeaddict | 2:9c0a83c5ded5 | 13 | frequencies[4]=82.4; |
melangeaddict | 2:9c0a83c5ded5 | 14 | frequencies[5]=87.3; |
melangeaddict | 2:9c0a83c5ded5 | 15 | frequencies[6]=92.5; |
melangeaddict | 2:9c0a83c5ded5 | 16 | frequencies[7]=98; |
melangeaddict | 2:9c0a83c5ded5 | 17 | frequencies[8]=103.8; |
melangeaddict | 2:9c0a83c5ded5 | 18 | notes[0]="C"; |
melangeaddict | 2:9c0a83c5ded5 | 19 | notes[1]="C#"; |
melangeaddict | 2:9c0a83c5ded5 | 20 | notes[2]="D"; |
melangeaddict | 2:9c0a83c5ded5 | 21 | notes[3]="D#"; |
melangeaddict | 2:9c0a83c5ded5 | 22 | notes[4]="E"; |
melangeaddict | 2:9c0a83c5ded5 | 23 | notes[5]="F"; |
melangeaddict | 2:9c0a83c5ded5 | 24 | notes[6]="F#"; |
melangeaddict | 2:9c0a83c5ded5 | 25 | notes[7]="G"; |
melangeaddict | 2:9c0a83c5ded5 | 26 | notes[8]="G#"; |
melangeaddict | 2:9c0a83c5ded5 | 27 | break; |
melangeaddict | 2:9c0a83c5ded5 | 28 | |
melangeaddict | 2:9c0a83c5ded5 | 29 | case 5: |
melangeaddict | 2:9c0a83c5ded5 | 30 | frequencies[0]=87.3; |
melangeaddict | 2:9c0a83c5ded5 | 31 | frequencies[1]=92.5; |
melangeaddict | 2:9c0a83c5ded5 | 32 | frequencies[2]=98; |
melangeaddict | 2:9c0a83c5ded5 | 33 | frequencies[3]=103.8; |
melangeaddict | 2:9c0a83c5ded5 | 34 | frequencies[4]=110; |
melangeaddict | 2:9c0a83c5ded5 | 35 | frequencies[5]=116.5; |
melangeaddict | 2:9c0a83c5ded5 | 36 | frequencies[6]=123.4; |
melangeaddict | 2:9c0a83c5ded5 | 37 | frequencies[7]=130.8; |
melangeaddict | 2:9c0a83c5ded5 | 38 | frequencies[8]=138.6; |
melangeaddict | 2:9c0a83c5ded5 | 39 | notes[0]="F"; |
melangeaddict | 2:9c0a83c5ded5 | 40 | notes[1]="F#"; |
melangeaddict | 2:9c0a83c5ded5 | 41 | notes[2]="G"; |
melangeaddict | 2:9c0a83c5ded5 | 42 | notes[3]="G#"; |
melangeaddict | 2:9c0a83c5ded5 | 43 | notes[4]="A"; |
melangeaddict | 2:9c0a83c5ded5 | 44 | notes[5]="A#"; |
melangeaddict | 2:9c0a83c5ded5 | 45 | notes[6]="B"; |
melangeaddict | 2:9c0a83c5ded5 | 46 | notes[7]="C"; |
melangeaddict | 2:9c0a83c5ded5 | 47 | notes[8]="C#"; |
melangeaddict | 2:9c0a83c5ded5 | 48 | break; |
melangeaddict | 2:9c0a83c5ded5 | 49 | |
melangeaddict | 2:9c0a83c5ded5 | 50 | case 4: |
melangeaddict | 2:9c0a83c5ded5 | 51 | frequencies[0]=116.5; |
melangeaddict | 2:9c0a83c5ded5 | 52 | frequencies[1]=123.4; |
melangeaddict | 2:9c0a83c5ded5 | 53 | frequencies[2]=130.8; |
melangeaddict | 2:9c0a83c5ded5 | 54 | frequencies[3]=138.6; |
melangeaddict | 2:9c0a83c5ded5 | 55 | frequencies[4]=146.8; |
melangeaddict | 2:9c0a83c5ded5 | 56 | frequencies[5]=155.56; |
melangeaddict | 2:9c0a83c5ded5 | 57 | frequencies[6]=164.8; |
melangeaddict | 2:9c0a83c5ded5 | 58 | frequencies[7]=174.6; |
melangeaddict | 2:9c0a83c5ded5 | 59 | frequencies[8]=184.9; |
melangeaddict | 2:9c0a83c5ded5 | 60 | notes[0]="A#"; |
melangeaddict | 2:9c0a83c5ded5 | 61 | notes[1]="B"; |
melangeaddict | 2:9c0a83c5ded5 | 62 | notes[2]="C"; |
melangeaddict | 2:9c0a83c5ded5 | 63 | notes[3]="C#"; |
melangeaddict | 2:9c0a83c5ded5 | 64 | notes[4]="D"; |
melangeaddict | 2:9c0a83c5ded5 | 65 | notes[5]="D#"; |
melangeaddict | 2:9c0a83c5ded5 | 66 | notes[6]="E"; |
melangeaddict | 2:9c0a83c5ded5 | 67 | notes[7]="F"; |
melangeaddict | 2:9c0a83c5ded5 | 68 | notes[8]="F#"; |
melangeaddict | 2:9c0a83c5ded5 | 69 | break; |
melangeaddict | 2:9c0a83c5ded5 | 70 | |
melangeaddict | 2:9c0a83c5ded5 | 71 | case 3: |
melangeaddict | 2:9c0a83c5ded5 | 72 | frequencies[0]=155.6; |
melangeaddict | 2:9c0a83c5ded5 | 73 | frequencies[1]=164.8; |
melangeaddict | 2:9c0a83c5ded5 | 74 | frequencies[2]=174.6; |
melangeaddict | 2:9c0a83c5ded5 | 75 | frequencies[3]=184.9; |
melangeaddict | 2:9c0a83c5ded5 | 76 | frequencies[4]=195.9; |
melangeaddict | 2:9c0a83c5ded5 | 77 | frequencies[5]=207.6; |
melangeaddict | 2:9c0a83c5ded5 | 78 | frequencies[6]=220; |
melangeaddict | 2:9c0a83c5ded5 | 79 | frequencies[7]=233.1; |
melangeaddict | 2:9c0a83c5ded5 | 80 | frequencies[8]=246.9; |
melangeaddict | 2:9c0a83c5ded5 | 81 | notes[0]="D#"; |
melangeaddict | 2:9c0a83c5ded5 | 82 | notes[1]="E"; |
melangeaddict | 2:9c0a83c5ded5 | 83 | notes[2]="F"; |
melangeaddict | 2:9c0a83c5ded5 | 84 | notes[3]="F#"; |
melangeaddict | 2:9c0a83c5ded5 | 85 | notes[4]="G"; |
melangeaddict | 2:9c0a83c5ded5 | 86 | notes[5]="G#"; |
melangeaddict | 2:9c0a83c5ded5 | 87 | notes[6]="A"; |
melangeaddict | 2:9c0a83c5ded5 | 88 | notes[7]="A#"; |
melangeaddict | 2:9c0a83c5ded5 | 89 | notes[8]="B"; |
melangeaddict | 2:9c0a83c5ded5 | 90 | break; |
melangeaddict | 2:9c0a83c5ded5 | 91 | |
melangeaddict | 2:9c0a83c5ded5 | 92 | case 2: |
melangeaddict | 2:9c0a83c5ded5 | 93 | frequencies[0]=195.9; |
melangeaddict | 2:9c0a83c5ded5 | 94 | frequencies[1]=207.6; |
melangeaddict | 2:9c0a83c5ded5 | 95 | frequencies[2]=220; |
melangeaddict | 2:9c0a83c5ded5 | 96 | frequencies[3]=233.1; |
melangeaddict | 2:9c0a83c5ded5 | 97 | frequencies[4]=246.9; |
melangeaddict | 2:9c0a83c5ded5 | 98 | frequencies[5]=261.6; |
melangeaddict | 2:9c0a83c5ded5 | 99 | frequencies[6]=277.1; |
melangeaddict | 2:9c0a83c5ded5 | 100 | frequencies[7]=293.6; |
melangeaddict | 2:9c0a83c5ded5 | 101 | frequencies[8]=311.1; |
melangeaddict | 2:9c0a83c5ded5 | 102 | notes[0]="G"; |
melangeaddict | 2:9c0a83c5ded5 | 103 | notes[1]="G#"; |
melangeaddict | 2:9c0a83c5ded5 | 104 | notes[2]="A"; |
melangeaddict | 2:9c0a83c5ded5 | 105 | notes[3]="A#"; |
melangeaddict | 2:9c0a83c5ded5 | 106 | notes[4]="B"; |
melangeaddict | 2:9c0a83c5ded5 | 107 | notes[5]="C"; |
melangeaddict | 2:9c0a83c5ded5 | 108 | notes[6]="C#"; |
melangeaddict | 2:9c0a83c5ded5 | 109 | notes[7]="D"; |
melangeaddict | 2:9c0a83c5ded5 | 110 | notes[8]="D#"; |
melangeaddict | 2:9c0a83c5ded5 | 111 | break; |
melangeaddict | 2:9c0a83c5ded5 | 112 | |
melangeaddict | 2:9c0a83c5ded5 | 113 | case 1: |
melangeaddict | 2:9c0a83c5ded5 | 114 | frequencies[0]=261.6; |
melangeaddict | 2:9c0a83c5ded5 | 115 | frequencies[1]=277.1; |
melangeaddict | 2:9c0a83c5ded5 | 116 | frequencies[2]=293.6; |
melangeaddict | 2:9c0a83c5ded5 | 117 | frequencies[3]=311.1; |
melangeaddict | 2:9c0a83c5ded5 | 118 | frequencies[4]=329.6; |
melangeaddict | 2:9c0a83c5ded5 | 119 | frequencies[5]=349.2; |
melangeaddict | 2:9c0a83c5ded5 | 120 | frequencies[6]=369.9; |
melangeaddict | 2:9c0a83c5ded5 | 121 | frequencies[7]=391.9; |
melangeaddict | 2:9c0a83c5ded5 | 122 | frequencies[8]=415.3; |
melangeaddict | 2:9c0a83c5ded5 | 123 | notes[0]="C"; |
melangeaddict | 2:9c0a83c5ded5 | 124 | notes[1]="C#"; |
melangeaddict | 2:9c0a83c5ded5 | 125 | notes[2]="D"; |
melangeaddict | 2:9c0a83c5ded5 | 126 | notes[3]="D#"; |
melangeaddict | 2:9c0a83c5ded5 | 127 | notes[4]="E"; |
melangeaddict | 2:9c0a83c5ded5 | 128 | notes[5]="F"; |
melangeaddict | 2:9c0a83c5ded5 | 129 | notes[6]="F#"; |
melangeaddict | 2:9c0a83c5ded5 | 130 | notes[7]="G"; |
melangeaddict | 2:9c0a83c5ded5 | 131 | notes[8]="G#"; |
melangeaddict | 2:9c0a83c5ded5 | 132 | break; |
melangeaddict | 2:9c0a83c5ded5 | 133 | |
melangeaddict | 2:9c0a83c5ded5 | 134 | default: |
melangeaddict | 2:9c0a83c5ded5 | 135 | break; |
melangeaddict | 2:9c0a83c5ded5 | 136 | } |
melangeaddict | 2:9c0a83c5ded5 | 137 | } |
melangeaddict | 2:9c0a83c5ded5 | 138 | |
melangeaddict | 2:9c0a83c5ded5 | 139 | |
melangeaddict | 2:9c0a83c5ded5 | 140 | strings::~strings(void) |
melangeaddict | 2:9c0a83c5ded5 | 141 | { |
melangeaddict | 2:9c0a83c5ded5 | 142 | } |
melangeaddict | 2:9c0a83c5ded5 | 143 | |
melangeaddict | 2:9c0a83c5ded5 | 144 | void strings::inc_index(){ |
melangeaddict | 2:9c0a83c5ded5 | 145 | index++; |
melangeaddict | 2:9c0a83c5ded5 | 146 | if(index>9) |
melangeaddict | 2:9c0a83c5ded5 | 147 | index=0; |
melangeaddict | 2:9c0a83c5ded5 | 148 | } |
melangeaddict | 2:9c0a83c5ded5 | 149 | |
melangeaddict | 2:9c0a83c5ded5 | 150 | std::string strings::get_note(){ |
melangeaddict | 2:9c0a83c5ded5 | 151 | return notes[index]; |
melangeaddict | 2:9c0a83c5ded5 | 152 | } |
melangeaddict | 2:9c0a83c5ded5 | 153 | |
melangeaddict | 2:9c0a83c5ded5 | 154 | float strings::get_freq(){ |
melangeaddict | 2:9c0a83c5ded5 | 155 | return frequencies[index]; |
melangeaddict | 2:9c0a83c5ded5 | 156 | } |