Class: FiddleFluidSynth::ModuleBase::SoundFont

Inherits:
FiddleFluidSynth::ModuleBase show all
Defined in:
lib/fiddle_fluidsynth/util/module_hier.rb,
lib/fiddle_fluidsynth/util/module_hier.rb,
lib/fiddle_fluidsynth/util/module_hier.rb,
lib/fiddle_fluidsynth/util/module_hier.rb

Direct Known Subclasses

Bank

Defined Under Namespace

Classes: Bank

Instance Attribute Summary collapse

Attributes inherited from FiddleFluidSynth::ModuleBase

#fluidsynth_instance, #parent, #settings

Instance Method Summary collapse

Methods inherited from FiddleFluidSynth::ModuleBase

#soundfont

Constructor Details

#initialize(parent:, fluidsynth_instance:, value: nil, sub_new_f: true) ⇒ SoundFont

Args

value

NOT used.



170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
# File 'lib/fiddle_fluidsynth/util/module_hier.rb', line 170

def initialize( parent: , fluidsynth_instance: , value: nil, sub_new_f: true )
  #_val = parent.sfonts[@sfid-1]
  super(parent: parent, fluidsynth_instance: fluidsynth_instance,
        value: value, sub_new_f: false)

  #
  unless value.nil?
    @sfid = fluidsynth_instance.sfont_get_id(value)
  else
    @sfid = nil
  end
  @map_preset = {
    sfid: {
      bknum: {
        prenum: { },
      },
    },
  }

  #
  if sub_new_f
    self.init_sub
  end

end

Instance Attribute Details

#map_presetObject (readonly)

Returns the value of attribute map_preset.



196
197
198
# File 'lib/fiddle_fluidsynth/util/module_hier.rb', line 196

def map_preset
  @map_preset
end

#sfidObject

Returns the value of attribute sfid.



195
196
197
# File 'lib/fiddle_fluidsynth/util/module_hier.rb', line 195

def sfid
  @sfid
end

Instance Method Details

#bank(at_bknum = 0) ⇒ Object



223
224
225
226
227
# File 'lib/fiddle_fluidsynth/util/module_hier.rb', line 223

def bank( at_bknum = 0)
  # @bank.bank = at_bknum
  @bank.bknum = at_bknum
  @bank
end

#countObject



210
211
212
213
# File 'lib/fiddle_fluidsynth/util/module_hier.rb', line 210

def count
  ret = self.fluidsynth_instance.synth_sfcount()
  ret
end

#full_pathObject



230
231
232
# File 'lib/fiddle_fluidsynth/util/module_hier.rb', line 230

def full_path
  parent.soundfont_fullpath
end

#init_subObject



218
219
220
221
222
# File 'lib/fiddle_fluidsynth/util/module_hier.rb', line 218

def init_sub
  @bank = Bank.new(
            parent: self, fluidsynth_instance: fluidsynth_instance,
            value: nil, sub_new_f: true)
end

#load(filename: self.full_path, reset_presets: parent.reset_presets, synth: self.fluidsynth_instance.synth) ⇒ Object



234
235
236
237
238
# File 'lib/fiddle_fluidsynth/util/module_hier.rb', line 234

def load( filename: self.full_path, reset_presets: parent.reset_presets,
          synth: self.fluidsynth_instance.synth )
  self.fluidsynth_instance.synth_sfload(
    filename: filename, reset_presets: reset_presets, synth: synth)
end

#name(sfont = self.value) ⇒ Object



241
242
243
244
245
246
# File 'lib/fiddle_fluidsynth/util/module_hier.rb', line 241

def name( sfont = self.value )
  # name  = self.fluidsynth_instance.sfont_get_name(sfont).to_s
  name  = self.fluidsynth_instance.sfont_get_name(sfont)
  ret   = name
  ret
end

#preset_iter(debug_f: false, &blk) ⇒ Object Also known as: each_preset

&blk

{|preset| }

See Also

  • fluidsynth_settings_foreach()



263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
# File 'lib/fiddle_fluidsynth/util/module_hier.rb', line 263

def preset_iter( debug_f: false, &blk )
  sfont = self.value
  cnt = 0
  self.preset_iter_reset(sfont)
  preset = self.fluidsynth_instance.sfont_iteration_next(sfont)
  cnt += 1

  #ng. while !(preset&.null?)
  while !(preset.nil? || preset.null?)
    $stderr.puts "cnt: #{cnt}: #{preset.inspect}" if debug_f
    blk.call(preset)

    preset = self.fluidsynth_instance.sfont_iteration_next(sfont)
    cnt += 1
  end

  cnt
end

#preset_iter_reset(_sfont = self.value) ⇒ Object



251
252
253
# File 'lib/fiddle_fluidsynth/util/module_hier.rb', line 251

def preset_iter_reset( _sfont = self.value )
  self.fluidsynth_instance.sfont_iteration_start(_sfont)
end

#scan_presetsObject



283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
# File 'lib/fiddle_fluidsynth/util/module_hier.rb', line 283

def scan_presets
  _sfnm = self.name
  @map_preset[_sfnm] = {}

  #
  ret = self.each_preset{|preset|
    bknum   = self.fluidsynth_instance.preset_get_banknum(preset)
    prenum  = self.fluidsynth_instance.preset_get_num(preset)
    prename = self.fluidsynth_instance.preset_get_name(preset)

    @map_preset[_sfnm][bknum] ||= {}
    @map_preset[_sfnm][bknum][prenum] = prename
  }

  ret
end

#value(debug_f: false) ⇒ Object

def value( _sfid = self.sfid )



199
200
201
202
203
204
205
206
207
208
# File 'lib/fiddle_fluidsynth/util/module_hier.rb', line 199

def value( debug_f: false )
  _sfid = self.sfid
  # ret = self.fluidsynth_instance.sfonts[_sfid-1]
  # ret = self.fluidsynth_instance.synth_get_sfont_by_id(_sfid)
  idx = self.fluidsynth_instance.sfid_ary.index(_sfid)
  ret = self.fluidsynth_instance.sfonts[idx]
  $stderr.puts "{#{self.class}##{__method__}} _sfid: #{_sfid}," +
    " 0x#{ret.to_i.to_s(16)}:#{ret.class}" if debug_f
  ret
end