Soundfonts播放MIDI文件而不会丢失

时间:2018-05-22 22:34:27

标签: midi soundfont fluidsynth midi.js

我一直在Flask中构建音乐符号应用程序。在后端,我使用Midiutil生成midi文件,并在前端生成Midi.js来播放文件。

我使用Polyphone记录并构建了我的声音,并使用soundfont_builder.rb从sf2转换为JS。

我现在面临的问题是soundfont_builder会导致我不想要的音符长时间衰减。

def generate_midi(program, note_value, file)
  include MIDI
  seq = Sequence.new()
  track = Track.new(seq)

  seq.tracks << track
  track.events << ProgramChange.new(0, Integer(program))
  track.events << NoteOn.new(0, note_value, VELOCITY, 0) # channel, note, velocity, delta
  track.events << NoteOff.new(0, note_value, VELOCITY, DURATION)

有没有办法导航这个,以便我的音符不会播放或短于midi文件定义的长度?

我已在本地使用FluidSynth测试了我的midi文件,它们可以正常播放。

1 个答案:

答案 0 :(得分:0)

如果您在网上使用科幻小说,请说:

yoursoundfont.stop(youraudioontext.currentTime + 0.0);

当你停止笔记时说 0.0 立即结束