以前のLibraryでは、スピーカ出力にPWM,DigitalOutを使いましたが、これは、両方ともPWMにしたものです。LPC1114FN28ではDigitalOutにノイズが乗ることがありその対応です。
Dependents: kitchenTimer LPC1114FN28_kitchenTimer_Clock
Fork of Sound by
Sound.cpp@12:66e192fc663e, 2012-01-15 (annotated)
- Committer:
- suupen
- Date:
- Sun Jan 15 01:15:30 2012 +0000
- Revision:
- 12:66e192fc663e
- Parent:
- 11:c342b5349740
120115b bug fix
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
suupen | 0:e3f005984c2a | 1 | /***********************************************************************/ |
suupen | 0:e3f005984c2a | 2 | /* */ |
suupen | 0:e3f005984c2a | 3 | /* Sound.cpp */ |
suupen | 0:e3f005984c2a | 4 | /* */ |
suupen | 0:e3f005984c2a | 5 | /* pwmOutput - digtalOutput de sound syuturyoku suru library */ |
suupen | 0:e3f005984c2a | 6 | /***********************************************************************/ |
suupen | 0:e3f005984c2a | 7 | #define _SOUND_C |
suupen | 0:e3f005984c2a | 8 | |
suupen | 0:e3f005984c2a | 9 | #include "types.h" |
suupen | 0:e3f005984c2a | 10 | #include "mbed.h" |
suupen | 0:e3f005984c2a | 11 | #include "math.h" |
suupen | 0:e3f005984c2a | 12 | #include "Sound.h" |
suupen | 0:e3f005984c2a | 13 | |
suupen | 0:e3f005984c2a | 14 | LocalFileSystem local("local"); |
suupen | 0:e3f005984c2a | 15 | |
suupen | 0:e3f005984c2a | 16 | /******************************************************************* |
suupen | 0:e3f005984c2a | 17 | * syokika |
suupen | 0:e3f005984c2a | 18 | *******************************************************************/ |
suupen | 0:e3f005984c2a | 19 | Sound::Sound(PinName pwm, PinName kijun) : _pwm(pwm), _kijun(kijun){ |
suupen | 0:e3f005984c2a | 20 | /*********************** |
suupen | 0:e3f005984c2a | 21 | * kido ji no yobidasi |
suupen | 0:e3f005984c2a | 22 | ***********************/ |
suupen | 0:e3f005984c2a | 23 | sound_timer.attach_us(this, &Sound::pulseCheck, Z_pulseCheckSyuuki); // oto no hakei syuturyoku check time |
suupen | 0:e3f005984c2a | 24 | |
suupen | 0:e3f005984c2a | 25 | hatuon_jikan.start(); // 1tu no oto no hatuon jikan kakunin |
suupen | 0:e3f005984c2a | 26 | |
suupen | 0:e3f005984c2a | 27 | _pwm.period_us(Z_pwmSyuuki); |
suupen | 0:e3f005984c2a | 28 | |
suupen | 0:e3f005984c2a | 29 | _pwm.write(0.0); |
suupen | 0:e3f005984c2a | 30 | _kijun = 0; |
suupen | 0:e3f005984c2a | 31 | |
suupen | 0:e3f005984c2a | 32 | |
suupen | 0:e3f005984c2a | 33 | keikajikan = 0; // 1tu no oto no keikajikan |
suupen | 0:e3f005984c2a | 34 | |
suupen | 0:e3f005984c2a | 35 | F_pwmSet = 0; // 0:zenhan hansyuuki 1:kohan hansyuuki wo request |
suupen | 0:e3f005984c2a | 36 | C_syuukiKeika = 0; |
suupen | 0:e3f005984c2a | 37 | f_muonSet = 0; // muon ji no sound_out() syori wo kurikaesu no wo fusegu |
suupen | 0:e3f005984c2a | 38 | |
suupen | 0:e3f005984c2a | 39 | } |
suupen | 0:e3f005984c2a | 40 | |
suupen | 0:e3f005984c2a | 41 | |
suupen | 0:e3f005984c2a | 42 | |
suupen | 0:e3f005984c2a | 43 | /***************************************** |
suupen | 0:e3f005984c2a | 44 | * analog output |
suupen | 0:e3f005984c2a | 45 | * siji : syuturyoku siji (0.0 - 1.0) absolute |
suupen | 0:e3f005984c2a | 46 | * fugo : syuturyoku fugo 0:+ 1:- |
suupen | 0:e3f005984c2a | 47 | *****************************************/ |
suupen | 0:e3f005984c2a | 48 | void Sound::sound_out(float siji, int8_t fugo){ |
suupen | 0:e3f005984c2a | 49 | |
suupen | 0:e3f005984c2a | 50 | // siji no atai wo fugo ga minus no toki hanten |
suupen | 0:e3f005984c2a | 51 | if(fugo == 1){siji = 1.0 - siji;} |
suupen | 0:e3f005984c2a | 52 | _kijun = fugo; |
suupen | 0:e3f005984c2a | 53 | |
suupen | 0:e3f005984c2a | 54 | _pwm.write(siji); // 2tuizyo sound out settei site ,interrupt no nakade renzoku de pwm set wo suruto bousou suru. |
suupen | 0:e3f005984c2a | 55 | |
suupen | 0:e3f005984c2a | 56 | } |
suupen | 0:e3f005984c2a | 57 | /***************************************** |
suupen | 0:e3f005984c2a | 58 | * sound hakei pwm output |
suupen | 0:e3f005984c2a | 59 | * time interrupt |
suupen | 0:e3f005984c2a | 60 | *****************************************/ |
suupen | 0:e3f005984c2a | 61 | void Sound::pulseCheck(void) { |
suupen | 0:e3f005984c2a | 62 | |
suupen | 0:e3f005984c2a | 63 | // uint32_t static C_syuukiKeika = 0; |
suupen | 0:e3f005984c2a | 64 | // uint8_t static f_muonSet = 0; // muon ji no sound_out() syori wo kurikaesu no wo fusegu |
suupen | 0:e3f005984c2a | 65 | // uint8_t static F_pwmSet = 0; // 0:zenhan hansyuuki 1:kohan hansyuuki wo request |
suupen | 0:e3f005984c2a | 66 | |
suupen | 0:e3f005984c2a | 67 | float D_soundOut; // syuturyoku suru sinpuku chi (0.0 - 1.0) |
suupen | 0:e3f005984c2a | 68 | |
suupen | 0:e3f005984c2a | 69 | if (O_sound.syuuki != 0) { |
suupen | 0:e3f005984c2a | 70 | f_muonSet = 1; |
suupen | 0:e3f005984c2a | 71 | // sound ari |
suupen | 0:e3f005984c2a | 72 | if (C_syuukiKeika < (O_sound.syuuki / 2.0)) { |
suupen | 0:e3f005984c2a | 73 | // zenhan han syuuki |
suupen | 0:e3f005984c2a | 74 | if (F_pwmSet == 0) { |
suupen | 0:e3f005984c2a | 75 | F_pwmSet = 1; |
suupen | 0:e3f005984c2a | 76 | |
suupen | 0:e3f005984c2a | 77 | D_soundOut = (float)pow(((double)O_sound.envelope / O_sound.shokichienvelope), 2.0); |
suupen | 0:e3f005984c2a | 78 | sound_out(D_soundOut, 0); |
suupen | 0:e3f005984c2a | 79 | } |
suupen | 0:e3f005984c2a | 80 | C_syuukiKeika += Z_pulseCheckSyuuki; |
suupen | 0:e3f005984c2a | 81 | } else if (C_syuukiKeika < O_sound.syuuki) { |
suupen | 0:e3f005984c2a | 82 | // kohan han syuuki |
suupen | 0:e3f005984c2a | 83 | if (F_pwmSet == 1) { |
suupen | 0:e3f005984c2a | 84 | F_pwmSet = 2; |
suupen | 0:e3f005984c2a | 85 | |
suupen | 0:e3f005984c2a | 86 | D_soundOut = (float)pow(((double)O_sound.envelope / O_sound.shokichienvelope) , 2.0); |
suupen | 0:e3f005984c2a | 87 | sound_out(D_soundOut, 1); |
suupen | 0:e3f005984c2a | 88 | } |
suupen | 0:e3f005984c2a | 89 | C_syuukiKeika += Z_pulseCheckSyuuki; |
suupen | 0:e3f005984c2a | 90 | |
suupen | 0:e3f005984c2a | 91 | |
suupen | 0:e3f005984c2a | 92 | } else { |
suupen | 0:e3f005984c2a | 93 | // jikai syuuki settei |
suupen | 0:e3f005984c2a | 94 | F_pwmSet = 0; |
suupen | 0:e3f005984c2a | 95 | C_syuukiKeika = 0; |
suupen | 0:e3f005984c2a | 96 | } |
suupen | 0:e3f005984c2a | 97 | |
suupen | 0:e3f005984c2a | 98 | // envelope jikan no kosin |
suupen | 0:e3f005984c2a | 99 | if (O_sound.envelope > Z_pulseCheckSyuuki) { |
suupen | 0:e3f005984c2a | 100 | O_sound.envelope -= Z_pulseCheckSyuuki; |
suupen | 0:e3f005984c2a | 101 | } else { |
suupen | 0:e3f005984c2a | 102 | O_sound.envelope = 0; |
suupen | 9:5385907711e0 | 103 | sound_out(0.0, 0); |
suupen | 0:e3f005984c2a | 104 | } |
suupen | 0:e3f005984c2a | 105 | } |
suupen | 0:e3f005984c2a | 106 | else{ |
suupen | 9:5385907711e0 | 107 | sound_out(0.0, 0); |
suupen | 9:5385907711e0 | 108 | /* |
suupen | 0:e3f005984c2a | 109 | // O_sound.syuuki == 0 then sound nasi |
suupen | 0:e3f005984c2a | 110 | |
suupen | 9:5385907711e0 | 111 | if(f_muonSet == 1){ |
suupen | 9:5385907711e0 | 112 | f_muonSet = 0; |
suupen | 9:5385907711e0 | 113 | sound_out(0.0, 0); |
suupen | 0:e3f005984c2a | 114 | } |
suupen | 9:5385907711e0 | 115 | */ |
suupen | 0:e3f005984c2a | 116 | } |
suupen | 0:e3f005984c2a | 117 | |
suupen | 0:e3f005984c2a | 118 | //************************************************* |
suupen | 0:e3f005984c2a | 119 | // 1ms syuuki syori |
suupen | 0:e3f005984c2a | 120 | //************************************************* |
suupen | 0:e3f005984c2a | 121 | C_1msProcess++; |
suupen | 0:e3f005984c2a | 122 | if((C_1msProcess * Z_pulseCheckSyuuki) > 1000){ |
suupen | 0:e3f005984c2a | 123 | C_1msProcess = 0; |
suupen | 0:e3f005984c2a | 124 | sound_ensoSyori(); |
suupen | 0:e3f005984c2a | 125 | } |
suupen | 0:e3f005984c2a | 126 | } |
suupen | 0:e3f005984c2a | 127 | |
suupen | 0:e3f005984c2a | 128 | |
suupen | 0:e3f005984c2a | 129 | /****************************************************************************** |
suupen | 0:e3f005984c2a | 130 | Name : sound_sound() |
suupen | 0:e3f005984c2a | 131 | Parameters : sound_t .hanon |
suupen | 0:e3f005984c2a | 132 | : .onkai |
suupen | 0:e3f005984c2a | 133 | : .time : hatuon jikan(1/1 [ms]/count) |
suupen | 0:e3f005984c2a | 134 | : .envelope : yoin (1/1 [ms]/count) |
suupen | 0:e3f005984c2a | 135 | Returns : none |
suupen | 0:e3f005984c2a | 136 | Description : hitotu no oto no syuturyoku |
suupen | 0:e3f005984c2a | 137 | ******************************************************************************/ |
suupen | 0:e3f005984c2a | 138 | //************************* |
suupen | 0:e3f005984c2a | 139 | // oto jyotai check |
suupen | 0:e3f005984c2a | 140 | // ture : oto ari chu |
suupen | 0:e3f005984c2a | 141 | // false: oto nasi chu |
suupen | 0:e3f005984c2a | 142 | //************************* |
suupen | 0:e3f005984c2a | 143 | bool Sound::sound_sound(void){ |
suupen | 0:e3f005984c2a | 144 | if (hatuon_jikan.read_ms() < keikajikan){ |
suupen | 0:e3f005984c2a | 145 | return(true); |
suupen | 0:e3f005984c2a | 146 | } |
suupen | 0:e3f005984c2a | 147 | else{ |
suupen | 0:e3f005984c2a | 148 | return(false); |
suupen | 0:e3f005984c2a | 149 | } |
suupen | 0:e3f005984c2a | 150 | } |
suupen | 0:e3f005984c2a | 151 | |
suupen | 0:e3f005984c2a | 152 | //************************* |
suupen | 0:e3f005984c2a | 153 | // oto syuturyoku |
suupen | 0:e3f005984c2a | 154 | //************************* |
suupen | 0:e3f005984c2a | 155 | void Sound::sound_sound(sound_t data) { |
suupen | 0:e3f005984c2a | 156 | |
suupen | 0:e3f005984c2a | 157 | uint8_t onkai; |
suupen | 0:e3f005984c2a | 158 | uint8_t okutabu; |
suupen | 0:e3f005984c2a | 159 | uint8_t kaicho; |
suupen | 0:e3f005984c2a | 160 | |
suupen | 0:e3f005984c2a | 161 | // oto no frequency // do re mi fa so ra si |
suupen | 0:e3f005984c2a | 162 | const uint16_t DT_onkaiHzN[3][7] = {// C1 D1 E1 F1 G1 A1 B1 // frequency (1/1 [Hz]/count) |
suupen | 0:e3f005984c2a | 163 | {30.8677, 34.6478, 38.8909, 41.2034, 46.2493, 51.9131, 58.2705}, // b |
suupen | 0:e3f005984c2a | 164 | {32.7032, 36.7081, 41.2034, 43.6535, 48.9994, 55.0000, 61.7354}, // nomal |
suupen | 0:e3f005984c2a | 165 | {34.6478, 38.8909, 43.6535, 46.2493, 51.9131, 58.2705, 65.4064}, // # |
suupen | 0:e3f005984c2a | 166 | }; |
suupen | 0:e3f005984c2a | 167 | |
suupen | 0:e3f005984c2a | 168 | |
suupen | 0:e3f005984c2a | 169 | // onkai data kara DT_onkaiHzN[][koko] "koko" no number ni henkan |
suupen | 0:e3f005984c2a | 170 | // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F |
suupen | 0:e3f005984c2a | 171 | const uint8_t DT_onkaiTrans[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 0, 1, 2, 3}; |
suupen | 0:e3f005984c2a | 172 | |
suupen | 0:e3f005984c2a | 173 | |
suupen | 0:e3f005984c2a | 174 | // tugi no hatuon siji |
suupen | 0:e3f005984c2a | 175 | onkai = data.onkai; |
suupen | 0:e3f005984c2a | 176 | |
suupen | 0:e3f005984c2a | 177 | okutabu = onkai & 0x0f; |
suupen | 0:e3f005984c2a | 178 | kaicho = DT_onkaiTrans[(onkai & 0xf0) >> 4]; |
suupen | 0:e3f005984c2a | 179 | |
suupen | 0:e3f005984c2a | 180 | switch (onkai) { |
suupen | 0:e3f005984c2a | 181 | case 0x00: |
suupen | 0:e3f005984c2a | 182 | // enso chu (tugi no hatuon nasi settei) |
suupen | 0:e3f005984c2a | 183 | // case 0xff to onaji syori |
suupen | 0:e3f005984c2a | 184 | case 0xff: |
suupen | 0:e3f005984c2a | 185 | // enso syuryo |
suupen | 0:e3f005984c2a | 186 | O_sound.syuuki = 0; // muon |
suupen | 0:e3f005984c2a | 187 | break; |
suupen | 0:e3f005984c2a | 188 | default: |
suupen | 0:e3f005984c2a | 189 | // enso chu & tugi no hatuon settei) |
suupen | 0:e3f005984c2a | 190 | O_sound.syuuki = 1000000 / (DT_onkaiHzN[data.hanon][kaicho] * (pow(2.0, ((double)okutabu - 1)))); |
suupen | 0:e3f005984c2a | 191 | O_sound.envelope = data.envelope * 1000; |
suupen | 0:e3f005984c2a | 192 | O_sound.shokichienvelope = data.envelope * 1000; |
suupen | 0:e3f005984c2a | 193 | break; |
suupen | 0:e3f005984c2a | 194 | } |
suupen | 0:e3f005984c2a | 195 | |
suupen | 0:e3f005984c2a | 196 | // oto no syuturyoku jikan timer restart |
suupen | 0:e3f005984c2a | 197 | hatuon_jikan.reset(); |
suupen | 0:e3f005984c2a | 198 | keikajikan = data.time; |
suupen | 0:e3f005984c2a | 199 | } |
suupen | 0:e3f005984c2a | 200 | |
suupen | 0:e3f005984c2a | 201 | /****************************************************************************** |
suupen | 0:e3f005984c2a | 202 | Name : sound_ensoSyori() |
suupen | 0:e3f005984c2a | 203 | Parameters : none |
suupen | 0:e3f005984c2a | 204 | Returns : none |
suupen | 0:e3f005984c2a | 205 | Description : enso ji no tugino onpu data syutoku |
suupen | 0:e3f005984c2a | 206 | ******************************************************************************/ |
suupen | 0:e3f005984c2a | 207 | void Sound::sound_ensoSyori(void) { |
suupen | 0:e3f005984c2a | 208 | |
suupen | 0:e3f005984c2a | 209 | // enso data settei |
suupen | 0:e3f005984c2a | 210 | if((sound_sound() == false) // oto no syuturyoku jikan hantei |
suupen | 11:c342b5349740 | 211 | && (onpu != NULL) // enso chu ka wo kakunin // 120115 bug fix |
suupen | 0:e3f005984c2a | 212 | ){ |
suupen | 0:e3f005984c2a | 213 | // tugi no onpu data syutoku |
suupen | 0:e3f005984c2a | 214 | sound_t data = *onpu; |
suupen | 0:e3f005984c2a | 215 | if(data.onkai == 0xff){ |
suupen | 0:e3f005984c2a | 216 | onpu = NULL; |
suupen | 0:e3f005984c2a | 217 | } |
suupen | 0:e3f005984c2a | 218 | else{ |
suupen | 0:e3f005984c2a | 219 | // tugi no hatuon siji |
suupen | 0:e3f005984c2a | 220 | sound_sound(data); |
suupen | 0:e3f005984c2a | 221 | onpu++; |
suupen | 0:e3f005984c2a | 222 | } |
suupen | 0:e3f005984c2a | 223 | |
suupen | 0:e3f005984c2a | 224 | } |
suupen | 0:e3f005984c2a | 225 | |
suupen | 0:e3f005984c2a | 226 | } |
suupen | 0:e3f005984c2a | 227 | |
suupen | 0:e3f005984c2a | 228 | |
suupen | 0:e3f005984c2a | 229 | |
suupen | 0:e3f005984c2a | 230 | |
suupen | 0:e3f005984c2a | 231 | /****************************************************************************** |
suupen | 0:e3f005984c2a | 232 | Name : sound_enso() |
suupen | 0:e3f005984c2a | 233 | Parameters : - |
suupen | 0:e3f005984c2a | 234 | Returns : - |
suupen | 0:e3f005984c2a | 235 | Description : - |
suupen | 0:e3f005984c2a | 236 | ******************************************************************************/ |
suupen | 0:e3f005984c2a | 237 | //*********************************************************** |
suupen | 0:e3f005984c2a | 238 | // load enso data(mbed drive) |
suupen | 0:e3f005984c2a | 239 | // Parameter : "/local/enso.txt" (data name = enso.txt) |
suupen | 0:e3f005984c2a | 240 | //*********************************************************** |
suupen | 0:e3f005984c2a | 241 | bool Sound::sound_enso(char *path) { |
suupen | 0:e3f005984c2a | 242 | int32_t ans; |
suupen | 0:e3f005984c2a | 243 | |
suupen | 0:e3f005984c2a | 244 | // file open |
suupen | 0:e3f005984c2a | 245 | FILE *stm = fopen(path,"r"); |
suupen | 0:e3f005984c2a | 246 | if(stm == NULL){ |
suupen | 0:e3f005984c2a | 247 | return (false); |
suupen | 0:e3f005984c2a | 248 | } |
suupen | 0:e3f005984c2a | 249 | |
suupen | 0:e3f005984c2a | 250 | // enso data set |
suupen | 0:e3f005984c2a | 251 | uint8_t i = 0; |
suupen | 0:e3f005984c2a | 252 | do{ |
suupen | 0:e3f005984c2a | 253 | ans = fscanf(stm, "%x%d%d", &enso[i].onkai, &enso[i].time, &enso[i].envelope); |
suupen | 0:e3f005984c2a | 254 | i++; |
suupen | 0:e3f005984c2a | 255 | |
suupen | 0:e3f005984c2a | 256 | }while((ans != EOF) & (i < 100)); |
suupen | 0:e3f005984c2a | 257 | |
suupen | 0:e3f005984c2a | 258 | fclose(stm); |
suupen | 0:e3f005984c2a | 259 | |
suupen | 0:e3f005984c2a | 260 | ensoDataTable = enso; |
suupen | 0:e3f005984c2a | 261 | |
suupen | 0:e3f005984c2a | 262 | return (true); |
suupen | 0:e3f005984c2a | 263 | } |
suupen | 0:e3f005984c2a | 264 | |
suupen | 0:e3f005984c2a | 265 | //*********************************************************************** |
suupen | 0:e3f005984c2a | 266 | // load enso data(program data table) |
suupen | 0:e3f005984c2a | 267 | // Parameter : (Sound::sound_t*)DEMEKIN (data table name = DEMEKIN) |
suupen | 0:e3f005984c2a | 268 | //*********************************************************************** |
suupen | 0:e3f005984c2a | 269 | void Sound::sound_enso(Sound::sound_t* onpudata) { |
suupen | 0:e3f005984c2a | 270 | ensoDataTable = onpudata; |
suupen | 0:e3f005984c2a | 271 | } |
suupen | 0:e3f005984c2a | 272 | |
suupen | 0:e3f005984c2a | 273 | |
suupen | 0:e3f005984c2a | 274 | //************************* |
suupen | 0:e3f005984c2a | 275 | // enso jyotai check |
suupen | 0:e3f005984c2a | 276 | // ture : enso chu |
suupen | 0:e3f005984c2a | 277 | // false: enso syuryo |
suupen | 0:e3f005984c2a | 278 | //************************* |
suupen | 0:e3f005984c2a | 279 | bool Sound::sound_enso(void) { |
suupen | 0:e3f005984c2a | 280 | bool ans; |
suupen | 0:e3f005984c2a | 281 | |
suupen | 0:e3f005984c2a | 282 | if(onpu != NULL){ |
suupen | 0:e3f005984c2a | 283 | ans = true; |
suupen | 0:e3f005984c2a | 284 | } |
suupen | 0:e3f005984c2a | 285 | else{ |
suupen | 0:e3f005984c2a | 286 | ans = false; |
suupen | 0:e3f005984c2a | 287 | } |
suupen | 0:e3f005984c2a | 288 | return (ans); |
suupen | 0:e3f005984c2a | 289 | } |
suupen | 0:e3f005984c2a | 290 | |
suupen | 0:e3f005984c2a | 291 | //******************* |
suupen | 0:e3f005984c2a | 292 | // enso start / stop |
suupen | 0:e3f005984c2a | 293 | // true : start |
suupen | 0:e3f005984c2a | 294 | // false: stop |
suupen | 0:e3f005984c2a | 295 | //******************* |
suupen | 0:e3f005984c2a | 296 | void Sound::sound_enso(bool siji){ |
suupen | 0:e3f005984c2a | 297 | if(siji == true){ |
suupen | 10:059d4df77110 | 298 | hatuon_jikan.reset(); // 120108 bug fix |
suupen | 12:66e192fc663e | 299 | keikajikan = 0; // 120115 bug fix |
suupen | 0:e3f005984c2a | 300 | onpu = (sound_t*)ensoDataTable; |
suupen | 0:e3f005984c2a | 301 | } |
suupen | 0:e3f005984c2a | 302 | else{ |
suupen | 0:e3f005984c2a | 303 | onpu = NULL; |
suupen | 0:e3f005984c2a | 304 | } |
suupen | 0:e3f005984c2a | 305 | } |
suupen | 0:e3f005984c2a | 306 | |
suupen | 0:e3f005984c2a | 307 | |
suupen | 0:e3f005984c2a | 308 | |
suupen | 0:e3f005984c2a | 309 | |
suupen | 0:e3f005984c2a | 310 | |
suupen | 0:e3f005984c2a | 311 | /****************************************************************************** |
suupen | 0:e3f005984c2a | 312 | Name : enso data sample |
suupen | 0:e3f005984c2a | 313 | Parameters : - |
suupen | 0:e3f005984c2a | 314 | Returns : - |
suupen | 0:e3f005984c2a | 315 | Description : - |
suupen | 0:e3f005984c2a | 316 | ******************************************************************************/ |
suupen | 0:e3f005984c2a | 317 | /* |
suupen | 0:e3f005984c2a | 318 | //------------------------------ |
suupen | 0:e3f005984c2a | 319 | // "demekin no uta" merody data |
suupen | 0:e3f005984c2a | 320 | //------------------------------ |
suupen | 0:e3f005984c2a | 321 | const sound_t DEMEKIN[] = { |
suupen | 0:e3f005984c2a | 322 | // onkai,hatuon jikan[ms] |
suupen | 0:e3f005984c2a | 323 | {1,0xC5,600,500}, // de |
suupen | 0:e3f005984c2a | 324 | {1,0xE5,600,500}, // me |
suupen | 0:e3f005984c2a | 325 | {1,0x95,600,500}, // kin |
suupen | 0:e3f005984c2a | 326 | {1,0x00,600,500}, |
suupen | 0:e3f005984c2a | 327 | |
suupen | 0:e3f005984c2a | 328 | {1,0xC5,600,500}, // de |
suupen | 0:e3f005984c2a | 329 | {1,0xE5,600,500}, // me |
suupen | 0:e3f005984c2a | 330 | {1,0x95,600,500}, // kin |
suupen | 0:e3f005984c2a | 331 | {1,0x00,600,500}, |
suupen | 0:e3f005984c2a | 332 | |
suupen | 0:e3f005984c2a | 333 | {1,0xC5,600,500}, // de |
suupen | 0:e3f005984c2a | 334 | {1,0xE5,600,500}, // me |
suupen | 0:e3f005984c2a | 335 | {1,0x95,600,500}, // kin |
suupen | 0:e3f005984c2a | 336 | {1,0x95,600,500}, // no |
suupen | 0:e3f005984c2a | 337 | {1,0x95,150,500}, // shi |
suupen | 0:e3f005984c2a | 338 | {1,0x00,900,500}, |
suupen | 0:e3f005984c2a | 339 | {1,0xE5,750,500}, // po |
suupen | 0:e3f005984c2a | 340 | {1,0x00,450,500}, |
suupen | 0:e3f005984c2a | 341 | |
suupen | 0:e3f005984c2a | 342 | {1,0xC5,600,500}, // de |
suupen | 0:e3f005984c2a | 343 | {1,0xE5,600,500}, // me |
suupen | 0:e3f005984c2a | 344 | {1,0x95,600,500}, // kin |
suupen | 0:e3f005984c2a | 345 | {1,0x00,600,500}, |
suupen | 0:e3f005984c2a | 346 | |
suupen | 0:e3f005984c2a | 347 | {1,0xC5,600,500}, // de |
suupen | 0:e3f005984c2a | 348 | {1,0xE5,600,500}, // me |
suupen | 0:e3f005984c2a | 349 | {1,0x95,600,500}, // kin |
suupen | 0:e3f005984c2a | 350 | {1,0x00,600,500}, |
suupen | 0:e3f005984c2a | 351 | |
suupen | 0:e3f005984c2a | 352 | {1,0x95,600,500}, // ju |
suupen | 0:e3f005984c2a | 353 | {1,0xE5,600,500}, // go |
suupen | 0:e3f005984c2a | 354 | {1,0xD5,600,500}, // n |
suupen | 0:e3f005984c2a | 355 | {1,0xC5,600,500}, // no |
suupen | 0:e3f005984c2a | 356 | {1,0xE5,150,500}, // shi |
suupen | 0:e3f005984c2a | 357 | {1,0x00,900,500}, |
suupen | 0:e3f005984c2a | 358 | {1,0xC5,750,500}, // po |
suupen | 0:e3f005984c2a | 359 | {1,0x00,1350,500}, |
suupen | 0:e3f005984c2a | 360 | |
suupen | 0:e3f005984c2a | 361 | {1,0xFF,0,0}, // end |
suupen | 0:e3f005984c2a | 362 | |
suupen | 0:e3f005984c2a | 363 | }; |
suupen | 0:e3f005984c2a | 364 | |
suupen | 0:e3f005984c2a | 365 | //--------------------------------- |
suupen | 0:e3f005984c2a | 366 | // "westminster chime" merody data |
suupen | 0:e3f005984c2a | 367 | //--------------------------------- |
suupen | 0:e3f005984c2a | 368 | const sound_t WESTMINSTER[] = { |
suupen | 0:e3f005984c2a | 369 | // onkai,hatuon jikan[ms] |
suupen | 0:e3f005984c2a | 370 | {1,0xA4,1200,1000}, |
suupen | 0:e3f005984c2a | 371 | {1,0xF4,1200,1000}, |
suupen | 0:e3f005984c2a | 372 | {1,0x94,1200,1000}, |
suupen | 0:e3f005984c2a | 373 | {1,0xC4,2400,1000}, |
suupen | 0:e3f005984c2a | 374 | |
suupen | 0:e3f005984c2a | 375 | {1,0xC4,1200,1000}, |
suupen | 0:e3f005984c2a | 376 | {1,0x94,1200,1000}, |
suupen | 0:e3f005984c2a | 377 | {1,0xA4,1200,1000}, |
suupen | 0:e3f005984c2a | 378 | {1,0xF4,2400,1000}, |
suupen | 0:e3f005984c2a | 379 | |
suupen | 0:e3f005984c2a | 380 | |
suupen | 0:e3f005984c2a | 381 | {1,0xFF,0,0}, // end |
suupen | 0:e3f005984c2a | 382 | }; |
suupen | 0:e3f005984c2a | 383 | |
suupen | 0:e3f005984c2a | 384 | //------------------------------ |
suupen | 0:e3f005984c2a | 385 | // "ramen chime" merody data |
suupen | 0:e3f005984c2a | 386 | //------------------------------ |
suupen | 0:e3f005984c2a | 387 | const sound_t RAMEN[] = { |
suupen | 0:e3f005984c2a | 388 | // onkai,hatuon jikan[ms] |
suupen | 0:e3f005984c2a | 389 | {1,0xC5,300,500}, |
suupen | 0:e3f005984c2a | 390 | {1,0xD5,300,500}, |
suupen | 0:e3f005984c2a | 391 | {1,0xE5,1200,500}, |
suupen | 0:e3f005984c2a | 392 | {1,0xD5,600,500}, |
suupen | 0:e3f005984c2a | 393 | {1,0xC5,1200,500}, |
suupen | 0:e3f005984c2a | 394 | |
suupen | 0:e3f005984c2a | 395 | {1,0xC5,300,500}, |
suupen | 0:e3f005984c2a | 396 | {1,0xD5,300,500}, |
suupen | 0:e3f005984c2a | 397 | {1,0xE5,300,500}, |
suupen | 0:e3f005984c2a | 398 | {1,0xD5,300,500}, |
suupen | 0:e3f005984c2a | 399 | {1,0xC5,300,500}, |
suupen | 0:e3f005984c2a | 400 | {1,0xD5,1800,500}, |
suupen | 0:e3f005984c2a | 401 | |
suupen | 0:e3f005984c2a | 402 | |
suupen | 0:e3f005984c2a | 403 | {1,0xFF,0,0}, // end |
suupen | 0:e3f005984c2a | 404 | }; |
suupen | 0:e3f005984c2a | 405 | */ |
suupen | 0:e3f005984c2a | 406 | |
suupen | 0:e3f005984c2a | 407 | |
suupen | 0:e3f005984c2a | 408 | |
suupen | 0:e3f005984c2a | 409 | |
suupen | 0:e3f005984c2a | 410 | |
suupen | 0:e3f005984c2a | 411 | |
suupen | 0:e3f005984c2a | 412 | |
suupen | 0:e3f005984c2a | 413 | |
suupen | 0:e3f005984c2a | 414 | |
suupen | 0:e3f005984c2a | 415 | |
suupen | 0:e3f005984c2a | 416 | |
suupen | 0:e3f005984c2a | 417 | |
suupen | 0:e3f005984c2a | 418 | |
suupen | 0:e3f005984c2a | 419 | |
suupen | 0:e3f005984c2a | 420 | |
suupen | 0:e3f005984c2a | 421 | |
suupen | 0:e3f005984c2a | 422 | |
suupen | 0:e3f005984c2a | 423 | |
suupen | 0:e3f005984c2a | 424 | |
suupen | 0:e3f005984c2a | 425 | |
suupen | 0:e3f005984c2a | 426 | |
suupen | 0:e3f005984c2a | 427 | |
suupen | 0:e3f005984c2a | 428 | |
suupen | 0:e3f005984c2a | 429 | |
suupen | 0:e3f005984c2a | 430 | |
suupen | 0:e3f005984c2a | 431 | |
suupen | 0:e3f005984c2a | 432 | |
suupen | 0:e3f005984c2a | 433 | |
suupen | 0:e3f005984c2a | 434 | |
suupen | 0:e3f005984c2a | 435 | |
suupen | 0:e3f005984c2a | 436 | |
suupen | 0:e3f005984c2a | 437 | |
suupen | 0:e3f005984c2a | 438 | |
suupen | 0:e3f005984c2a | 439 | |
suupen | 0:e3f005984c2a | 440 | |
suupen | 0:e3f005984c2a | 441 | |
suupen | 0:e3f005984c2a | 442 | |
suupen | 0:e3f005984c2a | 443 | |
suupen | 0:e3f005984c2a | 444 | |
suupen | 0:e3f005984c2a | 445 | |
suupen | 0:e3f005984c2a | 446 | |
suupen | 0:e3f005984c2a | 447 | |
suupen | 0:e3f005984c2a | 448 | |
suupen | 0:e3f005984c2a | 449 | |
suupen | 0:e3f005984c2a | 450 | |
suupen | 0:e3f005984c2a | 451 | |
suupen | 0:e3f005984c2a | 452 | |
suupen | 0:e3f005984c2a | 453 | |
suupen | 0:e3f005984c2a | 454 | |
suupen | 0:e3f005984c2a | 455 | |
suupen | 0:e3f005984c2a | 456 | |
suupen | 0:e3f005984c2a | 457 | |
suupen | 0:e3f005984c2a | 458 | |
suupen | 0:e3f005984c2a | 459 |