SD card player with variable cotoff frequency lowpass and highpass IIR filter. SD カードの *.wav ファイルのオーディオ信号を,遮断周波数可変 IIR 低域通過および高域通過フィルタを通して,ボードに搭載されているCODEC で出力する.このプログラムについては,CQ出版社インターフェース誌 2018年8月号で解説している.
Dependencies: F746_GUI F746_SAI_IO FrequencyResponseDrawer SD_PlayerSkeleton
main.cpp@4:eae45f4cfeed, 2016-11-06 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Sun Nov 06 13:14:15 2016 +0000
- Revision:
- 4:eae45f4cfeed
- Parent:
- 3:9357ca2491be
- Child:
- 5:82b24bd280ce
5
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:92078e38d79f | 1 | //-------------------------------------------------------------- |
MikamiUitOpen | 0:92078e38d79f | 2 | // 可変フィルタ処理付き SD オーディオプレーヤー |
MikamiUitOpen | 0:92078e38d79f | 3 | // SD のファイル: *.wav |
MikamiUitOpen | 0:92078e38d79f | 4 | // PCM,16 ビットステレオ,標本化周波数 44.1 kHz |
MikamiUitOpen | 0:92078e38d79f | 5 | // 可変フィルタ ---- IIR 低域通過および高域通過フィルタ |
MikamiUitOpen | 2:dcaee06f6ccb | 6 | // 出力:モノラル(L+R を左右チャンネルに出力する) |
MikamiUitOpen | 0:92078e38d79f | 7 | // |
MikamiUitOpen | 4:eae45f4cfeed | 8 | // 2016/11/06, Copyright (c) 2016 MIKAMI, Naoki |
MikamiUitOpen | 0:92078e38d79f | 9 | //-------------------------------------------------------------- |
MikamiUitOpen | 0:92078e38d79f | 10 | |
MikamiUitOpen | 0:92078e38d79f | 11 | #include "VariableIirFilter.hpp" |
MikamiUitOpen | 0:92078e38d79f | 12 | |
MikamiUitOpen | 0:92078e38d79f | 13 | using namespace Mikami; |
MikamiUitOpen | 0:92078e38d79f | 14 | |
MikamiUitOpen | 0:92078e38d79f | 15 | int main() |
MikamiUitOpen | 0:92078e38d79f | 16 | { |
MikamiUitOpen | 0:92078e38d79f | 17 | const int FS = AUDIO_FREQUENCY_44K; // 標本化周波数 |
MikamiUitOpen | 0:92078e38d79f | 18 | |
MikamiUitOpen | 0:92078e38d79f | 19 | // フィルタの設計と周波数特性描画用 |
MikamiUitOpen | 2:dcaee06f6ccb | 20 | BtwthDesignerDrawer drawerObj( |
MikamiUitOpen | 2:dcaee06f6ccb | 21 | 55, // グラフの左端の位置 |
MikamiUitOpen | 2:dcaee06f6ccb | 22 | 230, // グラフの下端の位置 |
MikamiUitOpen | 0:92078e38d79f | 23 | 3, // 1 dB 当たりのピクセル数 |
MikamiUitOpen | 0:92078e38d79f | 24 | FS, // 標本化周波数 |
MikamiUitOpen | 0:92078e38d79f | 25 | 6, // フィルタの次数 |
MikamiUitOpen | 0:92078e38d79f | 26 | 400, // 最初に与える遮断周波数 |
MikamiUitOpen | 0:92078e38d79f | 27 | 200, // 遮断周波数の最小値 |
MikamiUitOpen | 0:92078e38d79f | 28 | 10000, // 遮断周波数の最大値 |
MikamiUitOpen | 0:92078e38d79f | 29 | BilinearDesign::LPF); // 低域通過フィルタ |
MikamiUitOpen | 0:92078e38d79f | 30 | |
MikamiUitOpen | 0:92078e38d79f | 31 | VariableIirFilter myPlayer("Variable LPF and HPF", |
MikamiUitOpen | 0:92078e38d79f | 32 | FS, drawerObj); |
MikamiUitOpen | 0:92078e38d79f | 33 | myPlayer.Execute(); |
MikamiUitOpen | 0:92078e38d79f | 34 | } |