Mercurial > hg > hv
view VibratoDemoUnit.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 VibratoDemoUnitH #define VibratoDemoUnitH //--------------------------------------------------------------------------- /* VibratoDemoUnit implements the Vibrato analysis and synthesis demo GUI 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 "SUThread.h" #include <ComCtrls.hpp> #include <Dialogs.hpp> #include "vibrato.h" //--------------------------------------------------------------------------- class TSUThread; const ThreadCaps=1024; class TVibratoDemoForm : public TForm { __published: // IDE-managed Components TPanel *Panel1; TPanel *Panel2; TSplitter *Splitter1; TSplitter *Splitter2; TPanel *Panel3; TPanel *Panel4; TPanel *Panel5; TSplitter *Splitter3; TPanel *Panel8; TPanel *Panel7; TImage *Image1; TPanel *Panel6; TImage *Image2; TSplitter *Splitter4; TPanel *Panel9; TSplitter *Splitter5; TImage *Image0; TSplitter *Splitter6; TPanel *Panel10; TPageControl *PageControl1; TTabSheet *ModOverSheet; TTabSheet *ModCycleSheet; TLabel *Label1; TEdit *RegEdit; TLabel *Label2; TEdit *RateEdit; TLabel *Label3; TEdit *CycleRateEdit; TLabel *Label4; TEdit *CycleDurationEdit; TPanel *Panel11; TImage *MImage1; TLabel *Label5; TEdit *CycleExtentEdit; TLabel *Label6; TEdit *CycleAvgPDEdit; TEdit *CyclePitchEdit; TPanel *Panel12; TImage *MImage2; TTabSheet *AmpOverSheet; TPanel *Panel13; TImage *AImage1; TTabSheet *AmpCycleSheet; TPanel *Panel14; TImage *AImage2; TCheckBox *PeakMarksCheck; TButton *RegButton; TPanel *Panel15; TImage *AImage3; TPanel *Panel16; TImage *AImage4; TLabel *Label7; TLabel *Label8; TLabel *Label9; TLabel *Label10; TLabel *Label11; TLabel *Label12; TLabel *Label13; TLabel *Label14; TEdit *DurationEdit; TSaveDialog *SaveDialog1; TListBox *ListBox1; TEdit *FEdit; TComboBox *FScaleCombo; TEdit *ThetaEdit; TButton *Button1; TCheckBox *ResidueCheck; TCheckBox *SFCheck; TCheckBox *MACheck; TLabel *Label15; void __fastcall Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image2MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall SFCheckClick(TObject *Sender); void __fastcall RegButtonClick(TObject *Sender); void __fastcall AImage3MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall MImage1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image2DblClick(TObject *Sender); 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 CycleRateEditMouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall PageControl1Change(TObject *Sender); void __fastcall Panel4Resize(TObject *Sender); void __fastcall Panel8Resize(TObject *Sender); void __fastcall Panel1Resize(TObject *Sender); void __fastcall AmpOverSheetResize(TObject *Sender); void __fastcall AmpCycleSheetResize(TObject *Sender); void __fastcall ListBox1Click(TObject *Sender); void __fastcall Button1Click(TObject *Sender); void __fastcall Panel9Resize(TObject *Sender); void __fastcall Panel7Resize(TObject *Sender); private: // User declarations public: // User declarations __fastcall TVibratoDemoForm(TComponent* Owner); __fastcall ~TVibratoDemoForm(); 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 Image2MouseWheel(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); void __fastcall AImage4MouseWheel(TObject* Sender, TShiftState Shift, int WheelDelta, const TPoint &MousePos, bool &Handled); void __fastcall MImage1MouseWheel(TObject* Sender, TShiftState Shift, int WheelDelta, const TPoint &MousePos, bool &Handled); void __fastcall RateEditMouseWheel(TObject* Sender, TShiftState Shift, int WheelDelta, const TPoint &MousePos, bool &Handled); void __fastcall DurationEditMouseWheel(TObject* Sender, TShiftState Shift, int WheelDelta, const TPoint &MousePos, bool &Handled); void __fastcall PitchEditMouseWheel(TObject* Sender, TShiftState Shift, int WheelDelta, const TPoint &MousePos, bool &Handled); int StartPos; TWaveAudio* WaveAudio1; TWaveView* WaveView1; TWaveAudio* WaveAudio2; TWaveView* WaveView2; TVo V; THS* HS; double f_c, f_ex; double* peaky; double* cyclefrs; double* cyclefs; int cyclefrcount; int CurrentModCycle; double CurrentModCycleStart; double CurrentModCycleEnd; int CurrentPartial; int CurrentK; int CurrentC; double FXX[64]; double NAF[4096]; int SX[128]; //size related to number of partials int SXcycle[128]; int KX1[64]; //size related to number of frames per cycle int KX2[64]; 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; __int16* datain; void Copydata(); void DrawModulator(); void __fastcall ExternalInput(); void FindNote(); void Reset(); void __fastcall SaveV(); 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 TVibratoDemoForm *VibratoDemoForm; //--------------------------------------------------------------------------- #endif