Soundfonts воспроизводит MIDI-файл без затухания
Я создавал приложение для записи музыки во Flask. На бэкэнде я использую Midiutil для генерации midi-файлов и Midi.js на фронт- энде для воспроизведения файлов.
Я записал и собрал свой звуковой шрифт, используя Polyphone, и преобразовал из sf2 в JS с помощью soundfont_builder.rb.
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что 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-файле?
Я протестировал свои MIDI-файлы локально с FluidSynth, и они воспроизводятся нормально, как я хочу
1 ответ
если вы используете свой sf в сети, скажите:
yoursoundfont.stop(youraudioontext.currentTime + 0.0);
Когда вы останавливаете заметку, скажите 0,0, чтобы мгновенно завершить