⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changepitch.h

📁 Audacity是一款用於錄音和編輯聲音的、免費的開放源碼軟體。它可以執行於Mac OS X、Microsoft Windows、GNU/Linux和其它作業系統
💻 H
字号:
/**********************************************************************  Audacity: A Digital Audio Editor  ChangePitch.h  Vaughan Johnson, Dominic Mazzoni    Change Pitch effect provides raising or lowering   the pitch without changing the tempo.**********************************************************************/#if USE_SOUNDTOUCH#ifndef __AUDACITY_EFFECT_CHANGEPITCH__#define __AUDACITY_EFFECT_CHANGEPITCH__#include "SoundTouchEffect.h"#include <wx/dialog.h>#include <wx/intl.h>#include <wx/slider.h>class EffectChangePitch:public EffectSoundTouch { public:   EffectChangePitch();   virtual wxString GetEffectName() {      return wxString(_("Change Pitch..."));   }      virtual wxString GetEffectAction() {      return wxString(_("Changing Pitch"));   }      // Useful only after PromptUser values have been set.    virtual wxString GetEffectDescription();    virtual bool Init();	// DeduceFrequencies is Dominic's extremely cool trick (Vaughan sez so!) 	// to set deduce m_FromFrequency from the samples at the beginning of 	// the selection. Then we set some other params accordingly.	virtual void DeduceFrequencies();    virtual bool PromptUser();   virtual bool TransferParameters( Shuttle & shuttle );   virtual bool Process();    private:   int				m_FromPitchIndex;		// pitch index, per PitchIndex	bool				m_bWantPitchDown;		// up to ToPitchNum if false (default), else down   int				m_ToPitchIndex;		// pitch index, per PitchIndex	double			m_SemitonesChange;	// how many semitones to change pitch	   float				m_FromFrequency;		// starting frequency of selection   float				m_ToFrequency;			// target frequency of selection   double			m_PercentChange;		// percent change to apply to pitchfriend class ChangePitchDialog;};//----------------------------------------------------------------------------// ChangePitchDialog//----------------------------------------------------------------------------class wxChoice;class wxRadioBox;class wxString;class wxTextCtrl;class ChangePitchDialog:public wxDialog { public:   ChangePitchDialog(EffectChangePitch * effect, 							wxWindow * parent, wxWindowID id, 							const wxString & title, 							const wxPoint & pos = wxDefaultPosition, 							const wxSize & size = wxDefaultSize, 							long style = wxDEFAULT_DIALOG_STYLE);   virtual bool Validate();   virtual bool TransferDataToWindow();   virtual bool TransferDataFromWindow(); private:	// calculations	void Calc_ToFrequency(); // Update m_ToFrequency from m_FromFrequency & m_PercentChange.	void Calc_ToPitchIndex(); // Update m_ToPitchIndex from new m_SemitonesChange.	void Calc_SemitonesChange_fromPitches(); // Update m_SemitonesChange from new m_*PitchIndex-es.	void Calc_SemitonesChange_fromPercentChange(); // Update m_SemitonesChange from new m_PercentChange.	void Calc_PercentChange(); // Update m_PercentChange based on new m_SemitonesChange.	// handlers   void OnChoice_FromPitch(wxCommandEvent & event); 	void OnRadioBox_PitchUpDown(wxCommandEvent & event);   void OnChoice_ToPitch(wxCommandEvent & event);    void OnText_SemitonesChange(wxCommandEvent & event);    	void OnText_FromFrequency(wxCommandEvent & event);    void OnText_ToFrequency(wxCommandEvent & event); 	void OnText_PercentChange(wxCommandEvent & event);   void OnSlider_PercentChange(wxCommandEvent & event);   void OnPreview( wxCommandEvent &event );   void OnOk(wxCommandEvent & event);   void OnCancel(wxCommandEvent & event);	// helper fns for controls	void Update_RadioBox_PitchUpDown();	void Update_Choice_ToPitch(); 	void Update_Text_SemitonesChange(); 		void Update_Text_ToFrequency(); 	void Update_Text_PercentChange(); // Update control per current m_PercentChange.   void Update_Slider_PercentChange(); // Update control per current m_PercentChange. private:   bool m_bLoopDetect;	EffectChangePitch * m_pEffect;   // controls   wxChoice *		m_pChoice_FromPitch;	wxRadioBox *	m_pRadioBox_PitchUpDown;   wxChoice *		m_pChoice_ToPitch;      wxTextCtrl *	m_pTextCtrl_SemitonesChange;	wxTextCtrl *	m_pTextCtrl_FromFrequency;   wxTextCtrl *	m_pTextCtrl_ToFrequency;   	wxTextCtrl *	m_pTextCtrl_PercentChange;   wxSlider *		m_pSlider_PercentChange; public:	// effect parameters   int		m_FromPitchIndex;		// pitch index, per PitchIndex	bool		m_bWantPitchDown;		// up to ToPitchNum if false (default), else down   int		m_ToPitchIndex;		// pitch index, per PitchIndex	double	m_SemitonesChange;	// how many semitones to change pitch	   float		m_FromFrequency;		// starting frequency of selection   float		m_ToFrequency;			// target frequency of selection   double	m_PercentChange;		// percent change to apply to pitch											// Slider is (-100, 200], but textCtrls can set higher. private:   DECLARE_EVENT_TABLE()};#endif // __AUDACITY_EFFECT_CHANGEPITCH__#endif // USE_SOUNDTOUCH// Indentation settings for Vim and Emacs and unique identifier for Arch, a// version control system. Please do not modify past this point.//// Local Variables:// c-basic-offset: 3// indent-tabs-mode: nil// End://// vim: et sts=3 sw=3// arch-tag: a2885d66-6848-451b-aa61-3d54cec833d6

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -