我有一个Midi文件,我已经使用以下代码在Android中使用MediaPlayer播放了该Midi文件:
val mMediaPlayer = MediaPlayer.create(context, R.raw.test_ring_1)
mMediaPlayer?.start()
Run Code Online (Sandbox Code Playgroud)
它默认使用一种乐器(如钢琴)来演奏,现在我想添加soundfont(sf2 / sf3)文件来使用不同的乐器和混响效果来演奏Midi音符。
请指导达到预期结果的方法。
我正在寻找一个可以从声音字体/声音库合成声音的库
最好是在C#中,但其他编程语言也可以
也许视频游戏库可以做到这一点?需要建议
有没有一种简单的方法可以将声音字体文件转换为.wav文件(或任何常见的音乐格式,真的),每个音符都分开?
假设我有一个声音字体a.sfz;我想获得它的文件列表A0.wav,A#0.wav,B0.wav,C1.wav,C#1.wav,等。
特别是,我想.wav为每个音符设置一个,在我看来这不是声音字体本身所具有的(似乎它只有几个音符分开的样本——我认为软件应该改变声音的音高)包含在声音字体中的样本以获得剩余音符的声音,但我想以某种方式.wav直接为所有音符生成文件,这样我就不需要以任何方式改变样本的音高)。
如果有一些软件可以做到这一点,完美,请提供一个链接,但我没有找到任何(我发现的所有那些只生成.wav几个注释的文件)。如果没有,我将如何以编程方式执行此操作?
我用 Polyphone 创建了一个声音字体来创建一个新的乐器“bagana”。
它只有 1 个乐器“Bagana”,还有 1 个现在的“Bagana”。
我尝试用 FluidSynth 播放一个 MIDI 文件(只是一个钢琴曲),它奏效了。当我通过新的声音引导它时,它说:
fluidsynth: warning: No preset found on channel 9 [bank=128 prog=0]
Run Code Online (Sandbox Code Playgroud)
未加载声音字体是否有问题?
我正在使用以下命令运行 MIDI:
>>fluidsynth -C0 -R1 -l -a alsa -F out.wav ./bagana.sf2 /home/dorien/UA/projects/bagana/Reunion_Example.mid
Run Code Online (Sandbox Code Playgroud) 我有一个通过SONiVOX EAS库播放MIDI文件的应用程序.是否可以将自己的DLS或SoundFont波表加载到播放器中并让库使用这些声音进行MIDI播放?
有没有办法允许Android通过使用FluidSynth使用SoundFont文件播放声音?我一直在寻找jOrgan,但源代码似乎有点......至少可以说是压倒性的.
问题是android中不支持java声音API,因此我所参与的项目的一个很好的样本将是Java Sound Demo的 Midi Synth.
我认为我应该没有从C到JNI的一些移植,但是在处理音频功能方面我不知情(我今天只阅读并开始研究).
任何帮助?
此外,我已经阅读了以下线程并尝试了可用的java/android项目,并为此提供了可能的解决方案:
midi java-native-interface android audio-streaming soundfont
我刚刚开始使用midi.js,到目前为止,它看起来确实很整洁。我目前正在像这样一次加载所有声音字体:
MIDI.loadPlugin({
soundfontUrl: "js/MIDI/soundfont/FluidR3_GM/",
instrument: instruments,
callback: function() {
app.MIDIManager.midiLoaded = true;
console.log("DONE LOADING");
}
});
Run Code Online (Sandbox Code Playgroud)
随着仪器阵列的增加,开始需要花费一些时间来完成加载。有没有一种方法可以仅在需要时动态加载仪器?我可以找到加载乐器的唯一方法是对loadPlugin的调用。我也找不到任何全面的API文档(我在演示页面和github上查看了),因此,如果我只是想念我想要链接到完整文档的链接。
我创建了一个sfz文件并编译了相应的仪器样本文件树。
是否有软件可以将此sfz文件树转换为sf2声音字体文件?
原因是:我可以轻松创建sfz文件树,并轻松使用该sf2文件。然而,创建sf2需要特殊的软件并播放sfz似乎不受支持timidity。
是否有一个函数可以返回FluidSynth中声音文件中所有乐器(预设名称)的列表,或至少返回每个音库中的预设数量?
soundfont ×9
midi ×5
android ×3
audio ×3
.net ×1
c# ×1
fluidsynth ×1
instruments ×1
javascript ×1
midi.js ×1
sampling ×1
synthesizer ×1
wav ×1