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

Committer:
MikamiUitOpen
Date:
Mon Apr 10 13:44:13 2017 +0000
Revision:
10:56f2f01df983
11

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 10:56f2f01df983 1 //--------------------------------------------------------------
MikamiUitOpen 10:56f2f01df983 2 // 「MEMS マイクの入力に対して音響効果を与える」で使う GUI 等の初期化
MikamiUitOpen 10:56f2f01df983 3 //
MikamiUitOpen 10:56f2f01df983 4 // 2017/04/08, Copyright (c) 2017 MIKAMI, Naoki
MikamiUitOpen 10:56f2f01df983 5 //--------------------------------------------------------------
MikamiUitOpen 10:56f2f01df983 6
MikamiUitOpen 10:56f2f01df983 7 #ifndef EFFECTOR_INIT_GUI_HPP
MikamiUitOpen 10:56f2f01df983 8 #define EFFECTOR_INIT_GUI_HPP
MikamiUitOpen 10:56f2f01df983 9
MikamiUitOpen 10:56f2f01df983 10 #include "F746_GUI.hpp"
MikamiUitOpen 10:56f2f01df983 11 #include "WaveformDisplay.hpp"
MikamiUitOpen 10:56f2f01df983 12 using namespace Mikami;
MikamiUitOpen 10:56f2f01df983 13
MikamiUitOpen 10:56f2f01df983 14 void InitializeGUI(
MikamiUitOpen 10:56f2f01df983 15 ButtonGroup *(&onOff), ButtonGroup *(&menu),
MikamiUitOpen 10:56f2f01df983 16 SeekBar *(&barReverb), SeekBar *(&barFqCh),
MikamiUitOpen 10:56f2f01df983 17 NumericLabel<int> *(&frqLabel),
MikamiUitOpen 10:56f2f01df983 18 WaveformDisplay *(&dispIn),
MikamiUitOpen 10:56f2f01df983 19 WaveformDisplay *(&dispOut))
MikamiUitOpen 10:56f2f01df983 20 {
MikamiUitOpen 10:56f2f01df983 21 Label myLabel(240, 8, "Reverberator and voice changer",
MikamiUitOpen 10:56f2f01df983 22 Label::CENTER, Font16);
MikamiUitOpen 10:56f2f01df983 23
MikamiUitOpen 10:56f2f01df983 24 // ButtonGroup 用の定数
MikamiUitOpen 10:56f2f01df983 25 const uint16_t BG_LEFT = 360;
MikamiUitOpen 10:56f2f01df983 26 const uint16_t BG_WIDTH = 110;
MikamiUitOpen 10:56f2f01df983 27 const uint16_t BG_HEIGHT = 45;
MikamiUitOpen 10:56f2f01df983 28
MikamiUitOpen 10:56f2f01df983 29 // ButtonGroup: "ON", "OFF"
MikamiUitOpen 10:56f2f01df983 30 const string ON_OFF[2] = {"ON", "OFF"};
MikamiUitOpen 10:56f2f01df983 31 onOff = new ButtonGroup(BG_LEFT, 40, BG_WIDTH/2, BG_HEIGHT,
MikamiUitOpen 10:56f2f01df983 32 2, ON_OFF, 0, 0, 2, 1);
MikamiUitOpen 10:56f2f01df983 33
MikamiUitOpen 10:56f2f01df983 34 // ButtonGroup: "THROUGH", "ECHO", "F_SHIFTER"
MikamiUitOpen 10:56f2f01df983 35 const string MENU[3] = {"THROUGH", "REVERB", "VOICE CHANGER"};
MikamiUitOpen 10:56f2f01df983 36 menu = new ButtonGroup(BG_LEFT, 110, BG_WIDTH, BG_HEIGHT,
MikamiUitOpen 10:56f2f01df983 37 3, MENU, 0, 10, 1, 0);
MikamiUitOpen 10:56f2f01df983 38
MikamiUitOpen 10:56f2f01df983 39 // SeekBar 用の定数
MikamiUitOpen 10:56f2f01df983 40 const uint16_t SB_LEFT = BG_LEFT - 300;
MikamiUitOpen 10:56f2f01df983 41 const uint16_t SB_WIDTH = 256;
MikamiUitOpen 10:56f2f01df983 42 const uint16_t Y0_E = 195;
MikamiUitOpen 10:56f2f01df983 43 const uint16_t Y0_F = Y0_E + BG_HEIGHT + 5;
MikamiUitOpen 10:56f2f01df983 44
MikamiUitOpen 10:56f2f01df983 45 // リバーブ用
MikamiUitOpen 10:56f2f01df983 46 barReverb = new SeekBar(SB_LEFT, Y0_E, SB_WIDTH,
MikamiUitOpen 10:56f2f01df983 47 0, 6000, 0, "short", "", "long");
MikamiUitOpen 10:56f2f01df983 48 barReverb->Inactivate();
MikamiUitOpen 10:56f2f01df983 49
MikamiUitOpen 10:56f2f01df983 50 // 周波数シフタ用
MikamiUitOpen 10:56f2f01df983 51 barFqCh = new SeekBar(SB_LEFT, Y0_F, SB_WIDTH,
MikamiUitOpen 10:56f2f01df983 52 0, 200, 100, "0", "", "200");
MikamiUitOpen 10:56f2f01df983 53 barFqCh->Inactivate();
MikamiUitOpen 10:56f2f01df983 54 frqLabel = new NumericLabel<int>(
MikamiUitOpen 10:56f2f01df983 55 SB_LEFT+SB_WIDTH/2, Y0_F-28, "+%d Hz",
MikamiUitOpen 10:56f2f01df983 56 barFqCh->GetIntValue(), Label::CENTER);
MikamiUitOpen 10:56f2f01df983 57 frqLabel->Redraw(GuiBase::ENUM_INACTIVE_TEXT);
MikamiUitOpen 10:56f2f01df983 58
MikamiUitOpen 10:56f2f01df983 59 // 波形表示用
MikamiUitOpen 10:56f2f01df983 60 Label inLabel(SB_LEFT-40, 55, "IN");
MikamiUitOpen 10:56f2f01df983 61 dispIn = new WaveformDisplay(
MikamiUitOpen 10:56f2f01df983 62 GuiBase::GetLcd(), SB_LEFT, 60, 256, 9);
MikamiUitOpen 10:56f2f01df983 63 Label outLabel(SB_LEFT-40, 125, "OUT");
MikamiUitOpen 10:56f2f01df983 64 dispOut = new WaveformDisplay(
MikamiUitOpen 10:56f2f01df983 65 GuiBase::GetLcd(), SB_LEFT, 130, 256, 9);
MikamiUitOpen 10:56f2f01df983 66 }
MikamiUitOpen 10:56f2f01df983 67 #endif // EFFECTOR_INIT_GUI_HPP