将SoundFont转换为每个音符的.wav文件

7
有没有一种简单的方法将声音字体文件转换为.wav文件(或任何常见的音乐格式),并且每个音符都是单独的?
例如,我有一个声音字体a.sfz;我想从中得到一个文件列表A0.wavA#0.wavB0.wavC1.wavC#1.wav等。
特别是,我想要每个音符的.wav,这在我看来不是声音字体本身具有的东西(它似乎只有几个音符的样本——我假设软件应该改变声音字体中包含的样本的音调以获得其余音符的声音,但我希望以某种方式直接生成所有音符的.wav文件,这样我就不需要以任何方式改变样本的音调)。
如果有一些可以做到这一点的软件,那就太好了,请提供链接,但我没有找到任何软件(我找到的所有软件只生成相隔几个音符的.wav文件)。如果没有,我该如何以编程方式实现这一点?
6个回答

3

谢谢,这对我很有帮助。我尝试从MuseScore SoundFonts中提取.wav样本。我无法使用sf2extract完成它,但我可以通过SWAMI的GUI提取所有样本。 - esel
很高兴知道。也许你可以给我的答案点个赞。;-) - EnzoR

2
在Ubuntu上,gigtools软件包中的sf2extract可以将SF2文件中的所有样本提取为WAV格式。请保留HTML标签。

0

我已经为此编写了一个简单的工具。需要安装Node.js。

Linux的说明(适用于其他操作系统):

  1. 创建新的nodejs模块:
    mkdir midigen && cd midigen && npm init -y && npm i --save midi-writer-js
    
  2. 创建index.js文件,并添加以下内容:

    const fs = require('fs');
    const MidiWriter = require('midi-writer-js');
    
    for (let octave = 0; octave <= 8; octave++) {
      for (const note of ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#',  'G', 'G#', 'A', 'A#', 'B']) {
        const track = new MidiWriter.Track();
        track.addEvent(new MidiWriter.ProgramChangeEvent({ instrument: 10 }));
        track.addEvent(new MidiWriter.NoteEvent({ pitch: [`${note}${octave}`], duration: '8', velocity: 100 }));
        fs.writeFileSync(`${note}${octave}.mid`, new MidiWriter.Writer(track).buildFile());
      }
    }
    
    
  3. 可以自由修改八度范围、乐器类型(以匹配您的SoundFont)、时长和音量(速度)
  4. 运行node .
  5. 安装您的SoundFont
  6. 将生成的midi文件转换为wav文件:
    for f in *.mid; do timidity $f -Ow -o ${f%.mid}.wav; done
    

0

将您的sf文件导入到Audacity中,如Import>Raw Data。

然后,您可以将其导出为音频文件,例如wav或mp3格式。

我得到了一些新的音频补丁,它们是sf2格式,我的作曲软件无法识别它们。在互联网上搜索了很久也找不到答案。所以我尝试了一下使用Audacity进行转换,并且成功了。具体来说,我的文件是一个吹小号演奏音阶的文件。我删除了除第一个外的所有音符并将该单个音符导出(wav)。我将导出文件复制到我的声音库文件夹中,之后就能通过一个小文件以不同音调进行作曲了。现在... 还有约30种其他乐器可以应用这种方法!


0
你可以编写一个程序来实现这个功能。使用RtAudio库和Fluidsynth来以编程方式生成所有想要播放的音高。当这些音高被生成时,将它们作为波形文件写出。这个程序可以用于任何声音字体。你可以通过谷歌找到这些库。

这个网站上几乎任何问题都可以回答为“你可以编写一个程序来完成这个任务”。 - EnzoR

0
要将SF2 Soundfont文件转换为采样的Wav文件,您可以使用Polyphone应用程序将SF2转换为SFZ文件目录。该应用程序将创建一个SFZ目录,其中包含*.sfz可编辑的文本文件和一个子目录,其中包含从初始SF2文件中提取的所有Wav文件。您可以在"https://www.polyphone-soundfonts.com/download"上下载该应用程序,无论您使用的操作系统是什么。 要加载SF2文件,您可以点击主页左上角的图标,然后点击"打开声音库"(或类似的菜单,我的菜单是法语...),然后选择要转换的SF2文件。如果您已经加载了其他SF2文件,可以双击所需的SF2文件。

你的回答可以通过提供更多支持性信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的回答是否正确。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接