fluid_chorus.h
上传用户:tjmskj2
上传日期:2020-08-17
资源大小:577k
文件大小:2k
源码类别:

midi

开发平台:

C/C++

  1. /* FluidSynth - A Software Synthesizer
  2.  *
  3.  * Copyright (C) 2003  Peter Hanappe and others.
  4.  *
  5.  * This library is free software; you can redistribute it and/or
  6.  * modify it under the terms of the GNU Library General Public License
  7.  * as published by the Free Software Foundation; either version 2 of
  8.  * the License, or (at your option) any later version.
  9.  *
  10.  * This library is distributed in the hope that it will be useful, but
  11.  * WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13.  * Library General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU Library General Public
  16.  * License along with this library; if not, write to the Free
  17.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  18.  * 02111-1307, USA
  19.  */
  20. #ifndef _FLUID_CHORUS_H
  21. #define _FLUID_CHORUS_H
  22. #include "fluidsynth_priv.h"
  23. typedef struct _fluid_chorus_t fluid_chorus_t;
  24. /** Flags for fluid_chorus_set() */
  25. typedef enum
  26. {
  27.   FLUID_CHORUS_SET_NR    = 1 << 0,
  28.   FLUID_CHORUS_SET_LEVEL = 1 << 1,
  29.   FLUID_CHORUS_SET_SPEED = 1 << 2,
  30.   FLUID_CHORUS_SET_DEPTH = 1 << 3,
  31.   FLUID_CHORUS_SET_TYPE  = 1 << 4,
  32. } fluid_chorus_set_t;
  33. /** Value for fluid_chorus_set() which sets all chorus parameters. */
  34. #define FLUID_CHORUS_SET_ALL    0x1F
  35. /*
  36.  * chorus
  37.  */
  38. fluid_chorus_t* new_fluid_chorus(fluid_real_t sample_rate);
  39. void delete_fluid_chorus(fluid_chorus_t* chorus);
  40. int fluid_chorus_init(fluid_chorus_t* chorus);
  41. void fluid_chorus_reset(fluid_chorus_t* chorus);
  42. void fluid_chorus_set(fluid_chorus_t* chorus, int set, int nr, float level,
  43.                       float speed, float depth_ms, int type);
  44. void fluid_chorus_processmix(fluid_chorus_t* chorus, fluid_real_t *in,
  45.     fluid_real_t *left_out, fluid_real_t *right_out);
  46. void fluid_chorus_processreplace(fluid_chorus_t* chorus, fluid_real_t *in,
  47. fluid_real_t *left_out, fluid_real_t *right_out);
  48. #endif /* _FLUID_CHORUS_H */