Mercurial > hg > hv
view 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 |
line wrap: on
line source
/* Harmonic Visualiser An audio file viewer and editor. Centre for Digital Music, Queen Mary, University of London. This file copyright 2011 Wen Xue. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. */ //--------------------------------------------------------------------------- #ifndef SFDemoUnitH #define SFDemoUnitH //--------------------------------------------------------------------------- /* SFDemoUnit.cpp implements the source-filter modelling demo of HV. */ #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ExtCtrls.hpp> #include "AudioPac.h" #include "WaveView.h" #include "EventBoxUnit.h" #include "hssf.h" #include "SUThread.h" #include <ComCtrls.hpp> #include <Dialogs.hpp> //--------------------------------------------------------------------------- class TSFDemoForm : public TForm { __published: // IDE-managed Components TPanel *Panel1; TPanel *Panel2; TSplitter *Splitter1; TSplitter *Splitter2; TPanel *Panel3; TSaveDialog *SaveDialog1; TPanel *Panel4; TSplitter *Splitter3; TPanel *Panel5; TPanel *Panel10; TLabel *Label13; TPageControl *PageControl1; TTabSheet *AmpOverSheet; TTabSheet *AmpCycleSheet; TLabel *Label9; TLabel *Label15; TLabel *Label16; TSplitter *Splitter5; TPanel *PanelControl; TListBox *MethodListBox; TEdit *FEdit; TComboBox *FScaleCombo; TEdit *ThetaEdit; TPanel *Panel7; TSplitter *Splitter4; TPanel *Panel8; TSplitter *Splitter6; TImage *Image0; TImage *Image1; TPanel *Panel9; TLabel *Label7; TPanel *Panel15; TImage *AImage3; TSplitter *Splitter7; TPanel *Panel12; TPanel *Panel13; TImage *AImage1; TPanel *Panel6; TLabel *Label8; TPanel *Panel11; TImage *AImage4; TSplitter *Splitter8; TPanel *Panel14; TPanel *Panel16; TImage *AImage2; TEdit *updbEdit; TEdit *downdbEdit; TEdit *FShiftdBEdit; TCheckBox *CheckBox1; TEdit *fmaxEdit; TEdit *SFPicShift; TListBox *TmplListBox; TButton *Button1; TCheckBox *SFCheck; TCheckBox *MACheck; TLabel *Label1; TTrackBar *TrackBar1; TComboBox *ComboBox1; TButton *SaveButton; TButton *UseButton; TTrackBar *TrackBar2; void __fastcall Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall SFCheckClick(TObject *Sender); void __fastcall AImage3MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall AImage1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); void __fastcall AImage1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); void __fastcall PageControl1Change(TObject *Sender); void __fastcall SaveButtonClick(TObject *Sender); void __fastcall UseButtonClick(TObject *Sender); void __fastcall Panel4Resize(TObject *Sender); void __fastcall Panel1Resize(TObject *Sender); void __fastcall AmpCycleSheetResize(TObject *Sender); void __fastcall MethodListBoxClick(TObject *Sender); void __fastcall AmpOverSheetResize(TObject *Sender); void __fastcall Splitter7Moved(TObject *Sender); void __fastcall AImage3DblClick(TObject *Sender); void __fastcall Panel7Resize(TObject *Sender); void __fastcall Panel8Resize(TObject *Sender); void __fastcall CheckBox1Click(TObject *Sender); void __fastcall fmaxEditKeyPress(TObject *Sender, char &Key); void __fastcall Button1Click(TObject *Sender); private: // User declarations bool analyze2; public: // User declarations __fastcall TSFDemoForm(TComponent* Owner); __fastcall ~TSFDemoForm(); double dbrange; bool ForceUpdate; TSUThread* SUThread; int pThread; TSUThread* ThreadList[ThreadCaps]; void __fastcall SUTerminate(TObject* Sender); DYNAMIC void __fastcall MouseWheelHandler(TMessage& Msg); void __fastcall Image1MouseWheel(TObject* Sender, TShiftState Shift, int WheelDelta, const TPoint &MousePos, bool &Handled); void __fastcall AImage3MouseWheel(TObject* Sender, TShiftState Shift, int WheelDelta, const TPoint &MousePos, bool &Handled); int StartPos; TWaveAudio* WaveAudio1; TWaveView* WaveView1; TWaveAudio* WaveAudio2; TWaveView* WaveView2; TSF SF; TSF SF0; THS* HS; double f_c, f_ex; double* cyclefrs; double* cyclefs; int cyclefrcount; int CurrentPartial; int CurrentFB; int CurrentFr; int CurrentP; int CurrentK; int CurrentB; int CurrentC; double FXX[64]; double NAF[4096]; int SX[128]; //size related to number of partials int FX[128]; //size related to number of filter control points int FY[128]; //ditto int SXcycle[128]; int KX1[64]; //size related to number of frames per cycle int KX2[64]; int BX1[128]; //size related to number of cycles int BX2[128]; int CX1[128]; //size related to number of cycles int CX2[128]; int CY1[128]; int CY2[128]; int SXc; int SXcyclec; int FirstStartDrag; int StartDrag; int FirstStartDragX; int StartDragX; __int16* Wave1; __int16* datain; void Copydata(); void DrawModulator(); void __fastcall ExternalInput(); void FindNote(); void Reset(); void __fastcall SaveSF(); void __fastcall SaveSF0(); void __fastcall SaveWave(); void __fastcall S_U(bool sf=false); void Synthesize(); void UpdateDisplay(bool f0=true, bool f0s=true, bool f0d=true, bool sf=true); int __fastcall WaveView1CustomInfo(TObject*); void __fastcall WaveView1OpMode(TObject* Sender, TShiftState Shift, int& OpMode); }; //--------------------------------------------------------------------------- extern PACKAGE TSFDemoForm *SFDemoForm; //--------------------------------------------------------------------------- #endif