ffi-fluidsynth 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +17 -0
- data/LICENSE +22 -0
- data/README.md +2 -0
- data/ffi-fluidsynth.gemspec +16 -0
- data/gen.rb +30 -0
- data/lib/ffi-fluidsynth.rb +3447 -0
- metadata +52 -0
data/.gitignore
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2012 Jason Jones
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |gem|
|
4
|
+
gem.authors = ["Jason Jones"]
|
5
|
+
gem.email = ["jasonedwardjones@gmail.com"]
|
6
|
+
gem.description = %q{FFI bindings for the FluidSynth library.}
|
7
|
+
gem.summary = %q{FFI bindings for the FluidSynth library.}
|
8
|
+
gem.homepage = ""
|
9
|
+
|
10
|
+
gem.files = `git ls-files`.split($\)
|
11
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
12
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
13
|
+
gem.name = "ffi-fluidsynth"
|
14
|
+
gem.require_paths = ["lib"]
|
15
|
+
gem.version = "0.0.1"
|
16
|
+
end
|
data/gen.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require "ffi_gen"
|
2
|
+
|
3
|
+
FFIGen.generate(
|
4
|
+
ruby_module: "FluidSynth",
|
5
|
+
ffi_lib: "fluidsynth",
|
6
|
+
prefixes: ["fluid_"],
|
7
|
+
headers: [
|
8
|
+
"fluidsynth.h",
|
9
|
+
"fluidsynth/audio.h",
|
10
|
+
"fluidsynth/midi.h",
|
11
|
+
"fluidsynth/seq.h",
|
12
|
+
"fluidsynth/voice.h",
|
13
|
+
"fluidsynth/event.h",
|
14
|
+
"fluidsynth/misc.h",
|
15
|
+
"fluidsynth/seqbind.h",
|
16
|
+
"fluidsynth/synth.h",
|
17
|
+
"fluidsynth/gen.h",
|
18
|
+
"fluidsynth/mod.h",
|
19
|
+
"fluidsynth/settings.h",
|
20
|
+
"fluidsynth/types.h",
|
21
|
+
"fluidsynth/log.h",
|
22
|
+
|
23
|
+
"fluidsynth/sfont.h",
|
24
|
+
"fluidsynth/version.h"
|
25
|
+
#"fluidsynth/shell.h"
|
26
|
+
],
|
27
|
+
output: "lib/ffi-fluidsynth.rb"
|
28
|
+
)
|
29
|
+
|
30
|
+
|
@@ -0,0 +1,3447 @@
|
|
1
|
+
# Generated by ffi_gen. Please do not change this file by hand.
|
2
|
+
|
3
|
+
require 'ffi'
|
4
|
+
|
5
|
+
module FluidSynth
|
6
|
+
extend FFI::Library
|
7
|
+
ffi_lib 'fluidsynth'
|
8
|
+
|
9
|
+
FLUID_HINT_BOUNDED_BELOW = 0x1
|
10
|
+
|
11
|
+
FLUID_HINT_BOUNDED_ABOVE = 0x2
|
12
|
+
|
13
|
+
FLUID_HINT_TOGGLED = 0x4
|
14
|
+
|
15
|
+
FLUID_HINT_SAMPLE_RATE = 0x8
|
16
|
+
|
17
|
+
FLUID_HINT_LOGARITHMIC = 0x10
|
18
|
+
|
19
|
+
FLUID_HINT_INTEGER = 0x20
|
20
|
+
|
21
|
+
FLUID_HINT_FILENAME = 0x01
|
22
|
+
|
23
|
+
FLUID_HINT_OPTIONLIST = 0x02
|
24
|
+
|
25
|
+
FLUID_SYNTH_CHANNEL_INFO_NAME_SIZE = 32
|
26
|
+
|
27
|
+
FLUID_REVERB_DEFAULT_ROOMSIZE = 0.2
|
28
|
+
|
29
|
+
FLUID_REVERB_DEFAULT_DAMP = 0.0
|
30
|
+
|
31
|
+
FLUID_REVERB_DEFAULT_WIDTH = 0.5
|
32
|
+
|
33
|
+
FLUID_REVERB_DEFAULT_LEVEL = 0.9
|
34
|
+
|
35
|
+
FLUID_CHORUS_DEFAULT_N = 3
|
36
|
+
|
37
|
+
FLUID_CHORUS_DEFAULT_LEVEL = 2.0
|
38
|
+
|
39
|
+
FLUID_CHORUS_DEFAULT_SPEED = 0.3
|
40
|
+
|
41
|
+
FLUID_CHORUS_DEFAULT_DEPTH = 8.0
|
42
|
+
|
43
|
+
FLUID_SAMPLETYPE_MONO = 1
|
44
|
+
|
45
|
+
FLUID_SAMPLETYPE_RIGHT = 2
|
46
|
+
|
47
|
+
FLUID_SAMPLETYPE_LEFT = 4
|
48
|
+
|
49
|
+
FLUID_SAMPLETYPE_LINKED = 8
|
50
|
+
|
51
|
+
FLUID_SAMPLETYPE_ROM = 0x8000
|
52
|
+
|
53
|
+
FLUID_SEQ_WITH_TRACE = 0
|
54
|
+
|
55
|
+
FLUID_NUM_MOD = 64
|
56
|
+
|
57
|
+
FLUIDSYNTH_VERSION = "1.1.5"
|
58
|
+
|
59
|
+
FLUIDSYNTH_VERSION_MAJOR = 1
|
60
|
+
|
61
|
+
FLUIDSYNTH_VERSION_MINOR = 1
|
62
|
+
|
63
|
+
FLUIDSYNTH_VERSION_MICRO = 5
|
64
|
+
|
65
|
+
# (Not documented)
|
66
|
+
class FluidHashtableT < FFI::Struct
|
67
|
+
end
|
68
|
+
|
69
|
+
# < Configuration settings instance
|
70
|
+
class FluidSynthT < FFI::Struct
|
71
|
+
end
|
72
|
+
|
73
|
+
# < SoundFont channel info
|
74
|
+
class FluidVoiceT < FFI::Struct
|
75
|
+
end
|
76
|
+
|
77
|
+
# < SoundFont modulator
|
78
|
+
class FluidAudioDriverT < FFI::Struct
|
79
|
+
end
|
80
|
+
|
81
|
+
# < Audio driver instance
|
82
|
+
class FluidFileRendererT < FFI::Struct
|
83
|
+
end
|
84
|
+
|
85
|
+
# < Audio file renderer instance
|
86
|
+
class FluidPlayerT < FFI::Struct
|
87
|
+
end
|
88
|
+
|
89
|
+
# < MIDI player instance
|
90
|
+
class FluidMidiEventT < FFI::Struct
|
91
|
+
end
|
92
|
+
|
93
|
+
# < MIDI event
|
94
|
+
class FluidMidiDriverT < FFI::Struct
|
95
|
+
end
|
96
|
+
|
97
|
+
# < MIDI driver instance
|
98
|
+
class FluidMidiRouterT < FFI::Struct
|
99
|
+
end
|
100
|
+
|
101
|
+
# < MIDI router instance
|
102
|
+
class FluidMidiRouterRuleT < FFI::Struct
|
103
|
+
end
|
104
|
+
|
105
|
+
# < Command handler
|
106
|
+
class FluidShellT < FFI::Struct
|
107
|
+
end
|
108
|
+
|
109
|
+
# < Command shell
|
110
|
+
class FluidServerT < FFI::Struct
|
111
|
+
end
|
112
|
+
|
113
|
+
# < TCP/IP shell server instance
|
114
|
+
class FluidEventT < FFI::Struct
|
115
|
+
end
|
116
|
+
|
117
|
+
# < Sequencer event
|
118
|
+
class FluidSequencerT < FFI::Struct
|
119
|
+
end
|
120
|
+
|
121
|
+
# < Sequencer instance
|
122
|
+
class FluidRamsfontT < FFI::Struct
|
123
|
+
end
|
124
|
+
|
125
|
+
# < RAM SoundFont
|
126
|
+
class FluidRampresetT < FFI::Struct
|
127
|
+
end
|
128
|
+
|
129
|
+
# (Not documented)
|
130
|
+
#
|
131
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:types_enum).</em>
|
132
|
+
#
|
133
|
+
# === Options:
|
134
|
+
# :num_ ::
|
135
|
+
# < Undefined type
|
136
|
+
# :int_ ::
|
137
|
+
# < Numeric (double)
|
138
|
+
# :str_ ::
|
139
|
+
# < Integer
|
140
|
+
# :set_ ::
|
141
|
+
# < String
|
142
|
+
#
|
143
|
+
# @method _enum_types_enum_
|
144
|
+
# @return [Symbol]
|
145
|
+
# @scope class
|
146
|
+
enum :types_enum, [
|
147
|
+
:num_,
|
148
|
+
:int_,
|
149
|
+
:str_,
|
150
|
+
:set_
|
151
|
+
]
|
152
|
+
|
153
|
+
# (Not documented)
|
154
|
+
#
|
155
|
+
# @method new_fluid_settings()
|
156
|
+
# @return [FluidHashtableT]
|
157
|
+
# @scope class
|
158
|
+
attach_function :new_fluid_settings, :new_fluid_settings, [], FluidHashtableT
|
159
|
+
|
160
|
+
# (Not documented)
|
161
|
+
#
|
162
|
+
# @method delete_fluid_settings(settings)
|
163
|
+
# @param [FluidHashtableT] settings
|
164
|
+
# @return [nil]
|
165
|
+
# @scope class
|
166
|
+
attach_function :delete_fluid_settings, :delete_fluid_settings, [FluidHashtableT], :void
|
167
|
+
|
168
|
+
# (Not documented)
|
169
|
+
#
|
170
|
+
# @method settings_get_type(settings, name)
|
171
|
+
# @param [FluidHashtableT] settings
|
172
|
+
# @param [String] name
|
173
|
+
# @return [Integer]
|
174
|
+
# @scope class
|
175
|
+
attach_function :settings_get_type, :fluid_settings_get_type, [FluidHashtableT, :string], :int
|
176
|
+
|
177
|
+
# (Not documented)
|
178
|
+
#
|
179
|
+
# @method settings_get_hints(settings, name)
|
180
|
+
# @param [FluidHashtableT] settings
|
181
|
+
# @param [String] name
|
182
|
+
# @return [Integer]
|
183
|
+
# @scope class
|
184
|
+
attach_function :settings_get_hints, :fluid_settings_get_hints, [FluidHashtableT, :string], :int
|
185
|
+
|
186
|
+
# (Not documented)
|
187
|
+
#
|
188
|
+
# @method settings_is_realtime(settings, name)
|
189
|
+
# @param [FluidHashtableT] settings
|
190
|
+
# @param [String] name
|
191
|
+
# @return [Integer]
|
192
|
+
# @scope class
|
193
|
+
attach_function :settings_is_realtime, :fluid_settings_is_realtime, [FluidHashtableT, :string], :int
|
194
|
+
|
195
|
+
# (Not documented)
|
196
|
+
#
|
197
|
+
# @method settings_setstr(settings, name, str)
|
198
|
+
# @param [FluidHashtableT] settings
|
199
|
+
# @param [String] name
|
200
|
+
# @param [String] str
|
201
|
+
# @return [Integer]
|
202
|
+
# @scope class
|
203
|
+
attach_function :settings_setstr, :fluid_settings_setstr, [FluidHashtableT, :string, :string], :int
|
204
|
+
|
205
|
+
# (Not documented)
|
206
|
+
#
|
207
|
+
# @method settings_copystr(settings, name, str, len)
|
208
|
+
# @param [FluidHashtableT] settings
|
209
|
+
# @param [String] name
|
210
|
+
# @param [String] str
|
211
|
+
# @param [Integer] len
|
212
|
+
# @return [Integer]
|
213
|
+
# @scope class
|
214
|
+
attach_function :settings_copystr, :fluid_settings_copystr, [FluidHashtableT, :string, :string, :int], :int
|
215
|
+
|
216
|
+
# (Not documented)
|
217
|
+
#
|
218
|
+
# @method settings_dupstr(settings, name, str)
|
219
|
+
# @param [FluidHashtableT] settings
|
220
|
+
# @param [String] name
|
221
|
+
# @param [FFI::Pointer(**Char_S)] str
|
222
|
+
# @return [Integer]
|
223
|
+
# @scope class
|
224
|
+
attach_function :settings_dupstr, :fluid_settings_dupstr, [FluidHashtableT, :string, :pointer], :int
|
225
|
+
|
226
|
+
# (Not documented)
|
227
|
+
#
|
228
|
+
# @method settings_getstr(settings, name, str)
|
229
|
+
# @param [FluidHashtableT] settings
|
230
|
+
# @param [String] name
|
231
|
+
# @param [FFI::Pointer(**Char_S)] str
|
232
|
+
# @return [Integer]
|
233
|
+
# @scope class
|
234
|
+
attach_function :settings_getstr, :fluid_settings_getstr, [FluidHashtableT, :string, :pointer], :int
|
235
|
+
|
236
|
+
# (Not documented)
|
237
|
+
#
|
238
|
+
# @method settings_getstr_default(settings, name)
|
239
|
+
# @param [FluidHashtableT] settings
|
240
|
+
# @param [String] name
|
241
|
+
# @return [String]
|
242
|
+
# @scope class
|
243
|
+
attach_function :settings_getstr_default, :fluid_settings_getstr_default, [FluidHashtableT, :string], :string
|
244
|
+
|
245
|
+
# (Not documented)
|
246
|
+
#
|
247
|
+
# @method settings_str_equal(settings, name, value)
|
248
|
+
# @param [FluidHashtableT] settings
|
249
|
+
# @param [String] name
|
250
|
+
# @param [String] value
|
251
|
+
# @return [Integer]
|
252
|
+
# @scope class
|
253
|
+
attach_function :settings_str_equal, :fluid_settings_str_equal, [FluidHashtableT, :string, :string], :int
|
254
|
+
|
255
|
+
# (Not documented)
|
256
|
+
#
|
257
|
+
# @method settings_setnum(settings, name, val)
|
258
|
+
# @param [FluidHashtableT] settings
|
259
|
+
# @param [String] name
|
260
|
+
# @param [Float] val
|
261
|
+
# @return [Integer]
|
262
|
+
# @scope class
|
263
|
+
attach_function :settings_setnum, :fluid_settings_setnum, [FluidHashtableT, :string, :double], :int
|
264
|
+
|
265
|
+
# (Not documented)
|
266
|
+
#
|
267
|
+
# @method settings_getnum(settings, name, val)
|
268
|
+
# @param [FluidHashtableT] settings
|
269
|
+
# @param [String] name
|
270
|
+
# @param [FFI::Pointer(*Double)] val
|
271
|
+
# @return [Integer]
|
272
|
+
# @scope class
|
273
|
+
attach_function :settings_getnum, :fluid_settings_getnum, [FluidHashtableT, :string, :pointer], :int
|
274
|
+
|
275
|
+
# (Not documented)
|
276
|
+
#
|
277
|
+
# @method settings_getnum_default(settings, name)
|
278
|
+
# @param [FluidHashtableT] settings
|
279
|
+
# @param [String] name
|
280
|
+
# @return [Float]
|
281
|
+
# @scope class
|
282
|
+
attach_function :settings_getnum_default, :fluid_settings_getnum_default, [FluidHashtableT, :string], :double
|
283
|
+
|
284
|
+
# (Not documented)
|
285
|
+
#
|
286
|
+
# @method settings_getnum_range(settings, name, min, max)
|
287
|
+
# @param [FluidHashtableT] settings
|
288
|
+
# @param [String] name
|
289
|
+
# @param [FFI::Pointer(*Double)] min
|
290
|
+
# @param [FFI::Pointer(*Double)] max
|
291
|
+
# @return [nil]
|
292
|
+
# @scope class
|
293
|
+
attach_function :settings_getnum_range, :fluid_settings_getnum_range, [FluidHashtableT, :string, :pointer, :pointer], :void
|
294
|
+
|
295
|
+
# (Not documented)
|
296
|
+
#
|
297
|
+
# @method settings_setint(settings, name, val)
|
298
|
+
# @param [FluidHashtableT] settings
|
299
|
+
# @param [String] name
|
300
|
+
# @param [Integer] val
|
301
|
+
# @return [Integer]
|
302
|
+
# @scope class
|
303
|
+
attach_function :settings_setint, :fluid_settings_setint, [FluidHashtableT, :string, :int], :int
|
304
|
+
|
305
|
+
# (Not documented)
|
306
|
+
#
|
307
|
+
# @method settings_getint(settings, name, val)
|
308
|
+
# @param [FluidHashtableT] settings
|
309
|
+
# @param [String] name
|
310
|
+
# @param [FFI::Pointer(*Int)] val
|
311
|
+
# @return [Integer]
|
312
|
+
# @scope class
|
313
|
+
attach_function :settings_getint, :fluid_settings_getint, [FluidHashtableT, :string, :pointer], :int
|
314
|
+
|
315
|
+
# (Not documented)
|
316
|
+
#
|
317
|
+
# @method settings_getint_default(settings, name)
|
318
|
+
# @param [FluidHashtableT] settings
|
319
|
+
# @param [String] name
|
320
|
+
# @return [Integer]
|
321
|
+
# @scope class
|
322
|
+
attach_function :settings_getint_default, :fluid_settings_getint_default, [FluidHashtableT, :string], :int
|
323
|
+
|
324
|
+
# (Not documented)
|
325
|
+
#
|
326
|
+
# @method settings_getint_range(settings, name, min, max)
|
327
|
+
# @param [FluidHashtableT] settings
|
328
|
+
# @param [String] name
|
329
|
+
# @param [FFI::Pointer(*Int)] min
|
330
|
+
# @param [FFI::Pointer(*Int)] max
|
331
|
+
# @return [nil]
|
332
|
+
# @scope class
|
333
|
+
attach_function :settings_getint_range, :fluid_settings_getint_range, [FluidHashtableT, :string, :pointer, :pointer], :void
|
334
|
+
|
335
|
+
# Callback function type used with fluid_settings_foreach_option()
|
336
|
+
# @param data User defined data pointer
|
337
|
+
# @param name Setting name
|
338
|
+
# @param option A string option for this setting (iterates through the list)
|
339
|
+
#
|
340
|
+
# <em>This entry is only for documentation and no real method.</em>
|
341
|
+
#
|
342
|
+
# @method _callback_settings_foreach_option_t_(name, option)
|
343
|
+
# @param [String] name
|
344
|
+
# @param [String] option
|
345
|
+
# @return [FFI::Pointer(*Void)]
|
346
|
+
# @scope class
|
347
|
+
callback :settings_foreach_option_t, [:string, :string], :pointer
|
348
|
+
|
349
|
+
# (Not documented)
|
350
|
+
#
|
351
|
+
# @method settings_foreach_option(settings, name, data, func)
|
352
|
+
# @param [FluidHashtableT] settings
|
353
|
+
# @param [String] name
|
354
|
+
# @param [FFI::Pointer(*Void)] data
|
355
|
+
# @param [Proc(_callback_settings_foreach_option_t_)] func
|
356
|
+
# @return [nil]
|
357
|
+
# @scope class
|
358
|
+
attach_function :settings_foreach_option, :fluid_settings_foreach_option, [FluidHashtableT, :string, :pointer, :settings_foreach_option_t], :void
|
359
|
+
|
360
|
+
# (Not documented)
|
361
|
+
#
|
362
|
+
# @method settings_option_count(settings, name)
|
363
|
+
# @param [FluidHashtableT] settings
|
364
|
+
# @param [String] name
|
365
|
+
# @return [Integer]
|
366
|
+
# @scope class
|
367
|
+
attach_function :settings_option_count, :fluid_settings_option_count, [FluidHashtableT, :string], :int
|
368
|
+
|
369
|
+
# (Not documented)
|
370
|
+
#
|
371
|
+
# @method settings_option_concat(settings, name, separator)
|
372
|
+
# @param [FluidHashtableT] settings
|
373
|
+
# @param [String] name
|
374
|
+
# @param [String] separator
|
375
|
+
# @return [String]
|
376
|
+
# @scope class
|
377
|
+
attach_function :settings_option_concat, :fluid_settings_option_concat, [FluidHashtableT, :string, :string], :string
|
378
|
+
|
379
|
+
# Callback function type used with fluid_settings_foreach()
|
380
|
+
# @param data User defined data pointer
|
381
|
+
# @param name Setting name
|
382
|
+
# @param type Setting type (#fluid_types_enum)
|
383
|
+
#
|
384
|
+
# <em>This entry is only for documentation and no real method.</em>
|
385
|
+
#
|
386
|
+
# @method _callback_settings_foreach_t_(name, type)
|
387
|
+
# @param [String] name
|
388
|
+
# @param [Integer] type
|
389
|
+
# @return [FFI::Pointer(*Void)]
|
390
|
+
# @scope class
|
391
|
+
callback :settings_foreach_t, [:string, :int], :pointer
|
392
|
+
|
393
|
+
# (Not documented)
|
394
|
+
#
|
395
|
+
# @method settings_foreach(settings, data, func)
|
396
|
+
# @param [FluidHashtableT] settings
|
397
|
+
# @param [FFI::Pointer(*Void)] data
|
398
|
+
# @param [Proc(_callback_settings_foreach_t_)] func
|
399
|
+
# @return [nil]
|
400
|
+
# @scope class
|
401
|
+
attach_function :settings_foreach, :fluid_settings_foreach, [FluidHashtableT, :pointer, :settings_foreach_t], :void
|
402
|
+
|
403
|
+
# < Synthesizer instance
|
404
|
+
#
|
405
|
+
# = Fields:
|
406
|
+
# :assigned ::
|
407
|
+
# (Integer) < TRUE if a preset is assigned, FALSE otherwise
|
408
|
+
# :sfont_id ::
|
409
|
+
# (Integer) < ID of parent SoundFont
|
410
|
+
# :bank ::
|
411
|
+
# (Integer) < MIDI bank number (0-16383)
|
412
|
+
# :program ::
|
413
|
+
# (Integer) < MIDI program number (0-127)
|
414
|
+
# :name ::
|
415
|
+
# (Array<Integer>) < Channel preset name
|
416
|
+
# :reserved ::
|
417
|
+
# (Array<Integer>) < Reserved data for future expansion
|
418
|
+
class FluidSynthChannelInfoT < FFI::Struct
|
419
|
+
layout :assigned, :int,
|
420
|
+
:sfont_id, :int,
|
421
|
+
:bank, :int,
|
422
|
+
:program, :int,
|
423
|
+
:name, [:char, 32],
|
424
|
+
:reserved, [:char, 32]
|
425
|
+
end
|
426
|
+
|
427
|
+
# (Not documented)
|
428
|
+
#
|
429
|
+
# @method new_fluid_synth(settings)
|
430
|
+
# @param [FluidHashtableT] settings
|
431
|
+
# @return [FluidSynthT]
|
432
|
+
# @scope class
|
433
|
+
attach_function :new_fluid_synth, :new_fluid_synth, [FluidHashtableT], FluidSynthT
|
434
|
+
|
435
|
+
# (Not documented)
|
436
|
+
#
|
437
|
+
# @method delete_fluid_synth(synth)
|
438
|
+
# @param [FluidSynthT] synth
|
439
|
+
# @return [Integer]
|
440
|
+
# @scope class
|
441
|
+
attach_function :delete_fluid_synth, :delete_fluid_synth, [FluidSynthT], :int
|
442
|
+
|
443
|
+
# (Not documented)
|
444
|
+
#
|
445
|
+
# @method synth_get_settings(synth)
|
446
|
+
# @param [FluidSynthT] synth
|
447
|
+
# @return [FluidHashtableT]
|
448
|
+
# @scope class
|
449
|
+
attach_function :synth_get_settings, :fluid_synth_get_settings, [FluidSynthT], FluidHashtableT
|
450
|
+
|
451
|
+
# MIDI channel messages
|
452
|
+
#
|
453
|
+
# @method synth_noteon(synth, chan, key, vel)
|
454
|
+
# @param [FluidSynthT] synth
|
455
|
+
# @param [Integer] chan
|
456
|
+
# @param [Integer] key
|
457
|
+
# @param [Integer] vel
|
458
|
+
# @return [Integer]
|
459
|
+
# @scope class
|
460
|
+
attach_function :synth_noteon, :fluid_synth_noteon, [FluidSynthT, :int, :int, :int], :int
|
461
|
+
|
462
|
+
# (Not documented)
|
463
|
+
#
|
464
|
+
# @method synth_noteoff(synth, chan, key)
|
465
|
+
# @param [FluidSynthT] synth
|
466
|
+
# @param [Integer] chan
|
467
|
+
# @param [Integer] key
|
468
|
+
# @return [Integer]
|
469
|
+
# @scope class
|
470
|
+
attach_function :synth_noteoff, :fluid_synth_noteoff, [FluidSynthT, :int, :int], :int
|
471
|
+
|
472
|
+
# (Not documented)
|
473
|
+
#
|
474
|
+
# @method synth_cc(synth, chan, ctrl, val)
|
475
|
+
# @param [FluidSynthT] synth
|
476
|
+
# @param [Integer] chan
|
477
|
+
# @param [Integer] ctrl
|
478
|
+
# @param [Integer] val
|
479
|
+
# @return [Integer]
|
480
|
+
# @scope class
|
481
|
+
attach_function :synth_cc, :fluid_synth_cc, [FluidSynthT, :int, :int, :int], :int
|
482
|
+
|
483
|
+
# (Not documented)
|
484
|
+
#
|
485
|
+
# @method synth_get_cc(synth, chan, ctrl, pval)
|
486
|
+
# @param [FluidSynthT] synth
|
487
|
+
# @param [Integer] chan
|
488
|
+
# @param [Integer] ctrl
|
489
|
+
# @param [FFI::Pointer(*Int)] pval
|
490
|
+
# @return [Integer]
|
491
|
+
# @scope class
|
492
|
+
attach_function :synth_get_cc, :fluid_synth_get_cc, [FluidSynthT, :int, :int, :pointer], :int
|
493
|
+
|
494
|
+
# (Not documented)
|
495
|
+
#
|
496
|
+
# @method synth_sysex(synth, data, len, response, response_len, handled, dryrun)
|
497
|
+
# @param [FluidSynthT] synth
|
498
|
+
# @param [String] data
|
499
|
+
# @param [Integer] len
|
500
|
+
# @param [String] response
|
501
|
+
# @param [FFI::Pointer(*Int)] response_len
|
502
|
+
# @param [FFI::Pointer(*Int)] handled
|
503
|
+
# @param [Integer] dryrun
|
504
|
+
# @return [Integer]
|
505
|
+
# @scope class
|
506
|
+
attach_function :synth_sysex, :fluid_synth_sysex, [FluidSynthT, :string, :int, :string, :pointer, :pointer, :int], :int
|
507
|
+
|
508
|
+
# (Not documented)
|
509
|
+
#
|
510
|
+
# @method synth_pitch_bend(synth, chan, val)
|
511
|
+
# @param [FluidSynthT] synth
|
512
|
+
# @param [Integer] chan
|
513
|
+
# @param [Integer] val
|
514
|
+
# @return [Integer]
|
515
|
+
# @scope class
|
516
|
+
attach_function :synth_pitch_bend, :fluid_synth_pitch_bend, [FluidSynthT, :int, :int], :int
|
517
|
+
|
518
|
+
# (Not documented)
|
519
|
+
#
|
520
|
+
# @method synth_get_pitch_bend(synth, chan, ppitch_bend)
|
521
|
+
# @param [FluidSynthT] synth
|
522
|
+
# @param [Integer] chan
|
523
|
+
# @param [FFI::Pointer(*Int)] ppitch_bend
|
524
|
+
# @return [Integer]
|
525
|
+
# @scope class
|
526
|
+
attach_function :synth_get_pitch_bend, :fluid_synth_get_pitch_bend, [FluidSynthT, :int, :pointer], :int
|
527
|
+
|
528
|
+
# (Not documented)
|
529
|
+
#
|
530
|
+
# @method synth_pitch_wheel_sens(synth, chan, val)
|
531
|
+
# @param [FluidSynthT] synth
|
532
|
+
# @param [Integer] chan
|
533
|
+
# @param [Integer] val
|
534
|
+
# @return [Integer]
|
535
|
+
# @scope class
|
536
|
+
attach_function :synth_pitch_wheel_sens, :fluid_synth_pitch_wheel_sens, [FluidSynthT, :int, :int], :int
|
537
|
+
|
538
|
+
# (Not documented)
|
539
|
+
#
|
540
|
+
# @method synth_get_pitch_wheel_sens(synth, chan, pval)
|
541
|
+
# @param [FluidSynthT] synth
|
542
|
+
# @param [Integer] chan
|
543
|
+
# @param [FFI::Pointer(*Int)] pval
|
544
|
+
# @return [Integer]
|
545
|
+
# @scope class
|
546
|
+
attach_function :synth_get_pitch_wheel_sens, :fluid_synth_get_pitch_wheel_sens, [FluidSynthT, :int, :pointer], :int
|
547
|
+
|
548
|
+
# (Not documented)
|
549
|
+
#
|
550
|
+
# @method synth_program_change(synth, chan, program)
|
551
|
+
# @param [FluidSynthT] synth
|
552
|
+
# @param [Integer] chan
|
553
|
+
# @param [Integer] program
|
554
|
+
# @return [Integer]
|
555
|
+
# @scope class
|
556
|
+
attach_function :synth_program_change, :fluid_synth_program_change, [FluidSynthT, :int, :int], :int
|
557
|
+
|
558
|
+
# (Not documented)
|
559
|
+
#
|
560
|
+
# @method synth_channel_pressure(synth, chan, val)
|
561
|
+
# @param [FluidSynthT] synth
|
562
|
+
# @param [Integer] chan
|
563
|
+
# @param [Integer] val
|
564
|
+
# @return [Integer]
|
565
|
+
# @scope class
|
566
|
+
attach_function :synth_channel_pressure, :fluid_synth_channel_pressure, [FluidSynthT, :int, :int], :int
|
567
|
+
|
568
|
+
# (Not documented)
|
569
|
+
#
|
570
|
+
# @method synth_bank_select(synth, chan, bank)
|
571
|
+
# @param [FluidSynthT] synth
|
572
|
+
# @param [Integer] chan
|
573
|
+
# @param [Integer] bank
|
574
|
+
# @return [Integer]
|
575
|
+
# @scope class
|
576
|
+
attach_function :synth_bank_select, :fluid_synth_bank_select, [FluidSynthT, :int, :uint], :int
|
577
|
+
|
578
|
+
# (Not documented)
|
579
|
+
#
|
580
|
+
# @method synth_sfont_select(synth, chan, sfont_id)
|
581
|
+
# @param [FluidSynthT] synth
|
582
|
+
# @param [Integer] chan
|
583
|
+
# @param [Integer] sfont_id
|
584
|
+
# @return [Integer]
|
585
|
+
# @scope class
|
586
|
+
attach_function :synth_sfont_select, :fluid_synth_sfont_select, [FluidSynthT, :int, :uint], :int
|
587
|
+
|
588
|
+
# (Not documented)
|
589
|
+
#
|
590
|
+
# @method synth_program_select(synth, chan, sfont_id, bank_num, preset_num)
|
591
|
+
# @param [FluidSynthT] synth
|
592
|
+
# @param [Integer] chan
|
593
|
+
# @param [Integer] sfont_id
|
594
|
+
# @param [Integer] bank_num
|
595
|
+
# @param [Integer] preset_num
|
596
|
+
# @return [Integer]
|
597
|
+
# @scope class
|
598
|
+
attach_function :synth_program_select, :fluid_synth_program_select, [FluidSynthT, :int, :uint, :uint, :uint], :int
|
599
|
+
|
600
|
+
# (Not documented)
|
601
|
+
#
|
602
|
+
# @method synth_program_select_by_sfont_name(synth, chan, sfont_name, bank_num, preset_num)
|
603
|
+
# @param [FluidSynthT] synth
|
604
|
+
# @param [Integer] chan
|
605
|
+
# @param [String] sfont_name
|
606
|
+
# @param [Integer] bank_num
|
607
|
+
# @param [Integer] preset_num
|
608
|
+
# @return [Integer]
|
609
|
+
# @scope class
|
610
|
+
attach_function :synth_program_select_by_sfont_name, :fluid_synth_program_select_by_sfont_name, [FluidSynthT, :int, :string, :uint, :uint], :int
|
611
|
+
|
612
|
+
# (Not documented)
|
613
|
+
#
|
614
|
+
# @method synth_get_program(synth, chan, sfont_id, bank_num, preset_num)
|
615
|
+
# @param [FluidSynthT] synth
|
616
|
+
# @param [Integer] chan
|
617
|
+
# @param [FFI::Pointer(*UInt)] sfont_id
|
618
|
+
# @param [FFI::Pointer(*UInt)] bank_num
|
619
|
+
# @param [FFI::Pointer(*UInt)] preset_num
|
620
|
+
# @return [Integer]
|
621
|
+
# @scope class
|
622
|
+
attach_function :synth_get_program, :fluid_synth_get_program, [FluidSynthT, :int, :pointer, :pointer, :pointer], :int
|
623
|
+
|
624
|
+
# (Not documented)
|
625
|
+
#
|
626
|
+
# @method synth_unset_program(synth, chan)
|
627
|
+
# @param [FluidSynthT] synth
|
628
|
+
# @param [Integer] chan
|
629
|
+
# @return [Integer]
|
630
|
+
# @scope class
|
631
|
+
attach_function :synth_unset_program, :fluid_synth_unset_program, [FluidSynthT, :int], :int
|
632
|
+
|
633
|
+
# (Not documented)
|
634
|
+
#
|
635
|
+
# @method synth_get_channel_info(synth, chan, info)
|
636
|
+
# @param [FluidSynthT] synth
|
637
|
+
# @param [Integer] chan
|
638
|
+
# @param [FluidSynthChannelInfoT] info
|
639
|
+
# @return [Integer]
|
640
|
+
# @scope class
|
641
|
+
attach_function :synth_get_channel_info, :fluid_synth_get_channel_info, [FluidSynthT, :int, FluidSynthChannelInfoT], :int
|
642
|
+
|
643
|
+
# (Not documented)
|
644
|
+
#
|
645
|
+
# @method synth_program_reset(synth)
|
646
|
+
# @param [FluidSynthT] synth
|
647
|
+
# @return [Integer]
|
648
|
+
# @scope class
|
649
|
+
attach_function :synth_program_reset, :fluid_synth_program_reset, [FluidSynthT], :int
|
650
|
+
|
651
|
+
# (Not documented)
|
652
|
+
#
|
653
|
+
# @method synth_system_reset(synth)
|
654
|
+
# @param [FluidSynthT] synth
|
655
|
+
# @return [Integer]
|
656
|
+
# @scope class
|
657
|
+
attach_function :synth_system_reset, :fluid_synth_system_reset, [FluidSynthT], :int
|
658
|
+
|
659
|
+
# (Not documented)
|
660
|
+
#
|
661
|
+
# @method synth_all_notes_off(synth, chan)
|
662
|
+
# @param [FluidSynthT] synth
|
663
|
+
# @param [Integer] chan
|
664
|
+
# @return [Integer]
|
665
|
+
# @scope class
|
666
|
+
attach_function :synth_all_notes_off, :fluid_synth_all_notes_off, [FluidSynthT, :int], :int
|
667
|
+
|
668
|
+
# (Not documented)
|
669
|
+
#
|
670
|
+
# @method synth_all_sounds_off(synth, chan)
|
671
|
+
# @param [FluidSynthT] synth
|
672
|
+
# @param [Integer] chan
|
673
|
+
# @return [Integer]
|
674
|
+
# @scope class
|
675
|
+
attach_function :synth_all_sounds_off, :fluid_synth_all_sounds_off, [FluidSynthT, :int], :int
|
676
|
+
|
677
|
+
# (Not documented)
|
678
|
+
#
|
679
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:midi_channel_type).</em>
|
680
|
+
#
|
681
|
+
# === Options:
|
682
|
+
# :melodic ::
|
683
|
+
#
|
684
|
+
# :drum ::
|
685
|
+
#
|
686
|
+
#
|
687
|
+
# @method _enum_midi_channel_type_
|
688
|
+
# @return [Symbol]
|
689
|
+
# @scope class
|
690
|
+
enum :midi_channel_type, [
|
691
|
+
:melodic, 0,
|
692
|
+
:drum, 1
|
693
|
+
]
|
694
|
+
|
695
|
+
# (Not documented)
|
696
|
+
#
|
697
|
+
# @method synth_set_channel_type(synth, chan, type)
|
698
|
+
# @param [FluidSynthT] synth
|
699
|
+
# @param [Integer] chan
|
700
|
+
# @param [Integer] type
|
701
|
+
# @return [Integer]
|
702
|
+
# @scope class
|
703
|
+
attach_function :synth_set_channel_type, :fluid_synth_set_channel_type, [FluidSynthT, :int, :int], :int
|
704
|
+
|
705
|
+
# Low level access
|
706
|
+
#
|
707
|
+
# @method synth_get_channel_preset(synth, chan)
|
708
|
+
# @param [FluidSynthT] synth
|
709
|
+
# @param [Integer] chan
|
710
|
+
# @return [FFI::Pointer(*PresetT)]
|
711
|
+
# @scope class
|
712
|
+
attach_function :synth_get_channel_preset, :fluid_synth_get_channel_preset, [FluidSynthT, :int], :pointer
|
713
|
+
|
714
|
+
# (Not documented)
|
715
|
+
#
|
716
|
+
# @method synth_start(synth, id, preset, audio_chan, midi_chan, key, vel)
|
717
|
+
# @param [FluidSynthT] synth
|
718
|
+
# @param [Integer] id
|
719
|
+
# @param [FFI::Pointer(*PresetT)] preset
|
720
|
+
# @param [Integer] audio_chan
|
721
|
+
# @param [Integer] midi_chan
|
722
|
+
# @param [Integer] key
|
723
|
+
# @param [Integer] vel
|
724
|
+
# @return [Integer]
|
725
|
+
# @scope class
|
726
|
+
attach_function :synth_start, :fluid_synth_start, [FluidSynthT, :uint, :pointer, :int, :int, :int, :int], :int
|
727
|
+
|
728
|
+
# (Not documented)
|
729
|
+
#
|
730
|
+
# @method synth_stop(synth, id)
|
731
|
+
# @param [FluidSynthT] synth
|
732
|
+
# @param [Integer] id
|
733
|
+
# @return [Integer]
|
734
|
+
# @scope class
|
735
|
+
attach_function :synth_stop, :fluid_synth_stop, [FluidSynthT, :uint], :int
|
736
|
+
|
737
|
+
# SoundFont management
|
738
|
+
#
|
739
|
+
# @method synth_sfload(synth, filename, reset_presets)
|
740
|
+
# @param [FluidSynthT] synth
|
741
|
+
# @param [String] filename
|
742
|
+
# @param [Integer] reset_presets
|
743
|
+
# @return [Integer]
|
744
|
+
# @scope class
|
745
|
+
attach_function :synth_sfload, :fluid_synth_sfload, [FluidSynthT, :string, :int], :int
|
746
|
+
|
747
|
+
# (Not documented)
|
748
|
+
#
|
749
|
+
# @method synth_sfreload(synth, id)
|
750
|
+
# @param [FluidSynthT] synth
|
751
|
+
# @param [Integer] id
|
752
|
+
# @return [Integer]
|
753
|
+
# @scope class
|
754
|
+
attach_function :synth_sfreload, :fluid_synth_sfreload, [FluidSynthT, :uint], :int
|
755
|
+
|
756
|
+
# (Not documented)
|
757
|
+
#
|
758
|
+
# @method synth_sfunload(synth, id, reset_presets)
|
759
|
+
# @param [FluidSynthT] synth
|
760
|
+
# @param [Integer] id
|
761
|
+
# @param [Integer] reset_presets
|
762
|
+
# @return [Integer]
|
763
|
+
# @scope class
|
764
|
+
attach_function :synth_sfunload, :fluid_synth_sfunload, [FluidSynthT, :uint, :int], :int
|
765
|
+
|
766
|
+
# (Not documented)
|
767
|
+
#
|
768
|
+
# @method synth_add_sfont(synth, sfont)
|
769
|
+
# @param [FluidSynthT] synth
|
770
|
+
# @param [FFI::Pointer(*SfontT)] sfont
|
771
|
+
# @return [Integer]
|
772
|
+
# @scope class
|
773
|
+
attach_function :synth_add_sfont, :fluid_synth_add_sfont, [FluidSynthT, :pointer], :int
|
774
|
+
|
775
|
+
# (Not documented)
|
776
|
+
#
|
777
|
+
# @method synth_remove_sfont(synth, sfont)
|
778
|
+
# @param [FluidSynthT] synth
|
779
|
+
# @param [FFI::Pointer(*SfontT)] sfont
|
780
|
+
# @return [nil]
|
781
|
+
# @scope class
|
782
|
+
attach_function :synth_remove_sfont, :fluid_synth_remove_sfont, [FluidSynthT, :pointer], :void
|
783
|
+
|
784
|
+
# (Not documented)
|
785
|
+
#
|
786
|
+
# @method synth_sfcount(synth)
|
787
|
+
# @param [FluidSynthT] synth
|
788
|
+
# @return [Integer]
|
789
|
+
# @scope class
|
790
|
+
attach_function :synth_sfcount, :fluid_synth_sfcount, [FluidSynthT], :int
|
791
|
+
|
792
|
+
# (Not documented)
|
793
|
+
#
|
794
|
+
# @method synth_get_sfont(synth, num)
|
795
|
+
# @param [FluidSynthT] synth
|
796
|
+
# @param [Integer] num
|
797
|
+
# @return [FFI::Pointer(*SfontT)]
|
798
|
+
# @scope class
|
799
|
+
attach_function :synth_get_sfont, :fluid_synth_get_sfont, [FluidSynthT, :uint], :pointer
|
800
|
+
|
801
|
+
# (Not documented)
|
802
|
+
#
|
803
|
+
# @method synth_get_sfont_by_id(synth, id)
|
804
|
+
# @param [FluidSynthT] synth
|
805
|
+
# @param [Integer] id
|
806
|
+
# @return [FFI::Pointer(*SfontT)]
|
807
|
+
# @scope class
|
808
|
+
attach_function :synth_get_sfont_by_id, :fluid_synth_get_sfont_by_id, [FluidSynthT, :uint], :pointer
|
809
|
+
|
810
|
+
# (Not documented)
|
811
|
+
#
|
812
|
+
# @method synth_get_sfont_by_name(synth, name)
|
813
|
+
# @param [FluidSynthT] synth
|
814
|
+
# @param [String] name
|
815
|
+
# @return [FFI::Pointer(*SfontT)]
|
816
|
+
# @scope class
|
817
|
+
attach_function :synth_get_sfont_by_name, :fluid_synth_get_sfont_by_name, [FluidSynthT, :string], :pointer
|
818
|
+
|
819
|
+
# (Not documented)
|
820
|
+
#
|
821
|
+
# @method synth_set_bank_offset(synth, sfont_id, offset)
|
822
|
+
# @param [FluidSynthT] synth
|
823
|
+
# @param [Integer] sfont_id
|
824
|
+
# @param [Integer] offset
|
825
|
+
# @return [Integer]
|
826
|
+
# @scope class
|
827
|
+
attach_function :synth_set_bank_offset, :fluid_synth_set_bank_offset, [FluidSynthT, :int, :int], :int
|
828
|
+
|
829
|
+
# (Not documented)
|
830
|
+
#
|
831
|
+
# @method synth_get_bank_offset(synth, sfont_id)
|
832
|
+
# @param [FluidSynthT] synth
|
833
|
+
# @param [Integer] sfont_id
|
834
|
+
# @return [Integer]
|
835
|
+
# @scope class
|
836
|
+
attach_function :synth_get_bank_offset, :fluid_synth_get_bank_offset, [FluidSynthT, :int], :int
|
837
|
+
|
838
|
+
# Reverb
|
839
|
+
#
|
840
|
+
# @method synth_set_reverb(synth, roomsize, damping, width, level)
|
841
|
+
# @param [FluidSynthT] synth
|
842
|
+
# @param [Float] roomsize
|
843
|
+
# @param [Float] damping
|
844
|
+
# @param [Float] width
|
845
|
+
# @param [Float] level
|
846
|
+
# @return [nil]
|
847
|
+
# @scope class
|
848
|
+
attach_function :synth_set_reverb, :fluid_synth_set_reverb, [FluidSynthT, :double, :double, :double, :double], :void
|
849
|
+
|
850
|
+
# (Not documented)
|
851
|
+
#
|
852
|
+
# @method synth_set_reverb_on(synth, on)
|
853
|
+
# @param [FluidSynthT] synth
|
854
|
+
# @param [Integer] on
|
855
|
+
# @return [nil]
|
856
|
+
# @scope class
|
857
|
+
attach_function :synth_set_reverb_on, :fluid_synth_set_reverb_on, [FluidSynthT, :int], :void
|
858
|
+
|
859
|
+
# (Not documented)
|
860
|
+
#
|
861
|
+
# @method synth_get_reverb_roomsize(synth)
|
862
|
+
# @param [FluidSynthT] synth
|
863
|
+
# @return [Float]
|
864
|
+
# @scope class
|
865
|
+
attach_function :synth_get_reverb_roomsize, :fluid_synth_get_reverb_roomsize, [FluidSynthT], :double
|
866
|
+
|
867
|
+
# (Not documented)
|
868
|
+
#
|
869
|
+
# @method synth_get_reverb_damp(synth)
|
870
|
+
# @param [FluidSynthT] synth
|
871
|
+
# @return [Float]
|
872
|
+
# @scope class
|
873
|
+
attach_function :synth_get_reverb_damp, :fluid_synth_get_reverb_damp, [FluidSynthT], :double
|
874
|
+
|
875
|
+
# (Not documented)
|
876
|
+
#
|
877
|
+
# @method synth_get_reverb_level(synth)
|
878
|
+
# @param [FluidSynthT] synth
|
879
|
+
# @return [Float]
|
880
|
+
# @scope class
|
881
|
+
attach_function :synth_get_reverb_level, :fluid_synth_get_reverb_level, [FluidSynthT], :double
|
882
|
+
|
883
|
+
# (Not documented)
|
884
|
+
#
|
885
|
+
# @method synth_get_reverb_width(synth)
|
886
|
+
# @param [FluidSynthT] synth
|
887
|
+
# @return [Float]
|
888
|
+
# @scope class
|
889
|
+
attach_function :synth_get_reverb_width, :fluid_synth_get_reverb_width, [FluidSynthT], :double
|
890
|
+
|
891
|
+
# Chorus modulation waveform type.
|
892
|
+
#
|
893
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:chorus_mod).</em>
|
894
|
+
#
|
895
|
+
# === Options:
|
896
|
+
# :sine ::
|
897
|
+
#
|
898
|
+
# :triangle ::
|
899
|
+
# < Sine wave chorus modulation
|
900
|
+
#
|
901
|
+
# @method _enum_chorus_mod_
|
902
|
+
# @return [Symbol]
|
903
|
+
# @scope class
|
904
|
+
enum :chorus_mod, [
|
905
|
+
:sine, 0,
|
906
|
+
:triangle, 1
|
907
|
+
]
|
908
|
+
|
909
|
+
# < Triangle wave chorus modulation
|
910
|
+
#
|
911
|
+
# @method synth_set_chorus(synth, nr, level, speed, depth_ms, type)
|
912
|
+
# @param [FluidSynthT] synth
|
913
|
+
# @param [Integer] nr
|
914
|
+
# @param [Float] level
|
915
|
+
# @param [Float] speed
|
916
|
+
# @param [Float] depth_ms
|
917
|
+
# @param [Integer] type
|
918
|
+
# @return [nil]
|
919
|
+
# @scope class
|
920
|
+
attach_function :synth_set_chorus, :fluid_synth_set_chorus, [FluidSynthT, :int, :double, :double, :double, :int], :void
|
921
|
+
|
922
|
+
# (Not documented)
|
923
|
+
#
|
924
|
+
# @method synth_set_chorus_on(synth, on)
|
925
|
+
# @param [FluidSynthT] synth
|
926
|
+
# @param [Integer] on
|
927
|
+
# @return [nil]
|
928
|
+
# @scope class
|
929
|
+
attach_function :synth_set_chorus_on, :fluid_synth_set_chorus_on, [FluidSynthT, :int], :void
|
930
|
+
|
931
|
+
# (Not documented)
|
932
|
+
#
|
933
|
+
# @method synth_get_chorus_nr(synth)
|
934
|
+
# @param [FluidSynthT] synth
|
935
|
+
# @return [Integer]
|
936
|
+
# @scope class
|
937
|
+
attach_function :synth_get_chorus_nr, :fluid_synth_get_chorus_nr, [FluidSynthT], :int
|
938
|
+
|
939
|
+
# (Not documented)
|
940
|
+
#
|
941
|
+
# @method synth_get_chorus_level(synth)
|
942
|
+
# @param [FluidSynthT] synth
|
943
|
+
# @return [Float]
|
944
|
+
# @scope class
|
945
|
+
attach_function :synth_get_chorus_level, :fluid_synth_get_chorus_level, [FluidSynthT], :double
|
946
|
+
|
947
|
+
# (Not documented)
|
948
|
+
#
|
949
|
+
# @method synth_get_chorus_speed_hz(synth)
|
950
|
+
# @param [FluidSynthT] synth
|
951
|
+
# @return [Float]
|
952
|
+
# @scope class
|
953
|
+
attach_function :synth_get_chorus_speed_hz, :fluid_synth_get_chorus_speed_Hz, [FluidSynthT], :double
|
954
|
+
|
955
|
+
# (Not documented)
|
956
|
+
#
|
957
|
+
# @method synth_get_chorus_depth_ms(synth)
|
958
|
+
# @param [FluidSynthT] synth
|
959
|
+
# @return [Float]
|
960
|
+
# @scope class
|
961
|
+
attach_function :synth_get_chorus_depth_ms, :fluid_synth_get_chorus_depth_ms, [FluidSynthT], :double
|
962
|
+
|
963
|
+
# (Not documented)
|
964
|
+
#
|
965
|
+
# @method synth_get_chorus_type(synth)
|
966
|
+
# @param [FluidSynthT] synth
|
967
|
+
# @return [Integer]
|
968
|
+
# @scope class
|
969
|
+
attach_function :synth_get_chorus_type, :fluid_synth_get_chorus_type, [FluidSynthT], :int
|
970
|
+
|
971
|
+
# Audio and MIDI channels
|
972
|
+
#
|
973
|
+
# @method synth_count_midi_channels(synth)
|
974
|
+
# @param [FluidSynthT] synth
|
975
|
+
# @return [Integer]
|
976
|
+
# @scope class
|
977
|
+
attach_function :synth_count_midi_channels, :fluid_synth_count_midi_channels, [FluidSynthT], :int
|
978
|
+
|
979
|
+
# (Not documented)
|
980
|
+
#
|
981
|
+
# @method synth_count_audio_channels(synth)
|
982
|
+
# @param [FluidSynthT] synth
|
983
|
+
# @return [Integer]
|
984
|
+
# @scope class
|
985
|
+
attach_function :synth_count_audio_channels, :fluid_synth_count_audio_channels, [FluidSynthT], :int
|
986
|
+
|
987
|
+
# (Not documented)
|
988
|
+
#
|
989
|
+
# @method synth_count_audio_groups(synth)
|
990
|
+
# @param [FluidSynthT] synth
|
991
|
+
# @return [Integer]
|
992
|
+
# @scope class
|
993
|
+
attach_function :synth_count_audio_groups, :fluid_synth_count_audio_groups, [FluidSynthT], :int
|
994
|
+
|
995
|
+
# (Not documented)
|
996
|
+
#
|
997
|
+
# @method synth_count_effects_channels(synth)
|
998
|
+
# @param [FluidSynthT] synth
|
999
|
+
# @return [Integer]
|
1000
|
+
# @scope class
|
1001
|
+
attach_function :synth_count_effects_channels, :fluid_synth_count_effects_channels, [FluidSynthT], :int
|
1002
|
+
|
1003
|
+
# Synthesis parameters
|
1004
|
+
#
|
1005
|
+
# @method synth_set_sample_rate(synth, sample_rate)
|
1006
|
+
# @param [FluidSynthT] synth
|
1007
|
+
# @param [Float] sample_rate
|
1008
|
+
# @return [nil]
|
1009
|
+
# @scope class
|
1010
|
+
attach_function :synth_set_sample_rate, :fluid_synth_set_sample_rate, [FluidSynthT, :float], :void
|
1011
|
+
|
1012
|
+
# (Not documented)
|
1013
|
+
#
|
1014
|
+
# @method synth_set_gain(synth, gain)
|
1015
|
+
# @param [FluidSynthT] synth
|
1016
|
+
# @param [Float] gain
|
1017
|
+
# @return [nil]
|
1018
|
+
# @scope class
|
1019
|
+
attach_function :synth_set_gain, :fluid_synth_set_gain, [FluidSynthT, :float], :void
|
1020
|
+
|
1021
|
+
# (Not documented)
|
1022
|
+
#
|
1023
|
+
# @method synth_get_gain(synth)
|
1024
|
+
# @param [FluidSynthT] synth
|
1025
|
+
# @return [Float]
|
1026
|
+
# @scope class
|
1027
|
+
attach_function :synth_get_gain, :fluid_synth_get_gain, [FluidSynthT], :float
|
1028
|
+
|
1029
|
+
# (Not documented)
|
1030
|
+
#
|
1031
|
+
# @method synth_set_polyphony(synth, polyphony)
|
1032
|
+
# @param [FluidSynthT] synth
|
1033
|
+
# @param [Integer] polyphony
|
1034
|
+
# @return [Integer]
|
1035
|
+
# @scope class
|
1036
|
+
attach_function :synth_set_polyphony, :fluid_synth_set_polyphony, [FluidSynthT, :int], :int
|
1037
|
+
|
1038
|
+
# (Not documented)
|
1039
|
+
#
|
1040
|
+
# @method synth_get_polyphony(synth)
|
1041
|
+
# @param [FluidSynthT] synth
|
1042
|
+
# @return [Integer]
|
1043
|
+
# @scope class
|
1044
|
+
attach_function :synth_get_polyphony, :fluid_synth_get_polyphony, [FluidSynthT], :int
|
1045
|
+
|
1046
|
+
# (Not documented)
|
1047
|
+
#
|
1048
|
+
# @method synth_get_active_voice_count(synth)
|
1049
|
+
# @param [FluidSynthT] synth
|
1050
|
+
# @return [Integer]
|
1051
|
+
# @scope class
|
1052
|
+
attach_function :synth_get_active_voice_count, :fluid_synth_get_active_voice_count, [FluidSynthT], :int
|
1053
|
+
|
1054
|
+
# (Not documented)
|
1055
|
+
#
|
1056
|
+
# @method synth_get_internal_bufsize(synth)
|
1057
|
+
# @param [FluidSynthT] synth
|
1058
|
+
# @return [Integer]
|
1059
|
+
# @scope class
|
1060
|
+
attach_function :synth_get_internal_bufsize, :fluid_synth_get_internal_bufsize, [FluidSynthT], :int
|
1061
|
+
|
1062
|
+
# (Not documented)
|
1063
|
+
#
|
1064
|
+
# @method synth_set_interp_method(synth, chan, interp_method)
|
1065
|
+
# @param [FluidSynthT] synth
|
1066
|
+
# @param [Integer] chan
|
1067
|
+
# @param [Integer] interp_method
|
1068
|
+
# @return [Integer]
|
1069
|
+
# @scope class
|
1070
|
+
attach_function :synth_set_interp_method, :fluid_synth_set_interp_method, [FluidSynthT, :int, :int], :int
|
1071
|
+
|
1072
|
+
# Synthesis interpolation method.
|
1073
|
+
#
|
1074
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:interp).</em>
|
1075
|
+
#
|
1076
|
+
# === Options:
|
1077
|
+
# :none ::
|
1078
|
+
#
|
1079
|
+
# :linear ::
|
1080
|
+
# < No interpolation: Fastest, but questionable audio quality
|
1081
|
+
# :_4thorder ::
|
1082
|
+
# < Straight-line interpolation: A bit slower, reasonable audio quality
|
1083
|
+
# :_7thorder ::
|
1084
|
+
# < Fourth-order interpolation, good quality, the default
|
1085
|
+
#
|
1086
|
+
# @method _enum_interp_
|
1087
|
+
# @return [Symbol]
|
1088
|
+
# @scope class
|
1089
|
+
enum :interp, [
|
1090
|
+
:none, 0,
|
1091
|
+
:linear, 1,
|
1092
|
+
:_4thorder, 4,
|
1093
|
+
:_7thorder, 7
|
1094
|
+
]
|
1095
|
+
|
1096
|
+
# Generator interface
|
1097
|
+
#
|
1098
|
+
# @method synth_set_gen(synth, chan, param, value)
|
1099
|
+
# @param [FluidSynthT] synth
|
1100
|
+
# @param [Integer] chan
|
1101
|
+
# @param [Integer] param
|
1102
|
+
# @param [Float] value
|
1103
|
+
# @return [Integer]
|
1104
|
+
# @scope class
|
1105
|
+
attach_function :synth_set_gen, :fluid_synth_set_gen, [FluidSynthT, :int, :int, :float], :int
|
1106
|
+
|
1107
|
+
# (Not documented)
|
1108
|
+
#
|
1109
|
+
# @method synth_set_gen2(synth, chan, param, value, absolute, normalized)
|
1110
|
+
# @param [FluidSynthT] synth
|
1111
|
+
# @param [Integer] chan
|
1112
|
+
# @param [Integer] param
|
1113
|
+
# @param [Float] value
|
1114
|
+
# @param [Integer] absolute
|
1115
|
+
# @param [Integer] normalized
|
1116
|
+
# @return [Integer]
|
1117
|
+
# @scope class
|
1118
|
+
attach_function :synth_set_gen2, :fluid_synth_set_gen2, [FluidSynthT, :int, :int, :float, :int, :int], :int
|
1119
|
+
|
1120
|
+
# (Not documented)
|
1121
|
+
#
|
1122
|
+
# @method synth_get_gen(synth, chan, param)
|
1123
|
+
# @param [FluidSynthT] synth
|
1124
|
+
# @param [Integer] chan
|
1125
|
+
# @param [Integer] param
|
1126
|
+
# @return [Float]
|
1127
|
+
# @scope class
|
1128
|
+
attach_function :synth_get_gen, :fluid_synth_get_gen, [FluidSynthT, :int, :int], :float
|
1129
|
+
|
1130
|
+
# Tuning
|
1131
|
+
#
|
1132
|
+
# @method synth_create_key_tuning(synth, bank, prog, name, pitch)
|
1133
|
+
# @param [FluidSynthT] synth
|
1134
|
+
# @param [Integer] bank
|
1135
|
+
# @param [Integer] prog
|
1136
|
+
# @param [String] name
|
1137
|
+
# @param [FFI::Pointer(*Double)] pitch
|
1138
|
+
# @return [Integer]
|
1139
|
+
# @scope class
|
1140
|
+
attach_function :synth_create_key_tuning, :fluid_synth_create_key_tuning, [FluidSynthT, :int, :int, :string, :pointer], :int
|
1141
|
+
|
1142
|
+
# (Not documented)
|
1143
|
+
#
|
1144
|
+
# @method synth_activate_key_tuning(synth, bank, prog, name, pitch, apply)
|
1145
|
+
# @param [FluidSynthT] synth
|
1146
|
+
# @param [Integer] bank
|
1147
|
+
# @param [Integer] prog
|
1148
|
+
# @param [String] name
|
1149
|
+
# @param [FFI::Pointer(*Double)] pitch
|
1150
|
+
# @param [Integer] apply
|
1151
|
+
# @return [Integer]
|
1152
|
+
# @scope class
|
1153
|
+
attach_function :synth_activate_key_tuning, :fluid_synth_activate_key_tuning, [FluidSynthT, :int, :int, :string, :pointer, :int], :int
|
1154
|
+
|
1155
|
+
# (Not documented)
|
1156
|
+
#
|
1157
|
+
# @method synth_create_octave_tuning(synth, bank, prog, name, pitch)
|
1158
|
+
# @param [FluidSynthT] synth
|
1159
|
+
# @param [Integer] bank
|
1160
|
+
# @param [Integer] prog
|
1161
|
+
# @param [String] name
|
1162
|
+
# @param [FFI::Pointer(*Double)] pitch
|
1163
|
+
# @return [Integer]
|
1164
|
+
# @scope class
|
1165
|
+
attach_function :synth_create_octave_tuning, :fluid_synth_create_octave_tuning, [FluidSynthT, :int, :int, :string, :pointer], :int
|
1166
|
+
|
1167
|
+
# (Not documented)
|
1168
|
+
#
|
1169
|
+
# @method synth_activate_octave_tuning(synth, bank, prog, name, pitch, apply)
|
1170
|
+
# @param [FluidSynthT] synth
|
1171
|
+
# @param [Integer] bank
|
1172
|
+
# @param [Integer] prog
|
1173
|
+
# @param [String] name
|
1174
|
+
# @param [FFI::Pointer(*Double)] pitch
|
1175
|
+
# @param [Integer] apply
|
1176
|
+
# @return [Integer]
|
1177
|
+
# @scope class
|
1178
|
+
attach_function :synth_activate_octave_tuning, :fluid_synth_activate_octave_tuning, [FluidSynthT, :int, :int, :string, :pointer, :int], :int
|
1179
|
+
|
1180
|
+
# (Not documented)
|
1181
|
+
#
|
1182
|
+
# @method synth_tune_notes(synth, bank, prog, len, keys, pitch, apply)
|
1183
|
+
# @param [FluidSynthT] synth
|
1184
|
+
# @param [Integer] bank
|
1185
|
+
# @param [Integer] prog
|
1186
|
+
# @param [Integer] len
|
1187
|
+
# @param [FFI::Pointer(*Int)] keys
|
1188
|
+
# @param [FFI::Pointer(*Double)] pitch
|
1189
|
+
# @param [Integer] apply
|
1190
|
+
# @return [Integer]
|
1191
|
+
# @scope class
|
1192
|
+
attach_function :synth_tune_notes, :fluid_synth_tune_notes, [FluidSynthT, :int, :int, :int, :pointer, :pointer, :int], :int
|
1193
|
+
|
1194
|
+
# (Not documented)
|
1195
|
+
#
|
1196
|
+
# @method synth_select_tuning(synth, chan, bank, prog)
|
1197
|
+
# @param [FluidSynthT] synth
|
1198
|
+
# @param [Integer] chan
|
1199
|
+
# @param [Integer] bank
|
1200
|
+
# @param [Integer] prog
|
1201
|
+
# @return [Integer]
|
1202
|
+
# @scope class
|
1203
|
+
attach_function :synth_select_tuning, :fluid_synth_select_tuning, [FluidSynthT, :int, :int, :int], :int
|
1204
|
+
|
1205
|
+
# (Not documented)
|
1206
|
+
#
|
1207
|
+
# @method synth_activate_tuning(synth, chan, bank, prog, apply)
|
1208
|
+
# @param [FluidSynthT] synth
|
1209
|
+
# @param [Integer] chan
|
1210
|
+
# @param [Integer] bank
|
1211
|
+
# @param [Integer] prog
|
1212
|
+
# @param [Integer] apply
|
1213
|
+
# @return [Integer]
|
1214
|
+
# @scope class
|
1215
|
+
attach_function :synth_activate_tuning, :fluid_synth_activate_tuning, [FluidSynthT, :int, :int, :int, :int], :int
|
1216
|
+
|
1217
|
+
# (Not documented)
|
1218
|
+
#
|
1219
|
+
# @method synth_reset_tuning(synth, chan)
|
1220
|
+
# @param [FluidSynthT] synth
|
1221
|
+
# @param [Integer] chan
|
1222
|
+
# @return [Integer]
|
1223
|
+
# @scope class
|
1224
|
+
attach_function :synth_reset_tuning, :fluid_synth_reset_tuning, [FluidSynthT, :int], :int
|
1225
|
+
|
1226
|
+
# (Not documented)
|
1227
|
+
#
|
1228
|
+
# @method synth_deactivate_tuning(synth, chan, apply)
|
1229
|
+
# @param [FluidSynthT] synth
|
1230
|
+
# @param [Integer] chan
|
1231
|
+
# @param [Integer] apply
|
1232
|
+
# @return [Integer]
|
1233
|
+
# @scope class
|
1234
|
+
attach_function :synth_deactivate_tuning, :fluid_synth_deactivate_tuning, [FluidSynthT, :int, :int], :int
|
1235
|
+
|
1236
|
+
# (Not documented)
|
1237
|
+
#
|
1238
|
+
# @method synth_tuning_iteration_start(synth)
|
1239
|
+
# @param [FluidSynthT] synth
|
1240
|
+
# @return [nil]
|
1241
|
+
# @scope class
|
1242
|
+
attach_function :synth_tuning_iteration_start, :fluid_synth_tuning_iteration_start, [FluidSynthT], :void
|
1243
|
+
|
1244
|
+
# (Not documented)
|
1245
|
+
#
|
1246
|
+
# @method synth_tuning_iteration_next(synth, bank, prog)
|
1247
|
+
# @param [FluidSynthT] synth
|
1248
|
+
# @param [FFI::Pointer(*Int)] bank
|
1249
|
+
# @param [FFI::Pointer(*Int)] prog
|
1250
|
+
# @return [Integer]
|
1251
|
+
# @scope class
|
1252
|
+
attach_function :synth_tuning_iteration_next, :fluid_synth_tuning_iteration_next, [FluidSynthT, :pointer, :pointer], :int
|
1253
|
+
|
1254
|
+
# (Not documented)
|
1255
|
+
#
|
1256
|
+
# @method synth_tuning_dump(synth, bank, prog, name, len, pitch)
|
1257
|
+
# @param [FluidSynthT] synth
|
1258
|
+
# @param [Integer] bank
|
1259
|
+
# @param [Integer] prog
|
1260
|
+
# @param [String] name
|
1261
|
+
# @param [Integer] len
|
1262
|
+
# @param [FFI::Pointer(*Double)] pitch
|
1263
|
+
# @return [Integer]
|
1264
|
+
# @scope class
|
1265
|
+
attach_function :synth_tuning_dump, :fluid_synth_tuning_dump, [FluidSynthT, :int, :int, :string, :int, :pointer], :int
|
1266
|
+
|
1267
|
+
# Misc
|
1268
|
+
#
|
1269
|
+
# @method synth_get_cpu_load(synth)
|
1270
|
+
# @param [FluidSynthT] synth
|
1271
|
+
# @return [Float]
|
1272
|
+
# @scope class
|
1273
|
+
attach_function :synth_get_cpu_load, :fluid_synth_get_cpu_load, [FluidSynthT], :double
|
1274
|
+
|
1275
|
+
# (Not documented)
|
1276
|
+
#
|
1277
|
+
# @method synth_error(synth)
|
1278
|
+
# @param [FluidSynthT] synth
|
1279
|
+
# @return [String]
|
1280
|
+
# @scope class
|
1281
|
+
attach_function :synth_error, :fluid_synth_error, [FluidSynthT], :string
|
1282
|
+
|
1283
|
+
# Synthesizer plugin
|
1284
|
+
#
|
1285
|
+
# To create a synthesizer plugin, create the synthesizer as
|
1286
|
+
# explained above. Once the synthesizer is created you can call
|
1287
|
+
# any of the functions below to get the audio.
|
1288
|
+
#
|
1289
|
+
# @method synth_write_s16(synth, len, lout, loff, lincr, rout, roff, rincr)
|
1290
|
+
# @param [FluidSynthT] synth
|
1291
|
+
# @param [Integer] len
|
1292
|
+
# @param [FFI::Pointer(*Void)] lout
|
1293
|
+
# @param [Integer] loff
|
1294
|
+
# @param [Integer] lincr
|
1295
|
+
# @param [FFI::Pointer(*Void)] rout
|
1296
|
+
# @param [Integer] roff
|
1297
|
+
# @param [Integer] rincr
|
1298
|
+
# @return [Integer]
|
1299
|
+
# @scope class
|
1300
|
+
attach_function :synth_write_s16, :fluid_synth_write_s16, [FluidSynthT, :int, :pointer, :int, :int, :pointer, :int, :int], :int
|
1301
|
+
|
1302
|
+
# (Not documented)
|
1303
|
+
#
|
1304
|
+
# @method synth_write_float(synth, len, lout, loff, lincr, rout, roff, rincr)
|
1305
|
+
# @param [FluidSynthT] synth
|
1306
|
+
# @param [Integer] len
|
1307
|
+
# @param [FFI::Pointer(*Void)] lout
|
1308
|
+
# @param [Integer] loff
|
1309
|
+
# @param [Integer] lincr
|
1310
|
+
# @param [FFI::Pointer(*Void)] rout
|
1311
|
+
# @param [Integer] roff
|
1312
|
+
# @param [Integer] rincr
|
1313
|
+
# @return [Integer]
|
1314
|
+
# @scope class
|
1315
|
+
attach_function :synth_write_float, :fluid_synth_write_float, [FluidSynthT, :int, :pointer, :int, :int, :pointer, :int, :int], :int
|
1316
|
+
|
1317
|
+
# (Not documented)
|
1318
|
+
#
|
1319
|
+
# @method synth_nwrite_float(synth, len, left, right, fx_left, fx_right)
|
1320
|
+
# @param [FluidSynthT] synth
|
1321
|
+
# @param [Integer] len
|
1322
|
+
# @param [FFI::Pointer(**Float)] left
|
1323
|
+
# @param [FFI::Pointer(**Float)] right
|
1324
|
+
# @param [FFI::Pointer(**Float)] fx_left
|
1325
|
+
# @param [FFI::Pointer(**Float)] fx_right
|
1326
|
+
# @return [Integer]
|
1327
|
+
# @scope class
|
1328
|
+
attach_function :synth_nwrite_float, :fluid_synth_nwrite_float, [FluidSynthT, :int, :pointer, :pointer, :pointer, :pointer], :int
|
1329
|
+
|
1330
|
+
# (Not documented)
|
1331
|
+
#
|
1332
|
+
# @method synth_process(synth, len, nin, in, nout, out)
|
1333
|
+
# @param [FluidSynthT] synth
|
1334
|
+
# @param [Integer] len
|
1335
|
+
# @param [Integer] nin
|
1336
|
+
# @param [FFI::Pointer(**Float)] in
|
1337
|
+
# @param [Integer] nout
|
1338
|
+
# @param [FFI::Pointer(**Float)] out
|
1339
|
+
# @return [Integer]
|
1340
|
+
# @scope class
|
1341
|
+
attach_function :synth_process, :fluid_synth_process, [FluidSynthT, :int, :int, :pointer, :int, :pointer], :int
|
1342
|
+
|
1343
|
+
# Type definition of the synthesizer's audio callback function.
|
1344
|
+
# @param synth FluidSynth instance
|
1345
|
+
# @param len Count of audio frames to synthesize
|
1346
|
+
# @param out1 Array to store left channel of audio to
|
1347
|
+
# @param loff Offset index in 'out1' for first sample
|
1348
|
+
# @param lincr Increment between samples stored to 'out1'
|
1349
|
+
# @param out2 Array to store right channel of audio to
|
1350
|
+
# @param roff Offset index in 'out2' for first sample
|
1351
|
+
# @param rincr Increment between samples stored to 'out2'
|
1352
|
+
#
|
1353
|
+
# <em>This entry is only for documentation and no real method.</em>
|
1354
|
+
#
|
1355
|
+
# @method _callback_audio_callback_t_(len, out1, loff, lincr, out2, roff, rincr)
|
1356
|
+
# @param [Integer] len
|
1357
|
+
# @param [FFI::Pointer(*Void)] out1
|
1358
|
+
# @param [Integer] loff
|
1359
|
+
# @param [Integer] lincr
|
1360
|
+
# @param [FFI::Pointer(*Void)] out2
|
1361
|
+
# @param [Integer] roff
|
1362
|
+
# @param [Integer] rincr
|
1363
|
+
# @return [FluidSynthT]
|
1364
|
+
# @scope class
|
1365
|
+
callback :audio_callback_t, [:int, :pointer, :int, :int, :pointer, :int, :int], FluidSynthT
|
1366
|
+
|
1367
|
+
# Synthesizer's interface to handle SoundFont loaders
|
1368
|
+
#
|
1369
|
+
# @method synth_add_sfloader(synth, loader)
|
1370
|
+
# @param [FluidSynthT] synth
|
1371
|
+
# @param [FFI::Pointer(*SfloaderT)] loader
|
1372
|
+
# @return [nil]
|
1373
|
+
# @scope class
|
1374
|
+
attach_function :synth_add_sfloader, :fluid_synth_add_sfloader, [FluidSynthT, :pointer], :void
|
1375
|
+
|
1376
|
+
# (Not documented)
|
1377
|
+
#
|
1378
|
+
# @method synth_alloc_voice(synth, sample, channum, key, vel)
|
1379
|
+
# @param [FluidSynthT] synth
|
1380
|
+
# @param [FFI::Pointer(*SampleT)] sample
|
1381
|
+
# @param [Integer] channum
|
1382
|
+
# @param [Integer] key
|
1383
|
+
# @param [Integer] vel
|
1384
|
+
# @return [FluidVoiceT]
|
1385
|
+
# @scope class
|
1386
|
+
attach_function :synth_alloc_voice, :fluid_synth_alloc_voice, [FluidSynthT, :pointer, :int, :int, :int], FluidVoiceT
|
1387
|
+
|
1388
|
+
# (Not documented)
|
1389
|
+
#
|
1390
|
+
# @method synth_start_voice(synth, voice)
|
1391
|
+
# @param [FluidSynthT] synth
|
1392
|
+
# @param [FluidVoiceT] voice
|
1393
|
+
# @return [nil]
|
1394
|
+
# @scope class
|
1395
|
+
attach_function :synth_start_voice, :fluid_synth_start_voice, [FluidSynthT, FluidVoiceT], :void
|
1396
|
+
|
1397
|
+
# (Not documented)
|
1398
|
+
#
|
1399
|
+
# @method synth_get_voicelist(synth, buf, bufsize, id)
|
1400
|
+
# @param [FluidSynthT] synth
|
1401
|
+
# @param [FFI::Pointer(**VoiceT)] buf
|
1402
|
+
# @param [Integer] bufsize
|
1403
|
+
# @param [Integer] id
|
1404
|
+
# @return [nil]
|
1405
|
+
# @scope class
|
1406
|
+
attach_function :synth_get_voicelist, :fluid_synth_get_voicelist, [FluidSynthT, :pointer, :int, :int], :void
|
1407
|
+
|
1408
|
+
# (Not documented)
|
1409
|
+
#
|
1410
|
+
# @method synth_handle_midi_event(data, event)
|
1411
|
+
# @param [FFI::Pointer(*Void)] data
|
1412
|
+
# @param [FluidMidiEventT] event
|
1413
|
+
# @return [Integer]
|
1414
|
+
# @scope class
|
1415
|
+
attach_function :synth_handle_midi_event, :fluid_synth_handle_midi_event, [:pointer, FluidMidiEventT], :int
|
1416
|
+
|
1417
|
+
# (Not documented)
|
1418
|
+
#
|
1419
|
+
# @method synth_set_midi_router(synth, router)
|
1420
|
+
# @param [FluidSynthT] synth
|
1421
|
+
# @param [FluidMidiRouterT] router
|
1422
|
+
# @return [nil]
|
1423
|
+
# @scope class
|
1424
|
+
attach_function :synth_set_midi_router, :fluid_synth_set_midi_router, [FluidSynthT, FluidMidiRouterT], :void
|
1425
|
+
|
1426
|
+
# < Synthesis voice instance
|
1427
|
+
#
|
1428
|
+
# = Fields:
|
1429
|
+
# :data ::
|
1430
|
+
# (FFI::Pointer(*Void)) < User defined data pointer
|
1431
|
+
# :free ::
|
1432
|
+
# (FFI::Pointer(*)) The free method should free the memory allocated for the loader in
|
1433
|
+
# addition to any private data.
|
1434
|
+
# @param loader SoundFont loader
|
1435
|
+
# @return Should return 0 if no error occured, non-zero otherwise
|
1436
|
+
# :load ::
|
1437
|
+
# (FFI::Pointer(*)) Method to load an instrument file (does not actually need to be a real file name,
|
1438
|
+
# could be another type of string identifier that the \a loader understands).
|
1439
|
+
# @param loader SoundFont loader
|
1440
|
+
# @param filename File name or other string identifier
|
1441
|
+
# @return The loaded instrument file (SoundFont) or NULL if an error occured.
|
1442
|
+
class FluidSfloaderT < FFI::Struct
|
1443
|
+
layout :data, :pointer,
|
1444
|
+
:free, :pointer,
|
1445
|
+
:load, :pointer
|
1446
|
+
end
|
1447
|
+
|
1448
|
+
# < SoundFont loader plugin
|
1449
|
+
#
|
1450
|
+
# = Fields:
|
1451
|
+
# :data ::
|
1452
|
+
# (FFI::Pointer(*Void)) < User defined data
|
1453
|
+
# :id ::
|
1454
|
+
# (Integer) < SoundFont ID
|
1455
|
+
# :free ::
|
1456
|
+
# (FFI::Pointer(*)) Method to free a virtual SoundFont bank.
|
1457
|
+
# @param sfont Virtual SoundFont to free.
|
1458
|
+
# @return Should return 0 when it was able to free all resources or non-zero
|
1459
|
+
# if some of the samples could not be freed because they are still in use,
|
1460
|
+
# in which case the free will be tried again later, until success.
|
1461
|
+
# :get_name ::
|
1462
|
+
# (FFI::Pointer(*)) Method to return the name of a virtual SoundFont.
|
1463
|
+
# @param sfont Virtual SoundFont
|
1464
|
+
# @return The name of the virtual SoundFont.
|
1465
|
+
# :get_preset ::
|
1466
|
+
# (FFI::Pointer(*)) Get a virtual SoundFont preset by bank and program numbers.
|
1467
|
+
# @param sfont Virtual SoundFont
|
1468
|
+
# @param bank MIDI bank number (0-16384)
|
1469
|
+
# @param prenum MIDI preset number (0-127)
|
1470
|
+
# @return Should return an allocated virtual preset or NULL if it could not
|
1471
|
+
# be found.
|
1472
|
+
# :iteration_start ::
|
1473
|
+
# (FFI::Pointer(*)) Start virtual SoundFont preset iteration method.
|
1474
|
+
# @param sfont Virtual SoundFont
|
1475
|
+
#
|
1476
|
+
# Starts/re-starts virtual preset iteration in a SoundFont.
|
1477
|
+
# :iteration_next ::
|
1478
|
+
# (FFI::Pointer(*)) Virtual SoundFont preset iteration function.
|
1479
|
+
# @param sfont Virtual SoundFont
|
1480
|
+
# @param preset Caller supplied preset to fill in with current preset information
|
1481
|
+
# @return 0 when no more presets are available, 1 otherwise
|
1482
|
+
#
|
1483
|
+
# Should store preset information to the caller supplied \a preset structure
|
1484
|
+
# and advance the internal iteration state to the next preset for subsequent
|
1485
|
+
# calls.
|
1486
|
+
class FluidSfontT < FFI::Struct
|
1487
|
+
layout :data, :pointer,
|
1488
|
+
:id, :uint,
|
1489
|
+
:free, :pointer,
|
1490
|
+
:get_name, :pointer,
|
1491
|
+
:get_preset, :pointer,
|
1492
|
+
:iteration_start, :pointer,
|
1493
|
+
:iteration_next, :pointer
|
1494
|
+
end
|
1495
|
+
|
1496
|
+
# < SoundFont
|
1497
|
+
#
|
1498
|
+
# = Fields:
|
1499
|
+
# :data ::
|
1500
|
+
# (FFI::Pointer(*Void)) < User supplied data
|
1501
|
+
# :sfont ::
|
1502
|
+
# (FluidSfontT) < Parent virtual SoundFont
|
1503
|
+
# :free ::
|
1504
|
+
# (FFI::Pointer(*)) Method to free a virtual SoundFont preset.
|
1505
|
+
# @param preset Virtual SoundFont preset
|
1506
|
+
# @return Should return 0
|
1507
|
+
# :get_name ::
|
1508
|
+
# (FFI::Pointer(*)) Method to get a virtual SoundFont preset name.
|
1509
|
+
# @param preset Virtual SoundFont preset
|
1510
|
+
# @return Should return the name of the preset. The returned string must be
|
1511
|
+
# valid for the duration of the virtual preset (or the duration of the
|
1512
|
+
# SoundFont, in the case of preset iteration).
|
1513
|
+
# :get_banknum ::
|
1514
|
+
# (FFI::Pointer(*)) Method to get a virtual SoundFont preset MIDI bank number.
|
1515
|
+
# @param preset Virtual SoundFont preset
|
1516
|
+
# @param return The bank number of the preset
|
1517
|
+
# :get_num ::
|
1518
|
+
# (FFI::Pointer(*)) Method to get a virtual SoundFont preset MIDI program number.
|
1519
|
+
# @param preset Virtual SoundFont preset
|
1520
|
+
# @param return The program number of the preset
|
1521
|
+
# :noteon ::
|
1522
|
+
# (FFI::Pointer(*)) Method to handle a noteon event (synthesize the instrument).
|
1523
|
+
# @param preset Virtual SoundFont preset
|
1524
|
+
# @param synth Synthesizer instance
|
1525
|
+
# @param chan MIDI channel number of the note on event
|
1526
|
+
# @param key MIDI note number (0-127)
|
1527
|
+
# @param vel MIDI velocity (0-127)
|
1528
|
+
# @return #FLUID_OK on success (0) or #FLUID_FAILED (-1) otherwise
|
1529
|
+
#
|
1530
|
+
# This method may be called from within synthesis context and therefore
|
1531
|
+
# should be as efficient as possible and not perform any operations considered
|
1532
|
+
# bad for realtime audio output (memory allocations and other OS calls).
|
1533
|
+
#
|
1534
|
+
# Call fluid_synth_alloc_voice() for every sample that has
|
1535
|
+
# to be played. fluid_synth_alloc_voice() expects a pointer to a
|
1536
|
+
# #fluid_sample_t structure and returns a pointer to the opaque
|
1537
|
+
# #fluid_voice_t structure. To set or increment the values of a
|
1538
|
+
# generator, use fluid_voice_gen_set() or fluid_voice_gen_incr(). When you are
|
1539
|
+
# finished initializing the voice call fluid_voice_start() to
|
1540
|
+
# start playing the synthesis voice. Starting with FluidSynth 1.1.0 all voices
|
1541
|
+
# created will be started at the same time.
|
1542
|
+
# :notify ::
|
1543
|
+
# (FFI::Pointer(*)) Virtual SoundFont preset notify method.
|
1544
|
+
# @param preset Virtual SoundFont preset
|
1545
|
+
# @param reason #FLUID_PRESET_SELECTED or #FLUID_PRESET_UNSELECTED
|
1546
|
+
# @param chan MIDI channel number
|
1547
|
+
# @return Should return #FLUID_OK
|
1548
|
+
#
|
1549
|
+
# Implement this optional method if the preset needs to be notified about
|
1550
|
+
# preset select and unselect events.
|
1551
|
+
#
|
1552
|
+
# This method may be called from within synthesis context and therefore
|
1553
|
+
# should be as efficient as possible and not perform any operations considered
|
1554
|
+
# bad for realtime audio output (memory allocations and other OS calls).
|
1555
|
+
class FluidPresetT < FFI::Struct
|
1556
|
+
layout :data, :pointer,
|
1557
|
+
:sfont, FluidSfontT,
|
1558
|
+
:free, :pointer,
|
1559
|
+
:get_name, :pointer,
|
1560
|
+
:get_banknum, :pointer,
|
1561
|
+
:get_num, :pointer,
|
1562
|
+
:noteon, :pointer,
|
1563
|
+
:notify, :pointer
|
1564
|
+
end
|
1565
|
+
|
1566
|
+
# < SoundFont preset
|
1567
|
+
#
|
1568
|
+
# = Fields:
|
1569
|
+
# :name ::
|
1570
|
+
# (Array<Integer>) < Sample name
|
1571
|
+
# :start ::
|
1572
|
+
# (Integer) < Start index
|
1573
|
+
# :end ::
|
1574
|
+
# (Integer) < End index, index of last valid sample point (contrary to SF spec)
|
1575
|
+
# :loopstart ::
|
1576
|
+
# (Integer) < Loop start index
|
1577
|
+
# :loopend ::
|
1578
|
+
# (Integer) < Loop end index, first point following the loop (superimposed on loopstart)
|
1579
|
+
# :samplerate ::
|
1580
|
+
# (Integer) < Sample rate
|
1581
|
+
# :origpitch ::
|
1582
|
+
# (Integer) < Original pitch (MIDI note number, 0-127)
|
1583
|
+
# :pitchadj ::
|
1584
|
+
# (Integer) < Fine pitch adjustment (+/- 99 cents)
|
1585
|
+
# :sampletype ::
|
1586
|
+
# (Integer) < Values: #FLUID_SAMPLETYPE_MONO, FLUID_SAMPLETYPE_RIGHT, FLUID_SAMPLETYPE_LEFT, FLUID_SAMPLETYPE_ROM
|
1587
|
+
# :valid ::
|
1588
|
+
# (Integer) < Should be TRUE if sample data is valid, FALSE otherwise (in which case it will not be synthesized)
|
1589
|
+
# :data ::
|
1590
|
+
# (FFI::Pointer(*Short)) < Pointer to the sample's data
|
1591
|
+
# :amplitude_that_reaches_noise_floor_is_valid ::
|
1592
|
+
# (Integer) < Indicates if \a amplitude_that_reaches_noise_floor is valid (TRUE), set to FALSE initially to calculate.
|
1593
|
+
# :amplitude_that_reaches_noise_floor ::
|
1594
|
+
# (Float) < The amplitude at which the sample's loop will be below the noise floor. For voice off optimization, calculated automatically.
|
1595
|
+
# :refcount ::
|
1596
|
+
# (Integer) < Count of voices using this sample (use #fluid_sample_refcount to access this field)
|
1597
|
+
# :notify ::
|
1598
|
+
# (FFI::Pointer(*)) Implement this function to receive notification when sample is no longer used.
|
1599
|
+
# @param sample Virtual SoundFont sample
|
1600
|
+
# @param reason #FLUID_SAMPLE_DONE only currently
|
1601
|
+
# @return Should return #FLUID_OK
|
1602
|
+
# :userdata ::
|
1603
|
+
# (FFI::Pointer(*Void)) < User defined data
|
1604
|
+
class FluidSampleT < FFI::Struct
|
1605
|
+
layout :name, [:char, 21],
|
1606
|
+
:start, :uint,
|
1607
|
+
:end, :uint,
|
1608
|
+
:loopstart, :uint,
|
1609
|
+
:loopend, :uint,
|
1610
|
+
:samplerate, :uint,
|
1611
|
+
:origpitch, :int,
|
1612
|
+
:pitchadj, :int,
|
1613
|
+
:sampletype, :int,
|
1614
|
+
:valid, :int,
|
1615
|
+
:data, :pointer,
|
1616
|
+
:amplitude_that_reaches_noise_floor_is_valid, :int,
|
1617
|
+
:amplitude_that_reaches_noise_floor, :double,
|
1618
|
+
:refcount, :uint,
|
1619
|
+
:notify, :pointer,
|
1620
|
+
:userdata, :pointer
|
1621
|
+
end
|
1622
|
+
|
1623
|
+
# (Not documented)
|
1624
|
+
#
|
1625
|
+
# <em>This entry is only for documentation and no real method.</em>
|
1626
|
+
#
|
1627
|
+
# @method _callback_audio_func_t_(len, nin, in, nout, out)
|
1628
|
+
# @param [Integer] len
|
1629
|
+
# @param [Integer] nin
|
1630
|
+
# @param [FFI::Pointer(**Float)] in
|
1631
|
+
# @param [Integer] nout
|
1632
|
+
# @param [FFI::Pointer(**Float)] out
|
1633
|
+
# @return [FFI::Pointer(*Void)]
|
1634
|
+
# @scope class
|
1635
|
+
callback :audio_func_t, [:int, :int, :pointer, :int, :pointer], :pointer
|
1636
|
+
|
1637
|
+
# (Not documented)
|
1638
|
+
#
|
1639
|
+
# @method new_fluid_audio_driver(settings, synth)
|
1640
|
+
# @param [FluidHashtableT] settings
|
1641
|
+
# @param [FluidSynthT] synth
|
1642
|
+
# @return [FluidAudioDriverT]
|
1643
|
+
# @scope class
|
1644
|
+
attach_function :new_fluid_audio_driver, :new_fluid_audio_driver, [FluidHashtableT, FluidSynthT], FluidAudioDriverT
|
1645
|
+
|
1646
|
+
# (Not documented)
|
1647
|
+
#
|
1648
|
+
# @method new_fluid_audio_driver2(settings, func, data)
|
1649
|
+
# @param [FluidHashtableT] settings
|
1650
|
+
# @param [Proc(_callback_audio_func_t_)] func
|
1651
|
+
# @param [FFI::Pointer(*Void)] data
|
1652
|
+
# @return [FluidAudioDriverT]
|
1653
|
+
# @scope class
|
1654
|
+
attach_function :new_fluid_audio_driver2, :new_fluid_audio_driver2, [FluidHashtableT, :audio_func_t, :pointer], FluidAudioDriverT
|
1655
|
+
|
1656
|
+
# (Not documented)
|
1657
|
+
#
|
1658
|
+
# @method delete_fluid_audio_driver(driver)
|
1659
|
+
# @param [FluidAudioDriverT] driver
|
1660
|
+
# @return [nil]
|
1661
|
+
# @scope class
|
1662
|
+
attach_function :delete_fluid_audio_driver, :delete_fluid_audio_driver, [FluidAudioDriverT], :void
|
1663
|
+
|
1664
|
+
# (Not documented)
|
1665
|
+
#
|
1666
|
+
# @method new_fluid_file_renderer(synth)
|
1667
|
+
# @param [FluidSynthT] synth
|
1668
|
+
# @return [FluidFileRendererT]
|
1669
|
+
# @scope class
|
1670
|
+
attach_function :new_fluid_file_renderer, :new_fluid_file_renderer, [FluidSynthT], FluidFileRendererT
|
1671
|
+
|
1672
|
+
# (Not documented)
|
1673
|
+
#
|
1674
|
+
# @method file_renderer_process_block(dev)
|
1675
|
+
# @param [FluidFileRendererT] dev
|
1676
|
+
# @return [Integer]
|
1677
|
+
# @scope class
|
1678
|
+
attach_function :file_renderer_process_block, :fluid_file_renderer_process_block, [FluidFileRendererT], :int
|
1679
|
+
|
1680
|
+
# (Not documented)
|
1681
|
+
#
|
1682
|
+
# @method delete_fluid_file_renderer(dev)
|
1683
|
+
# @param [FluidFileRendererT] dev
|
1684
|
+
# @return [nil]
|
1685
|
+
# @scope class
|
1686
|
+
attach_function :delete_fluid_file_renderer, :delete_fluid_file_renderer, [FluidFileRendererT], :void
|
1687
|
+
|
1688
|
+
# (Not documented)
|
1689
|
+
#
|
1690
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:seq_event_type).</em>
|
1691
|
+
#
|
1692
|
+
# === Options:
|
1693
|
+
# :note ::
|
1694
|
+
#
|
1695
|
+
# :noteon ::
|
1696
|
+
# < Note event with duration
|
1697
|
+
# :noteoff ::
|
1698
|
+
# < Note on event
|
1699
|
+
# :allsoundsoff ::
|
1700
|
+
# < Note off event
|
1701
|
+
# :allnotesoff ::
|
1702
|
+
# < All sounds off event
|
1703
|
+
# :bankselect ::
|
1704
|
+
# < All notes off event
|
1705
|
+
# :programchange ::
|
1706
|
+
# < Bank select message
|
1707
|
+
# :programselect ::
|
1708
|
+
# < Program change message
|
1709
|
+
# :pitchbend ::
|
1710
|
+
# < Program select message (DOCME)
|
1711
|
+
# :pitchwheelsens ::
|
1712
|
+
# < Pitch bend message
|
1713
|
+
# :modulation ::
|
1714
|
+
# < Pitch wheel sensitivity set message @since 1.1.0 was mispelled previously
|
1715
|
+
# :sustain ::
|
1716
|
+
# < Modulation controller event
|
1717
|
+
# :controlchange ::
|
1718
|
+
# < Sustain controller event
|
1719
|
+
# :pan ::
|
1720
|
+
# < MIDI control change event
|
1721
|
+
# :volume ::
|
1722
|
+
# < Stereo pan set event
|
1723
|
+
# :reverbsend ::
|
1724
|
+
# < Volume set event
|
1725
|
+
# :chorussend ::
|
1726
|
+
# < Reverb send set event
|
1727
|
+
# :timer ::
|
1728
|
+
# < Chorus send set event
|
1729
|
+
# :anycontrolchange ::
|
1730
|
+
# < Timer event (DOCME)
|
1731
|
+
# :channelpressure ::
|
1732
|
+
# < DOCME (used for remove_events only)
|
1733
|
+
# :systemreset ::
|
1734
|
+
# < Channel aftertouch event @since 1.1.0
|
1735
|
+
# :unregistering ::
|
1736
|
+
# < System reset event @since 1.1.0
|
1737
|
+
# :lastevent ::
|
1738
|
+
# < Called when a sequencer client is being unregistered. @since 1.1.0
|
1739
|
+
#
|
1740
|
+
# @method _enum_seq_event_type_
|
1741
|
+
# @return [Symbol]
|
1742
|
+
# @scope class
|
1743
|
+
enum :seq_event_type, [
|
1744
|
+
:note, 0,
|
1745
|
+
:noteon,
|
1746
|
+
:noteoff,
|
1747
|
+
:allsoundsoff,
|
1748
|
+
:allnotesoff,
|
1749
|
+
:bankselect,
|
1750
|
+
:programchange,
|
1751
|
+
:programselect,
|
1752
|
+
:pitchbend,
|
1753
|
+
:pitchwheelsens,
|
1754
|
+
:modulation,
|
1755
|
+
:sustain,
|
1756
|
+
:controlchange,
|
1757
|
+
:pan,
|
1758
|
+
:volume,
|
1759
|
+
:reverbsend,
|
1760
|
+
:chorussend,
|
1761
|
+
:timer,
|
1762
|
+
:anycontrolchange,
|
1763
|
+
:channelpressure,
|
1764
|
+
:systemreset,
|
1765
|
+
:unregistering,
|
1766
|
+
:lastevent
|
1767
|
+
]
|
1768
|
+
|
1769
|
+
# (Not documented)
|
1770
|
+
#
|
1771
|
+
# @method new_fluid_event()
|
1772
|
+
# @return [FluidEventT]
|
1773
|
+
# @scope class
|
1774
|
+
attach_function :new_fluid_event, :new_fluid_event, [], FluidEventT
|
1775
|
+
|
1776
|
+
# (Not documented)
|
1777
|
+
#
|
1778
|
+
# @method delete_fluid_event(evt)
|
1779
|
+
# @param [FluidEventT] evt
|
1780
|
+
# @return [nil]
|
1781
|
+
# @scope class
|
1782
|
+
attach_function :delete_fluid_event, :delete_fluid_event, [FluidEventT], :void
|
1783
|
+
|
1784
|
+
# Initializing events
|
1785
|
+
#
|
1786
|
+
# @method event_set_source(evt, src)
|
1787
|
+
# @param [FluidEventT] evt
|
1788
|
+
# @param [Integer] src
|
1789
|
+
# @return [nil]
|
1790
|
+
# @scope class
|
1791
|
+
attach_function :event_set_source, :fluid_event_set_source, [FluidEventT, :short], :void
|
1792
|
+
|
1793
|
+
# (Not documented)
|
1794
|
+
#
|
1795
|
+
# @method event_set_dest(evt, dest)
|
1796
|
+
# @param [FluidEventT] evt
|
1797
|
+
# @param [Integer] dest
|
1798
|
+
# @return [nil]
|
1799
|
+
# @scope class
|
1800
|
+
attach_function :event_set_dest, :fluid_event_set_dest, [FluidEventT, :short], :void
|
1801
|
+
|
1802
|
+
# Timer events
|
1803
|
+
#
|
1804
|
+
# @method event_timer(evt, data)
|
1805
|
+
# @param [FluidEventT] evt
|
1806
|
+
# @param [FFI::Pointer(*Void)] data
|
1807
|
+
# @return [nil]
|
1808
|
+
# @scope class
|
1809
|
+
attach_function :event_timer, :fluid_event_timer, [FluidEventT, :pointer], :void
|
1810
|
+
|
1811
|
+
# Note events
|
1812
|
+
#
|
1813
|
+
# @method event_note(evt, channel, key, vel, duration)
|
1814
|
+
# @param [FluidEventT] evt
|
1815
|
+
# @param [Integer] channel
|
1816
|
+
# @param [Integer] key
|
1817
|
+
# @param [Integer] vel
|
1818
|
+
# @param [Integer] duration
|
1819
|
+
# @return [nil]
|
1820
|
+
# @scope class
|
1821
|
+
attach_function :event_note, :fluid_event_note, [FluidEventT, :int, :short, :short, :uint], :void
|
1822
|
+
|
1823
|
+
# (Not documented)
|
1824
|
+
#
|
1825
|
+
# @method event_noteon(evt, channel, key, vel)
|
1826
|
+
# @param [FluidEventT] evt
|
1827
|
+
# @param [Integer] channel
|
1828
|
+
# @param [Integer] key
|
1829
|
+
# @param [Integer] vel
|
1830
|
+
# @return [nil]
|
1831
|
+
# @scope class
|
1832
|
+
attach_function :event_noteon, :fluid_event_noteon, [FluidEventT, :int, :short, :short], :void
|
1833
|
+
|
1834
|
+
# (Not documented)
|
1835
|
+
#
|
1836
|
+
# @method event_noteoff(evt, channel, key)
|
1837
|
+
# @param [FluidEventT] evt
|
1838
|
+
# @param [Integer] channel
|
1839
|
+
# @param [Integer] key
|
1840
|
+
# @return [nil]
|
1841
|
+
# @scope class
|
1842
|
+
attach_function :event_noteoff, :fluid_event_noteoff, [FluidEventT, :int, :short], :void
|
1843
|
+
|
1844
|
+
# (Not documented)
|
1845
|
+
#
|
1846
|
+
# @method event_all_sounds_off(evt, channel)
|
1847
|
+
# @param [FluidEventT] evt
|
1848
|
+
# @param [Integer] channel
|
1849
|
+
# @return [nil]
|
1850
|
+
# @scope class
|
1851
|
+
attach_function :event_all_sounds_off, :fluid_event_all_sounds_off, [FluidEventT, :int], :void
|
1852
|
+
|
1853
|
+
# (Not documented)
|
1854
|
+
#
|
1855
|
+
# @method event_all_notes_off(evt, channel)
|
1856
|
+
# @param [FluidEventT] evt
|
1857
|
+
# @param [Integer] channel
|
1858
|
+
# @return [nil]
|
1859
|
+
# @scope class
|
1860
|
+
attach_function :event_all_notes_off, :fluid_event_all_notes_off, [FluidEventT, :int], :void
|
1861
|
+
|
1862
|
+
# Instrument selection
|
1863
|
+
#
|
1864
|
+
# @method event_bank_select(evt, channel, bank_num)
|
1865
|
+
# @param [FluidEventT] evt
|
1866
|
+
# @param [Integer] channel
|
1867
|
+
# @param [Integer] bank_num
|
1868
|
+
# @return [nil]
|
1869
|
+
# @scope class
|
1870
|
+
attach_function :event_bank_select, :fluid_event_bank_select, [FluidEventT, :int, :short], :void
|
1871
|
+
|
1872
|
+
# (Not documented)
|
1873
|
+
#
|
1874
|
+
# @method event_program_change(evt, channel, preset_num)
|
1875
|
+
# @param [FluidEventT] evt
|
1876
|
+
# @param [Integer] channel
|
1877
|
+
# @param [Integer] preset_num
|
1878
|
+
# @return [nil]
|
1879
|
+
# @scope class
|
1880
|
+
attach_function :event_program_change, :fluid_event_program_change, [FluidEventT, :int, :short], :void
|
1881
|
+
|
1882
|
+
# (Not documented)
|
1883
|
+
#
|
1884
|
+
# @method event_program_select(evt, channel, sfont_id, bank_num, preset_num)
|
1885
|
+
# @param [FluidEventT] evt
|
1886
|
+
# @param [Integer] channel
|
1887
|
+
# @param [Integer] sfont_id
|
1888
|
+
# @param [Integer] bank_num
|
1889
|
+
# @param [Integer] preset_num
|
1890
|
+
# @return [nil]
|
1891
|
+
# @scope class
|
1892
|
+
attach_function :event_program_select, :fluid_event_program_select, [FluidEventT, :int, :uint, :short, :short], :void
|
1893
|
+
|
1894
|
+
# Real-time generic instrument controllers
|
1895
|
+
#
|
1896
|
+
# @method event_control_change(evt, channel, control, val)
|
1897
|
+
# @param [FluidEventT] evt
|
1898
|
+
# @param [Integer] channel
|
1899
|
+
# @param [Integer] control
|
1900
|
+
# @param [Integer] val
|
1901
|
+
# @return [nil]
|
1902
|
+
# @scope class
|
1903
|
+
attach_function :event_control_change, :fluid_event_control_change, [FluidEventT, :int, :short, :short], :void
|
1904
|
+
|
1905
|
+
# Real-time instrument controllers shortcuts
|
1906
|
+
#
|
1907
|
+
# @method event_pitch_bend(evt, channel, val)
|
1908
|
+
# @param [FluidEventT] evt
|
1909
|
+
# @param [Integer] channel
|
1910
|
+
# @param [Integer] val
|
1911
|
+
# @return [nil]
|
1912
|
+
# @scope class
|
1913
|
+
attach_function :event_pitch_bend, :fluid_event_pitch_bend, [FluidEventT, :int, :int], :void
|
1914
|
+
|
1915
|
+
# (Not documented)
|
1916
|
+
#
|
1917
|
+
# @method event_pitch_wheelsens(evt, channel, val)
|
1918
|
+
# @param [FluidEventT] evt
|
1919
|
+
# @param [Integer] channel
|
1920
|
+
# @param [Integer] val
|
1921
|
+
# @return [nil]
|
1922
|
+
# @scope class
|
1923
|
+
attach_function :event_pitch_wheelsens, :fluid_event_pitch_wheelsens, [FluidEventT, :int, :short], :void
|
1924
|
+
|
1925
|
+
# (Not documented)
|
1926
|
+
#
|
1927
|
+
# @method event_modulation(evt, channel, val)
|
1928
|
+
# @param [FluidEventT] evt
|
1929
|
+
# @param [Integer] channel
|
1930
|
+
# @param [Integer] val
|
1931
|
+
# @return [nil]
|
1932
|
+
# @scope class
|
1933
|
+
attach_function :event_modulation, :fluid_event_modulation, [FluidEventT, :int, :short], :void
|
1934
|
+
|
1935
|
+
# (Not documented)
|
1936
|
+
#
|
1937
|
+
# @method event_sustain(evt, channel, val)
|
1938
|
+
# @param [FluidEventT] evt
|
1939
|
+
# @param [Integer] channel
|
1940
|
+
# @param [Integer] val
|
1941
|
+
# @return [nil]
|
1942
|
+
# @scope class
|
1943
|
+
attach_function :event_sustain, :fluid_event_sustain, [FluidEventT, :int, :short], :void
|
1944
|
+
|
1945
|
+
# (Not documented)
|
1946
|
+
#
|
1947
|
+
# @method event_pan(evt, channel, val)
|
1948
|
+
# @param [FluidEventT] evt
|
1949
|
+
# @param [Integer] channel
|
1950
|
+
# @param [Integer] val
|
1951
|
+
# @return [nil]
|
1952
|
+
# @scope class
|
1953
|
+
attach_function :event_pan, :fluid_event_pan, [FluidEventT, :int, :short], :void
|
1954
|
+
|
1955
|
+
# (Not documented)
|
1956
|
+
#
|
1957
|
+
# @method event_volume(evt, channel, val)
|
1958
|
+
# @param [FluidEventT] evt
|
1959
|
+
# @param [Integer] channel
|
1960
|
+
# @param [Integer] val
|
1961
|
+
# @return [nil]
|
1962
|
+
# @scope class
|
1963
|
+
attach_function :event_volume, :fluid_event_volume, [FluidEventT, :int, :short], :void
|
1964
|
+
|
1965
|
+
# (Not documented)
|
1966
|
+
#
|
1967
|
+
# @method event_reverb_send(evt, channel, val)
|
1968
|
+
# @param [FluidEventT] evt
|
1969
|
+
# @param [Integer] channel
|
1970
|
+
# @param [Integer] val
|
1971
|
+
# @return [nil]
|
1972
|
+
# @scope class
|
1973
|
+
attach_function :event_reverb_send, :fluid_event_reverb_send, [FluidEventT, :int, :short], :void
|
1974
|
+
|
1975
|
+
# (Not documented)
|
1976
|
+
#
|
1977
|
+
# @method event_chorus_send(evt, channel, val)
|
1978
|
+
# @param [FluidEventT] evt
|
1979
|
+
# @param [Integer] channel
|
1980
|
+
# @param [Integer] val
|
1981
|
+
# @return [nil]
|
1982
|
+
# @scope class
|
1983
|
+
attach_function :event_chorus_send, :fluid_event_chorus_send, [FluidEventT, :int, :short], :void
|
1984
|
+
|
1985
|
+
# (Not documented)
|
1986
|
+
#
|
1987
|
+
# @method event_channel_pressure(evt, channel, val)
|
1988
|
+
# @param [FluidEventT] evt
|
1989
|
+
# @param [Integer] channel
|
1990
|
+
# @param [Integer] val
|
1991
|
+
# @return [nil]
|
1992
|
+
# @scope class
|
1993
|
+
attach_function :event_channel_pressure, :fluid_event_channel_pressure, [FluidEventT, :int, :short], :void
|
1994
|
+
|
1995
|
+
# (Not documented)
|
1996
|
+
#
|
1997
|
+
# @method event_system_reset(evt)
|
1998
|
+
# @param [FluidEventT] evt
|
1999
|
+
# @return [nil]
|
2000
|
+
# @scope class
|
2001
|
+
attach_function :event_system_reset, :fluid_event_system_reset, [FluidEventT], :void
|
2002
|
+
|
2003
|
+
# Only for removing events
|
2004
|
+
#
|
2005
|
+
# @method event_any_control_change(evt, channel)
|
2006
|
+
# @param [FluidEventT] evt
|
2007
|
+
# @param [Integer] channel
|
2008
|
+
# @return [nil]
|
2009
|
+
# @scope class
|
2010
|
+
attach_function :event_any_control_change, :fluid_event_any_control_change, [FluidEventT, :int], :void
|
2011
|
+
|
2012
|
+
# Only when unregistering clients
|
2013
|
+
#
|
2014
|
+
# @method event_unregistering(evt)
|
2015
|
+
# @param [FluidEventT] evt
|
2016
|
+
# @return [nil]
|
2017
|
+
# @scope class
|
2018
|
+
attach_function :event_unregistering, :fluid_event_unregistering, [FluidEventT], :void
|
2019
|
+
|
2020
|
+
# Accessing event data
|
2021
|
+
#
|
2022
|
+
# @method event_get_type(evt)
|
2023
|
+
# @param [FluidEventT] evt
|
2024
|
+
# @return [Integer]
|
2025
|
+
# @scope class
|
2026
|
+
attach_function :event_get_type, :fluid_event_get_type, [FluidEventT], :int
|
2027
|
+
|
2028
|
+
# (Not documented)
|
2029
|
+
#
|
2030
|
+
# @method event_get_source(evt)
|
2031
|
+
# @param [FluidEventT] evt
|
2032
|
+
# @return [Integer]
|
2033
|
+
# @scope class
|
2034
|
+
attach_function :event_get_source, :fluid_event_get_source, [FluidEventT], :short
|
2035
|
+
|
2036
|
+
# (Not documented)
|
2037
|
+
#
|
2038
|
+
# @method event_get_dest(evt)
|
2039
|
+
# @param [FluidEventT] evt
|
2040
|
+
# @return [Integer]
|
2041
|
+
# @scope class
|
2042
|
+
attach_function :event_get_dest, :fluid_event_get_dest, [FluidEventT], :short
|
2043
|
+
|
2044
|
+
# (Not documented)
|
2045
|
+
#
|
2046
|
+
# @method event_get_channel(evt)
|
2047
|
+
# @param [FluidEventT] evt
|
2048
|
+
# @return [Integer]
|
2049
|
+
# @scope class
|
2050
|
+
attach_function :event_get_channel, :fluid_event_get_channel, [FluidEventT], :int
|
2051
|
+
|
2052
|
+
# (Not documented)
|
2053
|
+
#
|
2054
|
+
# @method event_get_key(evt)
|
2055
|
+
# @param [FluidEventT] evt
|
2056
|
+
# @return [Integer]
|
2057
|
+
# @scope class
|
2058
|
+
attach_function :event_get_key, :fluid_event_get_key, [FluidEventT], :short
|
2059
|
+
|
2060
|
+
# (Not documented)
|
2061
|
+
#
|
2062
|
+
# @method event_get_velocity(evt)
|
2063
|
+
# @param [FluidEventT] evt
|
2064
|
+
# @return [Integer]
|
2065
|
+
# @scope class
|
2066
|
+
attach_function :event_get_velocity, :fluid_event_get_velocity, [FluidEventT], :short
|
2067
|
+
|
2068
|
+
# (Not documented)
|
2069
|
+
#
|
2070
|
+
# @method event_get_control(evt)
|
2071
|
+
# @param [FluidEventT] evt
|
2072
|
+
# @return [Integer]
|
2073
|
+
# @scope class
|
2074
|
+
attach_function :event_get_control, :fluid_event_get_control, [FluidEventT], :short
|
2075
|
+
|
2076
|
+
# (Not documented)
|
2077
|
+
#
|
2078
|
+
# @method event_get_value(evt)
|
2079
|
+
# @param [FluidEventT] evt
|
2080
|
+
# @return [Integer]
|
2081
|
+
# @scope class
|
2082
|
+
attach_function :event_get_value, :fluid_event_get_value, [FluidEventT], :short
|
2083
|
+
|
2084
|
+
# (Not documented)
|
2085
|
+
#
|
2086
|
+
# @method event_get_program(evt)
|
2087
|
+
# @param [FluidEventT] evt
|
2088
|
+
# @return [Integer]
|
2089
|
+
# @scope class
|
2090
|
+
attach_function :event_get_program, :fluid_event_get_program, [FluidEventT], :short
|
2091
|
+
|
2092
|
+
# (Not documented)
|
2093
|
+
#
|
2094
|
+
# @method event_get_data(evt)
|
2095
|
+
# @param [FluidEventT] evt
|
2096
|
+
# @return [FFI::Pointer(*Void)]
|
2097
|
+
# @scope class
|
2098
|
+
attach_function :event_get_data, :fluid_event_get_data, [FluidEventT], :pointer
|
2099
|
+
|
2100
|
+
# (Not documented)
|
2101
|
+
#
|
2102
|
+
# @method event_get_duration(evt)
|
2103
|
+
# @param [FluidEventT] evt
|
2104
|
+
# @return [Integer]
|
2105
|
+
# @scope class
|
2106
|
+
attach_function :event_get_duration, :fluid_event_get_duration, [FluidEventT], :uint
|
2107
|
+
|
2108
|
+
# (Not documented)
|
2109
|
+
#
|
2110
|
+
# @method event_get_bank(evt)
|
2111
|
+
# @param [FluidEventT] evt
|
2112
|
+
# @return [Integer]
|
2113
|
+
# @scope class
|
2114
|
+
attach_function :event_get_bank, :fluid_event_get_bank, [FluidEventT], :short
|
2115
|
+
|
2116
|
+
# (Not documented)
|
2117
|
+
#
|
2118
|
+
# @method event_get_pitch(evt)
|
2119
|
+
# @param [FluidEventT] evt
|
2120
|
+
# @return [Integer]
|
2121
|
+
# @scope class
|
2122
|
+
attach_function :event_get_pitch, :fluid_event_get_pitch, [FluidEventT], :int
|
2123
|
+
|
2124
|
+
# (Not documented)
|
2125
|
+
#
|
2126
|
+
# @method event_get_sfont_id(evt)
|
2127
|
+
# @param [FluidEventT] evt
|
2128
|
+
# @return [Integer]
|
2129
|
+
# @scope class
|
2130
|
+
attach_function :event_get_sfont_id, :fluid_event_get_sfont_id, [FluidEventT], :uint
|
2131
|
+
|
2132
|
+
# (Not documented)
|
2133
|
+
#
|
2134
|
+
# @method new_fluid_midi_event()
|
2135
|
+
# @return [FluidMidiEventT]
|
2136
|
+
# @scope class
|
2137
|
+
attach_function :new_fluid_midi_event, :new_fluid_midi_event, [], FluidMidiEventT
|
2138
|
+
|
2139
|
+
# (Not documented)
|
2140
|
+
#
|
2141
|
+
# @method delete_fluid_midi_event(event)
|
2142
|
+
# @param [FluidMidiEventT] event
|
2143
|
+
# @return [Integer]
|
2144
|
+
# @scope class
|
2145
|
+
attach_function :delete_fluid_midi_event, :delete_fluid_midi_event, [FluidMidiEventT], :int
|
2146
|
+
|
2147
|
+
# (Not documented)
|
2148
|
+
#
|
2149
|
+
# @method midi_event_set_type(evt, type)
|
2150
|
+
# @param [FluidMidiEventT] evt
|
2151
|
+
# @param [Integer] type
|
2152
|
+
# @return [Integer]
|
2153
|
+
# @scope class
|
2154
|
+
attach_function :midi_event_set_type, :fluid_midi_event_set_type, [FluidMidiEventT, :int], :int
|
2155
|
+
|
2156
|
+
# (Not documented)
|
2157
|
+
#
|
2158
|
+
# @method midi_event_get_type(evt)
|
2159
|
+
# @param [FluidMidiEventT] evt
|
2160
|
+
# @return [Integer]
|
2161
|
+
# @scope class
|
2162
|
+
attach_function :midi_event_get_type, :fluid_midi_event_get_type, [FluidMidiEventT], :int
|
2163
|
+
|
2164
|
+
# (Not documented)
|
2165
|
+
#
|
2166
|
+
# @method midi_event_set_channel(evt, chan)
|
2167
|
+
# @param [FluidMidiEventT] evt
|
2168
|
+
# @param [Integer] chan
|
2169
|
+
# @return [Integer]
|
2170
|
+
# @scope class
|
2171
|
+
attach_function :midi_event_set_channel, :fluid_midi_event_set_channel, [FluidMidiEventT, :int], :int
|
2172
|
+
|
2173
|
+
# (Not documented)
|
2174
|
+
#
|
2175
|
+
# @method midi_event_get_channel(evt)
|
2176
|
+
# @param [FluidMidiEventT] evt
|
2177
|
+
# @return [Integer]
|
2178
|
+
# @scope class
|
2179
|
+
attach_function :midi_event_get_channel, :fluid_midi_event_get_channel, [FluidMidiEventT], :int
|
2180
|
+
|
2181
|
+
# (Not documented)
|
2182
|
+
#
|
2183
|
+
# @method midi_event_get_key(evt)
|
2184
|
+
# @param [FluidMidiEventT] evt
|
2185
|
+
# @return [Integer]
|
2186
|
+
# @scope class
|
2187
|
+
attach_function :midi_event_get_key, :fluid_midi_event_get_key, [FluidMidiEventT], :int
|
2188
|
+
|
2189
|
+
# (Not documented)
|
2190
|
+
#
|
2191
|
+
# @method midi_event_set_key(evt, key)
|
2192
|
+
# @param [FluidMidiEventT] evt
|
2193
|
+
# @param [Integer] key
|
2194
|
+
# @return [Integer]
|
2195
|
+
# @scope class
|
2196
|
+
attach_function :midi_event_set_key, :fluid_midi_event_set_key, [FluidMidiEventT, :int], :int
|
2197
|
+
|
2198
|
+
# (Not documented)
|
2199
|
+
#
|
2200
|
+
# @method midi_event_get_velocity(evt)
|
2201
|
+
# @param [FluidMidiEventT] evt
|
2202
|
+
# @return [Integer]
|
2203
|
+
# @scope class
|
2204
|
+
attach_function :midi_event_get_velocity, :fluid_midi_event_get_velocity, [FluidMidiEventT], :int
|
2205
|
+
|
2206
|
+
# (Not documented)
|
2207
|
+
#
|
2208
|
+
# @method midi_event_set_velocity(evt, vel)
|
2209
|
+
# @param [FluidMidiEventT] evt
|
2210
|
+
# @param [Integer] vel
|
2211
|
+
# @return [Integer]
|
2212
|
+
# @scope class
|
2213
|
+
attach_function :midi_event_set_velocity, :fluid_midi_event_set_velocity, [FluidMidiEventT, :int], :int
|
2214
|
+
|
2215
|
+
# (Not documented)
|
2216
|
+
#
|
2217
|
+
# @method midi_event_get_control(evt)
|
2218
|
+
# @param [FluidMidiEventT] evt
|
2219
|
+
# @return [Integer]
|
2220
|
+
# @scope class
|
2221
|
+
attach_function :midi_event_get_control, :fluid_midi_event_get_control, [FluidMidiEventT], :int
|
2222
|
+
|
2223
|
+
# (Not documented)
|
2224
|
+
#
|
2225
|
+
# @method midi_event_set_control(evt, ctrl)
|
2226
|
+
# @param [FluidMidiEventT] evt
|
2227
|
+
# @param [Integer] ctrl
|
2228
|
+
# @return [Integer]
|
2229
|
+
# @scope class
|
2230
|
+
attach_function :midi_event_set_control, :fluid_midi_event_set_control, [FluidMidiEventT, :int], :int
|
2231
|
+
|
2232
|
+
# (Not documented)
|
2233
|
+
#
|
2234
|
+
# @method midi_event_get_value(evt)
|
2235
|
+
# @param [FluidMidiEventT] evt
|
2236
|
+
# @return [Integer]
|
2237
|
+
# @scope class
|
2238
|
+
attach_function :midi_event_get_value, :fluid_midi_event_get_value, [FluidMidiEventT], :int
|
2239
|
+
|
2240
|
+
# (Not documented)
|
2241
|
+
#
|
2242
|
+
# @method midi_event_set_value(evt, val)
|
2243
|
+
# @param [FluidMidiEventT] evt
|
2244
|
+
# @param [Integer] val
|
2245
|
+
# @return [Integer]
|
2246
|
+
# @scope class
|
2247
|
+
attach_function :midi_event_set_value, :fluid_midi_event_set_value, [FluidMidiEventT, :int], :int
|
2248
|
+
|
2249
|
+
# (Not documented)
|
2250
|
+
#
|
2251
|
+
# @method midi_event_get_program(evt)
|
2252
|
+
# @param [FluidMidiEventT] evt
|
2253
|
+
# @return [Integer]
|
2254
|
+
# @scope class
|
2255
|
+
attach_function :midi_event_get_program, :fluid_midi_event_get_program, [FluidMidiEventT], :int
|
2256
|
+
|
2257
|
+
# (Not documented)
|
2258
|
+
#
|
2259
|
+
# @method midi_event_set_program(evt, val)
|
2260
|
+
# @param [FluidMidiEventT] evt
|
2261
|
+
# @param [Integer] val
|
2262
|
+
# @return [Integer]
|
2263
|
+
# @scope class
|
2264
|
+
attach_function :midi_event_set_program, :fluid_midi_event_set_program, [FluidMidiEventT, :int], :int
|
2265
|
+
|
2266
|
+
# (Not documented)
|
2267
|
+
#
|
2268
|
+
# @method midi_event_get_pitch(evt)
|
2269
|
+
# @param [FluidMidiEventT] evt
|
2270
|
+
# @return [Integer]
|
2271
|
+
# @scope class
|
2272
|
+
attach_function :midi_event_get_pitch, :fluid_midi_event_get_pitch, [FluidMidiEventT], :int
|
2273
|
+
|
2274
|
+
# (Not documented)
|
2275
|
+
#
|
2276
|
+
# @method midi_event_set_pitch(evt, val)
|
2277
|
+
# @param [FluidMidiEventT] evt
|
2278
|
+
# @param [Integer] val
|
2279
|
+
# @return [Integer]
|
2280
|
+
# @scope class
|
2281
|
+
attach_function :midi_event_set_pitch, :fluid_midi_event_set_pitch, [FluidMidiEventT, :int], :int
|
2282
|
+
|
2283
|
+
# (Not documented)
|
2284
|
+
#
|
2285
|
+
# @method midi_event_set_sysex(evt, data, size, dynamic)
|
2286
|
+
# @param [FluidMidiEventT] evt
|
2287
|
+
# @param [FFI::Pointer(*Void)] data
|
2288
|
+
# @param [Integer] size
|
2289
|
+
# @param [Integer] dynamic
|
2290
|
+
# @return [Integer]
|
2291
|
+
# @scope class
|
2292
|
+
attach_function :midi_event_set_sysex, :fluid_midi_event_set_sysex, [FluidMidiEventT, :pointer, :int, :int], :int
|
2293
|
+
|
2294
|
+
# MIDI router rule type.
|
2295
|
+
# @since 1.1.0
|
2296
|
+
#
|
2297
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:midi_router_rule_type).</em>
|
2298
|
+
#
|
2299
|
+
# === Options:
|
2300
|
+
# :note ::
|
2301
|
+
#
|
2302
|
+
# :cc ::
|
2303
|
+
# < MIDI note rule
|
2304
|
+
# :prog_change ::
|
2305
|
+
# < MIDI controller rule
|
2306
|
+
# :pitch_bend ::
|
2307
|
+
# < MIDI program change rule
|
2308
|
+
# :channel_pressure ::
|
2309
|
+
# < MIDI pitch bend rule
|
2310
|
+
# :key_pressure ::
|
2311
|
+
# < MIDI channel pressure rule
|
2312
|
+
# :count ::
|
2313
|
+
# < MIDI key pressure rule
|
2314
|
+
#
|
2315
|
+
# @method _enum_midi_router_rule_type_
|
2316
|
+
# @return [Symbol]
|
2317
|
+
# @scope class
|
2318
|
+
enum :midi_router_rule_type, [
|
2319
|
+
:note,
|
2320
|
+
:cc,
|
2321
|
+
:prog_change,
|
2322
|
+
:pitch_bend,
|
2323
|
+
:channel_pressure,
|
2324
|
+
:key_pressure,
|
2325
|
+
:count
|
2326
|
+
]
|
2327
|
+
|
2328
|
+
# Generic callback function for MIDI events.
|
2329
|
+
# @param data User defined data pointer
|
2330
|
+
# @param event The MIDI event
|
2331
|
+
# @return Should return #FLUID_OK on success, #FLUID_FAILED otherwise
|
2332
|
+
#
|
2333
|
+
# Will be used between
|
2334
|
+
# - MIDI driver and MIDI router
|
2335
|
+
# - MIDI router and synth
|
2336
|
+
# to communicate events.
|
2337
|
+
# In the not-so-far future...
|
2338
|
+
#
|
2339
|
+
# <em>This entry is only for documentation and no real method.</em>
|
2340
|
+
#
|
2341
|
+
# @method _callback_handle_midi_event_func_t_(event)
|
2342
|
+
# @param [FluidMidiEventT] event
|
2343
|
+
# @return [FFI::Pointer(*Void)]
|
2344
|
+
# @scope class
|
2345
|
+
callback :handle_midi_event_func_t, [FluidMidiEventT], :pointer
|
2346
|
+
|
2347
|
+
# (Not documented)
|
2348
|
+
#
|
2349
|
+
# @method new_fluid_midi_router(settings, handler, event_handler_data)
|
2350
|
+
# @param [FluidHashtableT] settings
|
2351
|
+
# @param [Proc(_callback_handle_midi_event_func_t_)] handler
|
2352
|
+
# @param [FFI::Pointer(*Void)] event_handler_data
|
2353
|
+
# @return [FluidMidiRouterT]
|
2354
|
+
# @scope class
|
2355
|
+
attach_function :new_fluid_midi_router, :new_fluid_midi_router, [FluidHashtableT, :handle_midi_event_func_t, :pointer], FluidMidiRouterT
|
2356
|
+
|
2357
|
+
# (Not documented)
|
2358
|
+
#
|
2359
|
+
# @method delete_fluid_midi_router(handler)
|
2360
|
+
# @param [FluidMidiRouterT] handler
|
2361
|
+
# @return [Integer]
|
2362
|
+
# @scope class
|
2363
|
+
attach_function :delete_fluid_midi_router, :delete_fluid_midi_router, [FluidMidiRouterT], :int
|
2364
|
+
|
2365
|
+
# (Not documented)
|
2366
|
+
#
|
2367
|
+
# @method midi_router_set_default_rules(router)
|
2368
|
+
# @param [FluidMidiRouterT] router
|
2369
|
+
# @return [Integer]
|
2370
|
+
# @scope class
|
2371
|
+
attach_function :midi_router_set_default_rules, :fluid_midi_router_set_default_rules, [FluidMidiRouterT], :int
|
2372
|
+
|
2373
|
+
# (Not documented)
|
2374
|
+
#
|
2375
|
+
# @method midi_router_clear_rules(router)
|
2376
|
+
# @param [FluidMidiRouterT] router
|
2377
|
+
# @return [Integer]
|
2378
|
+
# @scope class
|
2379
|
+
attach_function :midi_router_clear_rules, :fluid_midi_router_clear_rules, [FluidMidiRouterT], :int
|
2380
|
+
|
2381
|
+
# (Not documented)
|
2382
|
+
#
|
2383
|
+
# @method midi_router_add_rule(router, rule, type)
|
2384
|
+
# @param [FluidMidiRouterT] router
|
2385
|
+
# @param [FluidMidiRouterRuleT] rule
|
2386
|
+
# @param [Integer] type
|
2387
|
+
# @return [Integer]
|
2388
|
+
# @scope class
|
2389
|
+
attach_function :midi_router_add_rule, :fluid_midi_router_add_rule, [FluidMidiRouterT, FluidMidiRouterRuleT, :int], :int
|
2390
|
+
|
2391
|
+
# (Not documented)
|
2392
|
+
#
|
2393
|
+
# @method new_fluid_midi_router_rule()
|
2394
|
+
# @return [FluidMidiRouterRuleT]
|
2395
|
+
# @scope class
|
2396
|
+
attach_function :new_fluid_midi_router_rule, :new_fluid_midi_router_rule, [], FluidMidiRouterRuleT
|
2397
|
+
|
2398
|
+
# (Not documented)
|
2399
|
+
#
|
2400
|
+
# @method delete_fluid_midi_router_rule(rule)
|
2401
|
+
# @param [FluidMidiRouterRuleT] rule
|
2402
|
+
# @return [nil]
|
2403
|
+
# @scope class
|
2404
|
+
attach_function :delete_fluid_midi_router_rule, :delete_fluid_midi_router_rule, [FluidMidiRouterRuleT], :void
|
2405
|
+
|
2406
|
+
# (Not documented)
|
2407
|
+
#
|
2408
|
+
# @method midi_router_rule_set_chan(rule, min, max, mul, add)
|
2409
|
+
# @param [FluidMidiRouterRuleT] rule
|
2410
|
+
# @param [Integer] min
|
2411
|
+
# @param [Integer] max
|
2412
|
+
# @param [Float] mul
|
2413
|
+
# @param [Integer] add
|
2414
|
+
# @return [nil]
|
2415
|
+
# @scope class
|
2416
|
+
attach_function :midi_router_rule_set_chan, :fluid_midi_router_rule_set_chan, [FluidMidiRouterRuleT, :int, :int, :float, :int], :void
|
2417
|
+
|
2418
|
+
# (Not documented)
|
2419
|
+
#
|
2420
|
+
# @method midi_router_rule_set_param1(rule, min, max, mul, add)
|
2421
|
+
# @param [FluidMidiRouterRuleT] rule
|
2422
|
+
# @param [Integer] min
|
2423
|
+
# @param [Integer] max
|
2424
|
+
# @param [Float] mul
|
2425
|
+
# @param [Integer] add
|
2426
|
+
# @return [nil]
|
2427
|
+
# @scope class
|
2428
|
+
attach_function :midi_router_rule_set_param1, :fluid_midi_router_rule_set_param1, [FluidMidiRouterRuleT, :int, :int, :float, :int], :void
|
2429
|
+
|
2430
|
+
# (Not documented)
|
2431
|
+
#
|
2432
|
+
# @method midi_router_rule_set_param2(rule, min, max, mul, add)
|
2433
|
+
# @param [FluidMidiRouterRuleT] rule
|
2434
|
+
# @param [Integer] min
|
2435
|
+
# @param [Integer] max
|
2436
|
+
# @param [Float] mul
|
2437
|
+
# @param [Integer] add
|
2438
|
+
# @return [nil]
|
2439
|
+
# @scope class
|
2440
|
+
attach_function :midi_router_rule_set_param2, :fluid_midi_router_rule_set_param2, [FluidMidiRouterRuleT, :int, :int, :float, :int], :void
|
2441
|
+
|
2442
|
+
# (Not documented)
|
2443
|
+
#
|
2444
|
+
# @method midi_router_handle_midi_event(data, event)
|
2445
|
+
# @param [FFI::Pointer(*Void)] data
|
2446
|
+
# @param [FluidMidiEventT] event
|
2447
|
+
# @return [Integer]
|
2448
|
+
# @scope class
|
2449
|
+
attach_function :midi_router_handle_midi_event, :fluid_midi_router_handle_midi_event, [:pointer, FluidMidiEventT], :int
|
2450
|
+
|
2451
|
+
# (Not documented)
|
2452
|
+
#
|
2453
|
+
# @method midi_dump_prerouter(data, event)
|
2454
|
+
# @param [FFI::Pointer(*Void)] data
|
2455
|
+
# @param [FluidMidiEventT] event
|
2456
|
+
# @return [Integer]
|
2457
|
+
# @scope class
|
2458
|
+
attach_function :midi_dump_prerouter, :fluid_midi_dump_prerouter, [:pointer, FluidMidiEventT], :int
|
2459
|
+
|
2460
|
+
# (Not documented)
|
2461
|
+
#
|
2462
|
+
# @method midi_dump_postrouter(data, event)
|
2463
|
+
# @param [FFI::Pointer(*Void)] data
|
2464
|
+
# @param [FluidMidiEventT] event
|
2465
|
+
# @return [Integer]
|
2466
|
+
# @scope class
|
2467
|
+
attach_function :midi_dump_postrouter, :fluid_midi_dump_postrouter, [:pointer, FluidMidiEventT], :int
|
2468
|
+
|
2469
|
+
# (Not documented)
|
2470
|
+
#
|
2471
|
+
# @method new_fluid_midi_driver(settings, handler, event_handler_data)
|
2472
|
+
# @param [FluidHashtableT] settings
|
2473
|
+
# @param [Proc(_callback_handle_midi_event_func_t_)] handler
|
2474
|
+
# @param [FFI::Pointer(*Void)] event_handler_data
|
2475
|
+
# @return [FluidMidiDriverT]
|
2476
|
+
# @scope class
|
2477
|
+
attach_function :new_fluid_midi_driver, :new_fluid_midi_driver, [FluidHashtableT, :handle_midi_event_func_t, :pointer], FluidMidiDriverT
|
2478
|
+
|
2479
|
+
# (Not documented)
|
2480
|
+
#
|
2481
|
+
# @method delete_fluid_midi_driver(driver)
|
2482
|
+
# @param [FluidMidiDriverT] driver
|
2483
|
+
# @return [nil]
|
2484
|
+
# @scope class
|
2485
|
+
attach_function :delete_fluid_midi_driver, :delete_fluid_midi_driver, [FluidMidiDriverT], :void
|
2486
|
+
|
2487
|
+
# MIDI player status enum.
|
2488
|
+
# @since 1.1.0
|
2489
|
+
#
|
2490
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:player_status).</em>
|
2491
|
+
#
|
2492
|
+
# === Options:
|
2493
|
+
# :ready ::
|
2494
|
+
#
|
2495
|
+
# :playing ::
|
2496
|
+
# < Player is ready
|
2497
|
+
# :done ::
|
2498
|
+
# < Player is currently playing
|
2499
|
+
#
|
2500
|
+
# @method _enum_player_status_
|
2501
|
+
# @return [Symbol]
|
2502
|
+
# @scope class
|
2503
|
+
enum :player_status, [
|
2504
|
+
:ready,
|
2505
|
+
:playing,
|
2506
|
+
:done
|
2507
|
+
]
|
2508
|
+
|
2509
|
+
# < Player is finished playing
|
2510
|
+
#
|
2511
|
+
# @method new_fluid_player(synth)
|
2512
|
+
# @param [FluidSynthT] synth
|
2513
|
+
# @return [FluidPlayerT]
|
2514
|
+
# @scope class
|
2515
|
+
attach_function :new_fluid_player, :new_fluid_player, [FluidSynthT], FluidPlayerT
|
2516
|
+
|
2517
|
+
# (Not documented)
|
2518
|
+
#
|
2519
|
+
# @method delete_fluid_player(player)
|
2520
|
+
# @param [FluidPlayerT] player
|
2521
|
+
# @return [Integer]
|
2522
|
+
# @scope class
|
2523
|
+
attach_function :delete_fluid_player, :delete_fluid_player, [FluidPlayerT], :int
|
2524
|
+
|
2525
|
+
# (Not documented)
|
2526
|
+
#
|
2527
|
+
# @method player_add(player, midifile)
|
2528
|
+
# @param [FluidPlayerT] player
|
2529
|
+
# @param [String] midifile
|
2530
|
+
# @return [Integer]
|
2531
|
+
# @scope class
|
2532
|
+
attach_function :player_add, :fluid_player_add, [FluidPlayerT, :string], :int
|
2533
|
+
|
2534
|
+
# (Not documented)
|
2535
|
+
#
|
2536
|
+
# @method player_add_mem(player, buffer, len)
|
2537
|
+
# @param [FluidPlayerT] player
|
2538
|
+
# @param [FFI::Pointer(*Void)] buffer
|
2539
|
+
# @param [Integer] len
|
2540
|
+
# @return [Integer]
|
2541
|
+
# @scope class
|
2542
|
+
attach_function :player_add_mem, :fluid_player_add_mem, [FluidPlayerT, :pointer, :ulong], :int
|
2543
|
+
|
2544
|
+
# (Not documented)
|
2545
|
+
#
|
2546
|
+
# @method player_play(player)
|
2547
|
+
# @param [FluidPlayerT] player
|
2548
|
+
# @return [Integer]
|
2549
|
+
# @scope class
|
2550
|
+
attach_function :player_play, :fluid_player_play, [FluidPlayerT], :int
|
2551
|
+
|
2552
|
+
# (Not documented)
|
2553
|
+
#
|
2554
|
+
# @method player_stop(player)
|
2555
|
+
# @param [FluidPlayerT] player
|
2556
|
+
# @return [Integer]
|
2557
|
+
# @scope class
|
2558
|
+
attach_function :player_stop, :fluid_player_stop, [FluidPlayerT], :int
|
2559
|
+
|
2560
|
+
# (Not documented)
|
2561
|
+
#
|
2562
|
+
# @method player_join(player)
|
2563
|
+
# @param [FluidPlayerT] player
|
2564
|
+
# @return [Integer]
|
2565
|
+
# @scope class
|
2566
|
+
attach_function :player_join, :fluid_player_join, [FluidPlayerT], :int
|
2567
|
+
|
2568
|
+
# (Not documented)
|
2569
|
+
#
|
2570
|
+
# @method player_set_loop(player, loop)
|
2571
|
+
# @param [FluidPlayerT] player
|
2572
|
+
# @param [Integer] loop
|
2573
|
+
# @return [Integer]
|
2574
|
+
# @scope class
|
2575
|
+
attach_function :player_set_loop, :fluid_player_set_loop, [FluidPlayerT, :int], :int
|
2576
|
+
|
2577
|
+
# (Not documented)
|
2578
|
+
#
|
2579
|
+
# @method player_set_midi_tempo(player, tempo)
|
2580
|
+
# @param [FluidPlayerT] player
|
2581
|
+
# @param [Integer] tempo
|
2582
|
+
# @return [Integer]
|
2583
|
+
# @scope class
|
2584
|
+
attach_function :player_set_midi_tempo, :fluid_player_set_midi_tempo, [FluidPlayerT, :int], :int
|
2585
|
+
|
2586
|
+
# (Not documented)
|
2587
|
+
#
|
2588
|
+
# @method player_set_bpm(player, bpm)
|
2589
|
+
# @param [FluidPlayerT] player
|
2590
|
+
# @param [Integer] bpm
|
2591
|
+
# @return [Integer]
|
2592
|
+
# @scope class
|
2593
|
+
attach_function :player_set_bpm, :fluid_player_set_bpm, [FluidPlayerT, :int], :int
|
2594
|
+
|
2595
|
+
# (Not documented)
|
2596
|
+
#
|
2597
|
+
# @method player_get_status(player)
|
2598
|
+
# @param [FluidPlayerT] player
|
2599
|
+
# @return [Integer]
|
2600
|
+
# @scope class
|
2601
|
+
attach_function :player_get_status, :fluid_player_get_status, [FluidPlayerT], :int
|
2602
|
+
|
2603
|
+
# (Not documented)
|
2604
|
+
#
|
2605
|
+
# @method player_set_playback_callback(player, handler, handler_data)
|
2606
|
+
# @param [FluidPlayerT] player
|
2607
|
+
# @param [Proc(_callback_handle_midi_event_func_t_)] handler
|
2608
|
+
# @param [FFI::Pointer(*Void)] handler_data
|
2609
|
+
# @return [Integer]
|
2610
|
+
# @scope class
|
2611
|
+
attach_function :player_set_playback_callback, :fluid_player_set_playback_callback, [FluidPlayerT, :handle_midi_event_func_t, :pointer], :int
|
2612
|
+
|
2613
|
+
# (Not documented)
|
2614
|
+
#
|
2615
|
+
# <em>This entry is only for documentation and no real method.</em>
|
2616
|
+
#
|
2617
|
+
# @method _callback_event_callback_t_(event, seq, data)
|
2618
|
+
# @param [FluidEventT] event
|
2619
|
+
# @param [FluidSequencerT] seq
|
2620
|
+
# @param [FFI::Pointer(*Void)] data
|
2621
|
+
# @return [Integer]
|
2622
|
+
# @scope class
|
2623
|
+
callback :event_callback_t, [FluidEventT, FluidSequencerT, :pointer], :uint
|
2624
|
+
|
2625
|
+
# (Not documented)
|
2626
|
+
#
|
2627
|
+
# @method new_fluid_sequencer()
|
2628
|
+
# @return [FluidSequencerT]
|
2629
|
+
# @scope class
|
2630
|
+
attach_function :new_fluid_sequencer, :new_fluid_sequencer, [], FluidSequencerT
|
2631
|
+
|
2632
|
+
# (Not documented)
|
2633
|
+
#
|
2634
|
+
# @method new_fluid_sequencer2(use_system_timer)
|
2635
|
+
# @param [Integer] use_system_timer
|
2636
|
+
# @return [FluidSequencerT]
|
2637
|
+
# @scope class
|
2638
|
+
attach_function :new_fluid_sequencer2, :new_fluid_sequencer2, [:int], FluidSequencerT
|
2639
|
+
|
2640
|
+
# (Not documented)
|
2641
|
+
#
|
2642
|
+
# @method delete_fluid_sequencer(seq)
|
2643
|
+
# @param [FluidSequencerT] seq
|
2644
|
+
# @return [nil]
|
2645
|
+
# @scope class
|
2646
|
+
attach_function :delete_fluid_sequencer, :delete_fluid_sequencer, [FluidSequencerT], :void
|
2647
|
+
|
2648
|
+
# (Not documented)
|
2649
|
+
#
|
2650
|
+
# @method sequencer_get_use_system_timer(seq)
|
2651
|
+
# @param [FluidSequencerT] seq
|
2652
|
+
# @return [Integer]
|
2653
|
+
# @scope class
|
2654
|
+
attach_function :sequencer_get_use_system_timer, :fluid_sequencer_get_use_system_timer, [FluidSequencerT], :int
|
2655
|
+
|
2656
|
+
# (Not documented)
|
2657
|
+
#
|
2658
|
+
# @method sequencer_register_client(seq, name, callback, data)
|
2659
|
+
# @param [FluidSequencerT] seq
|
2660
|
+
# @param [String] name
|
2661
|
+
# @param [Proc(_callback_event_callback_t_)] callback
|
2662
|
+
# @param [FFI::Pointer(*Void)] data
|
2663
|
+
# @return [Integer]
|
2664
|
+
# @scope class
|
2665
|
+
attach_function :sequencer_register_client, :fluid_sequencer_register_client, [FluidSequencerT, :string, :event_callback_t, :pointer], :short
|
2666
|
+
|
2667
|
+
# (Not documented)
|
2668
|
+
#
|
2669
|
+
# @method sequencer_unregister_client(seq, id)
|
2670
|
+
# @param [FluidSequencerT] seq
|
2671
|
+
# @param [Integer] id
|
2672
|
+
# @return [nil]
|
2673
|
+
# @scope class
|
2674
|
+
attach_function :sequencer_unregister_client, :fluid_sequencer_unregister_client, [FluidSequencerT, :short], :void
|
2675
|
+
|
2676
|
+
# (Not documented)
|
2677
|
+
#
|
2678
|
+
# @method sequencer_count_clients(seq)
|
2679
|
+
# @param [FluidSequencerT] seq
|
2680
|
+
# @return [Integer]
|
2681
|
+
# @scope class
|
2682
|
+
attach_function :sequencer_count_clients, :fluid_sequencer_count_clients, [FluidSequencerT], :int
|
2683
|
+
|
2684
|
+
# (Not documented)
|
2685
|
+
#
|
2686
|
+
# @method sequencer_get_client_id(seq, index)
|
2687
|
+
# @param [FluidSequencerT] seq
|
2688
|
+
# @param [Integer] index
|
2689
|
+
# @return [Integer]
|
2690
|
+
# @scope class
|
2691
|
+
attach_function :sequencer_get_client_id, :fluid_sequencer_get_client_id, [FluidSequencerT, :int], :short
|
2692
|
+
|
2693
|
+
# (Not documented)
|
2694
|
+
#
|
2695
|
+
# @method sequencer_get_client_name(seq, id)
|
2696
|
+
# @param [FluidSequencerT] seq
|
2697
|
+
# @param [Integer] id
|
2698
|
+
# @return [String]
|
2699
|
+
# @scope class
|
2700
|
+
attach_function :sequencer_get_client_name, :fluid_sequencer_get_client_name, [FluidSequencerT, :int], :string
|
2701
|
+
|
2702
|
+
# (Not documented)
|
2703
|
+
#
|
2704
|
+
# @method sequencer_client_is_dest(seq, id)
|
2705
|
+
# @param [FluidSequencerT] seq
|
2706
|
+
# @param [Integer] id
|
2707
|
+
# @return [Integer]
|
2708
|
+
# @scope class
|
2709
|
+
attach_function :sequencer_client_is_dest, :fluid_sequencer_client_is_dest, [FluidSequencerT, :int], :int
|
2710
|
+
|
2711
|
+
# (Not documented)
|
2712
|
+
#
|
2713
|
+
# @method sequencer_process(seq, msec)
|
2714
|
+
# @param [FluidSequencerT] seq
|
2715
|
+
# @param [Integer] msec
|
2716
|
+
# @return [nil]
|
2717
|
+
# @scope class
|
2718
|
+
attach_function :sequencer_process, :fluid_sequencer_process, [FluidSequencerT, :uint], :void
|
2719
|
+
|
2720
|
+
# (Not documented)
|
2721
|
+
#
|
2722
|
+
# @method sequencer_send_now(seq, evt)
|
2723
|
+
# @param [FluidSequencerT] seq
|
2724
|
+
# @param [FluidEventT] evt
|
2725
|
+
# @return [nil]
|
2726
|
+
# @scope class
|
2727
|
+
attach_function :sequencer_send_now, :fluid_sequencer_send_now, [FluidSequencerT, FluidEventT], :void
|
2728
|
+
|
2729
|
+
# (Not documented)
|
2730
|
+
#
|
2731
|
+
# @method sequencer_send_at(seq, evt, time, absolute)
|
2732
|
+
# @param [FluidSequencerT] seq
|
2733
|
+
# @param [FluidEventT] evt
|
2734
|
+
# @param [Integer] time
|
2735
|
+
# @param [Integer] absolute
|
2736
|
+
# @return [Integer]
|
2737
|
+
# @scope class
|
2738
|
+
attach_function :sequencer_send_at, :fluid_sequencer_send_at, [FluidSequencerT, FluidEventT, :uint, :int], :int
|
2739
|
+
|
2740
|
+
# (Not documented)
|
2741
|
+
#
|
2742
|
+
# @method sequencer_remove_events(seq, source, dest, type)
|
2743
|
+
# @param [FluidSequencerT] seq
|
2744
|
+
# @param [Integer] source
|
2745
|
+
# @param [Integer] dest
|
2746
|
+
# @param [Integer] type
|
2747
|
+
# @return [nil]
|
2748
|
+
# @scope class
|
2749
|
+
attach_function :sequencer_remove_events, :fluid_sequencer_remove_events, [FluidSequencerT, :short, :short, :int], :void
|
2750
|
+
|
2751
|
+
# (Not documented)
|
2752
|
+
#
|
2753
|
+
# @method sequencer_get_tick(seq)
|
2754
|
+
# @param [FluidSequencerT] seq
|
2755
|
+
# @return [Integer]
|
2756
|
+
# @scope class
|
2757
|
+
attach_function :sequencer_get_tick, :fluid_sequencer_get_tick, [FluidSequencerT], :uint
|
2758
|
+
|
2759
|
+
# (Not documented)
|
2760
|
+
#
|
2761
|
+
# @method sequencer_set_time_scale(seq, scale)
|
2762
|
+
# @param [FluidSequencerT] seq
|
2763
|
+
# @param [Float] scale
|
2764
|
+
# @return [nil]
|
2765
|
+
# @scope class
|
2766
|
+
attach_function :sequencer_set_time_scale, :fluid_sequencer_set_time_scale, [FluidSequencerT, :double], :void
|
2767
|
+
|
2768
|
+
# (Not documented)
|
2769
|
+
#
|
2770
|
+
# @method sequencer_get_time_scale(seq)
|
2771
|
+
# @param [FluidSequencerT] seq
|
2772
|
+
# @return [Float]
|
2773
|
+
# @scope class
|
2774
|
+
attach_function :sequencer_get_time_scale, :fluid_sequencer_get_time_scale, [FluidSequencerT], :double
|
2775
|
+
|
2776
|
+
# (Not documented)
|
2777
|
+
#
|
2778
|
+
# @method sequencer_register_fluidsynth(seq, synth)
|
2779
|
+
# @param [FluidSequencerT] seq
|
2780
|
+
# @param [FluidSynthT] synth
|
2781
|
+
# @return [Integer]
|
2782
|
+
# @scope class
|
2783
|
+
attach_function :sequencer_register_fluidsynth, :fluid_sequencer_register_fluidsynth, [FluidSequencerT, FluidSynthT], :short
|
2784
|
+
|
2785
|
+
# (Not documented)
|
2786
|
+
#
|
2787
|
+
# @method sequencer_add_midi_event_to_buffer(data, event)
|
2788
|
+
# @param [FFI::Pointer(*Void)] data
|
2789
|
+
# @param [FluidMidiEventT] event
|
2790
|
+
# @return [Integer]
|
2791
|
+
# @scope class
|
2792
|
+
attach_function :sequencer_add_midi_event_to_buffer, :fluid_sequencer_add_midi_event_to_buffer, [:pointer, FluidMidiEventT], :int
|
2793
|
+
|
2794
|
+
# (Not documented)
|
2795
|
+
#
|
2796
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:log_level).</em>
|
2797
|
+
#
|
2798
|
+
# === Options:
|
2799
|
+
# :fluid_panic ::
|
2800
|
+
#
|
2801
|
+
# :fluid_err ::
|
2802
|
+
# < The synth can't function correctly any more
|
2803
|
+
# :fluid_warn ::
|
2804
|
+
# < Serious error occurred
|
2805
|
+
# :fluid_info ::
|
2806
|
+
# < Warning
|
2807
|
+
# :fluid_dbg ::
|
2808
|
+
# < Verbose informational messages
|
2809
|
+
# :last_log_level ::
|
2810
|
+
# < Debugging messages
|
2811
|
+
#
|
2812
|
+
# @method _enum_log_level_
|
2813
|
+
# @return [Symbol]
|
2814
|
+
# @scope class
|
2815
|
+
enum :log_level, [
|
2816
|
+
:fluid_panic,
|
2817
|
+
:fluid_err,
|
2818
|
+
:fluid_warn,
|
2819
|
+
:fluid_info,
|
2820
|
+
:fluid_dbg,
|
2821
|
+
:last_log_level
|
2822
|
+
]
|
2823
|
+
|
2824
|
+
# (Not documented)
|
2825
|
+
#
|
2826
|
+
# <em>This entry is only for documentation and no real method.</em>
|
2827
|
+
#
|
2828
|
+
# @method _callback_log_function_t_(message, data)
|
2829
|
+
# @param [String] message
|
2830
|
+
# @param [FFI::Pointer(*Void)] data
|
2831
|
+
# @return [Integer]
|
2832
|
+
# @scope class
|
2833
|
+
callback :log_function_t, [:string, :pointer], :int
|
2834
|
+
|
2835
|
+
# (Not documented)
|
2836
|
+
#
|
2837
|
+
# @method set_log_function(level, fun, data)
|
2838
|
+
# @param [Integer] level
|
2839
|
+
# @param [Proc(_callback_log_function_t_)] fun
|
2840
|
+
# @param [FFI::Pointer(*Void)] data
|
2841
|
+
# @return [Proc(_callback_log_function_t_)]
|
2842
|
+
# @scope class
|
2843
|
+
attach_function :set_log_function, :fluid_set_log_function, [:int, :log_function_t, :pointer], :log_function_t
|
2844
|
+
|
2845
|
+
# (Not documented)
|
2846
|
+
#
|
2847
|
+
# @method default_log_function(level, message, data)
|
2848
|
+
# @param [Integer] level
|
2849
|
+
# @param [String] message
|
2850
|
+
# @param [FFI::Pointer(*Void)] data
|
2851
|
+
# @return [nil]
|
2852
|
+
# @scope class
|
2853
|
+
attach_function :default_log_function, :fluid_default_log_function, [:int, :string, :pointer], :void
|
2854
|
+
|
2855
|
+
# (Not documented)
|
2856
|
+
#
|
2857
|
+
# @method log(level, fmt)
|
2858
|
+
# @param [Integer] level
|
2859
|
+
# @param [String] fmt
|
2860
|
+
# @return [Integer]
|
2861
|
+
# @scope class
|
2862
|
+
attach_function :log, :fluid_log, [:int, :string], :int
|
2863
|
+
|
2864
|
+
# (Not documented)
|
2865
|
+
#
|
2866
|
+
# @method is_soundfont(filename)
|
2867
|
+
# @param [String] filename
|
2868
|
+
# @return [Integer]
|
2869
|
+
# @scope class
|
2870
|
+
attach_function :is_soundfont, :fluid_is_soundfont, [:string], :int
|
2871
|
+
|
2872
|
+
# (Not documented)
|
2873
|
+
#
|
2874
|
+
# @method is_midifile(filename)
|
2875
|
+
# @param [String] filename
|
2876
|
+
# @return [Integer]
|
2877
|
+
# @scope class
|
2878
|
+
attach_function :is_midifile, :fluid_is_midifile, [:string], :int
|
2879
|
+
|
2880
|
+
# < SoundFont sample
|
2881
|
+
#
|
2882
|
+
# = Fields:
|
2883
|
+
# :dest ::
|
2884
|
+
# (Integer) < Destination generator to control
|
2885
|
+
# :src1 ::
|
2886
|
+
# (Integer) < Source controller 1
|
2887
|
+
# :flags1 ::
|
2888
|
+
# (Integer) < Source controller 1 flags
|
2889
|
+
# :src2 ::
|
2890
|
+
# (Integer) < Source controller 2
|
2891
|
+
# :flags2 ::
|
2892
|
+
# (Integer) < Source controller 2 flags
|
2893
|
+
# :amount ::
|
2894
|
+
# (Float) < Multiplier amount
|
2895
|
+
# :next ::
|
2896
|
+
# (FFI::Pointer(*ModT)) The 'next' field allows to link modulators into a list. It is
|
2897
|
+
# not used in fluid_voice.c, there each voice allocates memory for a
|
2898
|
+
# fixed number of modulators. Since there may be a huge number of
|
2899
|
+
# different zones, this is more efficient.
|
2900
|
+
class FluidModT < FFI::Struct
|
2901
|
+
layout :dest, :uchar,
|
2902
|
+
:src1, :uchar,
|
2903
|
+
:flags1, :uchar,
|
2904
|
+
:src2, :uchar,
|
2905
|
+
:flags2, :uchar,
|
2906
|
+
:amount, :double,
|
2907
|
+
:next, :pointer
|
2908
|
+
end
|
2909
|
+
|
2910
|
+
# (Not documented)
|
2911
|
+
#
|
2912
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:mod_flags).</em>
|
2913
|
+
#
|
2914
|
+
# === Options:
|
2915
|
+
# :positive ::
|
2916
|
+
#
|
2917
|
+
# :negative ::
|
2918
|
+
# < Mapping function is positive
|
2919
|
+
# :unipolar ::
|
2920
|
+
# < Mapping function is negative
|
2921
|
+
# :bipolar ::
|
2922
|
+
# < Mapping function is unipolar
|
2923
|
+
# :linear ::
|
2924
|
+
# < Mapping function is bipolar
|
2925
|
+
# :concave ::
|
2926
|
+
# < Linear mapping function
|
2927
|
+
# :convex ::
|
2928
|
+
# < Concave mapping function
|
2929
|
+
# :switch ::
|
2930
|
+
# < Convex mapping function
|
2931
|
+
# :gc ::
|
2932
|
+
# < Switch (on/off) mapping function
|
2933
|
+
# :cc ::
|
2934
|
+
# < General controller source type (#fluid_mod_src)
|
2935
|
+
#
|
2936
|
+
# @method _enum_mod_flags_
|
2937
|
+
# @return [Symbol]
|
2938
|
+
# @scope class
|
2939
|
+
enum :mod_flags, [
|
2940
|
+
:positive, 0,
|
2941
|
+
:negative, 1,
|
2942
|
+
:unipolar, 0,
|
2943
|
+
:bipolar, 2,
|
2944
|
+
:linear, 0,
|
2945
|
+
:concave, 4,
|
2946
|
+
:convex, 8,
|
2947
|
+
:switch, 12,
|
2948
|
+
:gc, 0,
|
2949
|
+
:cc, 16
|
2950
|
+
]
|
2951
|
+
|
2952
|
+
# (Not documented)
|
2953
|
+
#
|
2954
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:mod_src).</em>
|
2955
|
+
#
|
2956
|
+
# === Options:
|
2957
|
+
# :none ::
|
2958
|
+
#
|
2959
|
+
# :velocity ::
|
2960
|
+
# < No source controller
|
2961
|
+
# :key ::
|
2962
|
+
# < MIDI note-on velocity
|
2963
|
+
# :keypressure ::
|
2964
|
+
# < MIDI note-on note number
|
2965
|
+
# :channelpressure ::
|
2966
|
+
# < MIDI key pressure
|
2967
|
+
# :pitchwheel ::
|
2968
|
+
# < MIDI channel pressure
|
2969
|
+
# :pitchwheelsens ::
|
2970
|
+
# < Pitch wheel
|
2971
|
+
#
|
2972
|
+
# @method _enum_mod_src_
|
2973
|
+
# @return [Symbol]
|
2974
|
+
# @scope class
|
2975
|
+
enum :mod_src, [
|
2976
|
+
:none, 0,
|
2977
|
+
:velocity, 2,
|
2978
|
+
:key, 3,
|
2979
|
+
:keypressure, 10,
|
2980
|
+
:channelpressure, 13,
|
2981
|
+
:pitchwheel, 14,
|
2982
|
+
:pitchwheelsens, 16
|
2983
|
+
]
|
2984
|
+
|
2985
|
+
# (Not documented)
|
2986
|
+
#
|
2987
|
+
# @method mod_new()
|
2988
|
+
# @return [FluidModT]
|
2989
|
+
# @scope class
|
2990
|
+
attach_function :mod_new, :fluid_mod_new, [], FluidModT
|
2991
|
+
|
2992
|
+
# (Not documented)
|
2993
|
+
#
|
2994
|
+
# @method mod_delete(mod)
|
2995
|
+
# @param [FluidModT] mod
|
2996
|
+
# @return [nil]
|
2997
|
+
# @scope class
|
2998
|
+
attach_function :mod_delete, :fluid_mod_delete, [FluidModT], :void
|
2999
|
+
|
3000
|
+
# (Not documented)
|
3001
|
+
#
|
3002
|
+
# @method mod_set_source1(mod, src, flags)
|
3003
|
+
# @param [FluidModT] mod
|
3004
|
+
# @param [Integer] src
|
3005
|
+
# @param [Integer] flags
|
3006
|
+
# @return [nil]
|
3007
|
+
# @scope class
|
3008
|
+
attach_function :mod_set_source1, :fluid_mod_set_source1, [FluidModT, :int, :int], :void
|
3009
|
+
|
3010
|
+
# (Not documented)
|
3011
|
+
#
|
3012
|
+
# @method mod_set_source2(mod, src, flags)
|
3013
|
+
# @param [FluidModT] mod
|
3014
|
+
# @param [Integer] src
|
3015
|
+
# @param [Integer] flags
|
3016
|
+
# @return [nil]
|
3017
|
+
# @scope class
|
3018
|
+
attach_function :mod_set_source2, :fluid_mod_set_source2, [FluidModT, :int, :int], :void
|
3019
|
+
|
3020
|
+
# (Not documented)
|
3021
|
+
#
|
3022
|
+
# @method mod_set_dest(mod, dst)
|
3023
|
+
# @param [FluidModT] mod
|
3024
|
+
# @param [Integer] dst
|
3025
|
+
# @return [nil]
|
3026
|
+
# @scope class
|
3027
|
+
attach_function :mod_set_dest, :fluid_mod_set_dest, [FluidModT, :int], :void
|
3028
|
+
|
3029
|
+
# (Not documented)
|
3030
|
+
#
|
3031
|
+
# @method mod_set_amount(mod, amount)
|
3032
|
+
# @param [FluidModT] mod
|
3033
|
+
# @param [Float] amount
|
3034
|
+
# @return [nil]
|
3035
|
+
# @scope class
|
3036
|
+
attach_function :mod_set_amount, :fluid_mod_set_amount, [FluidModT, :double], :void
|
3037
|
+
|
3038
|
+
# (Not documented)
|
3039
|
+
#
|
3040
|
+
# @method mod_get_source1(mod)
|
3041
|
+
# @param [FluidModT] mod
|
3042
|
+
# @return [Integer]
|
3043
|
+
# @scope class
|
3044
|
+
attach_function :mod_get_source1, :fluid_mod_get_source1, [FluidModT], :int
|
3045
|
+
|
3046
|
+
# (Not documented)
|
3047
|
+
#
|
3048
|
+
# @method mod_get_flags1(mod)
|
3049
|
+
# @param [FluidModT] mod
|
3050
|
+
# @return [Integer]
|
3051
|
+
# @scope class
|
3052
|
+
attach_function :mod_get_flags1, :fluid_mod_get_flags1, [FluidModT], :int
|
3053
|
+
|
3054
|
+
# (Not documented)
|
3055
|
+
#
|
3056
|
+
# @method mod_get_source2(mod)
|
3057
|
+
# @param [FluidModT] mod
|
3058
|
+
# @return [Integer]
|
3059
|
+
# @scope class
|
3060
|
+
attach_function :mod_get_source2, :fluid_mod_get_source2, [FluidModT], :int
|
3061
|
+
|
3062
|
+
# (Not documented)
|
3063
|
+
#
|
3064
|
+
# @method mod_get_flags2(mod)
|
3065
|
+
# @param [FluidModT] mod
|
3066
|
+
# @return [Integer]
|
3067
|
+
# @scope class
|
3068
|
+
attach_function :mod_get_flags2, :fluid_mod_get_flags2, [FluidModT], :int
|
3069
|
+
|
3070
|
+
# (Not documented)
|
3071
|
+
#
|
3072
|
+
# @method mod_get_dest(mod)
|
3073
|
+
# @param [FluidModT] mod
|
3074
|
+
# @return [Integer]
|
3075
|
+
# @scope class
|
3076
|
+
attach_function :mod_get_dest, :fluid_mod_get_dest, [FluidModT], :int
|
3077
|
+
|
3078
|
+
# (Not documented)
|
3079
|
+
#
|
3080
|
+
# @method mod_get_amount(mod)
|
3081
|
+
# @param [FluidModT] mod
|
3082
|
+
# @return [Float]
|
3083
|
+
# @scope class
|
3084
|
+
attach_function :mod_get_amount, :fluid_mod_get_amount, [FluidModT], :double
|
3085
|
+
|
3086
|
+
# (Not documented)
|
3087
|
+
#
|
3088
|
+
# @method mod_test_identity(mod1, mod2)
|
3089
|
+
# @param [FluidModT] mod1
|
3090
|
+
# @param [FluidModT] mod2
|
3091
|
+
# @return [Integer]
|
3092
|
+
# @scope class
|
3093
|
+
attach_function :mod_test_identity, :fluid_mod_test_identity, [FluidModT, FluidModT], :int
|
3094
|
+
|
3095
|
+
# (Not documented)
|
3096
|
+
#
|
3097
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:gen_type).</em>
|
3098
|
+
#
|
3099
|
+
# === Options:
|
3100
|
+
# :startaddrofs ::
|
3101
|
+
#
|
3102
|
+
# :endaddrofs ::
|
3103
|
+
# < Sample start address offset (0-32767)
|
3104
|
+
# :startloopaddrofs ::
|
3105
|
+
# < Sample end address offset (-32767-0)
|
3106
|
+
# :endloopaddrofs ::
|
3107
|
+
# < Sample loop start address offset (-32767-32767)
|
3108
|
+
# :startaddrcoarseofs ::
|
3109
|
+
# < Sample loop end address offset (-32767-32767)
|
3110
|
+
# :modlfotopitch ::
|
3111
|
+
# < Sample start address coarse offset (X 32768)
|
3112
|
+
# :viblfotopitch ::
|
3113
|
+
# < Modulation LFO to pitch
|
3114
|
+
# :modenvtopitch ::
|
3115
|
+
# < Vibrato LFO to pitch
|
3116
|
+
# :filterfc ::
|
3117
|
+
# < Modulation envelope to pitch
|
3118
|
+
# :filterq ::
|
3119
|
+
# < Filter cutoff
|
3120
|
+
# :modlfotofilterfc ::
|
3121
|
+
# < Filter Q
|
3122
|
+
# :modenvtofilterfc ::
|
3123
|
+
# < Modulation LFO to filter cutoff
|
3124
|
+
# :endaddrcoarseofs ::
|
3125
|
+
# < Modulation envelope to filter cutoff
|
3126
|
+
# :modlfotovol ::
|
3127
|
+
# < Sample end address coarse offset (X 32768)
|
3128
|
+
# :unused1 ::
|
3129
|
+
# < Modulation LFO to volume
|
3130
|
+
# :chorussend ::
|
3131
|
+
# < Unused
|
3132
|
+
# :reverbsend ::
|
3133
|
+
# < Chorus send amount
|
3134
|
+
# :pan ::
|
3135
|
+
# < Reverb send amount
|
3136
|
+
# :unused2 ::
|
3137
|
+
# < Stereo panning
|
3138
|
+
# :unused3 ::
|
3139
|
+
# < Unused
|
3140
|
+
# :unused4 ::
|
3141
|
+
# < Unused
|
3142
|
+
# :modlfodelay ::
|
3143
|
+
# < Unused
|
3144
|
+
# :modlfofreq ::
|
3145
|
+
# < Modulation LFO delay
|
3146
|
+
# :viblfodelay ::
|
3147
|
+
# < Modulation LFO frequency
|
3148
|
+
# :viblfofreq ::
|
3149
|
+
# < Vibrato LFO delay
|
3150
|
+
# :modenvdelay ::
|
3151
|
+
# < Vibrato LFO frequency
|
3152
|
+
# :modenvattack ::
|
3153
|
+
# < Modulation envelope delay
|
3154
|
+
# :modenvhold ::
|
3155
|
+
# < Modulation envelope attack
|
3156
|
+
# :modenvdecay ::
|
3157
|
+
# < Modulation envelope hold
|
3158
|
+
# :modenvsustain ::
|
3159
|
+
# < Modulation envelope decay
|
3160
|
+
# :modenvrelease ::
|
3161
|
+
# < Modulation envelope sustain
|
3162
|
+
# :keytomodenvhold ::
|
3163
|
+
# < Modulation envelope release
|
3164
|
+
# :keytomodenvdecay ::
|
3165
|
+
# < Key to modulation envelope hold
|
3166
|
+
# :volenvdelay ::
|
3167
|
+
# < Key to modulation envelope decay
|
3168
|
+
# :volenvattack ::
|
3169
|
+
# < Volume envelope delay
|
3170
|
+
# :volenvhold ::
|
3171
|
+
# < Volume envelope attack
|
3172
|
+
# :volenvdecay ::
|
3173
|
+
# < Volume envelope hold
|
3174
|
+
# :volenvsustain ::
|
3175
|
+
# < Volume envelope decay
|
3176
|
+
# :volenvrelease ::
|
3177
|
+
# < Volume envelope sustain
|
3178
|
+
# :keytovolenvhold ::
|
3179
|
+
# < Volume envelope release
|
3180
|
+
# :keytovolenvdecay ::
|
3181
|
+
# < Key to volume envelope hold
|
3182
|
+
# :instrument ::
|
3183
|
+
# < Key to volume envelope decay
|
3184
|
+
# :reserved1 ::
|
3185
|
+
# < Instrument ID (shouldn't be set by user)
|
3186
|
+
# :keyrange ::
|
3187
|
+
# < Reserved
|
3188
|
+
# :velrange ::
|
3189
|
+
# < MIDI note range
|
3190
|
+
# :startloopaddrcoarseofs ::
|
3191
|
+
# < MIDI velocity range
|
3192
|
+
# :keynum ::
|
3193
|
+
# < Sample start loop address coarse offset (X 32768)
|
3194
|
+
# :velocity ::
|
3195
|
+
# < Fixed MIDI note number
|
3196
|
+
# :attenuation ::
|
3197
|
+
# < Fixed MIDI velocity value
|
3198
|
+
# :reserved2 ::
|
3199
|
+
# < Initial volume attenuation
|
3200
|
+
# :endloopaddrcoarseofs ::
|
3201
|
+
# < Reserved
|
3202
|
+
# :coarsetune ::
|
3203
|
+
# < Sample end loop address coarse offset (X 32768)
|
3204
|
+
# :finetune ::
|
3205
|
+
# < Coarse tuning
|
3206
|
+
# :sampleid ::
|
3207
|
+
# < Fine tuning
|
3208
|
+
# :samplemode ::
|
3209
|
+
# < Sample ID (shouldn't be set by user)
|
3210
|
+
# :reserved3 ::
|
3211
|
+
# < Sample mode flags
|
3212
|
+
# :scaletune ::
|
3213
|
+
# < Reserved
|
3214
|
+
# :exclusiveclass ::
|
3215
|
+
# < Scale tuning
|
3216
|
+
# :overriderootkey ::
|
3217
|
+
# < Exclusive class number
|
3218
|
+
# :pitch ::
|
3219
|
+
# the initial pitch is not a "standard" generator. It is not
|
3220
|
+
# mentioned in the list of generator in the SF2 specifications. It
|
3221
|
+
# is used, however, as the destination for the default pitch wheel
|
3222
|
+
# modulator.
|
3223
|
+
# :last ::
|
3224
|
+
# < Pitch (NOTE: Not a real SoundFont generator)
|
3225
|
+
#
|
3226
|
+
# @method _enum_gen_type_
|
3227
|
+
# @return [Symbol]
|
3228
|
+
# @scope class
|
3229
|
+
enum :gen_type, [
|
3230
|
+
:startaddrofs,
|
3231
|
+
:endaddrofs,
|
3232
|
+
:startloopaddrofs,
|
3233
|
+
:endloopaddrofs,
|
3234
|
+
:startaddrcoarseofs,
|
3235
|
+
:modlfotopitch,
|
3236
|
+
:viblfotopitch,
|
3237
|
+
:modenvtopitch,
|
3238
|
+
:filterfc,
|
3239
|
+
:filterq,
|
3240
|
+
:modlfotofilterfc,
|
3241
|
+
:modenvtofilterfc,
|
3242
|
+
:endaddrcoarseofs,
|
3243
|
+
:modlfotovol,
|
3244
|
+
:unused1,
|
3245
|
+
:chorussend,
|
3246
|
+
:reverbsend,
|
3247
|
+
:pan,
|
3248
|
+
:unused2,
|
3249
|
+
:unused3,
|
3250
|
+
:unused4,
|
3251
|
+
:modlfodelay,
|
3252
|
+
:modlfofreq,
|
3253
|
+
:viblfodelay,
|
3254
|
+
:viblfofreq,
|
3255
|
+
:modenvdelay,
|
3256
|
+
:modenvattack,
|
3257
|
+
:modenvhold,
|
3258
|
+
:modenvdecay,
|
3259
|
+
:modenvsustain,
|
3260
|
+
:modenvrelease,
|
3261
|
+
:keytomodenvhold,
|
3262
|
+
:keytomodenvdecay,
|
3263
|
+
:volenvdelay,
|
3264
|
+
:volenvattack,
|
3265
|
+
:volenvhold,
|
3266
|
+
:volenvdecay,
|
3267
|
+
:volenvsustain,
|
3268
|
+
:volenvrelease,
|
3269
|
+
:keytovolenvhold,
|
3270
|
+
:keytovolenvdecay,
|
3271
|
+
:instrument,
|
3272
|
+
:reserved1,
|
3273
|
+
:keyrange,
|
3274
|
+
:velrange,
|
3275
|
+
:startloopaddrcoarseofs,
|
3276
|
+
:keynum,
|
3277
|
+
:velocity,
|
3278
|
+
:attenuation,
|
3279
|
+
:reserved2,
|
3280
|
+
:endloopaddrcoarseofs,
|
3281
|
+
:coarsetune,
|
3282
|
+
:finetune,
|
3283
|
+
:sampleid,
|
3284
|
+
:samplemode,
|
3285
|
+
:reserved3,
|
3286
|
+
:scaletune,
|
3287
|
+
:exclusiveclass,
|
3288
|
+
:overriderootkey,
|
3289
|
+
:pitch,
|
3290
|
+
:last
|
3291
|
+
]
|
3292
|
+
|
3293
|
+
# (Not documented)
|
3294
|
+
#
|
3295
|
+
# = Fields:
|
3296
|
+
# :flags ::
|
3297
|
+
# (Integer) < Is the generator set or not (#fluid_gen_flags)
|
3298
|
+
# :val ::
|
3299
|
+
# (Float) < The nominal value
|
3300
|
+
# :mod ::
|
3301
|
+
# (Float) < Change by modulators
|
3302
|
+
# :nrpn ::
|
3303
|
+
# (Float) < Change by NRPN messages
|
3304
|
+
class FluidGenT < FFI::Struct
|
3305
|
+
layout :flags, :uchar,
|
3306
|
+
:val, :double,
|
3307
|
+
:mod, :double,
|
3308
|
+
:nrpn, :double
|
3309
|
+
end
|
3310
|
+
|
3311
|
+
# (Not documented)
|
3312
|
+
#
|
3313
|
+
# = Fields:
|
3314
|
+
# :flags ::
|
3315
|
+
# (Integer) < Is the generator set or not (#fluid_gen_flags)
|
3316
|
+
# :val ::
|
3317
|
+
# (Float) < The nominal value
|
3318
|
+
# :mod ::
|
3319
|
+
# (Float) < Change by modulators
|
3320
|
+
# :nrpn ::
|
3321
|
+
# (Float) < Change by NRPN messages
|
3322
|
+
class GenT < FFI::Struct
|
3323
|
+
layout :flags, :uchar,
|
3324
|
+
:val, :double,
|
3325
|
+
:mod, :double,
|
3326
|
+
:nrpn, :double
|
3327
|
+
end
|
3328
|
+
|
3329
|
+
# Enum value for 'flags' field of #fluid_gen_t (not really flags).
|
3330
|
+
#
|
3331
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:gen_flags).</em>
|
3332
|
+
#
|
3333
|
+
# === Options:
|
3334
|
+
# :unused ::
|
3335
|
+
#
|
3336
|
+
# :set ::
|
3337
|
+
# < Generator value is not set
|
3338
|
+
# :abs_nrpn ::
|
3339
|
+
# < Generator value is set
|
3340
|
+
#
|
3341
|
+
# @method _enum_gen_flags_
|
3342
|
+
# @return [Symbol]
|
3343
|
+
# @scope class
|
3344
|
+
enum :gen_flags, [
|
3345
|
+
:unused,
|
3346
|
+
:set,
|
3347
|
+
:abs_nrpn
|
3348
|
+
]
|
3349
|
+
|
3350
|
+
# < Generator is an absolute value
|
3351
|
+
#
|
3352
|
+
# @method gen_set_default_values(gen)
|
3353
|
+
# @param [FluidGenT] gen
|
3354
|
+
# @return [Integer]
|
3355
|
+
# @scope class
|
3356
|
+
attach_function :gen_set_default_values, :fluid_gen_set_default_values, [FluidGenT], :int
|
3357
|
+
|
3358
|
+
# (Not documented)
|
3359
|
+
#
|
3360
|
+
# @method voice_update_param(voice, gen)
|
3361
|
+
# @param [FluidVoiceT] voice
|
3362
|
+
# @param [Integer] gen
|
3363
|
+
# @return [nil]
|
3364
|
+
# @scope class
|
3365
|
+
attach_function :voice_update_param, :fluid_voice_update_param, [FluidVoiceT, :int], :void
|
3366
|
+
|
3367
|
+
# < For default modulators only, no need to check for duplicates
|
3368
|
+
#
|
3369
|
+
# @method voice_add_mod(voice, mod, mode)
|
3370
|
+
# @param [FluidVoiceT] voice
|
3371
|
+
# @param [FluidModT] mod
|
3372
|
+
# @param [Integer] mode
|
3373
|
+
# @return [nil]
|
3374
|
+
# @scope class
|
3375
|
+
attach_function :voice_add_mod, :fluid_voice_add_mod, [FluidVoiceT, FluidModT, :int], :void
|
3376
|
+
|
3377
|
+
# (Not documented)
|
3378
|
+
#
|
3379
|
+
# @method voice_gen_set(voice, gen, val)
|
3380
|
+
# @param [FluidVoiceT] voice
|
3381
|
+
# @param [Integer] gen
|
3382
|
+
# @param [Float] val
|
3383
|
+
# @return [nil]
|
3384
|
+
# @scope class
|
3385
|
+
attach_function :voice_gen_set, :fluid_voice_gen_set, [FluidVoiceT, :int, :float], :void
|
3386
|
+
|
3387
|
+
# (Not documented)
|
3388
|
+
#
|
3389
|
+
# @method voice_gen_get(voice, gen)
|
3390
|
+
# @param [FluidVoiceT] voice
|
3391
|
+
# @param [Integer] gen
|
3392
|
+
# @return [Float]
|
3393
|
+
# @scope class
|
3394
|
+
attach_function :voice_gen_get, :fluid_voice_gen_get, [FluidVoiceT, :int], :float
|
3395
|
+
|
3396
|
+
# (Not documented)
|
3397
|
+
#
|
3398
|
+
# @method voice_gen_incr(voice, gen, val)
|
3399
|
+
# @param [FluidVoiceT] voice
|
3400
|
+
# @param [Integer] gen
|
3401
|
+
# @param [Float] val
|
3402
|
+
# @return [nil]
|
3403
|
+
# @scope class
|
3404
|
+
attach_function :voice_gen_incr, :fluid_voice_gen_incr, [FluidVoiceT, :int, :float], :void
|
3405
|
+
|
3406
|
+
# (Not documented)
|
3407
|
+
#
|
3408
|
+
# @method voice_get_id(voice)
|
3409
|
+
# @param [FluidVoiceT] voice
|
3410
|
+
# @return [Integer]
|
3411
|
+
# @scope class
|
3412
|
+
attach_function :voice_get_id, :fluid_voice_get_id, [FluidVoiceT], :uint
|
3413
|
+
|
3414
|
+
# (Not documented)
|
3415
|
+
#
|
3416
|
+
# @method voice_is_playing(voice)
|
3417
|
+
# @param [FluidVoiceT] voice
|
3418
|
+
# @return [Integer]
|
3419
|
+
# @scope class
|
3420
|
+
attach_function :voice_is_playing, :fluid_voice_is_playing, [FluidVoiceT], :int
|
3421
|
+
|
3422
|
+
# (Not documented)
|
3423
|
+
#
|
3424
|
+
# @method voice_optimize_sample(s)
|
3425
|
+
# @param [FluidSampleT] s
|
3426
|
+
# @return [Integer]
|
3427
|
+
# @scope class
|
3428
|
+
attach_function :voice_optimize_sample, :fluid_voice_optimize_sample, [FluidSampleT], :int
|
3429
|
+
|
3430
|
+
# (Not documented)
|
3431
|
+
#
|
3432
|
+
# @method version(major, minor, micro)
|
3433
|
+
# @param [FFI::Pointer(*Int)] major
|
3434
|
+
# @param [FFI::Pointer(*Int)] minor
|
3435
|
+
# @param [FFI::Pointer(*Int)] micro
|
3436
|
+
# @return [nil]
|
3437
|
+
# @scope class
|
3438
|
+
attach_function :version, :fluid_version, [:pointer, :pointer, :pointer], :void
|
3439
|
+
|
3440
|
+
# (Not documented)
|
3441
|
+
#
|
3442
|
+
# @method version_str()
|
3443
|
+
# @return [String]
|
3444
|
+
# @scope class
|
3445
|
+
attach_function :version_str, :fluid_version_str, [], :string
|
3446
|
+
|
3447
|
+
end
|