Audio singal input and output example for DISCO-F746. Input: MEMS mic, Output: CN10 OUT, Acoustic effect: echo and frequency shift. DISCO-F746 によるオーディオ信号入出力.入力:MEMS マイク,出力:CN10 OUT,音響効果:エコー,周波数変換.
Dependencies: F746_GUI F746_SAI_IO
Diff: MyAcousticEffector_MIC/InitializeGUI.hpp
- Revision:
- 10:56f2f01df983
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MyAcousticEffector_MIC/InitializeGUI.hpp Mon Apr 10 13:44:13 2017 +0000 @@ -0,0 +1,67 @@ +//-------------------------------------------------------------- +// 「MEMS マイクの入力に対して音響効果を与える」で使う GUI 等の初期化 +// +// 2017/04/08, Copyright (c) 2017 MIKAMI, Naoki +//-------------------------------------------------------------- + +#ifndef EFFECTOR_INIT_GUI_HPP +#define EFFECTOR_INIT_GUI_HPP + +#include "F746_GUI.hpp" +#include "WaveformDisplay.hpp" +using namespace Mikami; + +void InitializeGUI( + ButtonGroup *(&onOff), ButtonGroup *(&menu), + SeekBar *(&barReverb), SeekBar *(&barFqCh), + NumericLabel<int> *(&frqLabel), + WaveformDisplay *(&dispIn), + WaveformDisplay *(&dispOut)) +{ + Label myLabel(240, 8, "Reverberator and voice changer", + Label::CENTER, Font16); + + // ButtonGroup 用の定数 + const uint16_t BG_LEFT = 360; + const uint16_t BG_WIDTH = 110; + const uint16_t BG_HEIGHT = 45; + + // ButtonGroup: "ON", "OFF" + const string ON_OFF[2] = {"ON", "OFF"}; + onOff = new ButtonGroup(BG_LEFT, 40, BG_WIDTH/2, BG_HEIGHT, + 2, ON_OFF, 0, 0, 2, 1); + + // ButtonGroup: "THROUGH", "ECHO", "F_SHIFTER" + const string MENU[3] = {"THROUGH", "REVERB", "VOICE CHANGER"}; + menu = new ButtonGroup(BG_LEFT, 110, BG_WIDTH, BG_HEIGHT, + 3, MENU, 0, 10, 1, 0); + + // SeekBar 用の定数 + const uint16_t SB_LEFT = BG_LEFT - 300; + const uint16_t SB_WIDTH = 256; + const uint16_t Y0_E = 195; + const uint16_t Y0_F = Y0_E + BG_HEIGHT + 5; + + // リバーブ用 + barReverb = new SeekBar(SB_LEFT, Y0_E, SB_WIDTH, + 0, 6000, 0, "short", "", "long"); + barReverb->Inactivate(); + + // 周波数シフタ用 + barFqCh = new SeekBar(SB_LEFT, Y0_F, SB_WIDTH, + 0, 200, 100, "0", "", "200"); + barFqCh->Inactivate(); + frqLabel = new NumericLabel<int>( + SB_LEFT+SB_WIDTH/2, Y0_F-28, "+%d Hz", + barFqCh->GetIntValue(), Label::CENTER); + frqLabel->Redraw(GuiBase::ENUM_INACTIVE_TEXT); + + // 波形表示用 + Label inLabel(SB_LEFT-40, 55, "IN"); + dispIn = new WaveformDisplay( + GuiBase::GetLcd(), SB_LEFT, 60, 256, 9); + Label outLabel(SB_LEFT-40, 125, "OUT"); + dispOut = new WaveformDisplay( + GuiBase::GetLcd(), SB_LEFT, 130, 256, 9); +} +#endif // EFFECTOR_INIT_GUI_HPP