annotate SFDemoUnit.h @ 1:f3fd4e19cec0 tip

first binary upload
author wenx <xue.wen@eecs.qmul.ac.uk>
date Wed, 10 Aug 2011 14:56:28 +0100
parents a6a46af64546
children
rev   line source
xue@0 1 /*
xue@0 2 Harmonic Visualiser
xue@0 3
xue@0 4 An audio file viewer and editor.
xue@0 5 Centre for Digital Music, Queen Mary, University of London.
xue@0 6 This file copyright 2011 Wen Xue.
xue@0 7
xue@0 8 This program is free software; you can redistribute it and/or
xue@0 9 modify it under the terms of the GNU General Public License as
xue@0 10 published by the Free Software Foundation; either version 2 of the
xue@0 11 License, or (at your option) any later version.
xue@0 12 */
xue@0 13 //---------------------------------------------------------------------------
xue@0 14
xue@0 15 #ifndef SFDemoUnitH
xue@0 16 #define SFDemoUnitH
xue@0 17 //---------------------------------------------------------------------------
xue@0 18 /*
xue@0 19 SFDemoUnit.cpp implements the source-filter modelling demo of HV.
xue@0 20 */
xue@0 21
xue@0 22 #include <Classes.hpp>
xue@0 23 #include <Controls.hpp>
xue@0 24 #include <StdCtrls.hpp>
xue@0 25 #include <Forms.hpp>
xue@0 26 #include <ExtCtrls.hpp>
xue@0 27 #include "AudioPac.h"
xue@0 28 #include "WaveView.h"
xue@0 29 #include "EventBoxUnit.h"
xue@0 30 #include "hssf.h"
xue@0 31 #include "SUThread.h"
xue@0 32 #include <ComCtrls.hpp>
xue@0 33 #include <Dialogs.hpp>
xue@0 34
xue@0 35 //---------------------------------------------------------------------------
xue@0 36
xue@0 37
xue@0 38
xue@0 39 class TSFDemoForm : public TForm
xue@0 40 {
xue@0 41 __published: // IDE-managed Components
xue@0 42 TPanel *Panel1;
xue@0 43 TPanel *Panel2;
xue@0 44 TSplitter *Splitter1;
xue@0 45 TSplitter *Splitter2;
xue@0 46 TPanel *Panel3;
xue@0 47 TSaveDialog *SaveDialog1;
xue@0 48 TPanel *Panel4;
xue@0 49 TSplitter *Splitter3;
xue@0 50 TPanel *Panel5;
xue@0 51 TPanel *Panel10;
xue@0 52 TLabel *Label13;
xue@0 53 TPageControl *PageControl1;
xue@0 54 TTabSheet *AmpOverSheet;
xue@0 55 TTabSheet *AmpCycleSheet;
xue@0 56 TLabel *Label9;
xue@0 57 TLabel *Label15;
xue@0 58 TLabel *Label16;
xue@0 59 TSplitter *Splitter5;
xue@0 60 TPanel *PanelControl;
xue@0 61 TListBox *MethodListBox;
xue@0 62 TEdit *FEdit;
xue@0 63 TComboBox *FScaleCombo;
xue@0 64 TEdit *ThetaEdit;
xue@0 65 TPanel *Panel7;
xue@0 66 TSplitter *Splitter4;
xue@0 67 TPanel *Panel8;
xue@0 68 TSplitter *Splitter6;
xue@0 69 TImage *Image0;
xue@0 70 TImage *Image1;
xue@0 71 TPanel *Panel9;
xue@0 72 TLabel *Label7;
xue@0 73 TPanel *Panel15;
xue@0 74 TImage *AImage3;
xue@0 75 TSplitter *Splitter7;
xue@0 76 TPanel *Panel12;
xue@0 77 TPanel *Panel13;
xue@0 78 TImage *AImage1;
xue@0 79 TPanel *Panel6;
xue@0 80 TLabel *Label8;
xue@0 81 TPanel *Panel11;
xue@0 82 TImage *AImage4;
xue@0 83 TSplitter *Splitter8;
xue@0 84 TPanel *Panel14;
xue@0 85 TPanel *Panel16;
xue@0 86 TImage *AImage2;
xue@0 87 TEdit *updbEdit;
xue@0 88 TEdit *downdbEdit;
xue@0 89 TEdit *FShiftdBEdit;
xue@0 90 TCheckBox *CheckBox1;
xue@0 91 TEdit *fmaxEdit;
xue@0 92 TEdit *SFPicShift;
xue@0 93 TListBox *TmplListBox;
xue@0 94 TButton *Button1;
xue@0 95 TCheckBox *SFCheck;
xue@0 96 TCheckBox *MACheck;
xue@0 97 TLabel *Label1;
xue@0 98 TTrackBar *TrackBar1;
xue@0 99 TComboBox *ComboBox1;
xue@0 100 TButton *SaveButton;
xue@0 101 TButton *UseButton;
xue@0 102 TTrackBar *TrackBar2;
xue@0 103 void __fastcall Image1MouseMove(TObject *Sender, TShiftState Shift,
xue@0 104 int X, int Y);
xue@0 105 void __fastcall SFCheckClick(TObject *Sender);
xue@0 106 void __fastcall AImage3MouseMove(TObject *Sender, TShiftState Shift,
xue@0 107 int X, int Y);
xue@0 108 void __fastcall AImage1MouseDown(TObject *Sender, TMouseButton Button,
xue@0 109 TShiftState Shift, int X, int Y);
xue@0 110 void __fastcall AImage1MouseUp(TObject *Sender, TMouseButton Button,
xue@0 111 TShiftState Shift, int X, int Y);
xue@0 112 void __fastcall PageControl1Change(TObject *Sender);
xue@0 113 void __fastcall SaveButtonClick(TObject *Sender);
xue@0 114 void __fastcall UseButtonClick(TObject *Sender);
xue@0 115 void __fastcall Panel4Resize(TObject *Sender);
xue@0 116 void __fastcall Panel1Resize(TObject *Sender);
xue@0 117 void __fastcall AmpCycleSheetResize(TObject *Sender);
xue@0 118 void __fastcall MethodListBoxClick(TObject *Sender);
xue@0 119 void __fastcall AmpOverSheetResize(TObject *Sender);
xue@0 120 void __fastcall Splitter7Moved(TObject *Sender);
xue@0 121 void __fastcall AImage3DblClick(TObject *Sender);
xue@0 122 void __fastcall Panel7Resize(TObject *Sender);
xue@0 123 void __fastcall Panel8Resize(TObject *Sender);
xue@0 124 void __fastcall CheckBox1Click(TObject *Sender);
xue@0 125 void __fastcall fmaxEditKeyPress(TObject *Sender, char &Key);
xue@0 126 void __fastcall Button1Click(TObject *Sender);
xue@0 127 private: // User declarations
xue@0 128 bool analyze2;
xue@0 129 public: // User declarations
xue@0 130 __fastcall TSFDemoForm(TComponent* Owner);
xue@0 131 __fastcall ~TSFDemoForm();
xue@0 132
xue@0 133 double dbrange;
xue@0 134
xue@0 135 bool ForceUpdate;
xue@0 136
xue@0 137 TSUThread* SUThread;
xue@0 138 int pThread;
xue@0 139 TSUThread* ThreadList[ThreadCaps];
xue@0 140
xue@0 141 void __fastcall SUTerminate(TObject* Sender);
xue@0 142 DYNAMIC void __fastcall MouseWheelHandler(TMessage& Msg);
xue@0 143 void __fastcall Image1MouseWheel(TObject* Sender, TShiftState Shift, int WheelDelta, const TPoint &MousePos, bool &Handled);
xue@0 144 void __fastcall AImage3MouseWheel(TObject* Sender, TShiftState Shift, int WheelDelta, const TPoint &MousePos, bool &Handled);
xue@0 145
xue@0 146 int StartPos;
xue@0 147 TWaveAudio* WaveAudio1;
xue@0 148 TWaveView* WaveView1;
xue@0 149 TWaveAudio* WaveAudio2;
xue@0 150 TWaveView* WaveView2;
xue@0 151
xue@0 152 TSF SF;
xue@0 153 TSF SF0;
xue@0 154
xue@0 155 THS* HS;
xue@0 156 double f_c, f_ex;
xue@0 157 double* cyclefrs;
xue@0 158 double* cyclefs;
xue@0 159 int cyclefrcount;
xue@0 160 int CurrentPartial;
xue@0 161 int CurrentFB;
xue@0 162 int CurrentFr;
xue@0 163 int CurrentP;
xue@0 164 int CurrentK;
xue@0 165 int CurrentB;
xue@0 166 int CurrentC;
xue@0 167 double FXX[64];
xue@0 168 double NAF[4096];
xue@0 169 int SX[128]; //size related to number of partials
xue@0 170 int FX[128]; //size related to number of filter control points
xue@0 171 int FY[128]; //ditto
xue@0 172 int SXcycle[128];
xue@0 173 int KX1[64]; //size related to number of frames per cycle
xue@0 174 int KX2[64];
xue@0 175 int BX1[128]; //size related to number of cycles
xue@0 176 int BX2[128];
xue@0 177 int CX1[128]; //size related to number of cycles
xue@0 178 int CX2[128];
xue@0 179 int CY1[128];
xue@0 180 int CY2[128];
xue@0 181 int SXc;
xue@0 182 int SXcyclec;
xue@0 183 int FirstStartDrag;
xue@0 184 int StartDrag;
xue@0 185 int FirstStartDragX;
xue@0 186 int StartDragX;
xue@0 187
xue@0 188 __int16* Wave1;
xue@0 189
xue@0 190 __int16* datain;
xue@0 191
xue@0 192 void Copydata();
xue@0 193 void DrawModulator();
xue@0 194 void __fastcall ExternalInput();
xue@0 195 void FindNote();
xue@0 196 void Reset();
xue@0 197 void __fastcall SaveSF();
xue@0 198 void __fastcall SaveSF0();
xue@0 199 void __fastcall SaveWave();
xue@0 200 void __fastcall S_U(bool sf=false);
xue@0 201 void Synthesize();
xue@0 202 void UpdateDisplay(bool f0=true, bool f0s=true, bool f0d=true, bool sf=true);
xue@0 203 int __fastcall WaveView1CustomInfo(TObject*);
xue@0 204 void __fastcall WaveView1OpMode(TObject* Sender, TShiftState Shift, int& OpMode);
xue@0 205 };
xue@0 206 //---------------------------------------------------------------------------
xue@0 207 extern PACKAGE TSFDemoForm *SFDemoForm;
xue@0 208 //---------------------------------------------------------------------------
xue@0 209 #endif