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.
Files changed (85) hide show
  1. checksums.yaml +7 -0
  2. data/.standard.yml +3 -0
  3. data/CHANGELOG.md +5 -0
  4. data/LICENSE.txt +21 -0
  5. data/README.md +138 -0
  6. data/Rakefile +14 -0
  7. data/examples/enum.rb +30 -0
  8. data/examples/example.sf2 +0 -0
  9. data/examples/ffs_arpeggio.rb +252 -0
  10. data/examples/ffs_example.rb +47 -0
  11. data/examples/ffs_fx.rb +200 -0
  12. data/examples/ffs_metronome.rb +260 -0
  13. data/examples/ffs_midiplay.rb +122 -0
  14. data/examples/ffs_simple.rb +45 -0
  15. data/examples/ffs_test1.rb +41 -0
  16. data/examples/ffs_test3.rb +50 -0
  17. data/examples/fiddle-pointer.rb +18 -0
  18. data/examples/presets-each.rb +66 -0
  19. data/examples/presets-full_scan.rb +59 -0
  20. data/examples/settings-each.rb +106 -0
  21. data/exe/ffs_midiplay.rb +122 -0
  22. data/lib/fiddle_fluidsynth/audio_output/driver.rb +104 -0
  23. data/lib/fiddle_fluidsynth/audio_output/file_renderer.rb +84 -0
  24. data/lib/fiddle_fluidsynth/audio_output.rb +7 -0
  25. data/lib/fiddle_fluidsynth/command_interface/command_interface.rb +90 -0
  26. data/lib/fiddle_fluidsynth/command_interface/handler.rb +95 -0
  27. data/lib/fiddle_fluidsynth/command_interface/server.rb +79 -0
  28. data/lib/fiddle_fluidsynth/command_interface/shell.rb +76 -0
  29. data/lib/fiddle_fluidsynth/command_interface.rb +9 -0
  30. data/lib/fiddle_fluidsynth/core_ext/fiddle.rb +142 -0
  31. data/lib/fiddle_fluidsynth/core_ext/module.rb +123 -0
  32. data/lib/fiddle_fluidsynth/fiddle_fluidsynth.rb +172 -0
  33. data/lib/fiddle_fluidsynth/logging/logging.rb +82 -0
  34. data/lib/fiddle_fluidsynth/logging.rb +6 -0
  35. data/lib/fiddle_fluidsynth/midi_input/driver.rb +77 -0
  36. data/lib/fiddle_fluidsynth/midi_input/events.rb +255 -0
  37. data/lib/fiddle_fluidsynth/midi_input/midi_input.rb +70 -0
  38. data/lib/fiddle_fluidsynth/midi_input/player.rb +289 -0
  39. data/lib/fiddle_fluidsynth/midi_input/router.rb +225 -0
  40. data/lib/fiddle_fluidsynth/midi_input.rb +11 -0
  41. data/lib/fiddle_fluidsynth/misc/misc.rb +162 -0
  42. data/lib/fiddle_fluidsynth/misc.rb +6 -0
  43. data/lib/fiddle_fluidsynth/sequencer/events.rb +679 -0
  44. data/lib/fiddle_fluidsynth/sequencer/sequencer.rb +384 -0
  45. data/lib/fiddle_fluidsynth/sequencer.rb +7 -0
  46. data/lib/fiddle_fluidsynth/settings/settings.rb +465 -0
  47. data/lib/fiddle_fluidsynth/settings.rb +6 -0
  48. data/lib/fiddle_fluidsynth/soundfonts/generators.rb +128 -0
  49. data/lib/fiddle_fluidsynth/soundfonts/loader.rb +506 -0
  50. data/lib/fiddle_fluidsynth/soundfonts/modulators.rb +247 -0
  51. data/lib/fiddle_fluidsynth/soundfonts/soundfonts.rb +64 -0
  52. data/lib/fiddle_fluidsynth/soundfonts/voices.rb +178 -0
  53. data/lib/fiddle_fluidsynth/soundfonts.rb +11 -0
  54. data/lib/fiddle_fluidsynth/synth/audio_rendering.rb +100 -0
  55. data/lib/fiddle_fluidsynth/synth/effect/chorus.rb +269 -0
  56. data/lib/fiddle_fluidsynth/synth/effect/iir_filter.rb +81 -0
  57. data/lib/fiddle_fluidsynth/synth/effect/ladspa.rb +172 -0
  58. data/lib/fiddle_fluidsynth/synth/effect/reverb.rb +207 -0
  59. data/lib/fiddle_fluidsynth/synth/effect.rb +10 -0
  60. data/lib/fiddle_fluidsynth/synth/midi/messages.rb +292 -0
  61. data/lib/fiddle_fluidsynth/synth/midi/setup.rb +235 -0
  62. data/lib/fiddle_fluidsynth/synth/midi/tuning.rb +128 -0
  63. data/lib/fiddle_fluidsynth/synth/midi.rb +9 -0
  64. data/lib/fiddle_fluidsynth/synth/params/params.rb +200 -0
  65. data/lib/fiddle_fluidsynth/synth/params.rb +8 -0
  66. data/lib/fiddle_fluidsynth/synth/soundfont_management.rb +210 -0
  67. data/lib/fiddle_fluidsynth/synth/synth.rb +114 -0
  68. data/lib/fiddle_fluidsynth/synth/voice_control.rb +94 -0
  69. data/lib/fiddle_fluidsynth/synth.rb +18 -0
  70. data/lib/fiddle_fluidsynth/types/types.rb +131 -0
  71. data/lib/fiddle_fluidsynth/types.rb +10 -0
  72. data/lib/fiddle_fluidsynth/util/callback.rb +585 -0
  73. data/lib/fiddle_fluidsynth/util/interface/settings.rb +689 -0
  74. data/lib/fiddle_fluidsynth/util/interface/soundfont.rb +115 -0
  75. data/lib/fiddle_fluidsynth/util/interface/soundfont_preset.rb +69 -0
  76. data/lib/fiddle_fluidsynth/util/interface/soundfont_sample.rb +61 -0
  77. data/lib/fiddle_fluidsynth/util/interface.rb +11 -0
  78. data/lib/fiddle_fluidsynth/util/module_hier.rb +403 -0
  79. data/lib/fiddle_fluidsynth/util/util.rb +467 -0
  80. data/lib/fiddle_fluidsynth/util-after.rb +12 -0
  81. data/lib/fiddle_fluidsynth/util.rb +37 -0
  82. data/lib/fiddle_fluidsynth/version.rb +10 -0
  83. data/lib/fiddle_fluidsynth.rb +57 -0
  84. data/sig/fiddle_fluidsynth.rbs +4 -0
  85. metadata +128 -0
@@ -0,0 +1,210 @@
1
+ #
2
+ # filename: fiddle-fluidsynth/synth/soundfont_management.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 to load and unload SoundFonts.
12
+ # ==== References
13
+ # - API Reference, Synthesizer/[SoundFont Management](https://www.fluidsynth.org/api/group__audio__rendering.html)
14
+ # - [library fiddle](https://docs.ruby-lang.org/ja/latest/library/fiddle.html)
15
+ #
16
+
17
+ #
18
+ module C
19
+
20
+ # Lifecycle Functions.
21
+ #
22
+ #
23
+
24
+
25
+ # Functions.
26
+ #
27
+ #
28
+
29
+ # Add a SoundFont.
30
+ extern 'int fluid_synth_add_sfont(fluid_synth_t*, void*)'
31
+
32
+ # Get bank offset of a loaded SoundFont.
33
+ extern 'int fluid_synth_get_bank_offset(fluid_synth_t*, int)'
34
+
35
+ # Get SoundFont by index.
36
+ extern 'fluid_sfont_t* fluid_synth_get_sfont(fluid_synth_t*, unsigned int)'
37
+
38
+ # Get SoundFont by ID.
39
+ extern 'fluid_sfont_t* fluid_synth_get_sfont_by_id(fluid_synth_t*, int)'
40
+
41
+ # Get SoundFont by name.
42
+ extern 'fluid_sfont_t* fluid_synth_get_sfont_by_name(fluid_synth_t*, char*)'
43
+
44
+ # Remove a SoundFont from the SoundFont stack without deleting it.
45
+ extern 'int fluid_synth_remove_sfont(fluid_synth_t*, fluid_sfont_t*)'
46
+
47
+ # Offset the bank numbers of a loaded SoundFont, i.e. subtract offset
48
+ # from any bank number when assigning instruments.
49
+ extern 'int fluid_synth_set_bank_offset(fluid_synth_t*, int, int)'
50
+
51
+ # Count number of loaded SoundFont files.
52
+ extern 'int fluid_synth_sfcount(fluid_synth_t*)'
53
+
54
+ # Load a SoundFont file (filename is interpreted by SoundFont loaders).
55
+ extern 'int fluid_synth_sfload(fluid_synth_t*, char*, int)'
56
+
57
+ # Reload a SoundFont.
58
+ extern 'int fluid_synth_sfreload(fluid_synth_t*, int)'
59
+
60
+ # Schedule a SoundFont for unloading.
61
+ extern 'int fluid_synth_sfunload(fluid_synth_t*, int, int)'
62
+
63
+ end
64
+ end
65
+
66
+
67
+ #
68
+ #
69
+ #
70
+ class FiddleFluidSynth
71
+ module Interface
72
+ module SoundFont; end
73
+ end
74
+ end
75
+
76
+
77
+ # Lifecycle Functions.
78
+ #
79
+ #
80
+
81
+
82
+ # Functions.
83
+ #
84
+ #
85
+ class FiddleFluidSynth
86
+
87
+ #
88
+ def synth_add_sfont( synth=self.synth, sfont: )
89
+ ret = C.fluid_synth_add_sfont(synth,sfont)
90
+ ret
91
+ end
92
+
93
+ def synth_get_bank_offset( synth=self.synth, sfid: )
94
+ ret = C.fluid_synth_get_bank_sfont(synth, sfid)
95
+ ret
96
+ end
97
+
98
+ #
99
+ # ==== See Also
100
+ # - soundfonts/loader.rb/`.#sfont_new()`
101
+ #
102
+ def synth_get_sfont( synth=self.synth, num: )
103
+ ret = C.fluid_synth_get_sfont(synth, num)
104
+ # ret.extend(Interface::SoundFont)
105
+ if ret.nil? || ret.null?
106
+ ret = nil
107
+ else
108
+ ret.extend(Interface::SoundFont)
109
+ end
110
+ ret
111
+ end
112
+
113
+ #
114
+ # ==== See Also
115
+ # - soundfonts/loader.rb/`.#sfont_new()`
116
+ #
117
+ # def synth_get_sfont_by_id( synth: , id: )
118
+ def synth_get_sfont_by_id( synth=self.synth, id: )
119
+ ret = C.fluid_synth_get_sfont_by_id(synth, id)
120
+ # ret.extend(Interface::SoundFont)
121
+ if ret.nil? || ret.null?
122
+ ret = nil
123
+ else
124
+ ret.extend(Interface::SoundFont)
125
+ end
126
+ ret
127
+ end
128
+
129
+ #
130
+ # ==== See Also
131
+ # - soundfonts/loader.rb/`.#sfont_new()`
132
+ #
133
+ def synth_get_sfont_by_name( synth=self.synth, name: )
134
+ ret = C.fluid_synth_get_sfont_by_name(synth, name)
135
+ # ret.extend(Interface::SoundFont)
136
+ if ret.nil? || ret.null?
137
+ ret = nil
138
+ else
139
+ ret.extend(Interface::SoundFont)
140
+ end
141
+ ret
142
+ end
143
+
144
+ #
145
+ def synth_remove_sfont( synth=self.synth, sfont: )
146
+ ret = C.fluid_synth_remove_sfont(synth,sfont)
147
+ ret
148
+ end
149
+
150
+ #
151
+ def synth_set_bank_offset( synth=self.synth, sfid: , offset: )
152
+ ret = C.fluid_synth_set_bank_offset(synth, sfid, offset)
153
+ ret
154
+ end
155
+
156
+ #
157
+ # ==== See Also
158
+ # - #synth_sfload()
159
+ #
160
+ def synth_sfcount( synth = self.synth )
161
+ ret = C.fluid_synth_sfcount(synth)
162
+ ret
163
+ end
164
+
165
+ #
166
+ # def synth_sfload( synth: , filename: , reset_presets: )
167
+ def synth_sfload( synth=self.synth,
168
+ filename: , reset_presets: self.reset_presets,
169
+ verbose_f: false )
170
+ #
171
+ $stderr.print "(**) loading SoundFont: #{filename}..." if verbose_f
172
+ if reset_presets
173
+ _reset_presets = 1
174
+ else
175
+ _reset_presets = 0
176
+ end
177
+
178
+ ret = C.fluid_synth_sfload(synth,filename, _reset_presets)
179
+ if ret == FLUID_FAILED
180
+ $stderr.puts
181
+ raise "Cannot load soundfont: #{self.soundfont_full_path}"
182
+ else
183
+ $stderr.puts " ok (#{ret})."
184
+ end
185
+
186
+ @sfid_last = ret
187
+ @sfid_ary << @sfid_last
188
+
189
+ $stderr.puts "(**) @sfid_ary: #{@sfid_ary} (SoundFont count:" +
190
+ " #{self.synth_sfcount(synth)}/synth: 0x#{synth.to_i.to_s(16)})" if verbose_f
191
+
192
+ ret
193
+ end
194
+
195
+ def synth_sfreload( synth=self.synth, id: self.sfid)
196
+ ret = C.fluid_synth_sfreload(synth,id)
197
+ ret
198
+ end
199
+
200
+ def synth_sfunload( synth=self.synth, id: self.sfid,
201
+ reset_presets: self.reset_presets )
202
+ ret = C.fluid_synth_sfunload(synth,id,reset_presets)
203
+ ret
204
+ end
205
+
206
+
207
+ end
208
+
209
+
210
+ #### endof filename: fiddle-fluidsynth/synth/soundfont_management.rb
@@ -0,0 +1,114 @@
1
+ #
2
+ # filename: fiddle-fluidsynth/synth/synth.rb
3
+ #
4
+
5
+
6
+ # References
7
+ # - fluidstynth.org, [API Reference](https://www.fluidsynth.org/api/modules.html)
8
+ #
9
+ class FiddleFluidSynth
10
+
11
+ #
12
+ module C
13
+
14
+ # SoundFont synthesizer.
15
+ # ==== References
16
+ # - API Reference, [Synthesizer](https://www.fluidsynth.org/api/group__synth.html)
17
+ # - [library fiddle](https://docs.ruby-lang.org/ja/latest/library/fiddle.html)
18
+ #
19
+
20
+ # Lifecycle Functions.
21
+ #
22
+ #
23
+
24
+ # Create new FluidSynth instance.
25
+ extern 'fluid_synth_t* new_fluid_synth(fluid_settings_t*)'
26
+
27
+ # Delete a FluidSynth instance.
28
+ extern 'void delete_fluid_synth(fluid_synth_t*)'
29
+
30
+
31
+ # Functions.
32
+ #
33
+ #
34
+
35
+ # Get a textual representation of the last error.
36
+ extern 'char* fluid_synth_error(fluid_synth_t*)'
37
+
38
+ # Get the synth CPU load value.
39
+ extern 'double fluid_synth_get_cpu_load(fluid_synth_t*)'
40
+
41
+ end
42
+ end
43
+
44
+
45
+ # Lifecycle Functions.
46
+ #
47
+ #
48
+ class FiddleFluidSynth
49
+
50
+ #
51
+ def self.synth_new( settings )
52
+ ret = C.new_fluid_synth(settings)
53
+ ret
54
+ end
55
+ def synth_new( settings=self.settings )
56
+ # ret = C.new_fluid_synth(settings)
57
+ self.class.synth_new(settings)
58
+ end
59
+
60
+ def self.synth_delete( synth )
61
+ ret = C.delete_fluid_synth(synth)
62
+ ret
63
+ end
64
+ def synth_delete( synth=self.synth )
65
+ # ret = C.delete_fluid_synth(synth)
66
+ # ret
67
+ self.class.synth_delete(synth)
68
+ end
69
+
70
+ end
71
+
72
+
73
+ # Functions.
74
+ #
75
+ #
76
+ class FiddleFluidSynth
77
+
78
+ #
79
+ def synth_error( synth=self.synth )
80
+ deprecated_msg(__method__)
81
+ ret = C.fluid_synth_error(synth)
82
+ ret
83
+ end
84
+
85
+ #
86
+ def synth_get_cpu_load( synth=self.synth )
87
+ ret = C.fluid_synth_get_cpu_load(synth)
88
+ ret
89
+ end
90
+
91
+ # in soundfonts/loader.rb:
92
+ #
93
+ # def synth_add_sfloader( synth = self.synth, loader: )
94
+ # ret = C.fluid_synth_add_sfloader(synth, loader)
95
+ # ret
96
+ # end
97
+ #
98
+ # def synth_get_channel_preset( synth = self.synth, ch: )
99
+ # ret = C.fluid_synth_get_channel_preset(synth, ch)
100
+ # ret
101
+ # end
102
+
103
+
104
+ # in settings/settings.rb:
105
+ #
106
+ # def synth_get_settings( synth = self.synth )
107
+ # self.class.synth_get_settings(synth)
108
+ # end
109
+
110
+
111
+ end
112
+
113
+
114
+ #### endof filename: fiddle-fluidsynth/synth/synth.rb
@@ -0,0 +1,94 @@
1
+ #
2
+ # filename: fiddle-fluidstynth/synth/voice_control.rb
3
+ #
4
+
5
+
6
+ # References
7
+ # - fluidsynth.org, [API Reference](https://www.fluidsynth.org/api/modules.html)
8
+ #
9
+ class FiddleFluidSynth
10
+
11
+ # Low-level access to synthesis voices.
12
+ # ==== References
13
+ # - API Reference, Synthesizer/[Voice Control](https://www.fluidsynth.org/api/group__voice__control.html)
14
+ # - [library fiddle](https://docs.ruby-lang.org/ja/latest/library/fiddle.html)
15
+ #
16
+
17
+ #
18
+ module C
19
+
20
+ # Lifecycle Functions.
21
+ #
22
+ #
23
+
24
+
25
+ # Functions.
26
+ #
27
+ #
28
+
29
+ # Allocate a synthesis voice.
30
+ extern 'fluid_voice_t* fluid_synth_alloc_voice' +
31
+ '(fluid_synth_t*, fluid_sample_t*, int, int, int)'
32
+
33
+ # Get list of currently playing voices.
34
+ extern 'void fluid_synth_get_voicelist' +
35
+ '(fluid_synth_t*, fluid_voice_t*, int, int)'
36
+
37
+ # Create and start voices using an arbitrary preset and a MIDI note
38
+ # on event.
39
+ extern 'int fluid_synth_start' +
40
+ '(fluid_synth_t*, unsigned int, fluid_preset_t*, int, int, int, int)'
41
+
42
+ # Activate a voice previously allocated with fluid_synth_alloc_voice().
43
+ extern 'void fluid_synth_start_voice(fluid_synth_t*, fluid_voice_t*)'
44
+
45
+ # Stop notes for a given note event voice ID.
46
+ extern 'int fluid_synth_stop(fluid_synth_t*, unsigned int)'
47
+
48
+
49
+ end
50
+ end
51
+
52
+
53
+ # Lifecycle Functions.
54
+ #
55
+ #
56
+
57
+
58
+ # Functions.
59
+ #
60
+ #
61
+ class FiddleFluidSynth
62
+
63
+ #
64
+ def synth_alloc_voice( synth=self.synth, sample: , ch: , key: , vel: )
65
+ ret = C.fluid_synth_alloc_voice(synth,sample,ch,key,vel)
66
+ ret
67
+ end
68
+
69
+ def synth_get_voicelist( synth=self.synth, buf: , bufsize: , id: )
70
+ ret = C.fluid_synth_get_voicelist(synth,buf,bufsize,id)
71
+ ret
72
+ end
73
+
74
+ def synth_start( synth=self.synth,
75
+ id: , preset: , audio_ch: , ch: , key: , vel: )
76
+ ret = C.fluid_synth_start(synth, id, preset, audio_ch, ch, key, vel)
77
+ ret
78
+ end
79
+
80
+ def synth_start_voice( synth=self.synth, voice: )
81
+ ret = C.fluid_synth_start_voice(synth, voice)
82
+ ret
83
+ end
84
+
85
+ def synth_stop( synth=self.synth, voice_id: )
86
+ ret = C.fluid_synth_stop(synth, voice_id)
87
+ ret
88
+ end
89
+
90
+
91
+ end
92
+
93
+
94
+ #### endof filename: fiddle-fluidstynth/synth/voice_control.rb
@@ -0,0 +1,18 @@
1
+ #
2
+ # filename: soundfonts.rb
3
+ #
4
+
5
+ # [Synthesizer](https://www.fluidsynth.org/api/group__synth.html)
6
+ #
7
+ #
8
+ require_relative "./synth/synth"
9
+
10
+ #
11
+ require_relative "./synth/audio_rendering"
12
+ require_relative "./synth/effect"
13
+ require_relative "./synth/midi"
14
+ require_relative "./synth/soundfont_management"
15
+ require_relative "./synth/params"
16
+ require_relative "./synth/voice_control"
17
+
18
+ ####
@@ -0,0 +1,131 @@
1
+ #
2
+ # filename: fiddle-fluidstynth/types/types.rb
3
+ #
4
+
5
+
6
+ # References
7
+ # - fluidsynth.org, [API Reference](https://www.fluidsynth.org/api/modules.html)
8
+ #
9
+ class FiddleFluidSynth
10
+
11
+ # Type declarations.
12
+ # ==== References
13
+ # - API References, [Types](https://www.fluidsynth.org/api/group__Types.html)
14
+ # - [library fiddle](https://docs.ruby-lang.org/ja/latest/library/fiddle.html)
15
+ #
16
+
17
+ #
18
+ module C
19
+
20
+ # these typealias-es are just for readability.
21
+ #
22
+ #
23
+
24
+ #
25
+ #
26
+ #
27
+ typealias 'size_t', 'unsigned int'
28
+
29
+
30
+
31
+ # Audio driver instance.
32
+ typealias 'fluid_audio_driver_t', 'void'
33
+
34
+ # Shell Command Handler.
35
+ typealias 'fluid_cmd_handler_t', 'void'
36
+
37
+ # Command handler hash table.
38
+ typealias 'fluid_cmd_hash_t', 'void'
39
+
40
+ # Sequencer event.
41
+ typealias 'fluid_event_t', 'void'
42
+
43
+ # Callback struct to perform custom file loading of soundfonts.
44
+ typealias 'fluid_file_callbacks_t', 'void'
45
+
46
+ # Audio file renderer instance.
47
+ typealias 'fluid_file_renderer_t', 'void'
48
+
49
+ # Input stream descriptor.
50
+ typealias 'fluid_istream_t', 'int'
51
+
52
+ # LADSPA effects instance.
53
+ typealias 'fluid_ladspa_fx_t', 'void'
54
+
55
+ # A typedef for C99's type long long, which is at least 64-bit wide,
56
+ # as guaranteed by the C99.
57
+ typealias 'fluid_long_long_t', 'long long'
58
+
59
+ # MIDI driver instance.
60
+ typealias 'fluid_midi_driver_t', 'void'
61
+
62
+ # MIDI event.
63
+ typealias 'fluid_midi_event_t', 'void'
64
+
65
+ # MIDI router rule.
66
+ typealias 'fluid_midi_router_rule_t', 'void'
67
+
68
+ # MIDI router instance.
69
+ typealias 'fluid_midi_router_t', 'void'
70
+
71
+ # SoundFont modulator.
72
+ typealias 'fluid_mod_t', 'void'
73
+
74
+ # Output stream descriptor.
75
+ typealias 'fluid_ostream_t', 'int'
76
+
77
+ # MIDI player instance.
78
+ typealias 'fluid_player_t', 'void'
79
+
80
+ # SoundFont preset.
81
+ typealias 'fluid_preset_t', 'void'
82
+
83
+ # SoundFont sample.
84
+ typealias 'fluid_sample_t', 'void'
85
+
86
+ # Unique client IDs used by the sequencer and fluid_event_t, obtained
87
+ # by fluid_sequencer_register_client() and
88
+ # fluid_sequencer_register_fluidsynth()
89
+ typealias 'fluid_seq_id_t', 'short'
90
+
91
+ # Sequencer instance.
92
+ typealias 'fluid_sequencer_t', 'void'
93
+
94
+ # TCP/IP shell server instance.
95
+ typealias 'fluid_server_t', 'void'
96
+
97
+ # Configuration settings instance.
98
+ typealias 'fluid_settings_t', 'void'
99
+
100
+ # SoundFont loader plugin.
101
+ typealias 'fluid_sfloader_t', 'void'
102
+
103
+ # SoundFont.
104
+ typealias 'fluid_sfont_t', 'void'
105
+
106
+ # Command shell.
107
+ typealias 'fluid_shell_t', 'void'
108
+
109
+ # Synthesizer instance.
110
+ typealias 'fluid_synth_t', 'void'
111
+
112
+ # Synthesis voice instance.
113
+ typealias 'fluid_voice_t', 'void'
114
+
115
+
116
+ end
117
+ end
118
+
119
+
120
+ #
121
+ #
122
+ #
123
+ class FiddleFluidSynth
124
+
125
+ # typedefs are declaration only in header file. So we must NOT define here...
126
+ # nothing to do.
127
+
128
+ end
129
+
130
+
131
+ #### endof filename: fiddle-fluidstynth/types/types.rb
@@ -0,0 +1,10 @@
1
+ #
2
+ # filename: soundfonts.rb
3
+ #
4
+
5
+ # [Types](https://www.fluidsynth.org/api/group__Types.html)
6
+ #
7
+ #
8
+ require_relative "./types/types"
9
+
10
+ ####