├── GI1MIC-DSP-Filter ├── Code Audio Files │ ├── desktop.ini │ ├── sr-convert.exe │ ├── wav2sketch.exe │ ├── AudioSampleWavssb.h │ ├── AudioSampleWavdual.h │ ├── AudioSampleWavmorse.h │ ├── AudioSampleWavhipass.h │ ├── AudioSampleWavlowpass.h │ ├── AudioSampleWavpassthru.h │ ├── AudioSampleWavmorsedecode.h │ ├── convert.bat │ └── AudioSampleWavdual.cpp ├── SD Files │ ├── 0.wav │ ├── 1.wav │ ├── 10.wav │ ├── 11.wav │ ├── 12.wav │ ├── 13.wav │ ├── 14.wav │ ├── 15.wav │ ├── 2.wav │ ├── 3.wav │ ├── 4.wav │ ├── 5.wav │ ├── 6.wav │ ├── 7.wav │ ├── 8.wav │ ├── 9.wav │ ├── AM.wav │ ├── CW.wav │ ├── DW.wav │ ├── FM.wav │ ├── ID.wav │ ├── M1.wav │ ├── M2.wav │ ├── M3.wav │ ├── M4.wav │ ├── M5.wav │ ├── M6.wav │ ├── M7.wav │ ├── M8.wav │ ├── M9.wav │ ├── ON.wav │ ├── UP.wav │ ├── a.wav │ ├── b.wav │ ├── c.wav │ ├── d.wav │ ├── e.wav │ ├── f.wav │ ├── g.wav │ ├── h.wav │ ├── i.wav │ ├── j.wav │ ├── k.wav │ ├── l.wav │ ├── m.wav │ ├── n.wav │ ├── o.wav │ ├── p.wav │ ├── q.wav │ ├── r.wav │ ├── s.wav │ ├── t.wav │ ├── u.wav │ ├── v.wav │ ├── w.wav │ ├── x.wav │ ├── y.wav │ ├── z.wav │ ├── 10DB.wav │ ├── 1K2.wav │ ├── 20DB.wav │ ├── 30DB.wav │ ├── 38K4.wav │ ├── 40DB.wav │ ├── 4K8.wav │ ├── 50DB.wav │ ├── 60DB.wav │ ├── 9K6.wav │ ├── AGC.wav │ ├── ALC.wav │ ├── ALL.wav │ ├── ART.wav │ ├── ARTS.wav │ ├── AUTO.wav │ ├── CHK.wav │ ├── CONT.wav │ ├── CWR.wav │ ├── DIAL.wav │ ├── DOWN.wav │ ├── Dual.wav │ ├── ECHO.wav │ ├── FAST.wav │ ├── FINE.wav │ ├── FREQ.wav │ ├── GOLF.wav │ ├── HIGH.wav │ ├── IPO.wav │ ├── KEYS.wav │ ├── KILO.wav │ ├── LIMA.wav │ ├── LOCK.wav │ ├── LOW.wav │ ├── LSB.wav │ ├── M10.wav │ ├── M11.wav │ ├── M12.wav │ ├── MENU.wav │ ├── MHZ.wav │ ├── MIKE.wav │ ├── MIN.wav │ ├── MOD.wav │ ├── OFF.wav │ ├── PAPA.wav │ ├── REAR.wav │ ├── RTTY.wav │ ├── SCAN.wav │ ├── SLOW.wav │ ├── SSB.wav │ ├── SWR.wav │ ├── TIRI.wav │ ├── TIRN.wav │ ├── TNRI.wav │ ├── TNRN.wav │ ├── USB.wav │ ├── VFO.wav │ ├── VOX.wav │ ├── XRAY.wav │ ├── ZULU.wav │ ├── 9K6MIC.wav │ ├── ALPHA.wav │ ├── AM_FM.wav │ ├── AM_MIC.wav │ ├── AM_STEP.wav │ ├── ANTENNA.wav │ ├── ANT_2M.wav │ ├── ANT_6M.wav │ ├── ANT_AIR.wav │ ├── ANT_FM.wav │ ├── ANT_HF.wav │ ├── ANT_UHF.wav │ ├── ATTEN.wav │ ├── BATTERY.wav │ ├── BEEPVOL.wav │ ├── BRAVO.wav │ ├── BREAKIN.wav │ ├── CHARGE.wav │ ├── CHARLIE.wav │ ├── COLOR.wav │ ├── COURSE.wav │ ├── CWPADD.wav │ ├── CWWGHT.wav │ ├── CW_ID.wav │ ├── DCS_INV.wav │ ├── DELTA.wav │ ├── DIGDSP.wav │ ├── DIGITAL.wav │ ├── DIGMIC.wav │ ├── DIGMODE.wav │ ├── DISPLAY.wav │ ├── EMERGEN.wav │ ├── EXTEND.wav │ ├── FM_MIC.wav │ ├── FM_STEP.wav │ ├── FM_WIDE.wav │ ├── FOXTROT.wav │ ├── FRONT.wav │ ├── HI_PASS.wav │ ├── HOTEL.wav │ ├── INDIA.wav │ ├── JULIETT.wav │ ├── KEYER.wav │ ├── MEDIUM.wav │ ├── MEMGRP.wav │ ├── MEMORY.wav │ ├── MEM_TAG.wav │ ├── MIC_KEY.wav │ ├── MINUS.wav │ ├── MNSTEP.wav │ ├── Morse.wav │ ├── NORMAL.wav │ ├── NOTCH.wav │ ├── OPFLTER.wav │ ├── OSCAR.wav │ ├── PACKET.wav │ ├── PANEL.wav │ ├── PKT_MIC.wav │ ├── POINT.wav │ ├── POWER.wav │ ├── PSK_LSB.wav │ ├── PSK_USB.wav │ ├── QUEBEC.wav │ ├── RANGE.wav │ ├── REVERSE.wav │ ├── RF_GAIN.wav │ ├── RLSBCAR.wav │ ├── ROMEO.wav │ ├── RUSBCAR.wav │ ├── SCANRES.wav │ ├── SCOPE.wav │ ├── SIERRA.wav │ ├── SIGNAL.wav │ ├── SPEED.wav │ ├── SPLIT.wav │ ├── SQLRFG.wav │ ├── SQUELCH.wav │ ├── SSB_MIC.wav │ ├── TANGO.wav │ ├── TLSBCAR.wav │ ├── TUNSPD.wav │ ├── TUSBCAR.wav │ ├── UNIFORM.wav │ ├── VICTOR.wav │ ├── VOLTS.wav │ ├── WHISKEY.wav │ ├── YANKIEE.wav │ ├── voice.exe │ ├── 144A_R_S.wav │ ├── 430A_R_S.wav │ ├── APO_TIME.wav │ ├── BACKLGHT.wav │ ├── BEEPTONE.wav │ ├── CAT_RATE.wav │ ├── CONTRAST.wav │ ├── CW_DELAY.wav │ ├── CW_PITCH.wav │ ├── CW_SPEED.wav │ ├── DCS_CODE.wav │ ├── DIGSHIFT.wav │ ├── IF_SHIFT.wav │ ├── LOCKMODE.wav │ ├── LOW_PASS.wav │ ├── MIC_SCAN.wav │ ├── NOISEBLK.wav │ ├── NOVEMBER.wav │ ├── PCKTRATE.wav │ ├── PRIORITY.wav │ ├── PWRMETER.wav │ ├── REPSHIFT.wav │ ├── SIDETONE.wav │ ├── SSB_STEP.wav │ ├── TONEFREQ.wav │ ├── TOT_TIME.wav │ ├── USER_LSB.wav │ ├── USER_USB.wav │ ├── VFO_MODE.wav │ ├── VOXDELAY.wav │ ├── VOX_GAIN.wav │ ├── G_I_1_M_I_C.wav │ ├── MORSE_DECODE.wav │ ├── PASS_THROUGH.wav │ ├── sr-convert.exe │ └── makeWavFiles.bat ├── AudioSampleWavdual.h ├── AudioSampleWavssb.h ├── AudioSampleWavhipass.h ├── AudioSampleWavmorse.h ├── AudioSampleWavlowpass.h ├── AudioSampleWavpassthru.h ├── configSpeak.h ├── AudioSampleWavmorsedecode.h ├── morseDecode.h ├── cat.h ├── cat.cpp ├── dynamicFilters.h ├── settings.h ├── speech.cpp ├── dspfilter.h ├── morseDecode.cpp ├── GI1MIC-DSP-Filter.ino ├── dynamicFilters.cpp ├── configSpeak.cpp └── AudioSampleWavdual.cpp ├── Circuit Diagram ├── FT-817 Teensy-3.2.fzz └── Inline Audio DSP Teensy-3.2.fzz ├── README.md └── LICENSE /GI1MIC-DSP-Filter/Code Audio Files/desktop.ini: -------------------------------------------------------------------------------- 1 | [ViewState] 2 | Mode= 3 | Vid= 4 | FolderType=Generic 5 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/0.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/0.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/1.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/1.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/10.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/11.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/11.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/12.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/12.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/13.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/13.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/14.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/14.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/15.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/15.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/2.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/2.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/3.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/3.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/4.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/4.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/5.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/5.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/6.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/6.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/7.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/7.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/8.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/8.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/9.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/9.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/AM.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/AM.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/CW.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/CW.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/DW.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/DW.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/FM.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/FM.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ID.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ID.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/M1.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/M1.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/M2.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/M2.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/M3.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/M3.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/M4.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/M4.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/M5.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/M5.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/M6.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/M6.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/M7.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/M7.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/M8.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/M8.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/M9.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/M9.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ON.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ON.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/UP.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/UP.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/a.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/a.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/b.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/b.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/c.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/c.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/d.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/d.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/e.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/e.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/f.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/f.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/g.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/g.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/h.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/h.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/i.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/i.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/j.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/j.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/k.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/k.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/l.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/l.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/m.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/m.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/n.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/n.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/o.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/o.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/p.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/p.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/q.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/q.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/r.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/r.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/s.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/s.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/t.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/t.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/u.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/u.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/v.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/v.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/w.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/w.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/x.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/x.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/y.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/y.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/z.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/z.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/10DB.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/10DB.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/1K2.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/1K2.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/20DB.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/20DB.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/30DB.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/30DB.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/38K4.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/38K4.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/40DB.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/40DB.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/4K8.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/4K8.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/50DB.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/50DB.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/60DB.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/60DB.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/9K6.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/9K6.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/AGC.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/AGC.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ALC.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ALC.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ALL.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ALL.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ART.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ART.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ARTS.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ARTS.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/AUTO.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/AUTO.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/CHK.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/CHK.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/CONT.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/CONT.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/CWR.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/CWR.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/DIAL.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/DIAL.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/DOWN.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/DOWN.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/Dual.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/Dual.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ECHO.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ECHO.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/FAST.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/FAST.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/FINE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/FINE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/FREQ.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/FREQ.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/GOLF.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/GOLF.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/HIGH.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/HIGH.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/IPO.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/IPO.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/KEYS.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/KEYS.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/KILO.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/KILO.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/LIMA.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/LIMA.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/LOCK.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/LOCK.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/LOW.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/LOW.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/LSB.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/LSB.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/M10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/M10.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/M11.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/M11.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/M12.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/M12.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/MENU.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/MENU.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/MHZ.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/MHZ.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/MIKE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/MIKE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/MIN.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/MIN.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/MOD.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/MOD.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/OFF.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/OFF.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/PAPA.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/PAPA.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/REAR.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/REAR.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/RTTY.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/RTTY.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/SCAN.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/SCAN.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/SLOW.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/SLOW.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/SSB.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/SSB.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/SWR.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/SWR.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/TIRI.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/TIRI.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/TIRN.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/TIRN.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/TNRI.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/TNRI.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/TNRN.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/TNRN.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/USB.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/USB.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/VFO.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/VFO.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/VOX.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/VOX.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/XRAY.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/XRAY.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ZULU.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ZULU.wav -------------------------------------------------------------------------------- /Circuit Diagram/FT-817 Teensy-3.2.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/Circuit Diagram/FT-817 Teensy-3.2.fzz -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/9K6MIC.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/9K6MIC.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ALPHA.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ALPHA.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/AM_FM.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/AM_FM.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/AM_MIC.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/AM_MIC.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/AM_STEP.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/AM_STEP.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ANTENNA.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ANTENNA.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ANT_2M.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ANT_2M.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ANT_6M.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ANT_6M.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ANT_AIR.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ANT_AIR.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ANT_FM.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ANT_FM.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ANT_HF.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ANT_HF.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ANT_UHF.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ANT_UHF.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ATTEN.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ATTEN.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/BATTERY.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/BATTERY.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/BEEPVOL.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/BEEPVOL.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/BRAVO.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/BRAVO.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/BREAKIN.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/BREAKIN.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/CHARGE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/CHARGE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/CHARLIE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/CHARLIE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/COLOR.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/COLOR.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/COURSE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/COURSE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/CWPADD.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/CWPADD.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/CWWGHT.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/CWWGHT.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/CW_ID.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/CW_ID.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/DCS_INV.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/DCS_INV.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/DELTA.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/DELTA.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/DIGDSP.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/DIGDSP.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/DIGITAL.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/DIGITAL.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/DIGMIC.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/DIGMIC.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/DIGMODE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/DIGMODE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/DISPLAY.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/DISPLAY.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/EMERGEN.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/EMERGEN.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/EXTEND.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/EXTEND.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/FM_MIC.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/FM_MIC.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/FM_STEP.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/FM_STEP.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/FM_WIDE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/FM_WIDE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/FOXTROT.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/FOXTROT.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/FRONT.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/FRONT.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/HI_PASS.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/HI_PASS.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/HOTEL.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/HOTEL.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/INDIA.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/INDIA.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/JULIETT.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/JULIETT.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/KEYER.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/KEYER.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/MEDIUM.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/MEDIUM.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/MEMGRP.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/MEMGRP.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/MEMORY.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/MEMORY.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/MEM_TAG.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/MEM_TAG.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/MIC_KEY.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/MIC_KEY.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/MINUS.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/MINUS.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/MNSTEP.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/MNSTEP.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/Morse.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/Morse.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/NORMAL.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/NORMAL.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/NOTCH.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/NOTCH.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/OPFLTER.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/OPFLTER.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/OSCAR.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/OSCAR.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/PACKET.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/PACKET.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/PANEL.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/PANEL.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/PKT_MIC.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/PKT_MIC.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/POINT.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/POINT.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/POWER.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/POWER.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/PSK_LSB.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/PSK_LSB.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/PSK_USB.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/PSK_USB.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/QUEBEC.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/QUEBEC.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/RANGE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/RANGE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/REVERSE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/REVERSE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/RF_GAIN.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/RF_GAIN.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/RLSBCAR.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/RLSBCAR.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/ROMEO.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/ROMEO.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/RUSBCAR.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/RUSBCAR.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/SCANRES.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/SCANRES.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/SCOPE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/SCOPE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/SIERRA.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/SIERRA.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/SIGNAL.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/SIGNAL.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/SPEED.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/SPEED.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/SPLIT.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/SPLIT.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/SQLRFG.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/SQLRFG.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/SQUELCH.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/SQUELCH.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/SSB_MIC.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/SSB_MIC.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/TANGO.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/TANGO.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/TLSBCAR.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/TLSBCAR.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/TUNSPD.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/TUNSPD.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/TUSBCAR.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/TUSBCAR.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/UNIFORM.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/UNIFORM.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/VICTOR.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/VICTOR.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/VOLTS.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/VOLTS.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/WHISKEY.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/WHISKEY.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/YANKIEE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/YANKIEE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/voice.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/voice.exe -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/144A_R_S.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/144A_R_S.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/430A_R_S.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/430A_R_S.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/APO_TIME.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/APO_TIME.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/BACKLGHT.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/BACKLGHT.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/BEEPTONE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/BEEPTONE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/CAT_RATE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/CAT_RATE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/CONTRAST.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/CONTRAST.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/CW_DELAY.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/CW_DELAY.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/CW_PITCH.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/CW_PITCH.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/CW_SPEED.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/CW_SPEED.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/DCS_CODE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/DCS_CODE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/DIGSHIFT.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/DIGSHIFT.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/IF_SHIFT.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/IF_SHIFT.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/LOCKMODE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/LOCKMODE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/LOW_PASS.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/LOW_PASS.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/MIC_SCAN.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/MIC_SCAN.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/NOISEBLK.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/NOISEBLK.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/NOVEMBER.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/NOVEMBER.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/PCKTRATE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/PCKTRATE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/PRIORITY.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/PRIORITY.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/PWRMETER.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/PWRMETER.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/REPSHIFT.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/REPSHIFT.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/SIDETONE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/SIDETONE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/SSB_STEP.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/SSB_STEP.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/TONEFREQ.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/TONEFREQ.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/TOT_TIME.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/TOT_TIME.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/USER_LSB.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/USER_LSB.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/USER_USB.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/USER_USB.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/VFO_MODE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/VFO_MODE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/VOXDELAY.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/VOXDELAY.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/VOX_GAIN.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/VOX_GAIN.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/G_I_1_M_I_C.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/G_I_1_M_I_C.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/MORSE_DECODE.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/MORSE_DECODE.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/PASS_THROUGH.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/PASS_THROUGH.wav -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/sr-convert.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/SD Files/sr-convert.exe -------------------------------------------------------------------------------- /Circuit Diagram/Inline Audio DSP Teensy-3.2.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/Circuit Diagram/Inline Audio DSP Teensy-3.2.fzz -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/AudioSampleWavdual.h: -------------------------------------------------------------------------------- 1 | // Audio data converted from WAV file by wav2sketch 2 | 3 | extern const unsigned int AudioSampleWavdual[2513]; 4 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/AudioSampleWavssb.h: -------------------------------------------------------------------------------- 1 | // Audio data converted from WAV file by wav2sketch 2 | 3 | extern const unsigned int AudioSampleWavssb[3001]; 4 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/AudioSampleWavhipass.h: -------------------------------------------------------------------------------- 1 | // Audio data converted from WAV file by wav2sketch 2 | 3 | extern const unsigned int AudioSampleWavhipass[3161]; 4 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/AudioSampleWavmorse.h: -------------------------------------------------------------------------------- 1 | // Audio data converted from WAV file by wav2sketch 2 | 3 | extern const unsigned int AudioSampleWavmorse[2777]; 4 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/Code Audio Files/sr-convert.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/Code Audio Files/sr-convert.exe -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/Code Audio Files/wav2sketch.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gi1mic/19Dollar-DSP-Filter/HEAD/GI1MIC-DSP-Filter/Code Audio Files/wav2sketch.exe -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | FAQ 2 | === 3 | 4 | 5 | Visit https://gi1mic.github.io/ for information on how to use this project. 6 | 7 | I'll move this into a Wiki over time. 8 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/AudioSampleWavlowpass.h: -------------------------------------------------------------------------------- 1 | // Audio data converted from WAV file by wav2sketch 2 | 3 | extern const unsigned int AudioSampleWavlowpass[3209]; 4 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/AudioSampleWavpassthru.h: -------------------------------------------------------------------------------- 1 | // Audio data converted from WAV file by wav2sketch 2 | 3 | extern const unsigned int AudioSampleWavpassthru[3161]; 4 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/configSpeak.h: -------------------------------------------------------------------------------- 1 | #ifndef CONFIGSPEAK_H 2 | #define CONFIGSPEAK_H 3 | 4 | void initConfigSpeak(); 5 | void serviceConfigSpeak(); 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/AudioSampleWavmorsedecode.h: -------------------------------------------------------------------------------- 1 | // Audio data converted from WAV file by wav2sketch 2 | 3 | extern const unsigned int AudioSampleWavmorsedecode[3457]; 4 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/Code Audio Files/AudioSampleWavssb.h: -------------------------------------------------------------------------------- 1 | // Audio data converted from WAV file by wav2sketch 2 | 3 | extern const unsigned int AudioSampleWavssb[3001]; 4 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/Code Audio Files/AudioSampleWavdual.h: -------------------------------------------------------------------------------- 1 | // Audio data converted from WAV file by wav2sketch 2 | 3 | extern const unsigned int AudioSampleWavdual[2513]; 4 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/Code Audio Files/AudioSampleWavmorse.h: -------------------------------------------------------------------------------- 1 | // Audio data converted from WAV file by wav2sketch 2 | 3 | extern const unsigned int AudioSampleWavmorse[2777]; 4 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/Code Audio Files/AudioSampleWavhipass.h: -------------------------------------------------------------------------------- 1 | // Audio data converted from WAV file by wav2sketch 2 | 3 | extern const unsigned int AudioSampleWavhipass[3161]; 4 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/Code Audio Files/AudioSampleWavlowpass.h: -------------------------------------------------------------------------------- 1 | // Audio data converted from WAV file by wav2sketch 2 | 3 | extern const unsigned int AudioSampleWavlowpass[3209]; 4 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/Code Audio Files/AudioSampleWavpassthru.h: -------------------------------------------------------------------------------- 1 | // Audio data converted from WAV file by wav2sketch 2 | 3 | extern const unsigned int AudioSampleWavpassthru[3161]; 4 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/Code Audio Files/AudioSampleWavmorsedecode.h: -------------------------------------------------------------------------------- 1 | // Audio data converted from WAV file by wav2sketch 2 | 3 | extern const unsigned int AudioSampleWavmorsedecode[3457]; 4 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/morseDecode.h: -------------------------------------------------------------------------------- 1 | #ifndef MORSE_H 2 | #define MORSE_H 3 | 4 | #include "settings.h" 5 | 6 | // Function prototypes 7 | void morseInit(); 8 | void morseKeyUp(); 9 | void morseKeyDown(); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/cat.h: -------------------------------------------------------------------------------- 1 | #ifndef CAT_H 2 | #define CAT_H 3 | 4 | // Since we have a spare serial port we may as well use the USB port to 5 | // connect to the rigs CAT interface. 6 | // This code uses Serial2 which are pins 9 RX and 10 TX on a Teensy 3.2 7 | 8 | 9 | // Function prototypes 10 | void initCAT(); 11 | void serviceCAT(); 12 | 13 | #endif 14 | 15 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/cat.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "settings.h" 3 | #include "cat.h" 4 | 5 | 6 | void initCAT(){ 7 | #ifdef CAT 8 | Serial2.begin(CAT_BAUD, SERIAL_8N2); 9 | #endif 10 | } 11 | 12 | 13 | void serviceCAT() { 14 | #ifdef CAT 15 | // USB->CAT 16 | int c = Serial.read(); // read from USB 17 | if (c != -1) { // got anything? 18 | Serial2.write(c); // Yes write char to UART (CAT) 19 | } 20 | 21 | // CAT -> USB 22 | c = Serial2.read(); // read from UART 23 | if (c != -1) { // got anything? 24 | Serial.write(c); // Yes write ro USB 25 | } 26 | #endif 27 | } 28 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 GI1MIC 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/Code Audio Files/convert.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | :: Create embedded voice prompts for the GI1MIC open source DSP project 3 | 4 | 5 | sr-convert.exe "..\SD Files\DUAL.wav" - wavDual.wav 11025 6 | sr-convert.exe "..\SD Files\HI_PASS.wav" - wavHipass.wav 11025 7 | sr-convert.exe "..\SD Files\LOW_PASS.wav" - wavLowpass.wav 11025 8 | sr-convert.exe "..\SD Files\MORSE.wav" - wavMorse.wav 11025 9 | sr-convert.exe "..\SD Files\MORSE_DECODE.wav" - wavMorsedecode.wav 11025 10 | sr-convert.exe "..\SD Files\PASS_THROUGH.wav" - wavPassthru.wav 11025 11 | sr-convert.exe "..\SD Files\SSB.wav" - wavSSB.wav 11025 12 | 13 | wav2sketch.exe 14 | del *.wav 15 | 16 | exit 17 | 18 | 19 | move AudioSampleWavdual.cpp wavdual.cpp 20 | move AudioSampleWavdual.h wavdual.h 21 | move AudioSampleWavHipass.cpp wavHipass.cpp 22 | move AudioSampleWavHipass.h wavHipass.h 23 | move AudioSampleWavLowpass.cpp wavLowpass.cpp 24 | move AudioSampleWavLowpass.h wavLowpass.h 25 | move AudioSampleWavMorse.cpp wavMorse.cpp 26 | move AudioSampleWavMorse.h wavMorse.h 27 | move AudioSampleWavMorsedecode.cpp wavMorsedecode.cpp 28 | move AudioSampleWavMorsedecode.h wavMorsedecode.h 29 | move AudioSampleWavPassthru.cpp wavPassthru.cpp 30 | move AudioSampleWavPassthru.h wavPassthru.h 31 | move AudioSampleWavSSB.cpp wavSSB.cpp 32 | move AudioSampleWavSSB.h wavSSB.h 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/dynamicFilters.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------- 2 | /* 3 | Windowed Sinc FIR Generator 4 | Bob Maling (BobM.DSP@gmail.com) 5 | Contributed to musicdsp.org Source Code Archive 6 | Last Updated: April 12, 2005 7 | 8 | http://www.musicdsp.org/showone.php?id=194 9 | 10 | Usage: 11 | Lowpass: wsfirLP(h, N, WINDOW, fc) 12 | Highpass: wsfirHP(h, N, WINDOW, fc) 13 | Bandpass: wsfirBP(h, N, WINDOW, fc1, fc2) 14 | Bandstop: wsfirBS(h, N, WINDOW, fc1, fc2) 15 | 16 | where: 17 | h (double[N]): filter coefficients will be written to this array 18 | N (int): number of taps 19 | WINDOW (int): Window (W_BLACKMAN, W_HANNING, or W_HAMMING) 20 | fc (double): cutoff (0 < fc < 0.5, fc = f/fs) 21 | --> for fs=48kHz and cutoff f=12kHz, fc = 12k/48k => 0.25 22 | 23 | fc1 (double): low cutoff (0 < fc < 0.5, fc = f/fs) 24 | fc2 (double): high cutoff (0 < fc < 0.5, fc = f/fs) 25 | 26 | 27 | Windows included here are Blackman, Hanning, and Hamming. Other windows can be 28 | added by doing the following: 29 | 1. "Window type constants" section: Define a global constant for the new window. 30 | 2. wsfirLP() function: Add the new window as a case in the switch() statement. 31 | 3. Create the function for the window 32 | 33 | For windows with a design parameter, such as Kaiser, some modification 34 | will be needed for each function in order to pass the parameter. 35 | */ 36 | #ifndef WSFIR_H 37 | #define WSFIR_H 38 | 39 | // Filter selection pin (Toggle low to select next) 40 | #define SELECT_PIN 0 41 | 42 | 43 | // ID's for the different types of filters 44 | #define ID_LOWPASS 1 45 | #define ID_HIGHPASS 2 46 | #define ID_BANDPASS 3 47 | #define ID_BANDSTOP 4 48 | 49 | 50 | // ID's for window type contstants 51 | const int W_BLACKMAN = 1; 52 | const int W_HANNING = 2; 53 | const int W_HAMMING = 3; 54 | 55 | 56 | // Function prototypes 57 | void audioFilter(short h[], const int &N, const int &TYPE, const int &WINDOW, const double &fc1, const double &fc2); 58 | void bandpass(short h[], const int &N, const int &WINDOW, const double &fc1, const double &fc2); 59 | void wsfirLP(double h[], const int &N, const int &WINDOW, const double &fc); 60 | void wsfirHP(double h[], const int &N, const int &WINDOW, const double &fc); 61 | void wsfirBS(double h[], const int &N, const int &WINDOW, const double &fc1, const double &fc2); 62 | void wsfirBP(double h[], const int &N, const int &WINDOW, const double &fc1, const double &fc2); 63 | void genSinc(double sinc[], const int &N, const double &fc); 64 | void wBlackman(double w[], const int &N); 65 | void wHanning(double w[], const int &N); 66 | void wHamming(double w[], const int &N); 67 | 68 | 69 | #endif 70 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/SD Files/makeWavFiles.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | :: Create voice prompts for GI1MIC open source DSP project 3 | :: Manually replace spaces in the created file names with underscores 4 | :: 5 | :: See https://www.elifulkerson.com/projects/commandline-text-to-speech.php for voice.exe 6 | :: See http://sr-convert.sourceforge.net/ for sr-convert 7 | setlocal enabledelayedexpansion 8 | DEL *.WAV 9 | set LIST={ ALPHA BRAVO CHARLIE DELTA ECHO FOXTROT GOLF HOTEL INDIA JULIETT KILO LIMA MIKE NOVEMBER OSCAR PAPA QUEBEC ROMEO SIERRA TANGO UNIFORM VICTOR WHISKEY XRAY YANKIEE ZULU MORSE "MORSE DECODE" "G I 1 M I C" DUAL "LOW PASS" "HI PASS" "PASS THROUGH" "NOTCH" A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 10DB 20DB 30DB 40DB 50DB 60DB SIGNAL POWER SWR ALC MOD LSB USB CW CWR AM "FM WIDE" FM DIGITAL PACKET POINT MHZ A B OFF ON NORMAL REVERSE AUTO FAST SLOW MEMORY VFO FRONT REAR HIGH MEDIUM LOW MIN UP DOWN AGC "NOISE BLANKER" LOCK SPEED "CW PADDLE" M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 "OP FILTER" SQLRFG "RF GAIN" SQUELCH VOX "VOX GAIN" "VOX DELAY" "LOCK MODE" DIAL PANEL "DIGITAL MODE" RTTY "PSK USB" "PSK LSB" "USER USB" "USER LSB" KEYER BREAKIN "BEEP VOLUME" "BEEP TONE" "SSB MIC" "AM MIC" "FM MIC" "DIGITAL MIC" "PKT MIC" "BATTERY CHARGE" "VFO MODE" CONTRAST COLOR "BACK LIGHT" "SCAN RESUME" "PACKET RATE" SCOPE CONT CHK "CW ID" "CW PITCH" "CW SPEED" "MAIN STEP" COURSE FINE "ARTS BEEP" RANGE ALL FREQ "430A R S" "144A R S" "CW DELAY" "AM FM" EMERGENCY "CAT RATE" 4K8 9K6 38K4 "APO TIME" "MEMORY GROUP" "TOT TIME" "DCS INV" "MIC KEY" "MIC SCAN" 9K6MIC "DIGITAL SHIFT" "AM STEP" ANTENNA ID RLSBCAR RUSBCAR TLSBCAR TUSBCAR "CW WEIGHT" "DCS CODE" "DIGITAL DISPLAY" "FM STEP" "MEM TAG" "REPEATER SHIFT" SIDETONE "SSB STEP" "TONE FREQUENCY" EXTEND MENU KEYS 1K2 DW PRIORITY SCAN ART "POWER METER" VOLTS DISPLAY SSB CHARGE MINUS SPLIT "IF SHIFT" IPO ATTENUATION "ANTENNA HF" "ANTENNA 6M" "ANTENNA FM" "ANTENNA AIR" "ANTENNA 2M" "ANTENNA UHF" TNRN TNRI TIRN TIRI TUNSPD } 10 | 11 | 12 | :: deletes the parentheses from LIST 13 | set _list=%LIST:~1,-1% 14 | for %%G in (%_list%) do call :processParam %%G 15 | goto:End 16 | 17 | :processParam 18 | @echo off 19 | set Z=%1 20 | set F=%z: =_% 21 | echo %Z% 22 | echo %F% 23 | 24 | voice --mono --8bit --khz 48 -r 3 -f -o %F%.tmp %Z% 25 | sr-convert %F%.tmp 48000 %F%.wav 44100 26 | 27 | goto:eof 28 | 29 | :End 30 | 31 | del *.tmp 32 | 33 | rem Fixup long filenames - filenames must match the array in the code! 34 | MOVE ANTENNA_HF.WAV ANT_HF.wav 35 | move ANTENNA_6M.wav ANT_6M.wav 36 | move ANTENNA_FM.wav ANT_FM.wav 37 | move ANTENNA_AIR.wav ANT_AIR.wav 38 | move ANTENNA_2M.wav ANT_2M.wav 39 | move ANTENNA_UHF.wav ANT_UHF.wav 40 | move ARTS_BEEP.wav ARTS.wav 41 | move BACK_LIGHT.wav BACKLGHT.wav 42 | move BATTERY_CHARGE.wav BATTERY.wav 43 | move BEEP_TONE.wav BEEPTONE.wav 44 | move BEEP_VOLUME.wav BEEPVOL.wav 45 | move DIGITAL_DISPLAY.wav DIGDSP.wav 46 | move DIGITAL_MIC.wav DIGMIC.wav 47 | move EMERGENCY.wav EMERGEN.wav 48 | move LOCK_MODE.wav LOCKMODE.wav 49 | move MEMORY_GROUP.wav MEMGRP.wav 50 | move PACKET_RATE.wav PCKTRATE.wav 51 | move SCAN_RESUME.wav SCANRES.wav 52 | move TONE_FREQUENCY.wav TONEFREQ.wav 53 | move NOISE_BLANKER.wav NOISEBLK.wav 54 | move POWER_METER.wav PWRMETER.wav 55 | move ATTENUATION.wav ATTEN.wav 56 | move OP_FILTER.wav OPFLTER.wav 57 | move CW_PADDLE.wav CWPADD.wav 58 | move CW_WEIGHT.wav CWWGHT.wav 59 | move DIGITAL_MODE.wav DIGMODE.wav 60 | move MAIN_STEP.wav MNSTEP.wav 61 | move VOX_DELAY.wav VOXDELAY.wav 62 | move DIGITAL_SHIFT.wav DIGSHIFT.wav 63 | move REPEATER_SHIFT.wav REPSHIFT.wav 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/settings.h: -------------------------------------------------------------------------------- 1 | // Define FT817 to compile code for Teensy 3.2 installed inside FT817 using ADC and DAC for audio. 2 | // Uncomment to use with amplified speaker this enables pullups for filter selection via a button 3 | // and also sets the audio inputs/outputs to use a Teensy Audio Board. 4 | #define FT817 5 | //#define SDCARD // Undefine to use the SD card on a "Teensy WIZ820IO Ethernet & Micro SD Card Adaptor" 6 | 7 | 8 | // Replace with your callsign or comment out to stop spoken callsign on boot 9 | #define CALLSIGN "GI1MIC" 10 | 11 | 12 | // Uncoment the following to allow speech assisted opperation of the rig. 13 | // This feature requires a SD card to hold the WAV files 14 | // Checkout http://www.sarcnet.org/files/Rachel/Rachel.pdf for org project details 15 | //#define SPEECHCONFIG 16 | #define METERSPIN 22 //Meters switch pin.Press it to speak the meter values 17 | #define CONFIGPIN 23 //Config switch pin. Press it to speak all menu settings 18 | 19 | // Uncomment to enable debug information doe not use with CAT! 20 | // DEBUG mode will also enable the onboard LED to showing tone detection for morse code 21 | #define DEBUG 22 | 23 | // Display the calculated filter coeff in .coe format for import into MATLAB - do not use with CAT 24 | // #define SHOWCOEFF 25 | 26 | // Number of coefficients. Must be an even number, 4 or higher and no greater than 200 27 | // To compile for a CPU Speed of 24Mhz it will be necessary to reduce this value to a 28 | // value of around 120. Running at 24Mhz reduces power consumption of the Teensy to ~20ma 29 | // Lower values reduce the quality of the filter and will require less CPU effort. 30 | // 31 | // To use more than 200 coefficients you have to change the "#define FIR_MAX_COEFFS" in the 32 | // Teensy audio library source. This is located in 33 | // C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\Audio\filter_fir.h 34 | #define NUM_COEFFICIENTS 200 35 | 36 | 37 | // Display performance information - do not use with CAT 38 | // #define SHOWPERF 39 | 40 | // Uncomment to enable morse to speech decode. This feature requires a SD card plus WAV files 41 | //#define DECODER 42 | #define DECODER_SERIAL //allows morse the decoded morse to be viewable via USB. Do not enable with CAT! 43 | 44 | 45 | // Enable USB -> CAT Interface for rig control. CAT interface should be connected to Serial2 46 | // which uses pin9 for RX and pin 10 for TX. See "cat.h" for more info 47 | // Do not try to use the CAT interface with the follow enabled DEBUG, SHOWCOEFF, SHOWPERF or DECODER_SERIAL 48 | // #define CAT 49 | 50 | // Set to match rigs CAT Rate 51 | #define CAT_BAUD 38400 52 | 53 | #ifdef FT817 54 | // You may need to tweak these settings 55 | #define TONETHRESHOLD 0.02 // Minimum tone level 56 | #define TONEFREQUENCY 600 // Frequency of the tone we are trying to detect 57 | #define TONEDURATION 8 // Number of tone cycles required for detection like the noise filter in org code 58 | #define DECODE_COEFF 20 // Number of coefficients to use for the morse decode filter 59 | #define MORSE_LED 13 // Onboard LED used to show morse tone dectection 60 | #else 61 | // You may need to tweak these settings 62 | #define TONETHRESHOLD 0.04 // Minimum tone level 63 | #define TONEFREQUENCY 600 // Frequency of the tone we are trying to detect 64 | #define TONEDURATION 16 // Number of tone cycles required for detection like the noise filter in org code 65 | #define DECODE_COEFF 20 // Number of coefficients to use for the morse decode filter 66 | #define MORSE_LED 15 // External LED used to show morse tone dectection as onboard conflicts with audio shield 67 | #endif 68 | 69 | 70 | // This is for a yet to be implemented twin passband filter mode which will require two rotary encoders 71 | // #define TPB 72 | 73 | #define ENCODER1a 1 // Rotary encoder one attached to pins 74 | #define ENCODER1b 2 75 | #define ENCODER1s 3 // Rotary encoder one sw input pin 76 | 77 | #define ENCODER2a 4 // Rotary encoder two attached to pins 78 | #define ENCODER2b 5 79 | #define ENCODER2s 6 // Rotary two encoder sw input pin 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/speech.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "settings.h" 3 | #include "speech.h" 4 | 5 | #ifdef SDCARD 6 | extern AudioPlaySdWav audioPromptSD; 7 | extern AudioPlayMemory audioPrompt; 8 | extern AudioMixer4 audioOutputMixer; 9 | #else 10 | #include 11 | Talkie voice; 12 | extern AudioPlayMemory audioPrompt; 13 | extern AudioMixer4 audioOutputMixer; 14 | 15 | /* 16 | * This is the Morse letter to speech lookup table 17 | * it is in the same order as the "mySet[]" array 18 | * ##TEMNAIOGKDWRUS##QZYCXBJP#L#FVH09#8###7#####/-61#######2###3#45 19 | */ 20 | //const uint8_t* speechLookup[] = { 21 | // NULL, NULL, spT, spE, spM, 22 | // spN, spA, spI, spO, spG, 23 | // spK, spD, spW, spR, spU, 24 | // spS, NULL, NULL, spQ, spZ, 25 | // spY, spC, spX, spB, spJ, 26 | // spP, NULL, spL, NULL, spF, 27 | // spV, spH, spZERO, spNINE, NULL, 28 | // spEIGHT, NULL, NULL, NULL, spSEVEN, 29 | // NULL, NULL, NULL, NULL, NULL, 30 | // spOPERATOR, spMINUS, spSIX, spONE, NULL, 31 | // NULL, NULL, NULL, NULL, NULL, 32 | // NULL, spTWO, NULL, NULL, NULL, 33 | // spTHREE, NULL, spFOUR, spFIVE 34 | //}; 35 | 36 | 37 | const uint8_t* ascii2lpc[] = { 38 | NULL, NULL, NULL, NULL, NULL, //0 39 | NULL, NULL, NULL, NULL, NULL, //5 40 | NULL, NULL, NULL, spMINUS,NULL, //10 41 | NULL, NULL, NULL, NULL, NULL, //15 42 | NULL, NULL, NULL, NULL, NULL, //20 43 | NULL, NULL, NULL, NULL, NULL, //25 44 | NULL, NULL, NULL, NULL, NULL, //30 45 | NULL, NULL, NULL, NULL, NULL, //35 46 | NULL, NULL, NULL, NULL, NULL, //40 47 | NULL, NULL, spOPERATOR,spZERO, spONE, //45 48 | spTWO, spTHREE, spFOUR, spFIVE, spSIX, //50 49 | spSEVEN, spEIGHT, spNINE, NULL, NULL, //55 50 | NULL, NULL, NULL, NULL, NULL, //60 51 | spA, spB, spC, spD, spE, //65 52 | spF, spG, spH, spI, spJ, //70 53 | spK, spL, spM, spN, spO, //75 54 | spP, spQ, spR, spS, spT, //80 55 | spU, spV, spW, spX, spY, //85 56 | spZ, NULL, NULL, NULL, NULL, //90 57 | NULL, NULL, spA, spB, spC, //95 58 | spD, spE, spF, spG, spH, //100 59 | spI, spJ, spK, spL, spM, //105 60 | spN, spO, spP, spQ, spR, //110 61 | spS, spT, spU, spV, spW, //115 62 | spX, spY, spZ, NULL, NULL, //120 63 | }; 64 | 65 | #endif 66 | 67 | 68 | //--------------------------------------------------------------------------------- 69 | void speakChar(char c) { 70 | #ifndef SDCARD // Use LPC to say the character 71 | voice.say(ascii2lpc[(int)c]); 72 | #else // Otherwise we can use WAV files stored on a SD card 73 | char s[15]; 74 | if (c == '/') { 75 | strcpy(s,"slash.wav"); 76 | } else if (c == '-') { 77 | strcpy(s,"hyphen.wav"); 78 | } else { 79 | strcpy(s,"X.wav"); // Setup dummy filename X 80 | s[0] = toupper(c); // Replace X with our actual char 81 | } 82 | speakSD(s); 83 | #endif 84 | } 85 | 86 | 87 | //--------------------------------------------------------------------------------- 88 | void speakChars(const char callsign[]) { 89 | for (unsigned int i = 0; i < strlen(callsign) ; i++) { 90 | speakChar(callsign[i]); 91 | }; 92 | } 93 | //--------------------------------------------------------------- 94 | void speak(const unsigned int* audioSample) { 95 | lowerRadio(); 96 | audioPrompt.play(audioSample); 97 | do {delay(10);} while (audioPrompt.isPlaying()); 98 | unMuteRadio(); 99 | } 100 | 101 | 102 | //--------------------------------------------------------------- 103 | void speakSD(const char *filename) { 104 | #ifdef SDCARD 105 | #ifdef DEBUG 106 | Serial.println(filename); 107 | #endif 108 | audioPromptSD.play(filename); 109 | delay(3); // This delay is important! 110 | while (audioPromptSD.isPlaying()) { 111 | delay(5); 112 | }; 113 | #endif 114 | } 115 | 116 | 117 | //--------------------------------------------------------------- 118 | void muteRadio() { 119 | audioOutputMixer.gain(0, 0.0); // Mute radio audio 120 | } 121 | 122 | //--------------------------------------------------------------- 123 | void unMuteRadio() { 124 | audioOutputMixer.gain(0, 1.0); // Unmute radio audio 125 | } 126 | //--------------------------------------------------------------- 127 | void lowerRadio() { 128 | audioOutputMixer.gain(0, 0.1); // Lower the radio volume to allow speach at same time 129 | } 130 | 131 | 132 | // Speech FIFO 133 | #define SPEECH_BUF_SZ 8 134 | char speechBuffer[SPEECH_BUF_SZ]; 135 | int speechReadPointer = 0; 136 | int speechWritePointer = 0; 137 | int speechCount = 0; 138 | 139 | 140 | //--------------------------------------------------------------------- 141 | void speechBuffer_push(char c) { 142 | 143 | if (speechCount >= SPEECH_BUF_SZ - 1) // If we are about to overflow the buffer, drop the char 144 | return; 145 | speechCount++; 146 | speechBuffer[speechWritePointer++] = c; 147 | speechWritePointer &= (SPEECH_BUF_SZ - 1); 148 | } 149 | 150 | //--------------------------------------------------------------------- 151 | char speechBuffer_pull() { 152 | speechReadPointer &= (SPEECH_BUF_SZ - 1); 153 | speechCount--; 154 | return speechBuffer[speechReadPointer++]; 155 | } 156 | 157 | //--------------------------------------------------------------------- 158 | // Returns TRUE when buffer empty 159 | bool speech_buffer_empty(void) { 160 | if(0 == speechCount) { 161 | return true; 162 | } 163 | return false; 164 | } 165 | 166 | //--------------------------------------------------------------------- 167 | // Stop all buffered playback 168 | void speech_Buffer_flush(void) { 169 | speechReadPointer = speechWritePointer; 170 | } 171 | 172 | //--------------------------------------------------------------------- 173 | // If the speech buffer is empty return or the audio system is busy - just return 174 | // else read the next char in the buffer and start playing it. 175 | void serviceSpeech() { 176 | #ifdef SDCARD 177 | if ( speech_buffer_empty() || audioPromptSD.isPlaying()) 178 | return; 179 | 180 | char c = speechBuffer_pull(); 181 | char s[15]; 182 | if (c == '/') { 183 | strcpy(s,"slash.wav"); 184 | } else if (c == '-') { 185 | strcpy(s,"hyphen.wav"); 186 | } else { 187 | strcpy(s,"X.wav"); // Setup dummy filename X.wav 188 | s[0] = tolower(c); // Replace X with our actual char 189 | } 190 | audioPromptSD.play(s); 191 | delay(3); // The delay is important! 192 | #endif 193 | } 194 | 195 | 196 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/dspfilter.h: -------------------------------------------------------------------------------- 1 | #ifndef DSPFILTER_H 2 | #define DSPFILTER_H 3 | 4 | #include "settings.h" 5 | 6 | #include "AudioSampleWavdual.h" 7 | #include "AudioSampleWavhipass.h" 8 | #include "AudioSampleWavlowpass.h" 9 | #include "AudioSampleWavmorse.h" 10 | #include "AudioSampleWavmorsedecode.h" 11 | #include "AudioSampleWavpassthru.h" 12 | #include "AudioSampleWavssb.h" 13 | 14 | /* 15 | * Note: The code below is automatically generated by the Teensy Audio Design tool 16 | * at https://www.pjrc.com/teensy/gui/index.html - while it can be edited by hand 17 | * the tool can re-import the code. 18 | */ 19 | 20 | #ifdef FT817 21 | //--------------------------------------------------------------------------------- 22 | // GUItool: begin automatically generated code 23 | AudioInputUSB inPC; //xy=180.49998474121094,371.433349609375 24 | AudioInputAnalog audioInput; //xy=191.49998474121094,120.43333435058594 25 | AudioPlayMemory audioPrompt; //xy=195.49998474121094,211.43333435058594 26 | AudioPlaySdWav audioPromptSD; //xy=201.5,295.433349609375 27 | AudioFilterFIR myFilter; //xy=490.49998474121094,119.43333435058594 28 | AudioMixer4 audioOutputMixer; //xy=815.4999847412109,222.43333435058594 29 | AudioOutputUSB outPC; //xy=1092.499984741211,313.43333435058594 30 | AudioAnalyzePeak audioInputPeak; //xy=1106.499984741211,164.43333435058594 31 | AudioAnalyzeToneDetect toneDetect; //xy=1107.499984741211,113.43333435058594 32 | AudioOutputAnalog audioOutput; //xy=1108.499984741211,219.43333435058594 33 | AudioConnection patchCord1(inPC, 0, audioOutputMixer, 3); 34 | AudioConnection patchCord2(audioInput, myFilter); 35 | AudioConnection patchCord3(audioPrompt, 0, audioOutputMixer, 1); 36 | AudioConnection patchCord4(audioPromptSD, 0, audioOutputMixer, 2); 37 | AudioConnection patchCord5(myFilter, 0, audioOutputMixer, 0); 38 | AudioConnection patchCord6(myFilter, toneDetect); 39 | AudioConnection patchCord7(myFilter, audioInputPeak); 40 | AudioConnection patchCord8(audioOutputMixer, audioOutput); 41 | AudioConnection patchCord9(audioOutputMixer, 0, outPC, 0); 42 | AudioConnection patchCord10(audioOutputMixer, 0, outPC, 1); 43 | // GUItool: end automatically generated code 44 | 45 | //--------------------------------------------------------------------------------- 46 | 47 | #else 48 | 49 | //--------------------------------------------------------------------------------- 50 | // GUItool: begin automatically generated code 51 | AudioInputUSB audioInPC; //xy=156.43333435058594,458 52 | AudioInputI2S audioInput; //xy=159.43333435058594,155 53 | AudioPlayMemory audioPrompt; //xy=166.43333435058594,308 54 | AudioPlaySdWav audioPromptSD; //xy=175.43333435058594,374 55 | AudioMixer4 monoMixer; //xy=367.43333435058594,169 56 | AudioFilterFIR myFilter; //xy=549.4333343505859,226 57 | AudioMixer4 audioOutputMixer; //xy=803.4333343505859,344 58 | AudioAnalyzeToneDetect toneDetect; //xy=1120.433334350586,230 59 | AudioAnalyzePeak audioInputPeak; //xy=1126.433334350586,110 60 | AudioOutputUSB audioOutPC; //xy=1125.433334350586,367 61 | AudioAnalyzeFFT256 toneDetect2; //xy=1127.433334350586,165 62 | AudioOutputI2S audioOutput; //xy=1128.433334350586,311 63 | AudioConnection patchCord1(audioInPC, 0, audioOutputMixer, 3); 64 | AudioConnection patchCord2(audioInput, 0, monoMixer, 0); 65 | AudioConnection patchCord3(audioInput, 1, monoMixer, 1); 66 | AudioConnection patchCord4(audioPrompt, 0, audioOutputMixer, 1); 67 | AudioConnection patchCord5(audioPromptSD, 0, audioOutputMixer, 2); 68 | AudioConnection patchCord6(monoMixer, myFilter); 69 | AudioConnection patchCord7(monoMixer, audioInputPeak); 70 | AudioConnection patchCord8(monoMixer, toneDetect2); 71 | AudioConnection patchCord9(monoMixer, toneDetect); 72 | AudioConnection patchCord10(myFilter, 0, audioOutputMixer, 0); 73 | AudioConnection patchCord11(audioOutputMixer, 0, audioOutput, 0); 74 | AudioConnection patchCord12(audioOutputMixer, 0, audioOutPC, 0); 75 | AudioConnection patchCord13(audioOutputMixer, 0, audioOutPC, 1); 76 | AudioConnection patchCord14(audioOutputMixer, 0, audioOutput, 1); 77 | AudioControlSGTL5000 audioControl; //xy=1119.433334350586,430 78 | // GUItool: end automatically generated code 79 | //--------------------------------------------------------------------------------- 80 | #endif 81 | 82 | // FIR filter selection (Toggle low to select next) 83 | #define SELECT_PIN 0 84 | 85 | // Pin used for Morse tone detect LED (Do not use the onboard LED with the Audio Shield) 86 | #define LED 15 // Set to 13 for onboard LED 87 | 88 | // User defined filters ID's 89 | #define PASSTHRU 0 90 | #define MORSE 1 91 | #define SSB 2 92 | #define LOW_PASS 3 93 | #define HI_PASS 4 94 | #define DYNAMIC 5 95 | #define MORSEDECODE 6 96 | #define DUAL 7 97 | 98 | 99 | 100 | // Single filter structure 101 | struct filter { 102 | const short int filterID; 103 | const short int filterType; 104 | double freqLow; 105 | double freqHigh; 106 | const short int window; // Windows included are Blackman, Hanning, and Hamming 107 | const short int coeff; 108 | const unsigned int *audioSample; // Embedded speech or 109 | const String filterName[25]; // Filename of WAV file on SD card 110 | }; 111 | 112 | /* 113 | * Structure to hold the required filters (Add, delete or modify as required) 114 | * 115 | * ID, FilterType, Low Freq, Hi Freq, Window, FilterName 116 | */ 117 | struct filter filterList[] = { 118 | {MORSE, ID_BANDPASS, 450.0, 950.0, W_HAMMING, NUM_COEFFICIENTS, AudioSampleWavmorse, "MORSE.wav"}, 119 | #ifdef DECODER 120 | {MORSEDECODE, ID_BANDPASS, 450.0, 950.0, W_HAMMING, DECODE_COEFF, AudioSampleWavmorsedecode,"MORSE_DECODE.wav"}, // special case see extra code 121 | #endif 122 | {LOW_PASS, ID_LOWPASS, 1000.0, 0.0, W_HAMMING, NUM_COEFFICIENTS, AudioSampleWavlowpass, "LOW_PASS.wav"}, 123 | {HI_PASS, ID_HIGHPASS, 1000.0, 0.0, W_HAMMING, NUM_COEFFICIENTS, AudioSampleWavhipass, "HI_PASS.wav"}, 124 | {SSB, ID_BANDPASS, 300.0, 2700.0, W_HAMMING, NUM_COEFFICIENTS, AudioSampleWavssb, "SSB.wav"}, 125 | #ifdef TPB 126 | {DUAL, ID_BANDPASS, 450.0, 950.0, W_HAMMING, NUM_COEFFICIENTS, AudioSampleWavdual,"DUAL.wav"}, // special case see extra code 127 | #endif 128 | {PASSTHRU, ID_BANDPASS, 60.0, 20000.0, W_HAMMING, NUM_COEFFICIENTS, AudioSampleWavpassthru, "PASS_THROUGH.wav"} 129 | }; 130 | 131 | unsigned int filterIndex = 0; // index to currently selected filter above 132 | Bounce filterSelect = Bounce(SELECT_PIN, 15); // debounce the filter switching pin 133 | 134 | short fir_active1[200]; // 1st DSP filter array holding the coefficient as 32bit (short) 135 | 136 | /* 137 | * These define the Teensy Audio Shield interface 138 | */ 139 | 140 | 141 | #if defined(FT817) && defined(SDCARD) 142 | #define SDCARD_CS_PIN 4 143 | #define SDCARD_MOSI_PIN 12 144 | #define SDCARD_SCK_PIN 13 145 | #else 146 | #define SDCARD_CS_PIN 10 147 | #define SDCARD_MOSI_PIN 7 148 | #define SDCARD_SCK_PIN 14 149 | #endif 150 | 151 | Sd2Card card; 152 | 153 | 154 | /* 155 | * Rotary encoder allows modification of the filters 156 | */ 157 | Encoder knob(ENCODER1a, ENCODER1b); 158 | long kPosition = 0; 159 | 160 | unsigned long last_time = millis(); // Timer var used for debugging 161 | 162 | 163 | #endif 164 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/morseDecode.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "settings.h" 4 | #include "morseDecode.h" 5 | #include "speech.h" 6 | /* 7 | * The following code is a modified version of WB7FHC's code so: 8 | * 9 | ********************************************************************** 10 | * 11 | * 12 | * WB7FHC's Simple Morse Code Decoder 13 | * (c) 2015, Budd Churchward - WB7FHC 14 | * This is an Open Source Project 15 | * http://opensource.org/licenses/MIT 16 | * 17 | * Search YouTube for 'WB7FHC' to see several videos of this project 18 | * as it was developed. 19 | * 20 | * MIT license, all text above must be included in any redistribution 21 | *********************************************************************** 22 | * 23 | */ 24 | 25 | bool ditOrDah = true; // We have either a full dit or a full dah 26 | int dit = 10; // We start by defining a dit as 10 milliseconds 27 | 28 | // The following values will auto adjust to the sender's speed 29 | int averageDah = 100; // A dah should be 3 times as long as a dit 30 | int averageWordGap = averageDah; // will auto adjust 31 | long fullWait = 6000; // The time between letters 32 | long waitWait = 6000; // The time between dits and dahs 33 | long newWord = 0; // The time between words 34 | 35 | bool characterDone = true; // A full character has been sent 36 | 37 | int downTime = 0; // How long the tone was on in milliseconds 38 | int upTime = 0; // How long the tone was off in milliseconds 39 | int myBounce = 2; // Used as a short delay between key up and down 40 | 41 | long startDownTime = 0; // Timer when tone first comes on 42 | long startUpTime = 0; // Timer when tone first goes off 43 | 44 | long lastDahTime = 0; // Length of last dah in milliseconds 45 | long lastDitTime = 0; // Length oflast dit in milliseconds 46 | long averageDahTime = 0; // Sloppy Average of length of dahs 47 | 48 | bool justDid = true; // Makes sure we only print one space during long gaps 49 | 50 | int myNum = 0; // Will turn dits and dahs into a binary number stored here 51 | 52 | ///////////////////////////////////////////////////////////////////////////////// 53 | // Now here is the 'Secret Sauce' 54 | // The Morse Code is embedded into the binary version of the numbers from 2 - 63 55 | // The place a letter appears here matches myNum that we parsed out of the code 56 | // #'s are miscopied characters 57 | char mySet[] ="##TEMNAIOGKDWRUS##QZYCXBJP#L#FVH09#8###7#####/-61#######2###3#45"; 58 | 59 | 60 | 61 | char recoveredChar = ' '; // We store the actual character decoded here 62 | int peakLevel; 63 | char morseBuffer[40]; // Buffer to hold received morse characters 64 | int bufferIn, bufferOut = 0; // read/write pointers to the buffer for circular opperation 65 | 66 | 67 | //------------------------------------------------------------------ 68 | void printPunctuation() { 69 | // Punctuation marks are made up of more dits and dahs than 70 | // letters and numbers. Rather than extend the character array 71 | // out to reach these higher numbers we will simply check for 72 | // them here. This funtion only gets called when myNum is greater than 63 73 | 74 | switch (myNum) { 75 | case 71: 76 | recoveredChar = ':'; 77 | break; 78 | case 76: 79 | recoveredChar = ','; 80 | break; 81 | case 84: 82 | recoveredChar = '!'; 83 | break; 84 | case 94: 85 | recoveredChar = '-'; 86 | break; 87 | case 97: 88 | recoveredChar = 39; // Apostrophe 89 | break; 90 | case 101: 91 | recoveredChar = '@'; 92 | break; 93 | case 106: 94 | recoveredChar = '.'; 95 | break; 96 | case 115: 97 | recoveredChar = '?'; 98 | break; 99 | case 246: 100 | recoveredChar = '$'; 101 | break; 102 | case 122: 103 | recoveredChar = 's'; 104 | #ifdef DECODER_SERIAL 105 | Serial.print(recoveredChar); 106 | #endif 107 | recoveredChar = 'k'; 108 | break; 109 | default: 110 | recoveredChar = '#'; // Unknown - Should never get here 111 | break; 112 | #ifdef DECODER_SERIAL 113 | Serial.print(recoveredChar); 114 | #endif 115 | } 116 | } 117 | 118 | //------------------------------------------------------------------ 119 | void printCharacter() { 120 | justDid = false; // OK to print a space again after this 121 | 122 | // Punctuation marks will make a BIG myNum 123 | if (myNum > 63) { // The value we parsed is bigger than our character array 124 | printPunctuation(); // It is probably a punctuation mark so go figure it out. 125 | return; 126 | } 127 | #ifdef DECODER_SERIAL 128 | Serial.print(mySet[myNum]); // Print the letter 129 | #endif 130 | //speakChar(mySet[myNum]); 131 | speechBuffer_push(mySet[myNum]); 132 | } 133 | 134 | 135 | //------------------------------------------------------------------ 136 | void printSpace() { 137 | if (justDid) return; // only one space, no matter how long the gap 138 | justDid = true; 139 | #ifdef DECODER_SERIAL 140 | Serial.print(" "); 141 | #endif 142 | } 143 | 144 | 145 | //--------------------------------------------------------------------------------- 146 | void shiftBits() { 147 | // we know we've got a dit or a dah, let's find out which 148 | // then we will shift the bits in myNum and then add 1 or not add 1 149 | 150 | if (downTime < dit / 3) return; // ignore my keybounce 151 | 152 | myNum = myNum << 1; // shift bits left 153 | ditOrDah = true; // we will know which one in two lines 154 | 155 | 156 | // If it is a dit we add 1. If it is a dah we do nothing! 157 | if (downTime < dit) { 158 | myNum++; // add one because it is a dit 159 | } else { // The next three lines handle the automatic speed adjustment: 160 | averageDah = (downTime+averageDah) / 2; // running average of dahs 161 | dit = averageDah / 3; // normal dit would be this 162 | dit = dit * 2; // double it to get the threshold between dits and dahs 163 | } 164 | } 165 | 166 | 167 | //------------------------------------------------------------------------------------ 168 | void morseKeyDown() { // Tone detected 169 | 170 | digitalWrite(MORSE_LED, HIGH);// tone detected 171 | 172 | if (startUpTime>0){ // We only need to do once, when the key first goes down 173 | startUpTime=0; // clear the 'Key Up' timer 174 | } 175 | // If we haven't already started our timer, do it now 176 | if (startDownTime == 0){ 177 | startDownTime = millis(); // get time 178 | } 179 | characterDone=false; // we're still building a character 180 | ditOrDah=false; // the key is still down we're not done with the tone 181 | delay(myBounce); // Take a short breath here 182 | if (myNum == 0) { // myNum will equal zero at the beginning of a character 183 | myNum = 1; // This is our start bit - it only does this once per letter 184 | } 185 | } 186 | 187 | 188 | //--------------------------------------------------------------------------------- 189 | void morseKeyUp() { // No tone 190 | digitalWrite(MORSE_LED, LOW); // no tone is there 191 | 192 | if (startUpTime == 0){startUpTime = millis();} // If we haven't already started our timer, do it now 193 | 194 | // Find out how long we've gone with no tone. If it is twice as long as a dah print a space 195 | upTime = millis() - startUpTime; 196 | if (upTime<20)return; 197 | if (upTime > (averageDah*2)) { 198 | printSpace(); 199 | } 200 | if (startDownTime > 0){ // Only do this once after the key goes up 201 | downTime = millis() - startDownTime; // how long was the tone on? 202 | startDownTime=0; // clear the 'Key Down' timer 203 | } 204 | if (!ditOrDah) { // We don't know if it was a dit or a dah yet 205 | shiftBits(); // let's go find out! And do our Magic with the bits 206 | } 207 | if (!characterDone) { // If we are still building a character ... 208 | if (upTime > dit) { // Are we done yet? 209 | // BINGO! we're done with this one 210 | printCharacter(); // Go figure out what character it was and print it 211 | characterDone=true; // We got him, we're done here 212 | myNum=0; // This sets us up for getting the next start bit 213 | } 214 | downTime=0; // Reset keyDown counter 215 | }; 216 | } 217 | 218 | 219 | //--------------------------------------------------------------------------------- 220 | void morseInit() { // Speak callsign on boot 221 | 222 | pinMode(MORSE_LED, OUTPUT); 223 | 224 | } 225 | 226 | 227 | 228 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/GI1MIC-DSP-Filter.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * The GI1MIC $20 Dollar DSP Audio Filter 3 | * 4 | * Visit https://gi1mic.github.io/ for information on how to use this code. 5 | * 6 | * Email via GI1MIC at outlook.com 7 | * 8 | * Modify "settings.h" to suit your needs 9 | * 10 | * 11 | * This project is for installing into a Yaesu FT-817 but easily be adapted 12 | * for many other radios. 13 | * 14 | * What does it do? 15 | * - Act as multiple DSP filters based on hi pass, lo pass, band pass or band stop (filter points can be defined in Hz within the code) 16 | * - It uses voice messages to describe which filter has been selected 17 | * - It is a USB to CAT interface 18 | * - It emulates a USB sound card for receiving rig audio on a computer 19 | * - Performs Morse to voice decode and Morse to USB serial decode 20 | * - It can speak the radio config to assist the visually impaired (FT817 only) 21 | * 22 | * 23 | * Version 2.2 24 | * Some code updates 25 | * Added support for audio files held on a SD card attached via a Teensy WIZ820IO addon board 26 | * New speech files 27 | * Includes tools to regenerate the speech files. This should make it easy to convert to other languages 28 | * Adds speech readout of rig controls - Requires the CAT interface to be connected 29 | * 30 | * Version 2.1a 31 | * Added a FIFO to the morse 2 speech decode to improve decoding when using SD card playback 32 | * 33 | * Version 2.1 34 | * Minor bug fixes 35 | * Configuration options now held in "settings.h" 36 | * Added option to say callsign on boot 37 | * Added Morse to speech decode based on WB7FHC code. This works OK for locally generated Morse but not ready for primetime. 38 | * If you compile for the Teensy Audio board it will use WAV files on the card for playback. 39 | * Otherwise it uses Texas Instruments speech synthesis architecture (Linear Predictive Coding) i.e. Speak & Spell voice synthesis 40 | * Suspect the latter is taking too much time for Morse decode to work reliably 41 | * Verified CAT control - dropped USB serial speed to 38400 to provide compatibility with some rig control software 42 | 43 | * Version 2.0 44 | * Moved to using real-time calculated FIR filters based on Bob Maling code 45 | * Added support for Teensy audio board for simplified integration with an amplified speaker this uses 46 | * a SD card fitted to the audio board to hold the speech files instead of the precompiled audio. 47 | * Added preliminary support for USB -> CAT interface for rig control 48 | * Added support for USB RX audio (Make sure you select Audio/Midi/Serial on the tools menu to compile without errors). 49 | * USB TX may be added but it will require a Teensy 3.5/3.6 as they have dual DAC's (OK, it may be possible on the 3.2 using PWM...) 50 | * 51 | * Version 1.2 52 | * This update changes the Morse coefficients to an improved set based on a Windowed hamming FIR filter. 53 | * See the https://gi1mic.github.io/ for a MATLAB simulation of the filter. 54 | * Note: this is a very sharp filter - you may want to generate your own! 55 | * 56 | * Version 1.1 57 | * Code Tidy-up 58 | * Smaller (lower quality) voice prompts 59 | * Debug and FT817 mode controlled via defines 60 | * 61 | * Version 1.0 62 | * Initial release which had no version number 63 | */ 64 | 65 | #include 66 | #include 67 | #include 68 | #include 69 | #include 70 | #include 71 | #include 72 | #include "settings.h" 73 | #include "cat.h" 74 | #include "dynamicFilters.h" 75 | #include "dspfilter.h" 76 | #include "morseDecode.h" 77 | #include "speech.h" 78 | #include "configSpeak.h" 79 | 80 | bool toneDet = false; 81 | 82 | //--------------------------------------------------------------- 83 | void setup() { 84 | Serial.begin(38400); 85 | delay(500); 86 | 87 | #ifdef DECODER 88 | morseInit(); 89 | #endif 90 | 91 | AudioMemory(8); 92 | 93 | #ifdef SDCARD 94 | SPI.setMOSI(SDCARD_MOSI_PIN); 95 | SPI.setSCK(SDCARD_SCK_PIN); 96 | #ifdef DEBUG 97 | boolean status = card.init(SPI_FULL_SPEED, SDCARD_CS_PIN); 98 | if (status) { 99 | Serial.println("SD card is connected :-)"); 100 | } else { 101 | Serial.println("SD card is not connected or unusable :-("); 102 | return; 103 | } 104 | #endif 105 | if (!(SD.begin(SDCARD_CS_PIN))) { 106 | // stop here, but print a message repetitively 107 | while (1) { 108 | Serial.println("Unable to access the SD card"); 109 | delay(500); 110 | }; 111 | }; 112 | #endif 113 | 114 | #ifdef FT817 115 | audioOutput.analogReference(INTERNAL); 116 | #else 117 | // Down mix stereo to mono on input 118 | monoMixer.gain(0, 0.5); // Left 119 | monoMixer.gain(1, 0.5); // Right 120 | monoMixer.gain(2, 0.0); // Not used 121 | monoMixer.gain(3, 0.0); // Not used 122 | 123 | audioControl.enable(); // Start the SGTL5000 124 | audioControl.inputSelect(AUDIO_INPUT_LINEIN); 125 | audioControl.lineInLevel(5); // Set input level to 1.33V 126 | audioControl.volume(0.8); // Set headset volume level 127 | 128 | #endif 129 | 130 | // Initialize the mixer (Normally the totals should add to 1.0 max) 131 | audioOutputMixer.gain(0, 0.9); // Filtered radio audio 132 | audioOutputMixer.gain(1, 0.9); // Audio Prompt (we get away with this since this input is not normally active) 133 | audioOutputMixer.gain(2, 0.9); // Audio Prompt SD 134 | audioOutputMixer.gain(3, 0); // PC Audio Input (Not used for now) 135 | 136 | // Start in passthru mode 137 | audioFilter(fir_active1, 138 | NUM_COEFFICIENTS, 139 | ID_BANDPASS, 140 | W_HAMMING, 141 | 60.0, 142 | 20000.0 ); 143 | myFilter.begin(fir_active1, NUM_COEFFICIENTS); 144 | // myFilter.begin(FIR_PASSTHRU, 0); // passthru mode 145 | 146 | #ifdef FT817 147 | pinMode(SELECT_PIN, INPUT); 148 | #else 149 | pinMode(SELECT_PIN, INPUT_PULLUP); 150 | #endif 151 | 152 | // Morse detect stuff 153 | toneDetect.frequency(TONEFREQUENCY, TONEDURATION); 154 | toneDetect.threshold(TONETHRESHOLD); 155 | 156 | initCAT(); 157 | initConfigSpeak(); 158 | 159 | #ifdef CALLSIGN 160 | muteRadio(); // Mute while reading callsign 161 | speakChars(CALLSIGN); 162 | unMuteRadio(); // Reset the ausio level 163 | #endif 164 | 165 | #ifdef DEBUG 166 | Serial.println("setup done"); 167 | #endif 168 | } 169 | 170 | 171 | float toneState; 172 | //--------------------------------------------------------------- 173 | void loop() 174 | { 175 | 176 | filterSelect.update(); // read the button state 177 | 178 | if (filterSelect.fallingEdge()) { // On button press - switch to next filter in the list 179 | filterIndex++; 180 | if (filterIndex >= (sizeof(filterList) / sizeof(filter))) 181 | filterIndex = 0; // if end of array, then loop to begining 182 | 183 | if (filterList[filterIndex].filterID == MORSEDECODE) { 184 | lowerRadio(); // Lower the radio volume in Morse Decode mode to make it easier to hear 185 | }else { 186 | unMuteRadio(); // Reset the ausio level 187 | } 188 | 189 | audioFilter( fir_active1, 190 | filterList[filterIndex].coeff, 191 | filterList[filterIndex].filterType, 192 | filterList[filterIndex].window, 193 | filterList[filterIndex].freqLow, 194 | filterList[filterIndex].freqHigh ); 195 | #ifdef SDCARD 196 | speakSD(filterList[filterIndex].filterName[0].c_str()); 197 | #else 198 | speak(filterList[filterIndex].audioSample); 199 | #endif 200 | } 201 | // Rotary Encoder - move the centerpoint of the filter 202 | long newKnob; 203 | newKnob = knob.read(); 204 | if (newKnob != kPosition) { 205 | int diff = (newKnob - kPosition) * 4; 206 | #ifdef DEBUG 207 | Serial.print("Knob = "); 208 | Serial.print(diff); 209 | Serial.println(); 210 | #endif 211 | filterList[filterIndex].freqLow += diff; 212 | filterList[filterIndex].freqHigh += diff; 213 | audioFilter(fir_active1, 214 | NUM_COEFFICIENTS, 215 | filterList[filterIndex].filterType, 216 | filterList[filterIndex].window, 217 | filterList[filterIndex].freqLow, 218 | filterList[filterIndex].freqHigh ); 219 | kPosition = newKnob; 220 | } 221 | 222 | 223 | #ifdef SHOWPERF 224 | // print debug and resource usage 225 | if (millis() - last_time >= 2500) { 226 | if ( audioInputPeak.available() ) { 227 | Serial.print("Peak input level = "); 228 | Serial.print(audioInputPeak.readPeakToPeak()); 229 | Serial.print(", "); 230 | } 231 | Serial.print("Proc = "); 232 | Serial.print(AudioProcessorUsage()); 233 | Serial.print(" ("); 234 | Serial.print(AudioProcessorUsageMax()); 235 | Serial.print("), Mem = "); 236 | Serial.print(AudioMemoryUsage()); 237 | Serial.print(" ("); 238 | Serial.print(AudioMemoryUsageMax()); 239 | Serial.println(")"); 240 | last_time = millis(); 241 | } 242 | #endif 243 | serviceCAT(); 244 | serviceSpeech(); 245 | serviceConfigSpeak(); 246 | 247 | #ifdef DECODER 248 | if (filterList[filterIndex].filterID == MORSEDECODE) { // Service morse decoding 249 | if (toneDetect) { 250 | morseKeyDown(); 251 | }else { 252 | morseKeyUp(); 253 | }; 254 | }; 255 | #endif 256 | } 257 | 258 | 259 | 260 | 261 | 262 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/dynamicFilters.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "settings.h" 4 | #include "dynamicFilters.h" 5 | 6 | double fir_tmp[NUM_COEFFICIENTS]; // Temp array used for coefficient calculations which are performed in 64bit 7 | 8 | 9 | //--------------------------------------------------------------- 10 | // Generate lowpass filter 11 | // 12 | // This is done by generating a sinc function and then windowing it 13 | void wsfirLP(double h[], // h[] will be written with the filter coefficients 14 | const int &N, // size of the filter (number of taps) 15 | const int &WINDOW, // window function (W_BLACKMAN, W_HANNING, etc.) 16 | const double &fc) // cutoff frequency 17 | { 18 | int i; 19 | double *w = new double[N]; // window function 20 | double *sinc = new double[N]; // sinc function 21 | 22 | // 1. Generate Sinc function 23 | genSinc(sinc, N, fc); 24 | 25 | // 2. Generate Window function 26 | switch (WINDOW) { 27 | case W_BLACKMAN: // W_BLACKMAN 28 | wBlackman(w, N); 29 | break; 30 | case W_HANNING: // W_HANNING 31 | wHanning(w, N); 32 | break; 33 | case W_HAMMING: // W_HAMMING 34 | wHamming(w, N); 35 | break; 36 | default: 37 | break; 38 | } 39 | 40 | // 3. Make lowpass filter 41 | for (i = 0; i < N; i++) { 42 | h[i] = sinc[i] * w[i]; 43 | } 44 | 45 | // Delete dynamic storage 46 | delete []w; 47 | delete []sinc; 48 | 49 | return; 50 | } 51 | 52 | 53 | //--------------------------------------------------------------- 54 | // Generate highpass filter 55 | // 56 | // This is done by generating a lowpass filter and then spectrally inverting it 57 | void wsfirHP(double h[], // h[] will be written with the filter coefficients 58 | const int &N, // size of the filter 59 | const int &WINDOW, // window function (W_BLACKMAN, W_HANNING, etc.) 60 | const double &fc) // cutoff frequency 61 | { 62 | int i; 63 | 64 | // 1. Generate lowpass filter 65 | wsfirLP(h, N, WINDOW, fc); 66 | 67 | // 2. Spectrally invert (negate all samples and add 1 to center sample) lowpass filter 68 | // = delta[n-((N-1)/2)] - h[n], in the time domain 69 | for (i = 0; i < N; i++) { 70 | h[i] *= -1.0; // = 0 - h[i] 71 | } 72 | h[(N - 1) / 2] += 1.0; // = 1 - h[(N-1)/2] 73 | 74 | return; 75 | } 76 | 77 | //--------------------------------------------------------------- 78 | // Generate bandstop filter 79 | // 80 | // This is done by generating a lowpass and highpass filter and adding them 81 | void wsfirBS(double h[], // h[] will be written with the filter taps 82 | const int &N, // size of the filter 83 | const int &WINDOW, // window function (W_BLACKMAN, W_HANNING, etc.) 84 | const double &fc1, // low cutoff frequency 85 | const double &fc2) // high cutoff frequency 86 | { 87 | int i; 88 | double *h1 = new double[N]; 89 | double *h2 = new double[N]; 90 | 91 | // 1. Generate lowpass filter at first (low) cutoff frequency 92 | wsfirLP(h1, N, WINDOW, fc1); 93 | 94 | // 2. Generate highpass filter at second (high) cutoff frequency 95 | wsfirHP(h2, N, WINDOW, fc2); 96 | 97 | // 3. Add the 2 filters together 98 | for (i = 0; i < N; i++) { 99 | h[i] = h1[i] + h2[i]; 100 | } 101 | 102 | // Delete dynamic memory 103 | delete []h1; 104 | delete []h2; 105 | 106 | return; 107 | } 108 | 109 | //--------------------------------------------------------------- 110 | // Generate bandpass filter 111 | // 112 | // This is done by generating a bandstop filter and spectrally inverting it 113 | void wsfirBP(double h[], // h[] will be written with the filter taps 114 | const int &N, // size of the filter 115 | const int &WINDOW, // window function (W_BLACKMAN, W_HANNING, etc.) 116 | const double &fc1, // low cutoff frequency 117 | const double &fc2) // high cutoff frequency 118 | { 119 | int i; 120 | 121 | // 1. Generate bandstop filter 122 | wsfirBS(h, N, WINDOW, fc1, fc2); 123 | 124 | // 2. Spectrally invert bandstop (negate all, and add 1 to center sample) 125 | for (i = 0; i < N; i++) { 126 | h[i] *= -1.0; // = 0 - h[i] 127 | } 128 | h[(N - 1) / 2] += 1.0; // = 1 - h[(N-1)/2] 129 | 130 | return; 131 | } 132 | 133 | //--------------------------------------------------------------- 134 | // Generate sinc function - used for making lowpass filter 135 | void genSinc(double sinc[], // sinc[] will be written with the sinc function 136 | const int &N, // size (number of taps) 137 | const double &fc) // cutoff frequency 138 | { 139 | int i; 140 | const double M = N - 1; 141 | double n; 142 | 143 | // Generate sinc delayed by (N-1)/2 144 | for (i = 0; i < N; i++) { 145 | if (i == M / 2.0) { 146 | sinc[i] = 2.0 * fc; 147 | } 148 | else { 149 | n = (double)i - M / 2.0; 150 | sinc[i] = sin(2.0 * M_PI * fc * n) / (M_PI * n); 151 | } 152 | } 153 | 154 | return; 155 | } 156 | 157 | //--------------------------------------------------------------- 158 | // Generate window function (Blackman) 159 | void wBlackman(double w[], // w[] will be written with the Blackman window 160 | const int &N) // size of the window 161 | { 162 | int i; 163 | const double M = N - 1; 164 | 165 | for (i = 0; i < N; i++) { 166 | w[i] = 0.42 - (0.5 * cos(2.0 * M_PI * (double)i / M)) + (0.08 * cos(4.0 * M_PI * (double)i / M)); 167 | } 168 | 169 | return; 170 | } 171 | 172 | 173 | //--------------------------------------------------------------- 174 | // Generate window function (Hanning) 175 | void wHanning(double w[], // w[] will be written with the Hanning window 176 | const int &N) // size of the window 177 | { 178 | int i; 179 | const double M = N - 1; 180 | 181 | for (i = 0; i < N; i++) { 182 | w[i] = 0.5 * (1.0 - cos(2.0 * M_PI * (double)i / M)); 183 | } 184 | 185 | return; 186 | } 187 | 188 | 189 | //--------------------------------------------------------------- 190 | // Generate window function (Hamming) 191 | void wHamming(double w[], // w[] will be written with the Hamming window 192 | const int &N) // size of the window 193 | { 194 | int i; 195 | const double M = N - 1; 196 | 197 | for (i = 0; i < N; i++) { 198 | w[i] = 0.54 - (0.46 * cos(2.0 * M_PI * (double)i / M)); 199 | } 200 | 201 | return; 202 | } 203 | 204 | //--------------------------------------------------------------- 205 | void coeffConvert(double in[], short out[], const int &N) { 206 | #ifdef SHOWCOEFF 207 | Serial.println(";---- Cut and paste into a text file (.coe extension) -----"); 208 | Serial.println(";------------ for import and analysis by MATLAB -----------"); 209 | Serial.println("; FIR Filter"); 210 | Serial.println("Radix = 10;"); 211 | Serial.print("CoefData= "); 212 | for (int j = 0; j < N; j++) { 213 | out[j] = (short)(in[j] * 10000); 214 | Serial.print(out[j]); 215 | Serial.print(", "); 216 | } 217 | 218 | Serial.println("0;"); 219 | Serial.println("; ---------------------- End Cut ---------------------------"); 220 | #else 221 | for (int j = 0; j < N; j++) { 222 | out[j] = (short)(in[j] * 10000); 223 | }; 224 | #endif 225 | } 226 | 227 | //--------------------------------------------------------------- 228 | void lowpass(short h[], const int &N, const int &WINDOW, const double &fc) { 229 | wsfirLP(fir_tmp, N, WINDOW, fc ); 230 | coeffConvert(fir_tmp, h, N); 231 | } 232 | 233 | //--------------------------------------------------------------- 234 | void highpass(short h[], const int &N, const int &WINDOW, const double &fc) { 235 | wsfirHP(fir_tmp, N, WINDOW, fc); 236 | coeffConvert(fir_tmp, h, N); 237 | } 238 | 239 | //--------------------------------------------------------------- 240 | void bandpass(short h[], const int &N, const int &WINDOW, const double &fc1, const double &fc2) { 241 | wsfirBP(fir_tmp, N, WINDOW, fc1, fc2 ); 242 | coeffConvert(fir_tmp, h, N); 243 | } 244 | 245 | //--------------------------------------------------------------- 246 | void bandstop(short h[], const int &N, const int &WINDOW, const double &fc1, const double &fc2) { 247 | wsfirBS(fir_tmp, N, WINDOW, fc1, fc2 ); 248 | coeffConvert(fir_tmp, h, N); 249 | } 250 | 251 | //--------------------------------------------------------------- 252 | void audioFilter(short h[], const int &N, const int &TYPE, const int &WINDOW, const double &fc1, const double &fc2) { 253 | switch (TYPE) { 254 | case ID_LOWPASS: 255 | #ifdef DEBUG 256 | Serial.print("LowPass Freq:"); 257 | Serial.println(fc1); 258 | #endif 259 | lowpass(h, N, WINDOW, fc1/44117); 260 | break; 261 | case ID_HIGHPASS: 262 | #ifdef DEBUG 263 | Serial.print("HiPass Freq:"); 264 | Serial.println(fc1); 265 | #endif 266 | highpass(h, N, WINDOW, fc1/44117); 267 | break; 268 | case ID_BANDPASS: 269 | #ifdef DEBUG 270 | Serial.print("BandPass LFreq:"); 271 | Serial.print(fc1); 272 | Serial.print(" HFreq:"); 273 | Serial.println(fc2); 274 | #endif 275 | bandpass(h, N, WINDOW, fc1/44117, fc2/44117); 276 | break; 277 | case ID_BANDSTOP: 278 | #ifdef DEBUG 279 | Serial.print("Bandstop LFreq:"); 280 | Serial.print(fc1); 281 | Serial.print(" HFreq:"); 282 | Serial.println(fc2); 283 | #endif 284 | bandstop(h, N, WINDOW, fc1/44117, fc2/44117); 285 | break; 286 | default: 287 | #ifdef DEBUG 288 | Serial.println("Unknown"); 289 | #endif 290 | break; 291 | } 292 | } 293 | 294 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/configSpeak.cpp: -------------------------------------------------------------------------------- 1 | //Rachel.ino - A Speech Synthesiser for the Yaesu FT-817 2 | //Copyright (c) 2016, Julie VK3FOWL and Joe VK3YSP 3 | //Released under the GNU General Public License. 4 | //For more information please visit http://www.sarcnet.org 5 | 6 | #include 7 | #include 8 | #include "settings.h" 9 | #include "speech.h" 10 | 11 | 12 | #define NUMBER 0xFF //Flag indicating data is a numeric type 13 | #define NEGNUM 0xFE //Flag indicating data is a numeric type but contains negative number 14 | #define DOUBLE 0xFD //Flag indicating data is a double byte 15 | #define VFOREF 0xFC //Flag indicating that the data resisdes in a VFO register 16 | 17 | #define MUTE false 18 | #define UNMUTE true 19 | #define CHECK true 20 | #define UNCHECK false 21 | 22 | //Thanks to Clint Turner KA7OEI for the following undocumented commands. 23 | #define TXMETERS 0xBD //Get the TX meters: PWR, SWR, ALC and MOD //Undocumented 24 | #define TXSTATUS 0xF7 //Get the TX status: PTT 25 | #define RXSTATUS 0xE7 //Get the RX status: S-meter 26 | #define FREQMODE 0x03 //Get the frequency and mode 27 | #define ADDRDATA 0xBB //Get EEPROM data at the specified address //Undocumented 28 | 29 | volatile bool metersSwitch = false; //Flag indicating the that the meters switch has been pressed 30 | volatile bool configSwitch = false; //Flag indicating the that the config switch has been pressed 31 | volatile bool cancel = false; //Flag indicating the that the config switch has been pressed while playing 32 | unsigned long lastTime; //Timer containg the last system time in milliseconds 33 | 34 | //Enumeration of all sound files in exactly the same order as on the micro SD card 35 | enum Sound {s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, 36 | s10, s11, s12, s13, s14, s15, s10DB, s20DB, s30DB, s40DB, 37 | s50DB, s60DB, sSIG, sPWR, sSWR, sALC, sMOD, sLSB, sUSB, sCW, 38 | sCWR, sAM, sFMW, sFM, sDIGITAL, sPACKET, sPOINT, sMHZ, sA, sB, 39 | sOFF, sON, sNORM, sREV, sAUTO, sFAST, sSLOW, sMEM, sVFO, sFRONT, 40 | sREAR, sHIGH, sMEDIUM, sLOW, sMIN, sUP, sDOWN, sAGC, sNB, sLOCK, 41 | sSPEED, sCWPADDLE, sM1, sM2, sM3, sM4, sM5, sM6, sM7, sM8, 42 | sM9, sM10, sM11, sM12, sOPFILTER, sSQLRFG, sRFGAIN, sSQUELCH, sVOX, sVOXGAIN, 43 | sVOXDELAY, sLCKMODE, sDIAL, sPANEL, sDIGMODE, sRTTY, sPSKUSB, sPSKLSB, sUSERUSB, sUSERLSB, 44 | sKEYER, sBREAKIN, sBEEPVOL, sBEEPTONE, sSSBMIC, sAMMIC, sFMMIC, sDIGMIC, sPKTMIC, sBATCHG, 45 | sVFOMODE, sCONTRAST, sCOLOR, sBKLIGHT, sSCANRESUME, sPKTRATE, sSCOPE, sCONT, sCHK, sCWID, 46 | sCWPITCH, sCWSPEED, sMAINSTEP, sCOURSE, sFINE, sARTSBEEP, sRANGE, sALL, sFREQ , s430ARS, 47 | s144ARS, sCWDELAY, sAMFM, sEMERG, sCATRATE, s4K8, s9K6, s38K4, sAPOTIME, sMEMGRP, 48 | sTOTTIME, sDCSINV, sMICKEY, sMICSCAN, s9K6MIC, sDIGSHIFT, sAMSTEP, sANTENNA, sID, sRLSBCAR, 49 | sRUSBCAR, sTLSBCAR, sTUSBCAR, sCWWEIGHT, sDCSCODE, sDIGDISP, sFMSTEP, sMEMTAG, sRPTSHIFT, sSIDETONE, 50 | sSSBSTEP, sTONEFREQ, sEXTEND, sMENU, sKEYS, s1K2, sDW, sPRIORITY, sSCAN, sART, 51 | sPWRMETER, sVOLTS, sDISPLAY, sSSB, sCHARGE, sMINUS, sSPLIT, sIFSHIFT, sIPO, sATTEN, 52 | sANTHF, sANT6M, sANTFM, sANTAIR, sANT2M, sANTUHF, sTNRN, sTNRI, sTIRN, sTIRI, 53 | sTUNSPD 54 | }; 55 | //430ARS 56 | 57 | // ths array needs to be in the same order as above and match the created filenames 58 | const char *soundFiles[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 59 | "10", "11", "12", "13", "14", "15", "10DB", "20DB", "30DB", "40DB", 60 | "50DB", "60DB", "SIGNAL", "POWER", "SWR", "ALC", "MOD", "LSB", "USB", "CW", 61 | "CWR", "AM", "FM_WIDE", "FM", "DIGITAL", "PACKET", "POINT", "MHZ", "A", "B", 62 | "OFF", "ON", "NORMAL", "REVERSE", "AUTO", "FAST", "SLOW", "MEMORY", "VFO", "FRONT", 63 | "REAR", "HIGH", "MEDIUM", "LOW", "MIN", "UP", "DOWN", "AGC", "NOISEBLK", "LOCK", 64 | "SPEED", "CWPADD", "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", 65 | "M9", "M10", "M11", "M12", "OPFLTER", "SQLRFG", "RF_GAIN", "SQUELCH", "VOX", "VOX_GAIN", 66 | "VOXDELAY", "LOCKMODE", "DIAL", "PANEL", "DIGMODE", "RTTY", "PSK_USB", "PSK_LSB", "USER_USB", "USER_LSB", 67 | "KEYER", "BREAKIN", "BEEPVOL", "BEEPTONE", "SSB_MIC", "AM_MIC", "FM_MIC", "DIGMIC", "PKT_MIC", "BATTERY", 68 | "VFO_MODE", "CONTRAST", "COLOR", "BACKLGHT", "SCANRES", "PCKTRATE", "SCOPE", "CONT", "CHK", "CW_ID", 69 | "CW_PITCH", "CW_SPEED", "MNSTEP", "COURSE", "FINE", "ARTS", "RANGE", "ALL", "FREQ", "430A_R_S", 70 | "144A_R_S", "CW_DELAY", "AM_FM", "EMERGEN", "CAT_RATE", "4K8", "9K6", "38K4", "APO_TIME", "MEMGRP", 71 | "TOT_TIME", "DCS_INV", "MIC_KEY", "MIC_SCAN", "9K6MIC", "DIGSHIFT", "AM_STEP", "ANTENNA", "ID", "RLSBCAR", 72 | "RUSBCAR", "TLSBCAR", "TUSBCAR", "CWWGHT", "DCS_CODE", "DIGDSP", "FM_STEP", "MEM_TAG", "REPSHIFT", "SIDETONE", 73 | "SSB_STEP", "TONEFREQ", "EXTEND", "MENU", "KEYS", "1K2", "DW", "PRIORITY", "SCAN", "ART", 74 | "PWRMETER", "VOLTS", "DISPLAY", "SSB", "CHARGE", "MINUS", "SPLIT", "IF_SHIFT", "IPO", "ATTEN", 75 | "ANT_HF", "ANT_6M", "ANT_FM", "ANT_AIR", "ANT_2M", "ANT_UHF", "TNRN", "TNRI", "TIRN", "TIRI", 76 | "TUNSPD" 77 | }; 78 | 79 | 80 | //Special radio parameter arrays. 81 | const byte MODE[] = {sLSB, sUSB, sCW, sCWR, sAM, 0, sFMW, 0, sFM, 0, sDIGITAL, 0, sPACKET}; 82 | //Frequency/Mode parameter array. Format: {Values (5), Command} 83 | byte aFreqMode[] = {0x00, 0x00, 0x00, 0x00, 0x00, FREQMODE}; 84 | //RX Status parameter array. Format: {Command, values} 85 | byte aRxMeter[] {RXSTATUS, sSIG, s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10DB, s20DB, s30DB, s40DB, s50DB, s60DB}; 86 | //TX Status parameter array. Format: {Command, values} 87 | byte aTxMeter[] {TXMETERS, sPWR, sALC, sSWR, sMOD, s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15}; 88 | 89 | //EEPROM Radio parameter arrays. Format: {Parameter value, EEPROM Address, Bit mask, Menu name sound, Indexed parameter value sounds} 90 | //Front panel keys menu parameters 91 | byte aKEYS[] = {0x00, 0x76, 0x0F, sKEYS, sM1, sM2, sM3, sM4, sM5, sM6, sM7, sM8, sM9, sM10, sM11}; 92 | byte aVFO[] = {0x00, 0x55, 0x01, sVFO, sA, sB}; 93 | byte aAGC[] = {0x00, 0x57, 0x03, sAGC, sAUTO, sFAST, sSLOW, sOFF}; 94 | byte aPWR[] = {0x00, 0x79, 0x03, sPWR, sHIGH, sMEDIUM, sLOW, sMIN}; 95 | byte aDW[] = {0x00, 0x79, 0x08, sDW, sOFF, sON}; 96 | byte aPRIORITY[] = {0x00, 0x79, 0x10, sPRIORITY, sOFF, sON}; 97 | byte aSCAN[] = {0x00, 0x79, 0x60, sSCAN, sOFF, sUP, sDOWN}; 98 | byte aART[] = {0x00, 0x79, 0x80, sART, sOFF, sON}; 99 | byte aPWRMETER[] = {0x00, 0x58, 0x03, sPWRMETER, sPWR, sALC, sSWR, sMOD}; 100 | byte aBREAKIN[] = {0x00, 0x58, 0x20, sBREAKIN, sOFF, sON}; 101 | byte aKEYER[] = {0x00, 0x58, 0x10, sKEYER, sOFF, sON}; 102 | byte aVOLTS[] = {0x00, 0x58, 0x40, sVOLTS, sOFF, sON}; 103 | byte aDISPLAY[] = {0x00, 0x57, 0x04, sDISPLAY, sLOW, sHIGH}; 104 | byte aCHARGE[] = {0x00, 0x7B, 0x10, sCHARGE, sOFF, sON}; 105 | byte aVOX[] = {0x00, 0x58, 0x80, sVOX, sOFF, sON}; 106 | byte aNB[] = {0x00, 0x57, 0x20, sNB, sOFF, sON}; 107 | byte aVFOMODE[] = {0x00, 0x55, 0x80, sVFOMODE, sMEM, sVFO}; 108 | byte aLOCK[] = {0x00, 0x57, 0x40, sLOCK, sON, sOFF}; 109 | byte aSPLIT[] = {0x00, 0x7A, 0x80, sSPLIT, sOFF, sON}; 110 | byte aIFSHIFT[] = {0x00, 0x57, 0x10, sIFSHIFT, sOFF, sON}; 111 | byte aIPO[] = {0x00, 0x02, 0x20, sIPO, VFOREF}; 112 | byte aATTEN[] = {0x00, 0x02, 0x10, sATTEN, VFOREF}; 113 | byte aTUNSPD[] = {0x00, 0x57, 0x80, sTUNSPD, sFAST, sSLOW}; 114 | byte aMENU[] = {0x00, 0x75, 0x3F, sMENU, 115 | s144ARS, s430ARS, s9K6MIC, sAMFM, sAMMIC, sAMSTEP, sANTENNA, sAPOTIME, sARTSBEEP, sBKLIGHT, 116 | sBATCHG, sBEEPTONE, sBEEPVOL, sCATRATE, sCOLOR, sCONTRAST, sCWDELAY, sCWID, sCWPADDLE, sCWPITCH, 117 | sCWSPEED, sCWWEIGHT, sDCSCODE, sDIGDISP, sDIGMIC, sDIGMODE, sDIGSHIFT, sEMERG, sFMMIC, sFMSTEP, 118 | sID, sLCKMODE, sMAINSTEP, sMEMGRP, sMEMTAG, sMICKEY, sMICSCAN, sOPFILTER, sPKTMIC, sPKTRATE, 119 | sSCANRESUME, sRPTSHIFT, sSCOPE, sSIDETONE, sSQLRFG, sSSBMIC, sSSBSTEP, sTONEFREQ, sTOTTIME, sVOXDELAY, 120 | sVOXGAIN, sEXTEND, sDCSINV, sRLSBCAR, sRUSBCAR, sTLSBCAR, sTUSBCAR 121 | }; 122 | /*MENU*/ 123 | /*01*/byte a144ARS[] = {0x00, 0x5F, 0x40, s144ARS, sOFF, sON}; 124 | /*02*/byte a430ARS[] = {0x00, 0x5F, 0x20, s430ARS, sOFF, sON}; 125 | /*03*/byte a9K6MIC[] = {0x00, 0x6C, 0x7F, s9K6MIC, NUMBER}; 126 | /*04*/byte aAMFM[] = {0x00, 0x63, 0x80, sAMFM, sON, sOFF}; 127 | /*05*/byte aAMMIC[] = {0x00, 0x68, 0x7F, sAMMIC, NUMBER}; 128 | /*06*/byte aAMSTEP[] = {0x00, 0x03, 0x38, sAMSTEP, VFOREF}; 129 | /*07*/byte aANTHF[] = {0x00, 0x7A, 0x01, sANTHF, sFRONT, sREAR}; 130 | /*07*/byte aANT6M[] = {0x00, 0x7A, 0x02, sANT6M, sFRONT, sREAR}; 131 | /*07*/byte aANTFM[] = {0x00, 0x7A, 0x04, sANTFM, sFRONT, sREAR}; 132 | /*07*/byte aANTAIR[] = {0x00, 0x7A, 0x08, sANTAIR, sFRONT, sREAR}; 133 | /*07*/byte aANT2M[] = {0x00, 0x7A, 0x10, sANT2M, sFRONT, sREAR}; 134 | /*07*/byte aANTUHF[] = {0x00, 0x7A, 0x20, sANTUHF, sFRONT, sREAR}; 135 | /*08*/byte aAPOTIME[] = {0x00, 0x65, 0x07, sAPOTIME, NUMBER}; 136 | /*09*/byte aARTSBEEP[] = {0x00, 0x5D, 0xC0, sARTSBEEP, sOFF, sRANGE, sALL}; 137 | /*10*/byte aBKLIGHT[] = {0x00, 0x5B, 0xC0, sBKLIGHT, sOFF, sON, sAUTO}; 138 | /*11*/byte aBATCHG[] = {0x00, 0x62, 0xC0, sBATCHG, s6, s8, s10}; 139 | /*12*/byte aBEEPTONE[] = {0x00, 0x5C, 0x80, sBEEPTONE, sLOW, sHIGH}; 140 | /*13*/byte aBEEPVOL[] = {0x00, 0x5C, 0x7F, sBEEPVOL, NUMBER}; 141 | /*14*/byte aCATRATE[] = {0x00, 0x64, 0xC0, sCATRATE, s4K8, s9K6, s38K4};//CANT TEST 142 | /*15*/byte aCOLOR[] = {0x00, 0x5B, 0x30, sCOLOR, NUMBER}; 143 | /*16*/byte aCONTRAST[] = {0x00, 0x5B, 0x0F, sCONTRAST, NUMBER}; 144 | /*17*/byte aCWDELAY[] = {0x00, 0x60, 0xFF, sCWDELAY, NUMBER}; 145 | /*18*/byte aCWID[] = {0x00, 0x5D, 0x10, sCWID, sOFF, sON}; 146 | /*19*/byte aCWPADDLE[] = {0x00, 0x58, 0x04, sCWPADDLE, sNORM, sREV}; 147 | /*20*/byte aCWPITCH[] = {0x00, 0x5E, 0x0F, sCWPITCH, NUMBER}; 148 | /*21*/byte aCWSPEED[] = {0x00, 0x62, 0x3F, sCWSPEED, NUMBER};//0-56 = 4-60wpm. Number=WPM+4. 149 | /*22*/byte aCWWEIGHT[] = {0x00, 0x5F, 0x1F, sCWWEIGHT, NUMBER}; 150 | /*23*/byte aDCSCODE[] = {0x00, 0x07, 0x3F, sDCSCODE, VFOREF}; 151 | /*24*/byte aDIGDISP[] = {0x00, 0x6F, 0xFF, sDIGDISP, DOUBLE, 0x00}; 152 | /*25*/byte aDIGMIC[] = {0x00, 0x6A, 0x7F, sDIGMIC, NUMBER}; 153 | /*26*/byte aDIGMODE[] = {0x00, 0x65, 0xE0, sDIGMODE, sRTTY, sPSKLSB, sPSKUSB, sUSERLSB, sUSERUSB}; 154 | /*27*/byte aDIGSHIFT[] = {0x00, 0x6D, 0xFF, sDIGSHIFT, DOUBLE, 0x00}; 155 | /*28*/byte aEMERG[] = {0x00, 0x64, 0x20, sEMERG, sOFF, sON}; 156 | /*29*/byte aFMMIC[] = {0x00, 0x69, 0x7F, sFMMIC, NUMBER}; 157 | /*30*/byte aFMSTEP[] = {0x00, 0x03, 0x07, sFMSTEP, VFOREF}; 158 | /*31*/byte aID[] = {0x00, 0x03, 0x07, sID, NUMBER}; //Not in EEPROM? 159 | /*32*/byte aLCKMODE[] = {0x00, 0x5E, 0x30, sLCKMODE, sDIAL, sFREQ, sPANEL}; 160 | /*33*/byte aMAINSTEP[] = {0x00, 0x5D, 0x20, sMAINSTEP, sFINE, sCOURSE}; 161 | /*34*/byte aMEMGRP[] = {0x00, 0x65, 0x10, sMEMGRP, sOFF, sON}; 162 | /*35*/byte aMEMTAG[] = {0x00, 0x03, 0x07, sMEMTAG, NUMBER};//N/A 163 | /*36*/byte aMICKEY[] = {0x00, 0x68, 0x80, sMICKEY, sOFF, sON}; 164 | /*37*/byte aMICSCAN[] = {0x00, 0x67, 0x80, sMICSCAN, sOFF, sON}; 165 | /*38*/byte aOPFILTER[] = {0x00, 0x5E, 0xC0, sOPFILTER, sOFF, sSSB, sCW}; 166 | /*39*/byte aPKTMIC[] = {0x00, 0x6B, 0x7F, sPKTMIC, NUMBER}; 167 | /*40*/byte aPKTRATE[] = {0x00, 0x5D, 0x04, sPKTRATE, s1K2, s9K6}; 168 | /*41*/byte aSCANRESUME[] = {0x00, 0x5D, 0x03, sSCANRESUME, sOFF, s3, s5, s10}; 169 | /*42*/byte aRPTSHIFT[] = {0x00, 0x03, 0x07, sRPTSHIFT, VFOREF}; //Requires a TRIPLE 170 | /*43*/byte aSCOPE[] = {0x00, 0x5D, 0x08, sSCOPE, sCONT, sCHK}; 171 | /*44*/byte aSIDETONE[] = {0x00, 0x61, 0x7F, sSIDETONE, NUMBER}; 172 | /*45*/byte aSQLRFG[] = {0x00, 0x5F, 0x80, sSQLRFG, sRFGAIN, sSQUELCH}; 173 | /*46*/byte aSSBMIC[] = {0x00, 0x67, 0x7F, sSSBMIC, NUMBER}; 174 | /*47*/byte aSSBSTEP[] = {0x00, 0x03, 0xC0, sSSBSTEP, VFOREF}; 175 | /*48*/byte aTONEFREQ[] = {0x00, 0x06, 0x1F, sTONEFREQ, VFOREF};//0 = 67.0 Hz 176 | /*49*/byte aTOTTIME[] = {0x00, 0x66, 0x1F, sTOTTIME, NUMBER};//OK TOT OFF = 0 177 | /*50*/byte aVOXDELAY[] = {0x00, 0x64, 0x1F, sVOXDELAY, NUMBER};//Multiply number by 100 for milliseconds 178 | /*51*/byte aVOXGAIN[] = {0x00, 0x63, 0x7F, sVOXGAIN, NUMBER}; 179 | /*52*/byte aEXTEND[] = {0x00, 0x6B, 0x80, sEXTEND, sOFF, sON}; 180 | /*53*/byte aDCSINV[] = {0x00, 0x66, 0xC0, sDCSINV, sTNRN, sTNRI, sTIRN, sTIRI}; 181 | /*54*/byte aRLSBCAR[] = {0x00, 0x71, 0xFF, sRLSBCAR, NEGNUM}; 182 | /*55*/byte aRUSBCAR[] = {0x00, 0x72, 0xFF, sRUSBCAR, NEGNUM}; 183 | /*56*/byte aTLSBCAR[] = {0x00, 0x73, 0xFF, sTLSBCAR, NEGNUM}; 184 | /*57*/byte aTUSBCAR[] = {0x00, 0x74, 0xFF, sTUSBCAR, NEGNUM}; 185 | 186 | //Index of all radio parameter arrays 187 | byte* radioParams[] = {a144ARS, a430ARS, a9K6MIC, aAMFM, aAMMIC, aAMSTEP, aANTHF, aANT6M, aANTFM, 188 | aANTAIR, aANT2M, aANTUHF, aAPOTIME, aARTSBEEP, 189 | aBKLIGHT, aBATCHG, aBEEPTONE, aBEEPVOL, aCATRATE, aCOLOR, aCONTRAST, aCWDELAY, aCWID, aCWPADDLE, 190 | aCWPITCH, aCWSPEED, aCWWEIGHT, aDCSCODE, aDIGDISP, aDIGMIC, aDIGMODE, aDIGSHIFT, aEMERG, aFMMIC, 191 | aFMSTEP, /*aID*/ aLCKMODE, aMAINSTEP, aMEMGRP, /*aMEMTAG*/ aMICKEY, aMICSCAN, aOPFILTER, aPKTMIC, 192 | aPKTRATE, aSCANRESUME, /*aRPTSHIFT*/ aSCOPE, aSIDETONE, aSQLRFG, aSSBMIC, aSSBSTEP, aTONEFREQ, aTOTTIME, 193 | aVOXDELAY, aVOXGAIN, aEXTEND, aDCSINV, aRLSBCAR, aRUSBCAR, aTLSBCAR, aTUSBCAR, 194 | aVFO, aNB, aAGC, aPWR, aDW, aPRIORITY, aSCAN, aART, aPWRMETER, 195 | aBREAKIN, aKEYER, aVOLTS, aDISPLAY, aCHARGE, aVOX, aVFOMODE, aLOCK, aSPLIT, aIFSHIFT, 196 | aIPO, aATTEN, aTUNSPD, aKEYS, aMENU 197 | }; 198 | 199 | Bounce meterSelect = Bounce(METERSPIN, 15); // debounce the meter speak pin 200 | Bounce configSelect = Bounce(CONFIGPIN, 15); // debounce the config speak pin 201 | 202 | //------------------------------------------------------------------ 203 | void playWav(byte index) { 204 | 205 | char filename[20]; 206 | sprintf(filename,"%s.wav",soundFiles[index]); 207 | lowerRadio(); 208 | speakSD(filename); 209 | unMuteRadio(); 210 | } 211 | 212 | 213 | //------------------------------------------------------------------ 214 | void playNumber(int value) { 215 | //Convert a value 0-999 to BCD 216 | byte hundreds = value / 100; 217 | value -= hundreds * 100; 218 | byte tens = value / 10; 219 | value -= tens * 10; 220 | byte ones = value; 221 | //Play each digit suppressing leading zeros 222 | if (hundreds > 0) playWav(hundreds); 223 | if ((hundreds > 0) || (tens > 0)) playWav(tens); 224 | playWav(ones); 225 | } 226 | 227 | //------------------------------------------------------------------ 228 | byte compress(byte value, byte mask) { 229 | //Right compress a value based on a mask 230 | //Mask the value 231 | value &= mask; 232 | //Shift the value and mask as far right as it will go 233 | while ((mask & 0x01) != 1) { 234 | value >>= 1; 235 | mask >>= 1; 236 | } 237 | return value; 238 | } 239 | 240 | //------------------------------------------------------------------ 241 | bool compare(int item1, int item2, bool checkit) { 242 | bool changed = true; 243 | if (checkit) { 244 | if (item1 == item2) changed = false; 245 | } 246 | return changed; 247 | } 248 | 249 | //------------------------------------------------------------------ 250 | void readRig(byte cmd, int address, byte* reply, byte count) { 251 | //Send a command to the rig to get count bytes at the address and return them to a buffer 252 | //Reapeat sending the command until count bytes are received 253 | do { 254 | //Flush the receive buffer 255 | while (Serial2.available() > 0) Serial2.read(); 256 | //Send a 5-byte command to the rig 257 | Serial2.write(address >> 8); 258 | Serial2.write(address & 0xFF); 259 | Serial2.write(0); 260 | Serial2.write(0); 261 | Serial2.write(cmd); 262 | //Wait for a reply of the specified number of bytes or timeout 263 | } while (Serial2.readBytes(reply, count) == 0); 264 | } 265 | 266 | //------------------------------------------------------------------ 267 | byte readRigMask(int address, byte mask) { 268 | //Send the Read EEPROM command to the rig. Return the first byte of reply commpressed right by the mask. 269 | byte reply[2]; 270 | readRig(ADDRDATA, address, reply, 2); 271 | return compress(reply[0], mask); 272 | } 273 | 274 | //------------------------------------------------------------------ 275 | byte getBandRegisterValue(byte byteOffset, byte mask) { 276 | const int vfoA [] = {0x07D, 0x097, 0x0B1, 0x0CB, 0x0E5, 0x0FF, 0x119, 0x133, 0x14D, 0x167, 0x181, 0x19B, 0x1B5, 0x1CF, 0x1E9}; 277 | const int vfoB [] = {0x203, 0x21D, 0x237, 0x251, 0x26B, 0x285, 0x29F, 0x2B9, 0x2D3, 0x2ED, 0x307, 0x321, 0x33B, 0x355, 0x36F}; 278 | byte vfo, band; 279 | int reg; 280 | vfo = readRigMask(0x55, 0x01); //Read VFO A/B from 0x55, 0x01 281 | if (vfo == 0) { 282 | band = readRigMask(0x59, 0x0F); //Read VFO A Band from 0x59,0x0F 283 | reg = vfoA[band]; //Use the VFO A Band as an index to get the VFO A base address 284 | } 285 | else { 286 | band = readRigMask(0x59, 0xF0); //Read VFO B Band from 0x59,0xF0 287 | reg = vfoB[band]; //Use the VFO B Band as an index to get the VFO A base address 288 | } 289 | return readRigMask(reg + byteOffset, mask); 290 | } 291 | 292 | //------------------------------------------------------------------ 293 | void getSettings(bool unmuted, bool checkit) { 294 | byte reply[2]; 295 | byte address, mask, base, title, minus; 296 | int value, last; 297 | bool changed; 298 | byte count = sizeof(radioParams) / sizeof(byte*); 299 | for (int i = 0; i < count; i++) { 300 | if (cancel) { 301 | cancel = false; 302 | break; 303 | } 304 | address = radioParams[i][1]; 305 | base = radioParams[i][4]; 306 | mask = radioParams[i][2]; 307 | changed = false; 308 | minus = false; 309 | //For each different parameter type: Get the value, check if it has changed and if it is negative 310 | switch (base) { 311 | case NUMBER: 312 | last = radioParams[i][0]; 313 | value = readRigMask(address, mask); 314 | changed = compare(value, last, checkit); 315 | if (changed) radioParams[i][0] = value; 316 | break; 317 | case NEGNUM: 318 | last = radioParams[i][0]; 319 | value = readRigMask(address, mask); 320 | changed = compare(value, last, checkit); 321 | if (changed) { 322 | if (value < 0) minus = true; 323 | radioParams[i][0] = value; 324 | } 325 | break; 326 | case DOUBLE: 327 | last = (radioParams[i][0] << 8) + radioParams[i][5]; 328 | readRig(0xBB, address, reply, 2); 329 | value = (reply[0] << 8) + reply[1]; 330 | changed = compare(value, last, checkit); 331 | if (changed) { 332 | if (value < 0) minus = true; 333 | radioParams[i][0] = reply[0]; 334 | radioParams[i][5] = reply[1]; 335 | } 336 | break; 337 | case VFOREF: 338 | last = radioParams[i][0]; 339 | //The address in this case is the band register 340 | value = getBandRegisterValue(address, mask); 341 | changed = compare(value, last, checkit); 342 | if (changed) radioParams[i][0] = value; 343 | break; 344 | default: 345 | last = radioParams[i][0]; 346 | value = readRigMask(address, mask); 347 | changed = compare(value, last, checkit); 348 | if (changed) { 349 | radioParams[i][0] = value; 350 | value = radioParams[i][4 + value]; 351 | } 352 | break; 353 | } 354 | if (unmuted && changed) { 355 | title = radioParams[i][3]; 356 | playWav(title); 357 | if (minus) { 358 | value = -value; 359 | playWav(sMINUS); 360 | } 361 | if (base < VFOREF)playWav(value); 362 | else playNumber(value); 363 | } 364 | if (!checkit) delay(500); 365 | } 366 | } 367 | 368 | //------------------------------------------------------------------ 369 | void getConfig() { 370 | if (configSwitch) { 371 | getSettings(UNMUTE, UNCHECK); 372 | configSwitch = false; 373 | } 374 | } 375 | 376 | //------------------------------------------------------------------ 377 | void getMeters() { 378 | if (metersSwitch) { 379 | byte reply[2]; 380 | readRig(TXSTATUS, 0, reply, 1); 381 | if ((reply[0] & 0x80) == 0) { 382 | //Transmit mode 383 | readRig(aTxMeter[0], 0, reply, 2); 384 | playWav(aTxMeter[1]); 385 | playWav(aTxMeter[5 + compress(reply[0], 0xF0)]); 386 | playWav(aTxMeter[2]); 387 | playWav(aTxMeter[5 + compress(reply[0], 0x0F)]); 388 | playWav(aTxMeter[3]); 389 | playWav(aTxMeter[5 + compress(reply[1], 0xF0)]); 390 | playWav(aTxMeter[4]); 391 | playWav(aTxMeter[5 + compress(reply[1], 0x0F)]); 392 | } 393 | else { 394 | //Receive mode 395 | readRig(aRxMeter[0], 0, reply, 1); 396 | playWav(aRxMeter[1]); 397 | playWav(aRxMeter[2 + compress(reply[0], 0x0F)]); 398 | } 399 | metersSwitch = false; 400 | } 401 | } 402 | 403 | //------------------------------------------------------------------ 404 | void getFreqMode(bool unmuted, bool checkit) { 405 | //This function reports the frequency or mode if either one changes 406 | //It reports frequent changes at regular intervals and once again after the changes stop 407 | byte reply[5]; 408 | byte value; 409 | byte last; 410 | bool changed = false; 411 | //Get the radio frequency and mode reply using the special command 412 | readRig(aFreqMode[5], 0, reply, 5); 413 | //Check if the frequency has changed 414 | for (byte i = 0; i < 4; i++) { 415 | value = reply[i]; 416 | last = aFreqMode[i]; 417 | changed = compare(value, last, checkit); 418 | if (changed) break; 419 | } 420 | if (changed) { 421 | unsigned long thisTime = millis(); 422 | unsigned long elapsed = thisTime - lastTime; 423 | if (elapsed > 2000UL) { 424 | for (byte i = 0; i < 4; i++) aFreqMode[i] = reply[i]; 425 | if (unmuted) { 426 | byte f[9]; 427 | f[0] = aFreqMode[0] >> 4; 428 | f[1] = aFreqMode[0] & 0x0F; 429 | f[2] = aFreqMode[1] >> 4; 430 | f[3] = sPOINT; 431 | f[4] = aFreqMode[1] & 0x0F; 432 | f[5] = aFreqMode[2] >> 4; 433 | f[6] = aFreqMode[2] & 0x0F; 434 | f[7] = aFreqMode[3] >> 4; 435 | f[8] = aFreqMode[3] & 0x0F; 436 | //Supress leading and trailing zeros when reading out frequencies 437 | int firstDigit = 0; 438 | for (int i = 0; i < 2; i++) { 439 | if (f[i] == 0) firstDigit = i + 1; 440 | else break; 441 | } 442 | int lastDigit = 8; 443 | for (int i = 8; i > 4; i--) { 444 | if (f[i] == 0) lastDigit = i - 1; 445 | else break; 446 | } 447 | playWav(sFREQ); 448 | //Now play only the relevent digits inclusive 449 | for (int i = firstDigit; i <= lastDigit; i++) playWav(f[i]); 450 | playWav(sMHZ); 451 | //Reset the timer 452 | lastTime = millis(); 453 | } 454 | } 455 | } 456 | value = reply[4]; 457 | last = aFreqMode[4]; 458 | changed = compare(value, last, checkit); 459 | if (changed) { 460 | aFreqMode[4] = reply[4]; 461 | if (unmuted) playWav(MODE[aFreqMode[4] & 0x0F]); 462 | } 463 | } 464 | 465 | 466 | 467 | //------------------------------------------------------------------ 468 | void meterSwitchPressed() { 469 | meterSelect.update(); 470 | if (meterSelect.fallingEdge()) { 471 | if (configSwitch)cancel = true; 472 | else metersSwitch = true; 473 | } 474 | 475 | } 476 | 477 | //------------------------------------------------------------------ 478 | void configSwitchPressed() { 479 | configSelect.update(); 480 | if (configSelect.fallingEdge()) { 481 | configSwitch = true; 482 | } 483 | } 484 | 485 | 486 | //------------------------------------------------------------------ 487 | void initConfigSpeak() { 488 | #ifdef SPEECHCONFIG 489 | //Configure digital input pins for two switches: One for reading Tx and RX meters and one for reading total radio configuration 490 | pinMode(METERSPIN, INPUT_PULLUP); 491 | pinMode(CONFIGPIN, INPUT_PULLUP); 492 | 493 | Serial2.begin(CAT_BAUD, SERIAL_8N2); 494 | 495 | lastTime = millis(); 496 | metersSwitch = false; 497 | configSwitch = false; 498 | 499 | //Get the initial settings from the rig while the speech is muted. 500 | getSettings(MUTE, CHECK); 501 | getFreqMode(MUTE, CHECK); 502 | #endif 503 | } 504 | 505 | //------------------------------------------------------------------ 506 | void serviceConfigSpeak() { 507 | #ifdef SPEECHCONFIG 508 | //Service each of the routines which report changes 509 | configSwitchPressed(); 510 | meterSwitchPressed(); 511 | getMeters(); //Report TX or RX meters if the meters switch has been pressed 512 | getConfig(); //Report total radio configuration is the config switch has been pressed 513 | getFreqMode(UNMUTE, CHECK); //Report any changes to rig frequency and mode 514 | getSettings(UNMUTE, CHECK); //Report any changes to rig settings 515 | #endif 516 | } 517 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/AudioSampleWavdual.cpp: -------------------------------------------------------------------------------- 1 | // Audio data converted from WAV file by wav2sketch 2 | 3 | #include "AudioSampleWavdual.h" 4 | 5 | // Converted from wavDual.wav, using 11025 Hz, u-law encoding 6 | const unsigned int AudioSampleWavdual[2513] = { 7 | 0x03002740,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 8 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 9 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 10 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 11 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 12 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 13 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 14 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 15 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 16 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 17 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 18 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 19 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 20 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 21 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 22 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 23 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 24 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 25 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 26 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 27 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 28 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 29 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 30 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 31 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 32 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 33 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 34 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 35 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 36 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 37 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 38 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 39 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 40 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x80008000, 41 | 0x80008000,0x80008000,0x80008000,0x81018000,0x01830B16,0x00800181,0x00800080,0x00800080, 42 | 0x00800080,0x00800080,0x00800080,0x00800080,0x00800080,0x03820181,0xA1181A86,0x27099226, 43 | 0x09151B8B,0x18941929,0x04819698,0x9B1FA19D,0x26A21014,0x8211890B,0x231996A9,0x92811490, 44 | 0x9115861B,0x8C992289,0x969D2193,0x27AC0D1A,0xB237B1B0,0xAC1DB22C,0x07B40BBD,0x102DB514, 45 | 0xB12E31AA,0x939B0918,0xAE21251C,0x3199942D,0x0690B817,0x98309811,0xA1A72C95,0x1426AFA3, 46 | 0x062A23AA,0x859F2434,0xBEA61427,0xB1B5B095,0xC3B7C5C2,0xAFC5C9B4,0xC1BDB0CA,0xABA7C0A6, 47 | 0x91A608B3,0x9F149903,0x0DA48C21,0xA4AA1191,0xA4A11C91,0xA699A7A1,0x82A5AC9F,0xA1A2A19A, 48 | 0x149E8816,0x0C1C899B,0x16118F94,0x413E4B35,0x55555350,0x5A575958,0x5152535A,0x30304450, 49 | 0xC6BFB8A2,0xD0D0D2CE,0xCFD1D4D4,0xC5C5C9D0,0x94ABB6C1,0x33392090,0x403F393F,0x3639403D, 50 | 0x2836343A,0x1A2A2C28,0x524A2D17,0x5B585049,0x5E60605E,0x555D605F,0x28465051,0xD2CFC2B2, 51 | 0xDFDDDBD4,0xDCDEDBDE,0xC8D0D5D7,0x26B3BAC5,0x4240343A,0x46454945,0x41464044,0x3633373A, 52 | 0x1D2C2B32,0x43242520,0x57505153,0x615F5E5D,0x5F5E5C60,0x41474D57,0xD0C7BF20,0xDED9D9D8, 53 | 0xDADCE0E0,0xCFD0D4DB,0x2B1AA8C1,0x4C4B4839,0x4F4E5051,0x40464C4D,0x2B2D3841,0xA4A3A019, 54 | 0xB1B1A8A3,0x4B504B11,0x5F5D5753,0x5C5E6361,0x4D555C60,0xBEB13742,0xD9D8D5C4,0xDBDEDBDA, 55 | 0xCDD3DADA,0x0DBAC3C8,0x4645372C,0x4E4D4A46,0x3D464848,0x2A323A41,0xA38D0203,0xA5AAA798, 56 | 0x514184AC,0x5B585351,0x6262605F,0x575C5D5D,0xA43B4752,0xD5CFC4C4,0xDEDCDCD9,0xD6D8D9DD, 57 | 0xBFC4CED3,0x3A2D2AA3,0x4A4B4844,0x47474B4C,0x353A4246,0x81092531,0xA3A7A688,0x30ABA7A4, 58 | 0x5A54504B,0x615F5C5A,0x5B5F6163,0x32434952,0xD3CCC39C,0xDDDCDBDB,0xD9DADCDD,0xC1C8D0D5, 59 | 0x3A340CB1,0x4E4B4A44,0x4A4C4F4F,0x3C3F4549,0x9B162234,0xB0B6ADA3,0xB7B4B7B7,0x544B3AA0, 60 | 0x595C5D5A,0x57575858,0x3D4C5456,0xC6C2B223,0xD2D0CDC9,0xD2D4D4D3,0xBBC4CBCF,0x2807ABB3, 61 | 0x44413B32,0x42464544,0x383B4041,0x93202B31,0xB0ACA698,0xB4B6B1B2,0x30A7B6B3,0x615C5346, 62 | 0x62636363,0x60616161,0x4352585C,0xCFC5B619,0xD7D5D3D2,0xD8D9D9D8,0xC4CBD1D5,0x2D11A3B5, 63 | 0x48444037,0x494B4C4A,0x3C3F4348,0x171F2C34,0xA09BA10B,0xABABACAA,0x554B389A,0x6565635E, 64 | 0x60616365,0x56585D5F,0xBD0E4151,0xD7D7D3CC,0xD5D6D7D7,0xD0D3D4D5,0x1BACC0CA,0x45433F36, 65 | 0x47474644,0x44464748,0x0029363E,0xB2B1AD9F,0xB6B4B2B5,0x2AB1B9B5,0x635E5344,0x66676866, 66 | 0x595E6063,0x46505456,0xD2C6AF31,0xD9DAD9D7,0xD0D2D4D6,0xC4CACBCE,0x3820ABBA,0x45444542, 67 | 0x26333640,0x2D252524,0x9C192327,0xB1B2B0A9,0x8C97A2B0,0x4F432D11,0x67646157,0x63666868, 68 | 0x51555B60,0x0535434C,0xD6D2C8B8,0xD9DADBD9,0xCAD0D4D7,0xC1C1C4C5,0x8AA9B6C0,0x3F403928, 69 | 0x35373F41,0x2F2E3131,0x32313436,0xA4930C28,0x95AAAEA4,0x5B514529,0x68676562,0x5C616466, 70 | 0x454B5157,0xBFA12539,0xDAD6D2CC,0xD3D6D9DA,0xBFC4C8D0,0xA5B0B5B7,0x3D322387,0x44454442, 71 | 0x2E353940,0x24232324,0x051D2423,0xB1ABA598,0x13A9ACAC,0x61574D40,0x68696765,0x575D6266, 72 | 0x30404550,0xC8BFAA0C,0xD9D6D4D1,0xCBD2D4D7,0xA9B0B9C3,0x83A49F9A,0x3C331F15,0x3C40403D, 73 | 0x1A252E36,0x18231A82,0x141C2828,0xACA69E8A,0x24A9A4A6,0x61584D41,0x68696765,0x535C6165, 74 | 0xA1283B46,0xC6C1B5AA,0xD5D4D1CD,0xC6CFD2D4,0x96A1B0BD,0x9DA59E83,0x2F268E97,0x39393A35, 75 | 0x0C252C33,0x2517190F,0x222B262D,0xA4A18705,0x16A3AAA4,0x62574E3F,0x686A6866,0x4D586065, 76 | 0xB5A41536,0xC4C1B7B5,0xD3D2D0C9,0xBFCACFD2,0x8083A3B2,0xB0B0A498,0x2614A5AB,0x35393932, 77 | 0x141C2832,0x29242004,0x30323132,0x8A181726,0x84028092,0x5C514730,0x6B6A6764,0x525D6368, 78 | 0xBAB39740,0xC1BABBC1,0xD0CDC7C2,0xC3CBCDD1,0x179BACB2,0xB9B0ABA3,0x11A5B3B8,0x37383622, 79 | 0x3635373A,0x3B3A3B36,0x2732333D,0xA3A39782,0x9183A2A4,0x411D0799,0x68645B50,0x64696C6B, 80 | 0xB5344E5C,0xBDC3C2C4,0xC0B5B6B1,0xCACEC8C6,0xA2B1C2C5,0xBCB094A4,0xC0C4C4BF,0x311BA2B6, 81 | 0x2D353236,0x241F161B,0x2D363129,0x08902E2F,0x1003A380,0x1A1C2512,0x52482808,0x6D6A675F, 82 | 0x5662686D,0xC9C8AD3E,0x00A5C1C4,0xC6BBA9A0,0xCBCBCECC,0xBCBEB9C4,0xC9C9C5BE,0x0EB7C3C6, 83 | 0x3A41362B,0x841E3131,0x302B2611,0x32313839,0x0E188628,0x2B242206,0xA814191F,0x584A399D, 84 | 0x6D6C6964,0x4358636A,0xC7CDCCB0,0x3131A1C2,0xB99D2832,0xBEC1BFBE,0xC1C1B9B3,0xCACDCEC8, 85 | 0x2A8ABDC7,0x2E3B4134,0xA8AA0125,0x30210599,0x30323236,0x23231B1F,0x292C2921,0xA5931721, 86 | 0x503B9BA3,0x6B69645A,0x5260666B,0xC9C8B532,0x3622B4C0,0xA11F3535,0xB9B8BAB1,0xC3BCB4B8, 87 | 0xCCCFCCC6,0x1FAABEC7,0x2E353532,0xADA69810,0x281A8CA4,0x2B313131,0x2723272C,0x282D2B2E, 88 | 0x99970720,0x058CA3A3,0x61574F38,0x66696866,0xA5415561,0xB2C0C8C3,0x3B403B0D,0xB4A91F35, 89 | 0xB9BEBBB6,0xC8C4C4BD,0xBFC5C9CC,0x2B2B91B0,0xAF97242A,0x9FB1B1B0,0x352D241A,0x242C2B31, 90 | 0x2C282324,0x10222A23,0x8C9A9202,0x3B1C1603,0x6560554D,0x60656767,0xC3A83F53,0x26A7BCC6, 91 | 0x3E414441,0xB6B1A02E,0xBDBABEBB,0xC8C5C3C4,0xA8B6C1C5,0x24242C17,0xB2B2AA15,0x109EB0B7, 92 | 0x32342C2B,0x14232C23,0x23242422,0x00052024,0x1D849609,0x41301A08,0x6360564D,0x57616464, 93 | 0xC1B8264A,0x422AA6BC,0x3E45484A,0xC0B6AD19,0xBBBABDC0,0xC3C2BEBE,0x9CB2BAC0,0x81181812, 94 | 0xB9B8B2A8,0x2090AAB4,0x2D31322C,0x00131A23,0x02810180,0x99A39A93,0x22168298,0x20192424, 95 | 0x5C524638,0x61636361,0xB2304B58,0x329DB9C0,0x474B4C45,0xB8A7243E,0xB5BBBEBD,0xC0BABAB7, 96 | 0xB2BBC0C2,0x031787A4,0xB4B2A193,0x09A2B1B1,0x31312B26,0x02181826,0x251B1F0D,0x1E24242C, 97 | 0x17831017,0x1D221817,0x483C2808,0x62615D54,0x45545D62,0xB3BCB520,0x4C46390C,0x163A454A, 98 | 0xC1C0BBB0,0xBEBDBDBE,0xC0C2C1BE,0xA0ABB6BC,0xB3A8A196,0xB6BABAB9,0x2C1F8FAA,0x24293032, 99 | 0x16188215,0x2B2C2A1B,0x1A232A2C,0x241E2224,0x20152124,0x574E4131,0x5F61615D,0x083E5058, 100 | 0x3282ADAF,0x47494842,0xB3952F40,0xBEBDBEBB,0xC2C0BEBD,0xBCC2C3C2,0xA3A7AFB5,0xBCB9B5AB, 101 | 0xA3B2BABE,0x2B2C2506,0x1620282C,0x332A2520,0x35363536,0x2C2B2B30,0x2C2B2C2B,0x301D242B, 102 | 0x5852473E,0x555B5D5C,0xA3203D4E,0x3A2A88AC,0x3A424443,0xB8B29429,0xBABABEBB,0xC3C2C0BE, 103 | 0xB6BBC1C3,0xACA7A5B1,0xBAB9B6B1,0x01A6B2B7,0x2C2B261D,0x24242328,0x2E2B2A23,0x2A303232, 104 | 0x2B2C2B2C,0x292C2B2C,0x392B1620,0x58555044,0x4E54585A,0x82103242,0x41392B16,0x313A4042, 105 | 0xB4ADA113,0xBCB8B5B6,0xC2C1BFBE,0xB6BBBEC0,0xB8B5B5B6,0xB9BCBEBB,0x99A8B0B8,0x17180D84, 106 | 0x23171817,0x2D2C2623,0x3132312C,0x32313231,0x2C2C3131,0x40352A24,0x53514E47,0x464D5153, 107 | 0x33343940,0x403E3B37,0x31373B40,0x98011927,0xB1ACA6A2,0xB5B6B5B2,0xB5B6B5B6,0xBAB7B5B6, 108 | 0xB8BAB9B9,0xADB0B3B5,0x98A3A3A7,0x8C999798,0x190D8303,0x23242116,0x2B2B2423,0x2B2C2B2C, 109 | 0x423A322C,0x51504D48,0x474B4F51,0x40404144,0x42434241,0x3B3F4143,0x232A3135,0x98940517, 110 | 0xAAA4A4A3,0xB2B0ABAC,0xBAB8B6B4,0xBAB9BAB9,0xB5B6BAB9,0xB6B5B6B5,0xB1B2B1B3,0xA2A9ACAB, 111 | 0x9697A0A5,0x82018101,0x19171813,0x40383024,0x4B4A4845,0x4346484A,0x42424042,0x45444543, 112 | 0x40414344,0x33373A3D,0x252C2C31,0x17182323,0xA096890A,0xAFABABA4,0xB1B2B1B2,0xB5B6B2B1, 113 | 0xB5B6B5B6,0xB5B6B5B6,0xB2B1B2B1,0xABACABB0,0xA7ACABAC,0x98A1A4A3,0x3227198E,0x3E3E3B38, 114 | 0x393A393B,0x3D3D393A,0x40403D3E,0x3A3D3E3D,0x36353939,0x32323133,0x282C2B31,0x16172223, 115 | 0x97840180,0x9F969897,0xA3A4A3A4,0xACABACA9,0xABACABAB,0xABACABAC,0xABACABAC,0xA4A3AAAC, 116 | 0xA4A3A4A3,0x221688A0,0x36333130,0x31323132,0x36343132,0x35393635,0x35363638,0x32313336, 117 | 0x31323131,0x2A2C2B2C,0x1C242423,0x01151916,0x86010080,0x97989799,0xA3A4A299,0xA3A4A3A4, 118 | 0xA3A4A3A4,0xA3A4A3A4,0xA3A4A3A4,0xA3A4A3A4,0x0F8499A4,0x2C2B2521,0x23242329,0x2C2B2C25, 119 | 0x3132312B,0x32313231,0x2B2D3231,0x2C2B2C2C,0x2C2B2C2B,0x24242326,0x1718171B,0x80151817, 120 | 0x02800000,0x9897998B,0x97979897,0xA4A3A499,0xA4A3A4A3,0xA4A3A4A3,0xA3A3A4A3,0x8794A1A4, 121 | 0x24211812,0x18171923,0x23242116,0x2C2A2324,0x2C2B2C2B,0x242A2C2B,0x24232423,0x24232423, 122 | 0x24232423,0x17181621,0x18171718,0x00800116,0x01800080,0x98979887,0x98979897,0x98979897, 123 | 0x97979797,0x97989797,0x83979897,0x18171704,0x18171817,0x1A171817,0x24232423,0x232B2922, 124 | 0x23242324,0x23242324,0x24232423,0x16212423,0x17181718,0x00161817,0x00000000,0x01800080, 125 | 0x98979886,0x98979897,0x97989797,0x97989798,0x97989798,0x88999698,0x16190B80,0x17181718, 126 | 0x18181718,0x20161817,0x23242324,0x17192324,0x17181718,0x17181718,0x17181718,0x17181718, 127 | 0x00810D17,0x00800080,0x02810080,0x9897998C,0x98979897,0x98979897,0x97989797,0xA4A19798, 128 | 0xA4A3A4A3,0xA4A3A4A3,0xA4A3A4A3,0xA4A3A4A3,0x969CA4A3,0x97989798,0x01849798,0x01800080, 129 | 0x17181481,0x17181718,0x17181718,0x17171717,0x17171717,0x18171817,0x18171817,0x17171817, 130 | 0x01810517,0x01810181,0x03820181,0x9797988D,0x8B920197,0x97979603,0x82039398,0x81018101, 131 | 0x81018101,0x81018101,0x82018101,0x18171813,0x15181718,0x00800080,0x00000080,0x00000000, 132 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x80008000,0x80008000, 133 | 0x80008000,0x80008000,0x82018000,0x01151911,0x00800080,0x00800080,0x00800080,0x00000080, 134 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 135 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 136 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 137 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 138 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 139 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 140 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 141 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 142 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 143 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 144 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 145 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 146 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 147 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 148 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 149 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 150 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 151 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 152 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 153 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 154 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 155 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 156 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 157 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 158 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 159 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 160 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 161 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 162 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 163 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 164 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 165 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 166 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 167 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 168 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 169 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 170 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 171 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 172 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 173 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 174 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 175 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 176 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 177 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 178 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 179 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 180 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 181 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 182 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 183 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 184 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 185 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 186 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 187 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 188 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 189 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 190 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 191 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 192 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 193 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 194 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 195 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 196 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 197 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 198 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 199 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 200 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 201 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 202 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 203 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 204 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 205 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 206 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 207 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 208 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 209 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 210 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 211 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 212 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 213 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 214 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 215 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 216 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 217 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 218 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 219 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 220 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 221 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 222 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 223 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 224 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 225 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 226 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 227 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 228 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 229 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 230 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 231 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 232 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 233 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 234 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 235 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 236 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 237 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 238 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 239 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 240 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 241 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 242 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 243 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 244 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 245 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 246 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 247 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 248 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 249 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 250 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 251 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 252 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 253 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 254 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 255 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 256 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 257 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 258 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 259 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 260 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 261 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 262 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 263 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 264 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 265 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 266 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 267 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 268 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 269 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 270 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 271 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 272 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 273 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 274 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 275 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 276 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 277 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 278 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 279 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 280 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 281 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 282 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 283 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 284 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 285 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 286 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 287 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 288 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 289 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 290 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 291 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 292 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 293 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 294 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 295 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 296 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 297 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 298 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 299 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 300 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 301 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 302 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 303 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 304 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 305 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 306 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 307 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 308 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 309 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 310 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 311 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 312 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 313 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 314 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 315 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 316 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 317 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 318 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 319 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 320 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 321 | 0x00000000, 322 | }; 323 | -------------------------------------------------------------------------------- /GI1MIC-DSP-Filter/Code Audio Files/AudioSampleWavdual.cpp: -------------------------------------------------------------------------------- 1 | // Audio data converted from WAV file by wav2sketch 2 | 3 | #include "AudioSampleWavdual.h" 4 | 5 | // Converted from wavDual.wav, using 11025 Hz, u-law encoding 6 | const unsigned int AudioSampleWavdual[2513] = { 7 | 0x03002740,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 8 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 9 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 10 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 11 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 12 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 13 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 14 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 15 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 16 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 17 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 18 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 19 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 20 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 21 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 22 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 23 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 24 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 25 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 26 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 27 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 28 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 29 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 30 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 31 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 32 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 33 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 34 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 35 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 36 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 37 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 38 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 39 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 40 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x80008000, 41 | 0x80008000,0x80008000,0x80008000,0x81018000,0x01830B16,0x00800181,0x00800080,0x00800080, 42 | 0x00800080,0x00800080,0x00800080,0x00800080,0x00800080,0x03820181,0xA1181A86,0x27099226, 43 | 0x09151B8B,0x18941929,0x04819698,0x9B1FA19D,0x26A21014,0x8211890B,0x231996A9,0x92811490, 44 | 0x9115861B,0x8C992289,0x969D2193,0x27AC0D1A,0xB237B1B0,0xAC1DB22C,0x07B40BBD,0x102DB514, 45 | 0xB12E31AA,0x939B0918,0xAE21251C,0x3199942D,0x0690B817,0x98309811,0xA1A72C95,0x1426AFA3, 46 | 0x062A23AA,0x859F2434,0xBEA61427,0xB1B5B095,0xC3B7C5C2,0xAFC5C9B4,0xC1BDB0CA,0xABA7C0A6, 47 | 0x91A608B3,0x9F149903,0x0DA48C21,0xA4AA1191,0xA4A11C91,0xA699A7A1,0x82A5AC9F,0xA1A2A19A, 48 | 0x149E8816,0x0C1C899B,0x16118F94,0x413E4B35,0x55555350,0x5A575958,0x5152535A,0x30304450, 49 | 0xC6BFB8A2,0xD0D0D2CE,0xCFD1D4D4,0xC5C5C9D0,0x94ABB6C1,0x33392090,0x403F393F,0x3639403D, 50 | 0x2836343A,0x1A2A2C28,0x524A2D17,0x5B585049,0x5E60605E,0x555D605F,0x28465051,0xD2CFC2B2, 51 | 0xDFDDDBD4,0xDCDEDBDE,0xC8D0D5D7,0x26B3BAC5,0x4240343A,0x46454945,0x41464044,0x3633373A, 52 | 0x1D2C2B32,0x43242520,0x57505153,0x615F5E5D,0x5F5E5C60,0x41474D57,0xD0C7BF20,0xDED9D9D8, 53 | 0xDADCE0E0,0xCFD0D4DB,0x2B1AA8C1,0x4C4B4839,0x4F4E5051,0x40464C4D,0x2B2D3841,0xA4A3A019, 54 | 0xB1B1A8A3,0x4B504B11,0x5F5D5753,0x5C5E6361,0x4D555C60,0xBEB13742,0xD9D8D5C4,0xDBDEDBDA, 55 | 0xCDD3DADA,0x0DBAC3C8,0x4645372C,0x4E4D4A46,0x3D464848,0x2A323A41,0xA38D0203,0xA5AAA798, 56 | 0x514184AC,0x5B585351,0x6262605F,0x575C5D5D,0xA43B4752,0xD5CFC4C4,0xDEDCDCD9,0xD6D8D9DD, 57 | 0xBFC4CED3,0x3A2D2AA3,0x4A4B4844,0x47474B4C,0x353A4246,0x81092531,0xA3A7A688,0x30ABA7A4, 58 | 0x5A54504B,0x615F5C5A,0x5B5F6163,0x32434952,0xD3CCC39C,0xDDDCDBDB,0xD9DADCDD,0xC1C8D0D5, 59 | 0x3A340CB1,0x4E4B4A44,0x4A4C4F4F,0x3C3F4549,0x9B162234,0xB0B6ADA3,0xB7B4B7B7,0x544B3AA0, 60 | 0x595C5D5A,0x57575858,0x3D4C5456,0xC6C2B223,0xD2D0CDC9,0xD2D4D4D3,0xBBC4CBCF,0x2807ABB3, 61 | 0x44413B32,0x42464544,0x383B4041,0x93202B31,0xB0ACA698,0xB4B6B1B2,0x30A7B6B3,0x615C5346, 62 | 0x62636363,0x60616161,0x4352585C,0xCFC5B619,0xD7D5D3D2,0xD8D9D9D8,0xC4CBD1D5,0x2D11A3B5, 63 | 0x48444037,0x494B4C4A,0x3C3F4348,0x171F2C34,0xA09BA10B,0xABABACAA,0x554B389A,0x6565635E, 64 | 0x60616365,0x56585D5F,0xBD0E4151,0xD7D7D3CC,0xD5D6D7D7,0xD0D3D4D5,0x1BACC0CA,0x45433F36, 65 | 0x47474644,0x44464748,0x0029363E,0xB2B1AD9F,0xB6B4B2B5,0x2AB1B9B5,0x635E5344,0x66676866, 66 | 0x595E6063,0x46505456,0xD2C6AF31,0xD9DAD9D7,0xD0D2D4D6,0xC4CACBCE,0x3820ABBA,0x45444542, 67 | 0x26333640,0x2D252524,0x9C192327,0xB1B2B0A9,0x8C97A2B0,0x4F432D11,0x67646157,0x63666868, 68 | 0x51555B60,0x0535434C,0xD6D2C8B8,0xD9DADBD9,0xCAD0D4D7,0xC1C1C4C5,0x8AA9B6C0,0x3F403928, 69 | 0x35373F41,0x2F2E3131,0x32313436,0xA4930C28,0x95AAAEA4,0x5B514529,0x68676562,0x5C616466, 70 | 0x454B5157,0xBFA12539,0xDAD6D2CC,0xD3D6D9DA,0xBFC4C8D0,0xA5B0B5B7,0x3D322387,0x44454442, 71 | 0x2E353940,0x24232324,0x051D2423,0xB1ABA598,0x13A9ACAC,0x61574D40,0x68696765,0x575D6266, 72 | 0x30404550,0xC8BFAA0C,0xD9D6D4D1,0xCBD2D4D7,0xA9B0B9C3,0x83A49F9A,0x3C331F15,0x3C40403D, 73 | 0x1A252E36,0x18231A82,0x141C2828,0xACA69E8A,0x24A9A4A6,0x61584D41,0x68696765,0x535C6165, 74 | 0xA1283B46,0xC6C1B5AA,0xD5D4D1CD,0xC6CFD2D4,0x96A1B0BD,0x9DA59E83,0x2F268E97,0x39393A35, 75 | 0x0C252C33,0x2517190F,0x222B262D,0xA4A18705,0x16A3AAA4,0x62574E3F,0x686A6866,0x4D586065, 76 | 0xB5A41536,0xC4C1B7B5,0xD3D2D0C9,0xBFCACFD2,0x8083A3B2,0xB0B0A498,0x2614A5AB,0x35393932, 77 | 0x141C2832,0x29242004,0x30323132,0x8A181726,0x84028092,0x5C514730,0x6B6A6764,0x525D6368, 78 | 0xBAB39740,0xC1BABBC1,0xD0CDC7C2,0xC3CBCDD1,0x179BACB2,0xB9B0ABA3,0x11A5B3B8,0x37383622, 79 | 0x3635373A,0x3B3A3B36,0x2732333D,0xA3A39782,0x9183A2A4,0x411D0799,0x68645B50,0x64696C6B, 80 | 0xB5344E5C,0xBDC3C2C4,0xC0B5B6B1,0xCACEC8C6,0xA2B1C2C5,0xBCB094A4,0xC0C4C4BF,0x311BA2B6, 81 | 0x2D353236,0x241F161B,0x2D363129,0x08902E2F,0x1003A380,0x1A1C2512,0x52482808,0x6D6A675F, 82 | 0x5662686D,0xC9C8AD3E,0x00A5C1C4,0xC6BBA9A0,0xCBCBCECC,0xBCBEB9C4,0xC9C9C5BE,0x0EB7C3C6, 83 | 0x3A41362B,0x841E3131,0x302B2611,0x32313839,0x0E188628,0x2B242206,0xA814191F,0x584A399D, 84 | 0x6D6C6964,0x4358636A,0xC7CDCCB0,0x3131A1C2,0xB99D2832,0xBEC1BFBE,0xC1C1B9B3,0xCACDCEC8, 85 | 0x2A8ABDC7,0x2E3B4134,0xA8AA0125,0x30210599,0x30323236,0x23231B1F,0x292C2921,0xA5931721, 86 | 0x503B9BA3,0x6B69645A,0x5260666B,0xC9C8B532,0x3622B4C0,0xA11F3535,0xB9B8BAB1,0xC3BCB4B8, 87 | 0xCCCFCCC6,0x1FAABEC7,0x2E353532,0xADA69810,0x281A8CA4,0x2B313131,0x2723272C,0x282D2B2E, 88 | 0x99970720,0x058CA3A3,0x61574F38,0x66696866,0xA5415561,0xB2C0C8C3,0x3B403B0D,0xB4A91F35, 89 | 0xB9BEBBB6,0xC8C4C4BD,0xBFC5C9CC,0x2B2B91B0,0xAF97242A,0x9FB1B1B0,0x352D241A,0x242C2B31, 90 | 0x2C282324,0x10222A23,0x8C9A9202,0x3B1C1603,0x6560554D,0x60656767,0xC3A83F53,0x26A7BCC6, 91 | 0x3E414441,0xB6B1A02E,0xBDBABEBB,0xC8C5C3C4,0xA8B6C1C5,0x24242C17,0xB2B2AA15,0x109EB0B7, 92 | 0x32342C2B,0x14232C23,0x23242422,0x00052024,0x1D849609,0x41301A08,0x6360564D,0x57616464, 93 | 0xC1B8264A,0x422AA6BC,0x3E45484A,0xC0B6AD19,0xBBBABDC0,0xC3C2BEBE,0x9CB2BAC0,0x81181812, 94 | 0xB9B8B2A8,0x2090AAB4,0x2D31322C,0x00131A23,0x02810180,0x99A39A93,0x22168298,0x20192424, 95 | 0x5C524638,0x61636361,0xB2304B58,0x329DB9C0,0x474B4C45,0xB8A7243E,0xB5BBBEBD,0xC0BABAB7, 96 | 0xB2BBC0C2,0x031787A4,0xB4B2A193,0x09A2B1B1,0x31312B26,0x02181826,0x251B1F0D,0x1E24242C, 97 | 0x17831017,0x1D221817,0x483C2808,0x62615D54,0x45545D62,0xB3BCB520,0x4C46390C,0x163A454A, 98 | 0xC1C0BBB0,0xBEBDBDBE,0xC0C2C1BE,0xA0ABB6BC,0xB3A8A196,0xB6BABAB9,0x2C1F8FAA,0x24293032, 99 | 0x16188215,0x2B2C2A1B,0x1A232A2C,0x241E2224,0x20152124,0x574E4131,0x5F61615D,0x083E5058, 100 | 0x3282ADAF,0x47494842,0xB3952F40,0xBEBDBEBB,0xC2C0BEBD,0xBCC2C3C2,0xA3A7AFB5,0xBCB9B5AB, 101 | 0xA3B2BABE,0x2B2C2506,0x1620282C,0x332A2520,0x35363536,0x2C2B2B30,0x2C2B2C2B,0x301D242B, 102 | 0x5852473E,0x555B5D5C,0xA3203D4E,0x3A2A88AC,0x3A424443,0xB8B29429,0xBABABEBB,0xC3C2C0BE, 103 | 0xB6BBC1C3,0xACA7A5B1,0xBAB9B6B1,0x01A6B2B7,0x2C2B261D,0x24242328,0x2E2B2A23,0x2A303232, 104 | 0x2B2C2B2C,0x292C2B2C,0x392B1620,0x58555044,0x4E54585A,0x82103242,0x41392B16,0x313A4042, 105 | 0xB4ADA113,0xBCB8B5B6,0xC2C1BFBE,0xB6BBBEC0,0xB8B5B5B6,0xB9BCBEBB,0x99A8B0B8,0x17180D84, 106 | 0x23171817,0x2D2C2623,0x3132312C,0x32313231,0x2C2C3131,0x40352A24,0x53514E47,0x464D5153, 107 | 0x33343940,0x403E3B37,0x31373B40,0x98011927,0xB1ACA6A2,0xB5B6B5B2,0xB5B6B5B6,0xBAB7B5B6, 108 | 0xB8BAB9B9,0xADB0B3B5,0x98A3A3A7,0x8C999798,0x190D8303,0x23242116,0x2B2B2423,0x2B2C2B2C, 109 | 0x423A322C,0x51504D48,0x474B4F51,0x40404144,0x42434241,0x3B3F4143,0x232A3135,0x98940517, 110 | 0xAAA4A4A3,0xB2B0ABAC,0xBAB8B6B4,0xBAB9BAB9,0xB5B6BAB9,0xB6B5B6B5,0xB1B2B1B3,0xA2A9ACAB, 111 | 0x9697A0A5,0x82018101,0x19171813,0x40383024,0x4B4A4845,0x4346484A,0x42424042,0x45444543, 112 | 0x40414344,0x33373A3D,0x252C2C31,0x17182323,0xA096890A,0xAFABABA4,0xB1B2B1B2,0xB5B6B2B1, 113 | 0xB5B6B5B6,0xB5B6B5B6,0xB2B1B2B1,0xABACABB0,0xA7ACABAC,0x98A1A4A3,0x3227198E,0x3E3E3B38, 114 | 0x393A393B,0x3D3D393A,0x40403D3E,0x3A3D3E3D,0x36353939,0x32323133,0x282C2B31,0x16172223, 115 | 0x97840180,0x9F969897,0xA3A4A3A4,0xACABACA9,0xABACABAB,0xABACABAC,0xABACABAC,0xA4A3AAAC, 116 | 0xA4A3A4A3,0x221688A0,0x36333130,0x31323132,0x36343132,0x35393635,0x35363638,0x32313336, 117 | 0x31323131,0x2A2C2B2C,0x1C242423,0x01151916,0x86010080,0x97989799,0xA3A4A299,0xA3A4A3A4, 118 | 0xA3A4A3A4,0xA3A4A3A4,0xA3A4A3A4,0xA3A4A3A4,0x0F8499A4,0x2C2B2521,0x23242329,0x2C2B2C25, 119 | 0x3132312B,0x32313231,0x2B2D3231,0x2C2B2C2C,0x2C2B2C2B,0x24242326,0x1718171B,0x80151817, 120 | 0x02800000,0x9897998B,0x97979897,0xA4A3A499,0xA4A3A4A3,0xA4A3A4A3,0xA3A3A4A3,0x8794A1A4, 121 | 0x24211812,0x18171923,0x23242116,0x2C2A2324,0x2C2B2C2B,0x242A2C2B,0x24232423,0x24232423, 122 | 0x24232423,0x17181621,0x18171718,0x00800116,0x01800080,0x98979887,0x98979897,0x98979897, 123 | 0x97979797,0x97989797,0x83979897,0x18171704,0x18171817,0x1A171817,0x24232423,0x232B2922, 124 | 0x23242324,0x23242324,0x24232423,0x16212423,0x17181718,0x00161817,0x00000000,0x01800080, 125 | 0x98979886,0x98979897,0x97989797,0x97989798,0x97989798,0x88999698,0x16190B80,0x17181718, 126 | 0x18181718,0x20161817,0x23242324,0x17192324,0x17181718,0x17181718,0x17181718,0x17181718, 127 | 0x00810D17,0x00800080,0x02810080,0x9897998C,0x98979897,0x98979897,0x97989797,0xA4A19798, 128 | 0xA4A3A4A3,0xA4A3A4A3,0xA4A3A4A3,0xA4A3A4A3,0x969CA4A3,0x97989798,0x01849798,0x01800080, 129 | 0x17181481,0x17181718,0x17181718,0x17171717,0x17171717,0x18171817,0x18171817,0x17171817, 130 | 0x01810517,0x01810181,0x03820181,0x9797988D,0x8B920197,0x97979603,0x82039398,0x81018101, 131 | 0x81018101,0x81018101,0x82018101,0x18171813,0x15181718,0x00800080,0x00000080,0x00000000, 132 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x80008000,0x80008000, 133 | 0x80008000,0x80008000,0x82018000,0x01151911,0x00800080,0x00800080,0x00800080,0x00000080, 134 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 135 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 136 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 137 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 138 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 139 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 140 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 141 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 142 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 143 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 144 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 145 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 146 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 147 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 148 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 149 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 150 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 151 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 152 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 153 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 154 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 155 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 156 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 157 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 158 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 159 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 160 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 161 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 162 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 163 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 164 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 165 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 166 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 167 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 168 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 169 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 170 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 171 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 172 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 173 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 174 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 175 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 176 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 177 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 178 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 179 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 180 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 181 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 182 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 183 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 184 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 185 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 186 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 187 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 188 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 189 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 190 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 191 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 192 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 193 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 194 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 195 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 196 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 197 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 198 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 199 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 200 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 201 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 202 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 203 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 204 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 205 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 206 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 207 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 208 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 209 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 210 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 211 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 212 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 213 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 214 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 215 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 216 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 217 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 218 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 219 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 220 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 221 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 222 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 223 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 224 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 225 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 226 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 227 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 228 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 229 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 230 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 231 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 232 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 233 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 234 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 235 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 236 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 237 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 238 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 239 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 240 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 241 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 242 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 243 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 244 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 245 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 246 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 247 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 248 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 249 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 250 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 251 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 252 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 253 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 254 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 255 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 256 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 257 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 258 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 259 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 260 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 261 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 262 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 263 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 264 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 265 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 266 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 267 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 268 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 269 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 270 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 271 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 272 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 273 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 274 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 275 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 276 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 277 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 278 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 279 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 280 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 281 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 282 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 283 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 284 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 285 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 286 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 287 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 288 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 289 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 290 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 291 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 292 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 293 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 294 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 295 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 296 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 297 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 298 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 299 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 300 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 301 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 302 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 303 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 304 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 305 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 306 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 307 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 308 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 309 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 310 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 311 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 312 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 313 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 314 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 315 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 316 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 317 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 318 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 319 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 320 | 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 321 | 0x00000000, 322 | }; 323 | --------------------------------------------------------------------------------