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

📄 wtbl_awefx.c

📁 A GTK sound font editor. Sound font files are used to synthesize instruments from audio samples for
💻 C
字号:
/*================================================================== * wtbl_awefx.c - OSS AWE wavetable driver effects routines * * Smurf Sound Font Editor * Copyright (C) 1999-2001 Josh Green * * 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. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA or point your web browser to http://www.gnu.org. * * To contact the author of this program: * Email: Josh Green <jgreen@users.sourceforge.net> * Smurf homepage: http://smurf.sourceforge.net *==================================================================*/#include "config.h"#ifdef AWE_SUPPORT#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/ioctl.h>#if defined(HAVE_SYS_SOUNDCARD_H)#include <sys/soundcard.h>#elif defined(HAVE_MACHINE_SOUNDCARD_H)#include <machine/soundcard.h>#endif#if defined(HAVE_AWE_VOICE_H)#include <awe_voice.h>#elif defined(HAVE_SYS_AWE_VOICE_H)#include <sys/awe_voice.h>#elif defined(HAVE_LINUX_AWE_VOICE_H)#include <linux/awe_voice.h>#endif#include <glib.h>#include "wtbl_awefx.h"#include "wtbl_aweunits.h"#include "sfont.h"#include "util.h"/* AWE conversion and real time effect table */AweFXConvType awefxtbl[] = {  {NULL, AWE_FX_SAMPLE_START, METH_EFFECT},    // Gen_StartAddrOfs  {NULL, -1, METH_NONE},    // Gen_EndAddrOfs  {NULL, AWE_FX_LOOP_START, METH_EFFECT},    // Gen_StartLoopAddrOfs  {NULL, AWE_FX_LOOP_END, METH_EFFECT},    // Gen_EndLoopAddrOfs  {NULL, AWE_FX_COARSE_SAMPLE_START, METH_EFFECT},    // Gen_StartAddrCoarseOfs  {awe_calc_pitch_shift, AWE_FX_LFO1_PITCH, METH_EFFECT},    // Gen_ModLFO2Pitch  {awe_calc_pitch_shift, AWE_FX_LFO2_PITCH, METH_EFFECT},    // Gen_VibLFO2Pitch  {awe_calc_pitch_shift, AWE_FX_ENV1_PITCH, METH_EFFECT},    // Gen_ModEnv2Pitch  {awe_calc_cutoff, AWE_FX_CUTOFF, METH_EFFECT},    // Gen_FilterFc  {awe_calc_filterQ, AWE_FX_FILTERQ, METH_EFFECT},    // Gen_FilterQ  {awe_calc_modlfo_cutoff, AWE_FX_LFO1_CUTOFF, METH_EFFECT},    // Gen_ModLFO2FilterFc  {awe_calc_modenv_cutoff, AWE_FX_ENV1_CUTOFF, METH_EFFECT},    // Gen_ModEnv2FilterFc  {NULL, -1, METH_NONE},    // Gen_EndAddrCoarseOfs  {awe_calc_tremolo, AWE_FX_LFO1_VOLUME, METH_EFFECT},    // Gen_ModLFO2Vol  {NULL, -1, METH_INVALID},    // Gen_Unused1  {awe_calc_tenthpercent, AWE_FX_CHORUS, METH_EFFECT},    // Gen_ChorusSend  {awe_calc_tenthpercent, AWE_FX_REVERB, METH_EFFECT},    // Gen_ReverbSend  {awe_calc_pan, CTL_PAN, METH_SEQCTRL},    // Gen_Pan  {NULL, -1, METH_INVALID},    // Gen_Unused2  {NULL, -1, METH_INVALID},    // Gen_Unused3  {NULL, -1, METH_INVALID},    // Gen_Unused4  {awe_calc_delay, AWE_FX_LFO1_DELAY, METH_EFFECT},    // Gen_ModLFODelay  {awe_calc_freq, AWE_FX_LFO1_FREQ, METH_EFFECT},    // Gen_ModLFOFreq  {awe_calc_delay, AWE_FX_LFO2_DELAY, METH_EFFECT},    // Gen_VibLFODelay  {awe_calc_freq, AWE_FX_LFO2_FREQ, METH_EFFECT},    // Gen_VibLFOFreq  {awe_calc_delay, AWE_FX_ENV1_DELAY, METH_EFFECT},    // Gen_ModEnvDelay  {awe_calc_attack, AWE_FX_ENV1_ATTACK, METH_EFFECT},    // Gen_ModEnvAttack  {awe_calc_hold, AWE_FX_ENV1_HOLD, METH_EFFECT},    // Gen_ModEnvHold  {awe_calc_decay, AWE_FX_ENV1_DECAY, METH_EFFECT},    // Gen_ModEnvDecay  {awe_calc_mod_sustain, AWE_FX_ENV1_SUSTAIN, METH_EFFECT},    // Gen_ModEnvSustain  {/*???*/NULL, AWE_FX_ENV1_RELEASE, METH_EFFECT},    // Gen_ModEnvRelease  {NULL, -1, METH_NONE},    // Gen_Key2ModEnvHold  {NULL, -1, METH_NONE},    // Gen_Key2ModEnvDecay  {awe_calc_delay, AWE_FX_ENV2_DELAY, METH_EFFECT},    // Gen_VolEnvDelay  {awe_calc_attack, AWE_FX_ENV2_ATTACK, METH_EFFECT},    // Gen_VolEnvAttack  {awe_calc_hold, AWE_FX_ENV2_HOLD, METH_EFFECT},    // Gen_VolEnvHold  {awe_calc_decay, AWE_FX_ENV2_DECAY, METH_EFFECT},    // Gen_VolEnvDecay  {awe_calc_sustain, AWE_FX_ENV2_SUSTAIN, METH_EFFECT},    // Gen_VolEnvSustain  {/*???*/NULL, AWE_FX_ENV2_RELEASE, METH_EFFECT},    // Gen_VolEnvRelease  {NULL, -1, METH_NONE},    // Gen_Key2VolEnvHold  {NULL, -1, METH_NONE},    // Gen_Key2VolEnvDecay  {NULL, -1, METH_NONE},    // Gen_Instrument  {NULL, -1, METH_INVALID},    // Gen_Reserved1  {NULL, -1, METH_NONE},    // Gen_KeyRange  {NULL, -1, METH_NONE},    // Gen_VelRange  {NULL, AWE_FX_COARSE_LOOP_START, METH_EFFECT},    // Gen_StartLoopAddrCoarseOfs  {NULL, -1, METH_NONE},    // Gen_Keynum  {NULL, -1, METH_NONE},    // Gen_Velocity  {/*???*/NULL, -1, METH_NONE},    // Gen_InitAttenuation  {NULL, -1, METH_INVALID},    // Gen_Reserved2  {NULL, AWE_FX_COARSE_LOOP_END, METH_EFFECT},    // Gen_EndLoopAddrCoarseOfs  {/*???*/NULL, -1, METH_NONE},    // Gen_CourseTune  {/*???*/NULL, -1, METH_NONE},    // Gen_FineTune  {NULL, -1, METH_NONE},    // Gen_sampleId  {NULL, -1, METH_NONE},    // Gen_SampleModes  {NULL, -1, METH_INVALID},    // Gen_Reserved3  {/*???*/NULL, -1, METH_NONE},    // Gen_ScaleTuning  {NULL, -1, METH_NONE},    // Gen_ExclusiveClass  {NULL, -1, METH_NONE}     // Gen_OverrideRootKey};#endif /* #ifdef AWE_SUPPORT */

⌨️ 快捷键说明

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