Я создаю приложение для записи музыки во Flask.На бэкэнде я использую Midiutil для генерации миди-файлов и 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 , и они воспроизводятся нормально, как я хочу.