fiddle_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.
- checksums.yaml +7 -0
- data/.standard.yml +3 -0
- data/CHANGELOG.md +5 -0
- data/LICENSE.txt +21 -0
- data/README.md +138 -0
- data/Rakefile +14 -0
- data/examples/enum.rb +30 -0
- data/examples/example.sf2 +0 -0
- data/examples/ffs_arpeggio.rb +252 -0
- data/examples/ffs_example.rb +47 -0
- data/examples/ffs_fx.rb +200 -0
- data/examples/ffs_metronome.rb +260 -0
- data/examples/ffs_midiplay.rb +122 -0
- data/examples/ffs_simple.rb +45 -0
- data/examples/ffs_test1.rb +41 -0
- data/examples/ffs_test3.rb +50 -0
- data/examples/fiddle-pointer.rb +18 -0
- data/examples/presets-each.rb +66 -0
- data/examples/presets-full_scan.rb +59 -0
- data/examples/settings-each.rb +106 -0
- data/exe/ffs_midiplay.rb +122 -0
- data/lib/fiddle_fluidsynth/audio_output/driver.rb +104 -0
- data/lib/fiddle_fluidsynth/audio_output/file_renderer.rb +84 -0
- data/lib/fiddle_fluidsynth/audio_output.rb +7 -0
- data/lib/fiddle_fluidsynth/command_interface/command_interface.rb +90 -0
- data/lib/fiddle_fluidsynth/command_interface/handler.rb +95 -0
- data/lib/fiddle_fluidsynth/command_interface/server.rb +79 -0
- data/lib/fiddle_fluidsynth/command_interface/shell.rb +76 -0
- data/lib/fiddle_fluidsynth/command_interface.rb +9 -0
- data/lib/fiddle_fluidsynth/core_ext/fiddle.rb +142 -0
- data/lib/fiddle_fluidsynth/core_ext/module.rb +123 -0
- data/lib/fiddle_fluidsynth/fiddle_fluidsynth.rb +172 -0
- data/lib/fiddle_fluidsynth/logging/logging.rb +82 -0
- data/lib/fiddle_fluidsynth/logging.rb +6 -0
- data/lib/fiddle_fluidsynth/midi_input/driver.rb +77 -0
- data/lib/fiddle_fluidsynth/midi_input/events.rb +255 -0
- data/lib/fiddle_fluidsynth/midi_input/midi_input.rb +70 -0
- data/lib/fiddle_fluidsynth/midi_input/player.rb +289 -0
- data/lib/fiddle_fluidsynth/midi_input/router.rb +225 -0
- data/lib/fiddle_fluidsynth/midi_input.rb +11 -0
- data/lib/fiddle_fluidsynth/misc/misc.rb +162 -0
- data/lib/fiddle_fluidsynth/misc.rb +6 -0
- data/lib/fiddle_fluidsynth/sequencer/events.rb +679 -0
- data/lib/fiddle_fluidsynth/sequencer/sequencer.rb +384 -0
- data/lib/fiddle_fluidsynth/sequencer.rb +7 -0
- data/lib/fiddle_fluidsynth/settings/settings.rb +465 -0
- data/lib/fiddle_fluidsynth/settings.rb +6 -0
- data/lib/fiddle_fluidsynth/soundfonts/generators.rb +128 -0
- data/lib/fiddle_fluidsynth/soundfonts/loader.rb +506 -0
- data/lib/fiddle_fluidsynth/soundfonts/modulators.rb +247 -0
- data/lib/fiddle_fluidsynth/soundfonts/soundfonts.rb +64 -0
- data/lib/fiddle_fluidsynth/soundfonts/voices.rb +178 -0
- data/lib/fiddle_fluidsynth/soundfonts.rb +11 -0
- data/lib/fiddle_fluidsynth/synth/audio_rendering.rb +100 -0
- data/lib/fiddle_fluidsynth/synth/effect/chorus.rb +269 -0
- data/lib/fiddle_fluidsynth/synth/effect/iir_filter.rb +81 -0
- data/lib/fiddle_fluidsynth/synth/effect/ladspa.rb +172 -0
- data/lib/fiddle_fluidsynth/synth/effect/reverb.rb +207 -0
- data/lib/fiddle_fluidsynth/synth/effect.rb +10 -0
- data/lib/fiddle_fluidsynth/synth/midi/messages.rb +292 -0
- data/lib/fiddle_fluidsynth/synth/midi/setup.rb +235 -0
- data/lib/fiddle_fluidsynth/synth/midi/tuning.rb +128 -0
- data/lib/fiddle_fluidsynth/synth/midi.rb +9 -0
- data/lib/fiddle_fluidsynth/synth/params/params.rb +200 -0
- data/lib/fiddle_fluidsynth/synth/params.rb +8 -0
- data/lib/fiddle_fluidsynth/synth/soundfont_management.rb +210 -0
- data/lib/fiddle_fluidsynth/synth/synth.rb +114 -0
- data/lib/fiddle_fluidsynth/synth/voice_control.rb +94 -0
- data/lib/fiddle_fluidsynth/synth.rb +18 -0
- data/lib/fiddle_fluidsynth/types/types.rb +131 -0
- data/lib/fiddle_fluidsynth/types.rb +10 -0
- data/lib/fiddle_fluidsynth/util/callback.rb +585 -0
- data/lib/fiddle_fluidsynth/util/interface/settings.rb +689 -0
- data/lib/fiddle_fluidsynth/util/interface/soundfont.rb +115 -0
- data/lib/fiddle_fluidsynth/util/interface/soundfont_preset.rb +69 -0
- data/lib/fiddle_fluidsynth/util/interface/soundfont_sample.rb +61 -0
- data/lib/fiddle_fluidsynth/util/interface.rb +11 -0
- data/lib/fiddle_fluidsynth/util/module_hier.rb +403 -0
- data/lib/fiddle_fluidsynth/util/util.rb +467 -0
- data/lib/fiddle_fluidsynth/util-after.rb +12 -0
- data/lib/fiddle_fluidsynth/util.rb +37 -0
- data/lib/fiddle_fluidsynth/version.rb +10 -0
- data/lib/fiddle_fluidsynth.rb +57 -0
- data/sig/fiddle_fluidsynth.rbs +4 -0
- metadata +128 -0
@@ -0,0 +1,465 @@
|
|
1
|
+
#
|
2
|
+
# filename: settings/settings.rb
|
3
|
+
#
|
4
|
+
|
5
|
+
|
6
|
+
# References
|
7
|
+
# - fluidsynth.org, [API Reference](https://www.fluidsynth.org/api/modules.html)
|
8
|
+
#
|
9
|
+
class FiddleFluidSynth
|
10
|
+
|
11
|
+
# Functions for settings management.
|
12
|
+
# ==== References
|
13
|
+
# - API Reference, [Settings](https://www.fluidsynth.org/api/group__settings.html)
|
14
|
+
# - [Settings Reference](https://www.fluidsynth.org/api/fluidsettings.html)
|
15
|
+
# - [library fiddle](https://docs.ruby-lang.org/ja/latest/library/fiddle.html)
|
16
|
+
#
|
17
|
+
|
18
|
+
|
19
|
+
# Constants.
|
20
|
+
#
|
21
|
+
#
|
22
|
+
|
23
|
+
# Hint FLUID_HINT_BOUNDED_ABOVE indicates that the UpperBound field of
|
24
|
+
# the FLUID_PortRangeHint should be considered meaningful.
|
25
|
+
FLUID_HINT_BOUNDED_ABOVE = 0x2
|
26
|
+
|
27
|
+
# Hint FLUID_HINT_BOUNDED_BELOW indicates that the LowerBound field of
|
28
|
+
# the FLUID_PortRangeHint should be considered meaningful.
|
29
|
+
FLUID_HINT_BOUNDED_BELOW = 0x1
|
30
|
+
|
31
|
+
# Setting is a list of string options.
|
32
|
+
FLUID_HINT_OPTIONLIST = 0x02
|
33
|
+
|
34
|
+
# Hint FLUID_HINT_TOGGLED indicates that the data item should be
|
35
|
+
# considered a Boolean toggle.
|
36
|
+
FLUID_HINT_TOGGLED = 0x4
|
37
|
+
|
38
|
+
|
39
|
+
# Enumerations.
|
40
|
+
#
|
41
|
+
#
|
42
|
+
|
43
|
+
### Settings type.
|
44
|
+
enum(
|
45
|
+
:fluid_types_enum,
|
46
|
+
FLUID_NO_TYPE: -1,
|
47
|
+
FLUID_NUM_TYPE: nil,
|
48
|
+
FLUID_INT_TYPE: nil,
|
49
|
+
FLUID_STR_TYPE: nil,
|
50
|
+
FLUID_SET_TYPE: nil,
|
51
|
+
)
|
52
|
+
|
53
|
+
#
|
54
|
+
module C
|
55
|
+
|
56
|
+
# Typedefs.
|
57
|
+
#
|
58
|
+
#
|
59
|
+
|
60
|
+
# Callback function type used with fluid_settings_foreach_option()
|
61
|
+
# ==== See Also
|
62
|
+
# - util/util.rb: define_handler_ab()
|
63
|
+
#
|
64
|
+
#typedef void(*fluid_settings_foreach_option_t) (void *data, const char *name, const char *option)
|
65
|
+
typealias 'fluid_settings_foreach_option_t', 'void*'
|
66
|
+
|
67
|
+
# Callback function type used with fluid_settings_foreach()
|
68
|
+
#typedef void(*fluid_settings_foreach_t) (void *data, const char *name, int type)
|
69
|
+
typealias 'fluid_settings_foreach_t', 'void*'
|
70
|
+
|
71
|
+
|
72
|
+
# Lifecycle Functions (MIDI Sequencer).
|
73
|
+
#
|
74
|
+
#
|
75
|
+
|
76
|
+
# Create a new settings object.
|
77
|
+
extern 'fluid_settings_t* new_fluid_settings(void)'
|
78
|
+
|
79
|
+
# Delete the provided settings object.
|
80
|
+
extern 'void delete_fluid_settings(fluid_settings_t*)'
|
81
|
+
|
82
|
+
|
83
|
+
# Functions.
|
84
|
+
#
|
85
|
+
#
|
86
|
+
|
87
|
+
# Copy the value of a string setting into the provided buffer (thread safe).
|
88
|
+
extern 'int fluid_settings_copystr(fluid_settings_t*, char*, char*, int)'
|
89
|
+
|
90
|
+
# Duplicate the value of a string setting.
|
91
|
+
# FIXME. char**
|
92
|
+
extern 'int fluid_settings_dupstr(fluid_settings_t*, char*, void*)'
|
93
|
+
|
94
|
+
# Iterate the existing settings defined in a settings object, calling
|
95
|
+
# the provided callback function for each setting.
|
96
|
+
extern 'void fluid_settings_foreach' +
|
97
|
+
'(fluid_settings_t*, void*, fluid_settings_foreach_t)'
|
98
|
+
|
99
|
+
# Iterate the available options for a named string setting, calling
|
100
|
+
# the provided callback function for each existing option.
|
101
|
+
extern 'void fluid_settings_foreach_option' +
|
102
|
+
'(fluid_settings_t*, char*, void*, fluid_settings_foreach_option_t)'
|
103
|
+
|
104
|
+
# Get the hints for the named setting as an integer bitmap.
|
105
|
+
extern 'int fluid_settings_get_hints(fluid_settings_t*, char*, int*)'
|
106
|
+
|
107
|
+
# Get the type of the setting with the given name.
|
108
|
+
extern 'int fluid_settings_get_type(fluid_settings_t*, char*)'
|
109
|
+
|
110
|
+
# Get an integer value setting.
|
111
|
+
extern 'int fluid_settings_getint(fluid_settings_t*, char*, int*)'
|
112
|
+
|
113
|
+
# Get the default value of an integer setting.
|
114
|
+
extern 'int fluid_settings_getint_default(fluid_settings_t*, char*, int*)'
|
115
|
+
|
116
|
+
# Get the range of values of an integer setting.
|
117
|
+
extern 'int fluid_settings_getint_range' +
|
118
|
+
'(fluid_settings_t*, char*, int*, int*)'
|
119
|
+
|
120
|
+
# Get the numeric value of a named setting.
|
121
|
+
extern 'int fluid_settings_getnum(fluid_settings_t*, char*, double*)'
|
122
|
+
|
123
|
+
# Get the default value of a named numeric (double) setting.
|
124
|
+
extern 'int fluid_settings_getnum_default(fluid_settings_t*, char*, double*)'
|
125
|
+
|
126
|
+
# Get the range of values of a numeric setting.
|
127
|
+
extern 'int fluid_settings_getnum_range' +
|
128
|
+
'(fluid_settings_t*, char*, double*, double*)'
|
129
|
+
|
130
|
+
# Get the default value of a string setting.
|
131
|
+
# char** =>use Fiddle::Pointer#ptr()
|
132
|
+
extern 'int fluid_settings_getstr_default(fluid_settings_t*, char*, void*)'
|
133
|
+
|
134
|
+
# Ask whether the setting is changeable in real-time.
|
135
|
+
extern 'int fluid_settings_is_realtime(fluid_settings_t*, char*)'
|
136
|
+
|
137
|
+
# Concatenate options for a string setting together with a separator
|
138
|
+
# between.
|
139
|
+
extern 'void* fluid_settings_option_concat(fluid_settings_t*, char*, char*)'
|
140
|
+
|
141
|
+
# Count option string values for a string setting.
|
142
|
+
extern 'int fluid_settings_option_count(fluid_settings_t*, char*)'
|
143
|
+
|
144
|
+
# Set an integer value for a setting.
|
145
|
+
extern 'int fluid_settings_setint(fluid_settings_t*, char*, int)'
|
146
|
+
|
147
|
+
# Set a numeric value for a named setting.
|
148
|
+
extern 'int fluid_settings_setnum(fluid_settings_t*, char*, double)'
|
149
|
+
|
150
|
+
# Set a string value for a named setting.
|
151
|
+
extern 'int fluid_settings_setstr(fluid_settings_t*, char*, char*)'
|
152
|
+
|
153
|
+
# Test a string setting for some value.
|
154
|
+
extern 'int fluid_settings_str_equal(fluid_settings_t*, char*, char*)'
|
155
|
+
|
156
|
+
# Get settings assigned to a synth.
|
157
|
+
#
|
158
|
+
extern 'void* fluid_synth_get_settings(fluid_synth_t*)'
|
159
|
+
|
160
|
+
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
|
165
|
+
#
|
166
|
+
#
|
167
|
+
#
|
168
|
+
class FiddleFluidSynth
|
169
|
+
|
170
|
+
module Interface;
|
171
|
+
module Settings; end
|
172
|
+
end
|
173
|
+
|
174
|
+
end
|
175
|
+
|
176
|
+
|
177
|
+
# Lifecycle Functions.
|
178
|
+
#
|
179
|
+
#
|
180
|
+
class FiddleFluidSynth
|
181
|
+
|
182
|
+
#
|
183
|
+
# ==== See Also
|
184
|
+
# - `#synth_get_settings()`
|
185
|
+
#
|
186
|
+
def self.settings_new()
|
187
|
+
ret = C.new_fluid_settings()
|
188
|
+
|
189
|
+
if ret.nil? || ret.null?
|
190
|
+
ret = nil
|
191
|
+
else
|
192
|
+
ret.extend(Interface::Settings)
|
193
|
+
end
|
194
|
+
ret
|
195
|
+
end
|
196
|
+
def settings_new()
|
197
|
+
self.class.settings_new
|
198
|
+
end
|
199
|
+
|
200
|
+
def self.settings_delete( settings )
|
201
|
+
ret = C.delete_fluid_settings(settings)
|
202
|
+
ret
|
203
|
+
end
|
204
|
+
def settings_delete( settings )
|
205
|
+
self.class.settings_delete(settings)
|
206
|
+
end
|
207
|
+
|
208
|
+
end
|
209
|
+
|
210
|
+
|
211
|
+
# Functions.
|
212
|
+
#
|
213
|
+
#
|
214
|
+
class FiddleFluidSynth
|
215
|
+
|
216
|
+
#
|
217
|
+
def self.settings_copystr( settings, name: , str: , len: )
|
218
|
+
ret = C.fluid_settings_copystr(settings, name, str, len)
|
219
|
+
ret
|
220
|
+
end
|
221
|
+
def settings_copystr( settings = self.settings, name: , str: , len: )
|
222
|
+
self.class.settings_copystr(settings, name: name, str: str, len: len)
|
223
|
+
end
|
224
|
+
|
225
|
+
#
|
226
|
+
# ==== Args
|
227
|
+
# out:: must be Fiddle::Pointer.malloc_voidp
|
228
|
+
#
|
229
|
+
def self.settings_dupstr( settings: , name: ,
|
230
|
+
out: Fiddle::Pointer.malloc_voidp )
|
231
|
+
ret = nil
|
232
|
+
tmp = C.fluid_settings_dupstr(settings, name, out)
|
233
|
+
if FLUID_OK == tmp
|
234
|
+
ret = out.ptr.to_s
|
235
|
+
else
|
236
|
+
raise "{#{__method__}} API call failed for name:" +
|
237
|
+
" #{name}, out: #{out.inspect}."
|
238
|
+
end
|
239
|
+
ret
|
240
|
+
end
|
241
|
+
def settings_dupstr( name, settings = self.settings,
|
242
|
+
out: Fiddle::Pointer.malloc_voidp )
|
243
|
+
self.class.settings_dupstr(
|
244
|
+
settings: settings, name: name, out: out)
|
245
|
+
end
|
246
|
+
|
247
|
+
#
|
248
|
+
def self.settings_foreach( settings, data: , func: )
|
249
|
+
ret = C.fluid_settings_foreach(settings, data, func)
|
250
|
+
ret
|
251
|
+
end
|
252
|
+
def settings_foreach( settings = self.settings, data: , func: )
|
253
|
+
self.class.settings_foreach(settings, data: data, func: func)
|
254
|
+
end
|
255
|
+
|
256
|
+
def self.settings_foreach_option( settings, name: , data: , func: )
|
257
|
+
ret = C.fluid_settings_foreach_option(settings, name, data, func)
|
258
|
+
ret
|
259
|
+
end
|
260
|
+
class << self
|
261
|
+
alias settings_option_foreach settings_foreach_option
|
262
|
+
end
|
263
|
+
def settings_foreach_option( settings = self.settings, name: , data: , func: )
|
264
|
+
self.class.settings_foreach_option(
|
265
|
+
settings, name: name, data: data, func: func)
|
266
|
+
end
|
267
|
+
alias settings_option_foreach settings_foreach_option
|
268
|
+
|
269
|
+
#
|
270
|
+
# ==== Args
|
271
|
+
# outval:: pointer. Fiddle::Pointer.malloc_i
|
272
|
+
#
|
273
|
+
# ==== See Also
|
274
|
+
# - `.#settings_get_type()`
|
275
|
+
#
|
276
|
+
# def settings_get_hints( settings: , name: , val: )
|
277
|
+
# def settings_get_hints( name, outval: , settings: self.settings )
|
278
|
+
# def self.settings_get_hints( settings, name: ,
|
279
|
+
def self.settings_get_hints( name, settings: ,
|
280
|
+
outval: Fiddle::Pointer.malloc_i,
|
281
|
+
notify_f: true )
|
282
|
+
ret = nil
|
283
|
+
tmp = C.fluid_settings_get_hints(settings, name, outval)
|
284
|
+
if FLUID_OK == tmp
|
285
|
+
ret = Fiddle::Pointer.decode1_i(outval)
|
286
|
+
else
|
287
|
+
msg = "(**) Failed to get hints: #{name}. Maybe misspelled...?"
|
288
|
+
if notify_f
|
289
|
+
$stderr.puts "#{msg}"
|
290
|
+
else
|
291
|
+
raise "#{msg}"
|
292
|
+
end
|
293
|
+
end
|
294
|
+
|
295
|
+
ret
|
296
|
+
end
|
297
|
+
def settings_get_hints( name, settings: self.settings,
|
298
|
+
outval: Fiddle::Pointer.malloc_i,
|
299
|
+
notify_f: true )
|
300
|
+
self.class.settings_get_hints(
|
301
|
+
name, settings: settings, outval: outval, notify_f: notify_f)
|
302
|
+
end
|
303
|
+
|
304
|
+
#
|
305
|
+
# ==== See Also
|
306
|
+
# - `.#settings_get_hints()`
|
307
|
+
#
|
308
|
+
# def self.settings_get_type( settings: , name: )
|
309
|
+
def self.settings_get_type( name, settings: )
|
310
|
+
ret = C.fluid_settings_get_type(settings, name)
|
311
|
+
ret
|
312
|
+
end
|
313
|
+
# def settings_get_type( settings = self.settings, name: )
|
314
|
+
def settings_get_type( name, settings: self.settings )
|
315
|
+
self.class.settings_get_type(name, settings: settings)
|
316
|
+
end
|
317
|
+
|
318
|
+
#
|
319
|
+
def self.settings_getint( settings, name: , val: )
|
320
|
+
ret = C.fluid_settings_getint(settings, name, val)
|
321
|
+
ret
|
322
|
+
end
|
323
|
+
def settings_getint( settings = self.settings, name: , val: )
|
324
|
+
self.class.settings_getint(settings, name: name, val: val)
|
325
|
+
end
|
326
|
+
|
327
|
+
def self.settings_getint_default( settings, name: , val: )
|
328
|
+
ret = C.fluid_settings_getint_default(settings, name, val)
|
329
|
+
ret
|
330
|
+
end
|
331
|
+
def settings_getint_default( settings = self.settings, name: , val: )
|
332
|
+
self.class.settings_getint_default(settings, name: name, val: val)
|
333
|
+
end
|
334
|
+
|
335
|
+
#
|
336
|
+
def self.settings_getint_range( settings, name: , min: , max: )
|
337
|
+
ret = C.fluid_settings_getint_range(settings, name, min, max)
|
338
|
+
ret
|
339
|
+
end
|
340
|
+
def settings_getint_range( settings = self.settings, name: , min: , max: )
|
341
|
+
self.class.settings_getint_range(settings, name: name, min: min, max: max)
|
342
|
+
end
|
343
|
+
|
344
|
+
#
|
345
|
+
def self.settings_getnum( settings, name: , val: )
|
346
|
+
ret = C.fluid_settings_getnum(settings, name, val)
|
347
|
+
ret
|
348
|
+
end
|
349
|
+
def settings_getnum( settings = self.settings, name: , val: )
|
350
|
+
self.class.settings_getnum(settings, name: name, val: val)
|
351
|
+
end
|
352
|
+
|
353
|
+
def self.settings_getnum_default( settings, name: , val: )
|
354
|
+
ret = C.fluid_settings_getnum_default(settings, name, val)
|
355
|
+
ret
|
356
|
+
end
|
357
|
+
def settings_getnum_default( settings = self.settings, name: , val: )
|
358
|
+
self.class.settings_getnum_default(settings, name: name, val: val)
|
359
|
+
end
|
360
|
+
|
361
|
+
def self.settings_getnum_range( settings, name: , min: , max: )
|
362
|
+
ret = C.fluid_settings_getnum_range(settings, name, min, max)
|
363
|
+
ret
|
364
|
+
end
|
365
|
+
def settings_getnum_range( settings=self.settings, name: , min: , max: )
|
366
|
+
self.class.settings_getnum_range(settings, name: name, min: min, max: max)
|
367
|
+
end
|
368
|
+
|
369
|
+
#
|
370
|
+
def self.settings_getstr_default( settings, name: , defout: )
|
371
|
+
ret = C.fluid_settings_getstr_default(settings, name, defout)
|
372
|
+
ret
|
373
|
+
end
|
374
|
+
def settings_getstr_default( settings=self.settings, name: , defout: )
|
375
|
+
self.class.settings_getstr_default(settings, name: name, defout: defout)
|
376
|
+
end
|
377
|
+
|
378
|
+
#
|
379
|
+
def self.settings_is_realtime( settings, name: )
|
380
|
+
ret = C.fluid_settings_is_realtime(settings, name)
|
381
|
+
ret
|
382
|
+
end
|
383
|
+
def settings_is_realtime( settings=self.settings, name: )
|
384
|
+
self.class.settings_is_realtime(settings, name: name)
|
385
|
+
end
|
386
|
+
|
387
|
+
#
|
388
|
+
def self.settings_option_concat( settings, name: , separator: )
|
389
|
+
ret = C.fluid_settings_option_concat(settings, name, separator)
|
390
|
+
ret
|
391
|
+
end
|
392
|
+
def settings_option_concat( settings=self.settings, name: , separator: )
|
393
|
+
self.class.settings_option_concat(settings, name: name, separator: separator)
|
394
|
+
end
|
395
|
+
|
396
|
+
def self.settings_option_count( settings, name: )
|
397
|
+
ret = C.fluid_settings_option_count(settings, name)
|
398
|
+
ret
|
399
|
+
end
|
400
|
+
def settings_option_count( settings=self.settings, name: )
|
401
|
+
self.class.settings_option_count(settings, name: name)
|
402
|
+
end
|
403
|
+
|
404
|
+
### setters.
|
405
|
+
|
406
|
+
def self.settings_setint( settings, name: , val: )
|
407
|
+
ret = C.fluid_settings_setint(settings, name, val)
|
408
|
+
ret
|
409
|
+
end
|
410
|
+
def settings_setint( settings=self.settings, name: , val: )
|
411
|
+
self.class.settings_setint(settings, name: name, val: val)
|
412
|
+
end
|
413
|
+
|
414
|
+
def self.settings_setnum( settings, name: , val: )
|
415
|
+
ret = C.fluid_settings_setnum(settings, name, val)
|
416
|
+
ret
|
417
|
+
end
|
418
|
+
def settings_setnum( settings=self.settings, name: , val: )
|
419
|
+
self.class.settings_setnum(settings, name: name, val: val)
|
420
|
+
end
|
421
|
+
|
422
|
+
# def settings_setstr( settings: , name: , str: )
|
423
|
+
def self.settings_setstr( settings, name: , val: )
|
424
|
+
# ret = C.fluid_settings_setstr(settings, name, str)
|
425
|
+
ret = C.fluid_settings_setstr(settings, name, val)
|
426
|
+
ret
|
427
|
+
end
|
428
|
+
def settings_setstr( settings=self.settings, name: , val: )
|
429
|
+
self.class.settings_setstr(settings, name: name, val: val)
|
430
|
+
end
|
431
|
+
|
432
|
+
#
|
433
|
+
#def self.settings_str_equal( settings, name: , value: )
|
434
|
+
def self.settings_str_equal( settings, name: , val: )
|
435
|
+
ret = C.fluid_settings_str_equal(settings, name, val)
|
436
|
+
ret
|
437
|
+
end
|
438
|
+
def settings_str_equal( settings=self.settings, name: , val: )
|
439
|
+
self.class.settings_str_equal(settings, name: name, val: val)
|
440
|
+
end
|
441
|
+
|
442
|
+
### synth...?
|
443
|
+
|
444
|
+
#
|
445
|
+
# ==== See Also
|
446
|
+
# - `#settings_new()`
|
447
|
+
#
|
448
|
+
def self.synth_get_settings( synth )
|
449
|
+
ret = C.fluid_synth_get_settings(synth)
|
450
|
+
|
451
|
+
if ret.nil? || ret.null?
|
452
|
+
ret = nil
|
453
|
+
else
|
454
|
+
ret.extend(FiddleFluidSynth::Interface::Settings)
|
455
|
+
end
|
456
|
+
ret
|
457
|
+
end
|
458
|
+
def synth_get_settings( synth = self.synth )
|
459
|
+
self.class.synth_get_settings(synth)
|
460
|
+
end
|
461
|
+
|
462
|
+
end
|
463
|
+
|
464
|
+
|
465
|
+
#### endof filename: settings/settings.rb
|
@@ -0,0 +1,128 @@
|
|
1
|
+
#
|
2
|
+
# filename: soundfonts/generators.rb
|
3
|
+
#
|
4
|
+
|
5
|
+
|
6
|
+
# References
|
7
|
+
# - fluidsynth.org, [API Reference](https://www.fluidsynth.org/api/modules.html)
|
8
|
+
#
|
9
|
+
class FiddleFluidSynth
|
10
|
+
|
11
|
+
# Functions and defines for SoundFont generator effects.
|
12
|
+
# ==== References
|
13
|
+
# - API Reference, SoundFonts/[SoundFonts Generators](https://www.fluidsynth.org/api/group__generators.html)
|
14
|
+
# - [library fiddle](https://docs.ruby-lang.org/ja/latest/library/fiddle.html)
|
15
|
+
#
|
16
|
+
|
17
|
+
|
18
|
+
# Enumerations.
|
19
|
+
#
|
20
|
+
#
|
21
|
+
|
22
|
+
# Settings type.
|
23
|
+
enum(
|
24
|
+
:fluid_gen_type,
|
25
|
+
GEN_STARTADDROFS: nil,
|
26
|
+
GEN_ENDADDROFS: nil,
|
27
|
+
GEN_STARTLOOPADDROFS: nil,
|
28
|
+
GEN_ENDLOOPADDROFS: nil,
|
29
|
+
GEN_STARTADDRCOARSEOFS: nil,
|
30
|
+
GEN_MODLFOTOPITCH: nil,
|
31
|
+
GEN_VIBLFOTOPITCH: nil,
|
32
|
+
GEN_MODENVTOPITCH: nil,
|
33
|
+
GEN_FILTERFC: nil,
|
34
|
+
GEN_FILTERQ: nil,
|
35
|
+
GEN_MODLFOTOFILTERFC: nil,
|
36
|
+
GEN_MODENVTOFILTERFC: nil,
|
37
|
+
GEN_ENDADDRCOARSEOFS: nil,
|
38
|
+
GEN_MODLFOTOVOL: nil,
|
39
|
+
GEN_UNUSED1: nil,
|
40
|
+
GEN_CHORUSSEND: nil,
|
41
|
+
GEN_REVERBSEND: nil,
|
42
|
+
GEN_PAN: nil,
|
43
|
+
GEN_UNUSED2: nil,
|
44
|
+
GEN_UNUSED3: nil,
|
45
|
+
GEN_UNUSED4: nil,
|
46
|
+
GEN_MODLFODELAY: nil,
|
47
|
+
GEN_MODLFOFREQ: nil,
|
48
|
+
GEN_VIBLFODELAY: nil,
|
49
|
+
GEN_VIBLFOFREQ: nil,
|
50
|
+
GEN_MODENVDELAY: nil,
|
51
|
+
GEN_MODENVATTACK: nil,
|
52
|
+
GEN_MODENVHOLD: nil,
|
53
|
+
GEN_MODENVDECAY: nil,
|
54
|
+
GEN_MODENVSUSTAIN: nil,
|
55
|
+
GEN_MODENVRELEASE: nil,
|
56
|
+
GEN_KEYTOMODENVHOLD: nil,
|
57
|
+
GEN_KEYTOMODENVDECAY: nil,
|
58
|
+
GEN_VOLENVDELAY: nil,
|
59
|
+
GEN_VOLENVATTACK: nil,
|
60
|
+
GEN_VOLENVHOLD: nil,
|
61
|
+
GEN_VOLENVDECAY: nil,
|
62
|
+
GEN_VOLENVSUSTAIN: nil,
|
63
|
+
GEN_VOLENVRELEASE: nil,
|
64
|
+
GEN_KEYTOVOLENVHOLD: nil,
|
65
|
+
GEN_KEYTOVOLENVDECAY: nil,
|
66
|
+
GEN_INSTRUMENT: nil,
|
67
|
+
GEN_RESERVED1: nil,
|
68
|
+
GEN_KEYRANGE: nil,
|
69
|
+
GEN_VELRANGE: nil,
|
70
|
+
GEN_STARTLOOPADDRCOARSEOFS: nil,
|
71
|
+
GEN_KEYNUM: nil,
|
72
|
+
GEN_VELOCITY: nil,
|
73
|
+
GEN_ATTENUATION: nil,
|
74
|
+
GEN_RESERVED2: nil,
|
75
|
+
GEN_ENDLOOPADDRCOARSEOFS: nil,
|
76
|
+
GEN_COARSETUNE: nil,
|
77
|
+
GEN_FINETUNE: nil,
|
78
|
+
GEN_SAMPLEID: nil,
|
79
|
+
GEN_SAMPLEMODE: nil,
|
80
|
+
GEN_RESERVED3: nil,
|
81
|
+
GEN_SCALETUNE: nil,
|
82
|
+
GEN_EXCLUSIVECLASS: nil,
|
83
|
+
GEN_OVERRIDEROOTKEY: nil,
|
84
|
+
GEN_PITCH: nil,
|
85
|
+
GEN_CUSTOM_BALANCE: nil,
|
86
|
+
GEN_CUSTOM_FILTERFC: nil,
|
87
|
+
GEN_CUSTOM_FILTERQ: nil,
|
88
|
+
GEN_LAST: nil,
|
89
|
+
)
|
90
|
+
|
91
|
+
|
92
|
+
#
|
93
|
+
module C
|
94
|
+
|
95
|
+
# Enumerations.
|
96
|
+
#
|
97
|
+
#
|
98
|
+
|
99
|
+
# not in here. under the FiddleFluidSynth directly.
|
100
|
+
|
101
|
+
|
102
|
+
# Lifecycle Functions.
|
103
|
+
#
|
104
|
+
#
|
105
|
+
|
106
|
+
|
107
|
+
# Functions.
|
108
|
+
#
|
109
|
+
#
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
end
|
114
|
+
|
115
|
+
end
|
116
|
+
|
117
|
+
|
118
|
+
# Lifecycle Functions.
|
119
|
+
#
|
120
|
+
#
|
121
|
+
|
122
|
+
|
123
|
+
# Functions.
|
124
|
+
#
|
125
|
+
#
|
126
|
+
|
127
|
+
|
128
|
+
#### endof filename: soundfonts/generators.rb
|