当前位置: 首页 > 知识库问答 >
问题:

Soundfonts播放MIDI文件时不会衰减

阙阳
2023-03-14

我一直在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个答案

吕高雅
2023-03-14

如果你正在使用你的sf online,请说:

你的声音字体。停止(YourAudioContext.currentTime 0.0);

当你停止留言时,说0.0立即结束

 类似资料:
  • 我现在找了一段时间,想做什么都找不到答案。 我想播放一个midi文件,并在播放时在屏幕上显示音符。当一个音符停止播放时,它应该从屏幕上消失。 我可以用音序器播放midi,但不知道如何让音符播放,或者何时停止播放音符。 我研究过ControllerEventListeners和MetaEventListeners,但仍然不知道如何做到这一点。 任何帮助都将不胜感激。

  • 需要一些帮助。视频加载在浏览器中,但从未开始播放。我正在使用hls.js将m3u8播放列表流式传输到浏览器。并且我使用FFmpeg创建ts和m3u8文件。 对于FFmpeg: HTML代码:

  • 我无法在我的MediaPlayer应用程序中运行某个特定的流。我知道该应用程序可以工作,但当我决定更改我的流媒体服务时,新的URL无法工作。将这个URL插入网络浏览器确实有效。以下是我的相关代码: 然后,在onPrepared()中: 这是我的LogCat(在装有Android 4.3的三星Galaxy Nexus上运行): 有什么想法吗? 编辑 我做了更多的挖掘,并为上面提供的链接设置了一个Ht

  • 当我一次又一次点击播放按钮时,它会同时播放多次。我想停止多重播放。这是代码: 媒体播放器和按钮的对象 按钮单击事件监听器以播放音频 按钮单击事件侦听器以停止音频 任何帮助都将不胜感激。谢谢

  • 音乐作者:denny schneidemesser(by-nc-nd) 知道这是怎么回事吗?

  • 当我尝试播放我的音乐时,Discord机器人不会播放音乐。它使用ytdl核心和ffmpeg。我的代码是: 每当我尝试播放歌曲时,都会发生以下错误: (节点:5180)未处理的PromisejectionWarning:错误:找不到FFmpeg/avconv!在功能上。getInfo(C:\Users\picar\Desktop\DiscordMusicBot\node\u modules\pris