1 /* GSequencer - Advanced GTK Sequencer
2  * Copyright (C) 2005-2021 Joël Krähemann
3  *
4  * This file is part of GSequencer.
5  *
6  * GSequencer is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * GSequencer is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with GSequencer.  If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef __AGS_FILTER_UTIL_H__
21 #define __AGS_FILTER_UTIL_H__
22 
23 #include <glib.h>
24 #include <glib-object.h>
25 
26 #include <ags/libags.h>
27 
28 G_BEGIN_DECLS
29 
30 #define AGS_TYPE_FILTER_UTIL         (ags_filter_util_get_type())
31 
32 #define AGS_FILTER_UTIL_DEFAULT_TMP_BUFFER_SIZE (8192)
33 
34 struct _AgsFilterUtil
35 {
36   //empty
37 };
38 
39 GType ags_filter_util_get_type(void);
40 
41 typedef struct _AgsFilterUtil AgsFilterUtil;
42 
43 void ags_filter_util_pitch_s8(gint8 *buffer,
44 			      guint buffer_length,
45 			      guint samplerate,
46 			      gdouble base_key,
47 			      gdouble tuning);
48 void ags_filter_util_pitch_s16(gint16 *buffer,
49 			       guint buffer_length,
50 			       guint samplerate,
51 			       gdouble base_key,
52 			       gdouble tuning);
53 void ags_filter_util_pitch_s24(gint32 *buffer,
54 			       guint buffer_length,
55 			       guint samplerate,
56 			       gdouble base_key,
57 			       gdouble tuning);
58 void ags_filter_util_pitch_s32(gint32 *buffer,
59 			       guint buffer_length,
60 			       guint samplerate,
61 			       gdouble base_key,
62 			       gdouble tuning);
63 void ags_filter_util_pitch_s64(gint64 *buffer,
64 			       guint buffer_length,
65 			       guint samplerate,
66 			       gdouble base_key,
67 			       gdouble tuning);
68 void ags_filter_util_pitch_float(gfloat *buffer,
69 				 guint buffer_length,
70 				 guint samplerate,
71 				 gdouble base_key,
72 				 gdouble tuning);
73 void ags_filter_util_pitch_double(gdouble *buffer,
74 				  guint buffer_length,
75 				  guint samplerate,
76 				  gdouble base_key,
77 				  gdouble tuning);
78 void ags_filter_util_pitch_complex(AgsComplex *buffer,
79 				   guint buffer_length,
80 				   guint samplerate,
81 				   gdouble base_key,
82 				   gdouble tuning);
83 
84 G_END_DECLS
85 
86 #endif /*__AGS_FILTER_UTIL_H__*/
87