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,506 @@
|
|
1
|
+
#
|
2
|
+
# filename: soundfonts/loader.rb
|
3
|
+
#
|
4
|
+
|
5
|
+
|
6
|
+
# References
|
7
|
+
# - fluidsynth.org, [API Reference](https://www.fluidsynth.org/api/modules.html)
|
8
|
+
#
|
9
|
+
class FiddleFluidSynth
|
10
|
+
|
11
|
+
# Create custom SoundFont loaders.
|
12
|
+
# ==== References
|
13
|
+
# - API Reference, SoundFont/[SoundFont Loader](https://www.fluidsynth.org/api/group__soundfont__loader.html)
|
14
|
+
# - [library fiddle](https://docs.ruby-lang.org/ja/latest/library/fiddle.html)
|
15
|
+
#
|
16
|
+
|
17
|
+
# Enumerations.
|
18
|
+
#
|
19
|
+
#
|
20
|
+
|
21
|
+
#
|
22
|
+
enum(
|
23
|
+
FLUID_PRESET_SELECTED: nil,
|
24
|
+
FLUID_PRESET_UNSELECTED: nil,
|
25
|
+
FLUID_SAMPLE_DONE: nil,
|
26
|
+
FLUID_PRESET_PIN: nil,
|
27
|
+
FLUID_PRESET_UNPIN: nil)
|
28
|
+
|
29
|
+
# fluid_sample_type
|
30
|
+
enum(
|
31
|
+
:fluid_sample_type,
|
32
|
+
FLUID_SAMPLETYPE_MONO: 0x1,
|
33
|
+
FLUID_SAMPLETYPE_RIGHT: 0x2,
|
34
|
+
FLUID_SAMPLETYPE_LEFT: 0x4,
|
35
|
+
FLUID_SAMPLETYPE_LINKED: 0x8,
|
36
|
+
FLUID_SAMPLETYPE_OGG_VORBIS: 0x10,
|
37
|
+
FLUID_SAMPLETYPE_ROM: 0x8000)
|
38
|
+
|
39
|
+
#
|
40
|
+
module C
|
41
|
+
|
42
|
+
# Typedefs.
|
43
|
+
#
|
44
|
+
#
|
45
|
+
|
46
|
+
typealias 'fluid_preset_free_t', 'void*'
|
47
|
+
typealias 'fluid_preset_get_banknum_t', 'void*'
|
48
|
+
typealias 'fluid_preset_get_name_t', 'void*'
|
49
|
+
typealias 'fluid_preset_get_num_t', 'void*'
|
50
|
+
typealias 'fluid_preset_noteon_t', 'void*'
|
51
|
+
|
52
|
+
#
|
53
|
+
typealias 'fluid_sfloader_callback_close_t', 'void*'
|
54
|
+
typealias 'fluid_sfloader_callback_open_t', 'void*'
|
55
|
+
typealias 'fluid_sfloader_callback_read_t', 'void*'
|
56
|
+
typealias 'fluid_sfloader_callback_seek_t', 'void*'
|
57
|
+
typealias 'fluid_sfloader_callback_tell_t', 'void*'
|
58
|
+
typealias 'fluid_sfloader_free_t', 'void*'
|
59
|
+
typealias 'fluid_sfloader_load_t', 'void*'
|
60
|
+
|
61
|
+
#
|
62
|
+
typealias 'fluid_sfont_free_t', 'void*'
|
63
|
+
typealias 'fluid_sfont_get_name_t', 'void*'
|
64
|
+
typealias 'fluid_sfont_get_preset_t', 'void*'
|
65
|
+
typealias 'fluid_sfont_iteration_next_t', 'void*'
|
66
|
+
typealias 'fluid_sfont_iteration_start_t', 'void*'
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
# Lifecycle Functions (SoundFont Loader).
|
72
|
+
#
|
73
|
+
#
|
74
|
+
|
75
|
+
# Creates a new SoundFont loader.
|
76
|
+
extern 'fluid_sfloader_t* new_fluid_sfloader' +
|
77
|
+
'(fluid_sfloader_load_t*, fluid_sfloader_free_t*)'
|
78
|
+
|
79
|
+
# Frees a SoundFont loader created with new_fluid_sfloader().
|
80
|
+
extern 'void delete_fluid_sfloader(fluid_sfloader_t*)'
|
81
|
+
|
82
|
+
# Creates a default soundfont2 loader that can be used with
|
83
|
+
# fluid_synth_add_sfloader().
|
84
|
+
extern 'fluid_sfloader_t* new_fluid_defsfloader(fluid_settings_t*)'
|
85
|
+
|
86
|
+
|
87
|
+
# Lifecycle Functions (SoundFont).
|
88
|
+
#
|
89
|
+
#
|
90
|
+
|
91
|
+
# Creates a new virtual SoundFont instance structure.
|
92
|
+
extern 'fluid_sfont_t* new_fluid_sfont' +
|
93
|
+
'(fluid_sfont_get_name_t, fluid_sfont_get_preset_t,' +
|
94
|
+
' fluid_sfont_iteration_start_t, fluid_sfont_iteration_next_t,' +
|
95
|
+
' fluid_sfont_free_t)'
|
96
|
+
|
97
|
+
# Destroys a SoundFont instance created with new_fluid_sfont().
|
98
|
+
extern 'int delete_fluid_sfont(fluid_sfont_t*)'
|
99
|
+
|
100
|
+
|
101
|
+
# Lifecycle Functions (Preset).
|
102
|
+
#
|
103
|
+
#
|
104
|
+
|
105
|
+
# Create a virtual SoundFont preset instance.
|
106
|
+
extern 'fluid_preset_t* new_fluid_preset' +
|
107
|
+
'(fluid_sfont_t*, fluid_preset_get_name_t*,' +
|
108
|
+
' fluid_preset_get_banknum_t, fluid_preset_get_num_t,' +
|
109
|
+
' fluid_preset_noteon_t, fluid_preset_free_t)'
|
110
|
+
|
111
|
+
# Destroys a SoundFont preset instance created with new_fluid_preset().
|
112
|
+
extern 'void delete_fluid_preset(fluid_preset_t*)'
|
113
|
+
|
114
|
+
|
115
|
+
# Lifecycle Functions (Sample).
|
116
|
+
#
|
117
|
+
#
|
118
|
+
|
119
|
+
# Create a new sample instance.
|
120
|
+
extern 'fluid_sample_t* new_fluid_sample(void)'
|
121
|
+
|
122
|
+
# Destroy a sample instance previously created with new_fluid_sample().
|
123
|
+
extern 'void delete_fluid_sample(fluid_sample_t*)'
|
124
|
+
|
125
|
+
|
126
|
+
# Functions.
|
127
|
+
#
|
128
|
+
#
|
129
|
+
|
130
|
+
# Retrieves the presets bank number by executing the get_bank function
|
131
|
+
# provided on its creation.
|
132
|
+
extern 'int fluid_preset_get_banknum(fluid_preset_t*)'
|
133
|
+
|
134
|
+
# Retrieve the private data of a SoundFont preset instance.
|
135
|
+
extern 'void* fluid_preset_get_data(fluid_preset_t*)'
|
136
|
+
|
137
|
+
# Retrieves the presets name by executing the get_name function provided
|
138
|
+
# on its creation.
|
139
|
+
extern 'char* fluid_preset_get_name(fluid_preset_t*)'
|
140
|
+
|
141
|
+
# Retrieves the presets (instrument) number by executing the get_num
|
142
|
+
# function provided on its creation.
|
143
|
+
extern 'int fluid_preset_get_num(fluid_preset_t*)'
|
144
|
+
|
145
|
+
# Retrieves the presets parent SoundFont instance.
|
146
|
+
extern 'fluid_sfont_t* fluid_preset_get_sfont(fluid_preset_t*)'
|
147
|
+
|
148
|
+
# Set private data to use with a SoundFont preset instance.
|
149
|
+
extern 'int fluid_preset_set_data(fluid_preset_t*, void*)'
|
150
|
+
|
151
|
+
### .
|
152
|
+
|
153
|
+
# Set the loop of a sample.
|
154
|
+
extern 'int fluid_sample_set_loop' +
|
155
|
+
'(fluid_sample_t*, unsigned int, unsigned int)'
|
156
|
+
|
157
|
+
# Set the name of a SoundFont sample.
|
158
|
+
extern 'int fluid_sample_set_name(fluid_sample_t*, char*)'
|
159
|
+
|
160
|
+
# Set the pitch of a sample.
|
161
|
+
extern 'int fluid_sample_set_pitch(fluid_sample_t*, int, int)'
|
162
|
+
|
163
|
+
# Assign sample data to a SoundFont sample.
|
164
|
+
extern 'int fluid_sample_set_sound_data' +
|
165
|
+
'(fluid_sample_t*, short*, char*,' +
|
166
|
+
' unsigned int, unsigned int, short)'
|
167
|
+
|
168
|
+
# Returns the size of the fluid_sample_t structure.
|
169
|
+
extern 'size_t fluid_sample_sizeof(void)'
|
170
|
+
|
171
|
+
# Obtain private data previously set with fluid_sfloader_set_data().
|
172
|
+
extern 'void* fluid_sfloader_get_data(fluid_sfloader_t*)'
|
173
|
+
|
174
|
+
# Set custom callbacks to be used upon soundfont loading.
|
175
|
+
extern 'int fluid_sfloader_set_callbacks' +
|
176
|
+
'(fluid_sfloader_t*, fluid_sfloader_callback_open_t*,' +
|
177
|
+
' fluid_sfloader_callback_read_t*, fluid_sfloader_callback_seek_t*,' +
|
178
|
+
' fluid_sfloader_callback_tell_t*, fluid_sfloader_callback_close_t*)'
|
179
|
+
|
180
|
+
# Specify private data to be used by fluid_sfloader_load_t.
|
181
|
+
extern 'int fluid_sfloader_set_data(fluid_sfloader_t*, void*)'
|
182
|
+
|
183
|
+
### .
|
184
|
+
|
185
|
+
# Retrieve the private data of a SoundFont instance.
|
186
|
+
extern 'void* fluid_sfont_get_data(fluid_sfont_t*)'
|
187
|
+
|
188
|
+
# Retrieve the unique ID of a SoundFont instance.
|
189
|
+
extern 'int fluid_sfont_get_id(fluid_sfont_t*)'
|
190
|
+
|
191
|
+
# Retrieve the name of a SoundFont instance.
|
192
|
+
extern 'char* fluid_sfont_get_name(fluid_sfont_t*)'
|
193
|
+
|
194
|
+
# Retrieve the preset assigned the a SoundFont instance for the
|
195
|
+
# given bank and preset number.
|
196
|
+
extern 'fluid_preset_t* fluid_sfont_get_preset(fluid_sfont_t*, int, int)'
|
197
|
+
|
198
|
+
# Virtual SoundFont preset iteration function.
|
199
|
+
extern 'fluid_preset_t* fluid_sfont_iteration_next(fluid_sfont_t*)'
|
200
|
+
|
201
|
+
# Starts / re-starts virtual preset iteration in a SoundFont.
|
202
|
+
extern 'void fluid_sfont_iteration_start(fluid_sfont_t*)'
|
203
|
+
|
204
|
+
# Set private data to use with a SoundFont instance.
|
205
|
+
extern 'int fluid_sfont_set_data(fluid_sfont_t*, void*)'
|
206
|
+
|
207
|
+
### .
|
208
|
+
|
209
|
+
# Add a SoundFont loader to the synth.
|
210
|
+
extern 'void fluid_synth_add_sfloader(fluid_synth_t*, fluid_sfloader_t*)'
|
211
|
+
|
212
|
+
# Get active preset on a MIDI channel.
|
213
|
+
extern 'fluid_preset_t* fluid_synth_get_channel_preset(fluid_synth_t*, int)'
|
214
|
+
|
215
|
+
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
|
220
|
+
#
|
221
|
+
#
|
222
|
+
#
|
223
|
+
class FiddleFluidSynth
|
224
|
+
module SoundFontsLoaderIF
|
225
|
+
end
|
226
|
+
extend SoundFontsLoaderIF
|
227
|
+
include SoundFontsLoaderIF
|
228
|
+
end
|
229
|
+
|
230
|
+
|
231
|
+
# Lifecycle Functions (SoundFont Loader).
|
232
|
+
#
|
233
|
+
#
|
234
|
+
class FiddleFluidSynth
|
235
|
+
module SoundFontsLoaderIF
|
236
|
+
|
237
|
+
#
|
238
|
+
def sfloader_new( load: , free: )
|
239
|
+
ret = C.new_fluid_sfloader(load,free)
|
240
|
+
ret
|
241
|
+
end
|
242
|
+
def defsfloader_new( settings )
|
243
|
+
ret = C.new_fluid_defsfloader(settings)
|
244
|
+
ret
|
245
|
+
end
|
246
|
+
def sfloader_delete( loader )
|
247
|
+
ret = C.delete_fluid_sfloader(loader)
|
248
|
+
ret
|
249
|
+
end
|
250
|
+
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
# Lifecycle Functions (SoundFont).
|
255
|
+
#
|
256
|
+
#
|
257
|
+
class FiddleFluidSynth
|
258
|
+
module SoundFontsLoaderIF
|
259
|
+
|
260
|
+
#
|
261
|
+
# ==== See Also
|
262
|
+
# - `#preset_get_sfont()`
|
263
|
+
# - synth/soundfont_management.rb:`#synth_get_sfont()`
|
264
|
+
# - synth/soundfont_management.rb:`#synth_get_sfont_by_id()`
|
265
|
+
# - synth/soundfont_management.rb:`#synth_get_sfont_by_name()`
|
266
|
+
#
|
267
|
+
# def sfont_new( get_name: , get_preset: , iter_start: , iter_next: , free: )
|
268
|
+
def sfont_new( get_name: nil, get_preset: nil,
|
269
|
+
iter_start: nil, iter_next: nil, free: nil )
|
270
|
+
ret = C.new_fluid_sfont(
|
271
|
+
get_name, get_preset, iter_start, iter_next, free)
|
272
|
+
#ng. if ret.null? || ret.nil?
|
273
|
+
if ret.nil? || ret.null?
|
274
|
+
ret = nil
|
275
|
+
else
|
276
|
+
ret.extend(Interface::SoundFont)
|
277
|
+
end
|
278
|
+
ret
|
279
|
+
end
|
280
|
+
def sfont_delete( sfont )
|
281
|
+
ret = C.delete_fluid_sfont(sfont)
|
282
|
+
ret
|
283
|
+
end
|
284
|
+
|
285
|
+
end
|
286
|
+
end
|
287
|
+
|
288
|
+
# Lifecycle Functions (Preset).
|
289
|
+
#
|
290
|
+
#
|
291
|
+
class FiddleFluidSynth
|
292
|
+
module SoundFontsLoaderIF
|
293
|
+
|
294
|
+
#
|
295
|
+
# ==== See Also
|
296
|
+
# - `#sfont_get_preset()`
|
297
|
+
#
|
298
|
+
def preset_new( get_name: nil, get_preset: nil,
|
299
|
+
iter_start: nil, iter_next: nil, noteon: nil,
|
300
|
+
free: nil )
|
301
|
+
ret = C.new_fluid_preset(
|
302
|
+
get_name, get_preset, iter_start, iter_next, noteon, free)
|
303
|
+
#ng. if ret.null? || ret.nil?
|
304
|
+
if ret.nil? || ret.null?
|
305
|
+
ret = nil
|
306
|
+
else
|
307
|
+
ret.extend(Interface::SoundFont::Preset)
|
308
|
+
end
|
309
|
+
ret
|
310
|
+
end
|
311
|
+
def preset_delete( preset )
|
312
|
+
ret = C.delete_fluid_preset(preset)
|
313
|
+
ret
|
314
|
+
end
|
315
|
+
|
316
|
+
end
|
317
|
+
end
|
318
|
+
|
319
|
+
# Lifecycle Functions (Sample).
|
320
|
+
#
|
321
|
+
#
|
322
|
+
class FiddleFluidSynth
|
323
|
+
module SoundFontsLoaderIF
|
324
|
+
|
325
|
+
def sample_new( )
|
326
|
+
ret = C.new_fluid_sample()
|
327
|
+
#ng. if ret.null? || ret.nil?
|
328
|
+
if ret.nil? || ret.null?
|
329
|
+
ret = nil
|
330
|
+
else
|
331
|
+
ret.extend(Interface::SoundFont::Sample)
|
332
|
+
end
|
333
|
+
ret
|
334
|
+
end
|
335
|
+
def sample_delete( sample )
|
336
|
+
ret = C.delete_fluid_sample(sample)
|
337
|
+
ret
|
338
|
+
end
|
339
|
+
|
340
|
+
end
|
341
|
+
end
|
342
|
+
|
343
|
+
|
344
|
+
# Functions.
|
345
|
+
#
|
346
|
+
#
|
347
|
+
class FiddleFluidSynth
|
348
|
+
module SoundFontsLoaderIF
|
349
|
+
|
350
|
+
# for Preset.
|
351
|
+
def preset_get_banknum( preset )
|
352
|
+
ret = C.fluid_preset_get_banknum(preset)
|
353
|
+
ret
|
354
|
+
end
|
355
|
+
alias preset_get_bknum preset_get_banknum
|
356
|
+
|
357
|
+
def preset_get_data( preset )
|
358
|
+
ret = C.fluid_preset_get_data(preset)
|
359
|
+
ret
|
360
|
+
end
|
361
|
+
def preset_get_name( preset )
|
362
|
+
# ret = C.fluid_preset_get_name(preset)
|
363
|
+
ret = C.fluid_preset_get_name(preset).to_s
|
364
|
+
ret
|
365
|
+
end
|
366
|
+
def preset_get_num( preset )
|
367
|
+
ret = C.fluid_preset_get_num(preset)
|
368
|
+
ret
|
369
|
+
end
|
370
|
+
|
371
|
+
#
|
372
|
+
# ==== See Also
|
373
|
+
# - `#sfont_new()`
|
374
|
+
#
|
375
|
+
def preset_get_sfont( preset )
|
376
|
+
ret = C.fluid_preset_get_sfont(preset)
|
377
|
+
#ng. if ret.null? || ret.nil?
|
378
|
+
if ret.nil? || ret.null?
|
379
|
+
ret = nil
|
380
|
+
else
|
381
|
+
ret.extend(Interface::SoundFont)
|
382
|
+
end
|
383
|
+
ret
|
384
|
+
end
|
385
|
+
def preset_set_data( preset, data: )
|
386
|
+
ret = C.fluid_preset_set_data(preset,data)
|
387
|
+
ret
|
388
|
+
end
|
389
|
+
|
390
|
+
# for Sample.
|
391
|
+
def sample_set_loop( sample, loop_start: , loop_end: )
|
392
|
+
ret = C.fluid_sample_set_loop(sample,loop_start,loop_end)
|
393
|
+
ret
|
394
|
+
end
|
395
|
+
def sample_set_name( sample, name: )
|
396
|
+
ret = C.fluid_sample_set_name(sample,name)
|
397
|
+
ret
|
398
|
+
end
|
399
|
+
def sample_set_pitch( sample, root_key: , fine_tune: )
|
400
|
+
ret = C.fluid_sample_set_pitch(sample,root_key,fine_tune)
|
401
|
+
ret
|
402
|
+
end
|
403
|
+
def sample_set_sound_data( sample,
|
404
|
+
data: , data24: ,
|
405
|
+
nbframes: , sample_rate: , copy_data: )
|
406
|
+
ret = C.sample_preset_set_sound_data(
|
407
|
+
sample,data,data24,nbframes,sample_rate,copy_data)
|
408
|
+
ret
|
409
|
+
end
|
410
|
+
|
411
|
+
#
|
412
|
+
def sample_sizeof()
|
413
|
+
ret = C.fluid_sample_sizeof()
|
414
|
+
ret
|
415
|
+
end
|
416
|
+
|
417
|
+
end
|
418
|
+
end
|
419
|
+
|
420
|
+
|
421
|
+
class FiddleFluidSynth
|
422
|
+
module SoundFontsLoaderIF
|
423
|
+
|
424
|
+
# for sfloader.
|
425
|
+
def sfloader_get_data( loader )
|
426
|
+
ret = C.fluid_sfloader_get_data(loader)
|
427
|
+
ret
|
428
|
+
end
|
429
|
+
|
430
|
+
def sfloader_set_callbacks( loader, open: , read: , seek: , tell: , close: )
|
431
|
+
ret = C.fluid_sfloader_set_callbacks(loader,open,read,seek,tell,close)
|
432
|
+
ret
|
433
|
+
end
|
434
|
+
|
435
|
+
#
|
436
|
+
def sfloader_set_data( loader, data: )
|
437
|
+
ret = C.fluid_sfloader_set_data(loader,data)
|
438
|
+
ret
|
439
|
+
end
|
440
|
+
|
441
|
+
# for SoundFont.
|
442
|
+
def sfont_get_data( sfont = self.sfont )
|
443
|
+
ret = C.fluid_sfont_get_data(sfont)
|
444
|
+
ret
|
445
|
+
end
|
446
|
+
def sfont_get_id( sfont = self.sfont )
|
447
|
+
ret = C.fluid_sfont_get_id(sfont)
|
448
|
+
ret
|
449
|
+
end
|
450
|
+
def sfont_get_name( sfont = self.sfont )
|
451
|
+
ret = C.fluid_sfont_get_name(sfont).to_s
|
452
|
+
ret
|
453
|
+
end
|
454
|
+
|
455
|
+
#
|
456
|
+
# ==== See Also
|
457
|
+
# - `#preset_new()`
|
458
|
+
#
|
459
|
+
# def sfont_get_preset( sfont, bknum: , prenum: )
|
460
|
+
def sfont_get_preset( sfont = self.sfont, bknum: , prenum: )
|
461
|
+
ret = C.fluid_sfont_get_preset(sfont, bknum, prenum)
|
462
|
+
#ng. if ret.null? || ret.nil?
|
463
|
+
if ret.nil? || ret.null?
|
464
|
+
ret = nil
|
465
|
+
else
|
466
|
+
ret.extend(Interface::SoundFont::Preset)
|
467
|
+
end
|
468
|
+
ret
|
469
|
+
end
|
470
|
+
|
471
|
+
#
|
472
|
+
def sfont_iteration_next( sfont = self.sfont )
|
473
|
+
ret = C.fluid_sfont_iteration_next(sfont)
|
474
|
+
#ng. if ret.null? || ret.nil?
|
475
|
+
if ret.nil? || ret.null?
|
476
|
+
ret = nil
|
477
|
+
else
|
478
|
+
ret.extend(Interface::SoundFont::Preset)
|
479
|
+
end
|
480
|
+
ret
|
481
|
+
end
|
482
|
+
def sfont_iteration_start( sfont = self.sfont )
|
483
|
+
ret = C.fluid_sfont_iteration_start(sfont)
|
484
|
+
ret
|
485
|
+
end
|
486
|
+
def sfont_set_data( sfont = self.sfont, data: )
|
487
|
+
ret = C.fluid_sfont_set_data(sfont, data)
|
488
|
+
ret
|
489
|
+
end
|
490
|
+
|
491
|
+
# synth...?
|
492
|
+
def synth_add_sfloader( synth = self.synth, loader: )
|
493
|
+
ret = C.fluid_synth_add_sfloader(synth, loader)
|
494
|
+
ret
|
495
|
+
end
|
496
|
+
|
497
|
+
def synth_get_channel_preset( synth = self.synth, ch: )
|
498
|
+
ret = C.fluid_synth_get_channel_preset(synth, ch)
|
499
|
+
ret
|
500
|
+
end
|
501
|
+
|
502
|
+
end
|
503
|
+
end
|
504
|
+
|
505
|
+
|
506
|
+
#### endof filename: soundfonts/loader.rb
|