nongnu.org/gsequencer


gsequencer 7.0.5
Advanced Gtk+ Sequencer
ags_vst_iaudio_processor.h
Go to the documentation of this file.
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_VST_IAUDIO_PROCESSOR_H__
21#define __AGS_VST_IAUDIO_PROCESSOR_H__
22
23#include <glib.h>
24
29
30#define AGS_VST_KAUDIO_EFFECT_CLASS "Audio Module Class"
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
36 typedef struct ProcessSetup AgsVstProcessSetup;
37 typedef struct AudioBusBuffers AgsVstAudioBusBuffers;
38 typedef struct ProcessData AgsVstProcessData;
39
40 typedef struct IAudioProcessor AgsVstIAudioProcessor;
41
42 typedef struct IAudioPresentationLatency AgsVstIAudioPresentationLatency;
43
44 typedef struct IProcessContextRequirements AgsVstIProcessContextRequirements;
45
50 extern const AgsVstCString ags_vst_kfx_eq;
52 extern const AgsVstCString ags_vst_kfx;
77
82
83 extern const AgsVstCString ags_vst_kmono;
84 extern const AgsVstCString ags_vst_kstereo;
86
91
96
102
117
119
121 gint32 process_mode);
122
124 gint32 symbolic_sample_size);
125
127 gint32 max_samples_per_block);
128
130 gdouble samplerate);
131
133
135 gint32 num_channels);
136
138 guint64 silence_flags);
139
141 gfloat **channel_buffers);
142
144 gdouble **channel_buffers);
145
147
149 gint32 process_mode);
150
152 gint32 symbolic_sample_size);
153
155 gint32 num_samples);
156
158 gint32 num_inputs);
159
161 gint32 num_outputs);
162
164 AgsVstAudioBusBuffers *buffers);
165
167 AgsVstAudioBusBuffers *buffers);
168
170 AgsVstIParameterChanges *iparameter_changes);
171
173 AgsVstIParameterChanges *iparameter_changes);
174
176 AgsVstIEventList *events);
177
179 AgsVstIEventList *events);
180
182 AgsVstProcessContext *context);
183
185
187 AgsVstSpeakerArrangement *inputs, gint32 num_ins,
188 AgsVstSpeakerArrangement *outputs, gint32 num_outs);
189
191 AgsVstBusDirection dir, gint32 index,
193
195 gint32 symbolic_sample_size);
196
198
200 AgsVstProcessSetup *setup);
201
203 gboolean state);
204
206 AgsVstProcessData *data);
207
209
211
213 AgsVstBusDirection dir, gint32 bus_index,
214 guint32 latency_in_samples);
215
217
219
220#ifdef __cplusplus
221}
222#endif
223
224#endif /*__AGS_VST_IAUDIO_PROCESSOR_H__*/
gint32 AgsVstTResult
Definition ags_vst_ftypes.h:58
const char * AgsVstCString
Definition ags_vst_ftypes.h:77
gint8 AgsVstTUID[16]
Definition ags_vst_funknown.h:79
const AgsVstCString ags_vst_konly_ara
Definition ags_vst_iaudio_processor.cpp:56
const AgsVstCString ags_vst_kfx_filter
Definition ags_vst_iaudio_processor.cpp:31
const AgsVstCString ags_vst_kfx_pitch_shift
Definition ags_vst_iaudio_processor.cpp:39
const AgsVstCString ags_vst_kfx_analyzer
Definition ags_vst_iaudio_processor.cpp:26
guint32 ags_vst_iaudio_processor_get_tail_samples(AgsVstIAudioProcessor *iaudio_processor)
Definition ags_vst_iaudio_processor.cpp:511
AgsVstTResult ags_vst_iaudio_processor_setup_processing(AgsVstIAudioProcessor *iaudio_processor, AgsVstProcessSetup *setup)
Definition ags_vst_iaudio_processor.cpp:473
const AgsVstCString ags_vst_kspatial
Definition ags_vst_iaudio_processor.cpp:52
guint32 ags_vst_iprocess_context_requirements_get_process_context_requirements(AgsVstIProcessContextRequirements *iprocess_context_requirements)
Definition ags_vst_iaudio_processor.cpp:567
const AgsVstCString ags_vst_kfx_modulation
Definition ags_vst_iaudio_processor.cpp:38
const AgsVstCString ags_vst_konly_real_time
Definition ags_vst_iaudio_processor.cpp:54
const AgsVstCString ags_vst_kinstrument
Definition ags_vst_iaudio_processor.cpp:45
void ags_vst_audio_bus_buffers_set_num_channels(AgsVstAudioBusBuffers *buffers, gint32 num_channels)
Definition ags_vst_iaudio_processor.cpp:155
void ags_vst_process_data_set_inputs(AgsVstProcessData *data, AgsVstAudioBusBuffers *buffers)
Definition ags_vst_iaudio_processor.cpp:293
AgsVstProcessSetup * ags_vst_process_setup_alloc()
Definition ags_vst_iaudio_processor.cpp:74
const AgsVstCString ags_vst_kinstrument_sampler
Definition ags_vst_iaudio_processor.cpp:49
const AgsVstCString ags_vst_kfx_instrument
Definition ags_vst_iaudio_processor.cpp:33
const AgsVstCString ags_vst_kfx_tools
Definition ags_vst_iaudio_processor.cpp:43
const AgsVstCString ags_vst_kup_down_mix
Definition ags_vst_iaudio_processor.cpp:59
void ags_vst_process_data_set_output_events(AgsVstProcessData *data, AgsVstIEventList *events)
Definition ags_vst_iaudio_processor.cpp:363
void ags_vst_process_data_set_symbolic_sample_size(AgsVstProcessData *data, gint32 symbolic_sample_size)
Definition ags_vst_iaudio_processor.cpp:237
void ags_vst_process_data_set_process_mode(AgsVstProcessData *data, gint32 process_mode)
Definition ags_vst_iaudio_processor.cpp:223
const AgsVstCString ags_vst_kstereo
Definition ags_vst_iaudio_processor.cpp:64
const AgsVstCString ags_vst_kspatial_fx
Definition ags_vst_iaudio_processor.cpp:53
AgsVstIProcessContextRequirementsFlags
Definition ags_vst_iaudio_processor.h:104
@ AGS_VST_KNEED_TIME_SIGNATURE
Definition ags_vst_iaudio_processor.h:112
@ AGS_VST_KNEED_SYSTEM_TIME
Definition ags_vst_iaudio_processor.h:105
@ AGS_VST_KNEED_FRAME_RATE
Definition ags_vst_iaudio_processor.h:114
@ AGS_VST_KNEED_TEMPO
Definition ags_vst_iaudio_processor.h:111
@ AGS_VST_KNEED_SAMPLES_TO_NEXT_CLOCK
Definition ags_vst_iaudio_processor.h:110
@ AGS_VST_KNEED_CONTINOUS_TIME_SAMPLES
Definition ags_vst_iaudio_processor.h:106
@ AGS_VST_KNEED_CYCLE_MUSIC
Definition ags_vst_iaudio_processor.h:109
@ AGS_VST_KNEED_BAR_POSITION_MUSIC
Definition ags_vst_iaudio_processor.h:108
@ AGS_VST_KNEED_CHORD
Definition ags_vst_iaudio_processor.h:113
@ AGS_VST_KNEED_PROJECT_TIME_MUSIC
Definition ags_vst_iaudio_processor.h:107
@ AGS_VST_KNEED_TRANSPORT_STATE
Definition ags_vst_iaudio_processor.h:115
const AgsVstCString ags_vst_kfx_network
Definition ags_vst_iaudio_processor.cpp:44
void ags_vst_process_data_set_num_inputs(AgsVstProcessData *data, gint32 num_inputs)
Definition ags_vst_iaudio_processor.cpp:265
AgsVstAudioBusBuffers * ags_vst_audio_bus_buffers_alloc()
Definition ags_vst_iaudio_processor.cpp:142
const AgsVstCString ags_vst_kfx
Definition ags_vst_iaudio_processor.cpp:32
const AgsVstCString ags_vst_kfx_mastering
Definition ags_vst_iaudio_processor.cpp:37
AgsVstTResult ags_vst_iaudio_processor_set_processing(AgsVstIAudioProcessor *iaudio_processor, gboolean state)
Definition ags_vst_iaudio_processor.cpp:490
void ags_vst_process_data_set_input_events(AgsVstProcessData *data, AgsVstIEventList *events)
Definition ags_vst_iaudio_processor.cpp:349
const AgsVstCString ags_vst_kfx_instrument_external
Definition ags_vst_iaudio_processor.cpp:34
struct IAudioPresentationLatency AgsVstIAudioPresentationLatency
Definition ags_vst_iaudio_processor.h:42
struct IAudioProcessor AgsVstIAudioProcessor
Definition ags_vst_iaudio_processor.h:40
AgsVstTResult ags_vst_iaudio_presentation_latency_set_audio_presentation_latency_samples(AgsVstIAudioPresentationLatency *iaudio_presentation_latency, AgsVstBusDirection dir, gint32 bus_index, guint32 latency_in_samples)
Definition ags_vst_iaudio_processor.cpp:539
AgsVstTResult ags_vst_iaudio_processor_get_bus_arrangement(AgsVstIAudioProcessor *iaudio_processor, AgsVstBusDirection dir, gint32 index, AgsVstSpeakerArrangement *arr)
Definition ags_vst_iaudio_processor.cpp:426
void ags_vst_audio_bus_buffers_set_samples64(AgsVstAudioBusBuffers *buffers, gdouble **channel_buffers)
Definition ags_vst_iaudio_processor.cpp:197
void ags_vst_audio_bus_buffers_set_silence_flags(AgsVstAudioBusBuffers *buffers, guint64 silence_flags)
Definition ags_vst_iaudio_processor.cpp:169
const AgsVstCString ags_vst_kfx_surround
Definition ags_vst_iaudio_processor.cpp:42
void ags_vst_process_data_set_num_samples(AgsVstProcessData *data, gint32 num_samples)
Definition ags_vst_iaudio_processor.cpp:251
void ags_vst_process_data_set_outputs(AgsVstProcessData *data, AgsVstAudioBusBuffers *buffers)
Definition ags_vst_iaudio_processor.cpp:307
AgsVstProcessData * ags_vst_process_data_alloc()
Definition ags_vst_iaudio_processor.cpp:210
void ags_vst_process_data_set_num_outputs(AgsVstProcessData *data, gint32 num_outputs)
Definition ags_vst_iaudio_processor.cpp:279
const AgsVstCString ags_vst_kfx_spatial
Definition ags_vst_iaudio_processor.cpp:35
void ags_vst_process_setup_set_symbolic_sample_size(AgsVstProcessSetup *setup, gint32 symbolic_sample_size)
Definition ags_vst_iaudio_processor.cpp:101
const AgsVstCString ags_vst_kfx_dynamics
Definition ags_vst_iaudio_processor.cpp:29
const AgsVstCString ags_vst_kfx_delay
Definition ags_vst_iaudio_processor.cpp:27
AgsVstSymbolicSampleSizes
Definition ags_vst_iaudio_processor.h:92
@ AGS_VST_KSAMPLE64
Definition ags_vst_iaudio_processor.h:94
@ AGS_VST_KSAMPLE32
Definition ags_vst_iaudio_processor.h:93
AgsVstTResult ags_vst_iaudio_processor_process(AgsVstIAudioProcessor *iaudio_processor, AgsVstProcessData *data)
Definition ags_vst_iaudio_processor.cpp:505
const AgsVstCString ags_vst_kinstrument_external
Definition ags_vst_iaudio_processor.cpp:47
const AgsVstTUID * ags_vst_iaudio_presentation_latency_get_iid()
Definition ags_vst_iaudio_processor.cpp:523
void ags_vst_process_data_set_input_iparameter_changes(AgsVstProcessData *data, AgsVstIParameterChanges *iparameter_changes)
Definition ags_vst_iaudio_processor.cpp:321
const AgsVstTUID * ags_vst_iprocess_context_requirements_get_iid()
Definition ags_vst_iaudio_processor.cpp:554
AgsVstProcessModes
Definition ags_vst_iaudio_processor.h:97
@ AGS_VST_KOFFLINE
Definition ags_vst_iaudio_processor.h:100
@ AGS_VST_KREALTIME
Definition ags_vst_iaudio_processor.h:98
@ AGS_VST_KPREFETCH
Definition ags_vst_iaudio_processor.h:99
const AgsVstCString ags_vst_kfx_restoration
Definition ags_vst_iaudio_processor.cpp:40
const AgsVstCString ags_vst_kambisonics
Definition ags_vst_iaudio_processor.cpp:61
const AgsVstCString ags_vst_kfx_generator
Definition ags_vst_iaudio_processor.cpp:36
const AgsVstCString ags_vst_kfx_reverb
Definition ags_vst_iaudio_processor.cpp:41
const AgsVstCString ags_vst_kanalyzer
Definition ags_vst_iaudio_processor.cpp:60
void ags_vst_process_setup_set_samplerate(AgsVstProcessSetup *setup, gdouble samplerate)
Definition ags_vst_iaudio_processor.cpp:129
void ags_vst_process_data_set_ouput_iparameter_changes(AgsVstProcessData *data, AgsVstIParameterChanges *iparameter_changes)
Definition ags_vst_iaudio_processor.cpp:335
AgsVstTResult ags_vst_iaudio_processor_set_bus_arrangements(AgsVstIAudioProcessor *iaudio_processor, AgsVstSpeakerArrangement *inputs, gint32 num_ins, AgsVstSpeakerArrangement *outputs, gint32 num_outs)
Definition ags_vst_iaudio_processor.cpp:407
const AgsVstCString ags_vst_kfx_distortion
Definition ags_vst_iaudio_processor.cpp:28
void ags_vst_process_data_set_process_context(AgsVstProcessData *data, AgsVstProcessContext *context)
Definition ags_vst_iaudio_processor.cpp:377
struct IProcessContextRequirements AgsVstIProcessContextRequirements
Definition ags_vst_iaudio_processor.h:44
const AgsVstCString ags_vst_ksurround
Definition ags_vst_iaudio_processor.cpp:65
struct ProcessSetup AgsVstProcessSetup
Definition ags_vst_iaudio_processor.h:36
void ags_vst_process_setup_set_process_mode(AgsVstProcessSetup *setup, gint32 process_mode)
Definition ags_vst_iaudio_processor.cpp:87
const AgsVstCString ags_vst_kinstrument_piano
Definition ags_vst_iaudio_processor.cpp:48
void ags_vst_audio_bus_buffers_set_samples32(AgsVstAudioBusBuffers *buffers, gfloat **channel_buffers)
Definition ags_vst_iaudio_processor.cpp:183
const AgsVstCString ags_vst_kmono
Definition ags_vst_iaudio_processor.cpp:63
struct ProcessData AgsVstProcessData
Definition ags_vst_iaudio_processor.h:38
const AgsVstCString ags_vst_kfx_eq
Definition ags_vst_iaudio_processor.cpp:30
AgsVstComponentFlags
Definition ags_vst_iaudio_processor.h:87
@ AGS_VST_KDISTRIBUTABLE
Definition ags_vst_iaudio_processor.h:88
@ AGS_VST_KSIMPLE_MODE_SUPPORTED
Definition ags_vst_iaudio_processor.h:89
const AgsVstTUID * ags_vst_iaudio_processor_get_iid()
Definition ags_vst_iaudio_processor.cpp:390
void ags_vst_process_setup_set_max_samples_per_block(AgsVstProcessSetup *setup, gint32 max_samples_per_block)
Definition ags_vst_iaudio_processor.cpp:115
guint32 ags_vst_iaudio_processor_get_latency_samples(AgsVstIAudioProcessor *iaudio_processor)
Definition ags_vst_iaudio_processor.cpp:459
AgsVstTResult ags_vst_iaudio_processor_can_process_sample_size(AgsVstIAudioProcessor *iaudio_processor, gint32 symbolic_sample_size)
Definition ags_vst_iaudio_processor.cpp:445
const AgsVstCString ags_vst_kinstrument_synth_sampler
Definition ags_vst_iaudio_processor.cpp:51
const AgsVstCString ags_vst_kno_offline_process
Definition ags_vst_iaudio_processor.cpp:58
struct AudioBusBuffers AgsVstAudioBusBuffers
Definition ags_vst_iaudio_processor.h:37
const AgsVstCString ags_vst_kinstrument_drum
Definition ags_vst_iaudio_processor.cpp:46
const AgsVstCString ags_vst_kinstrument_synth
Definition ags_vst_iaudio_processor.cpp:50
const AgsVstCString ags_vst_konly_offline_process
Definition ags_vst_iaudio_processor.cpp:55
struct IEventList AgsVstIEventList
Definition ags_vst_ievents.h:32
struct IParameterChanges AgsVstIParameterChanges
Definition ags_vst_iparameter_changes.h:34
struct ProcessContext AgsVstProcessContext
Definition ags_vst_iprocess_context.h:55
long unsigned int AgsVstSpeakerArrangement
Definition ags_vst_types.h:70
gint32 AgsVstBusDirection
Definition ags_vst_types.h:47