Would it be feasible to process an .sf2 sound font file to produce your sampler format?
I have some instrument sound fonts that I would want to use in samplerbox, but they are in existing sound font file format.
Would it be feasible to process an .sf2 sound font file to produce your sampler format?
I have some instrument sound fonts that I would want to use in samplerbox, but they are in existing sound font file format.
If you want to extract WAV files from a SF2, here is a way to start:
Please note that usually these samples will be short lengthed. A sampler which uses soundfont files will automatically loop them.
According to Joseph, looping is supported in samplerbox by default. you could use the following softwares:
Sony Sound Forge
Or the opensource Audacity
I have not yet tested the Audacity method, but it should work. by using both these methods (exporting as wav files and looping them) you could virtually port ANY SF2 library.
While trying to figure out the .sf2 file format I came across discussions about the .sfz format which has superceded .sf2.
AFAIK, which is not much, the .sfz format uses raw .wav files and a text file of directives. Which sounds similar to samplerbox.
Does it make sense for samplerbox to use a sub-set of the. sfz format instead of inventing its own format?
One problem is that, although the .sfz format is open and license-free, there does not seem to be a freely available definition of the format. It is apparantly defined in a physical book: Cakewalk Synthesizers by Simon Cann.
This link provides an outline of the format:
http://www.soundonsound.com/sos/apr08/articles/sonartech_0408.htm
I know it's very annoying to not support existing formats (such as .sfz and .sf2) and start and (n+1)th format ;) But really I prefer to start something fresh (based on more than 10 years of experience with all these formats), and short...
An example: here is the definition.txt
file in SamplerBox format, for a banjo sample-set:
piano/%notename.wav,%velocity=0
forte/%notename.wav,%velocity=64
Now here is exactly the same definition file in .sfz format:
// Dynamic: piano (normal)
<group>
lovel=0
hivel=63
<region> pitch_keycenter=57 lokey=57 hikey=57 sample=/Instruments/Banjo/piano/A3.wav
<region> pitch_keycenter=69 lokey=69 hikey=69 sample=/Instruments/Banjo/piano/A4.wav
<region> pitch_keycenter=81 lokey=81 hikey=81 sample=/Instruments/Banjo/piano/A5.wav
<region> pitch_keycenter=58 lokey=58 hikey=58 sample=/Instruments/Banjo/piano/A#3.wav
<region> pitch_keycenter=70 lokey=70 hikey=70 sample=/Instruments/Banjo/piano/A#4.wav
<region> pitch_keycenter=82 lokey=82 hikey=82 sample=/Instruments/Banjo/piano/A#5.wav
<region> pitch_keycenter=59 lokey=59 hikey=59 sample=/Instruments/Banjo/piano/B3.wav
<region> pitch_keycenter=71 lokey=71 hikey=71 sample=/Instruments/Banjo/piano/B4.wav
<region> pitch_keycenter=83 lokey=83 hikey=83 sample=/Instruments/Banjo/piano/B5.wav
<region> pitch_keycenter=48 lokey=48 hikey=48 sample=/Instruments/Banjo/piano/C3.wav
<region> pitch_keycenter=60 lokey=60 hikey=60 sample=/Instruments/Banjo/piano/C4.wav
<region> pitch_keycenter=72 lokey=72 hikey=72 sample=/Instruments/Banjo/piano/C5.wav
<region> pitch_keycenter=49 lokey=49 hikey=49 sample=/Instruments/Banjo/piano/C#3.wav
<region> pitch_keycenter=61 lokey=61 hikey=61 sample=/Instruments/Banjo/piano/C#4.wav
<region> pitch_keycenter=50 lokey=50 hikey=50 sample=/Instruments/Banjo/piano/D3.wav
<region> pitch_keycenter=62 lokey=62 hikey=62 sample=/Instruments/Banjo/piano/D4.wav
<region> pitch_keycenter=74 lokey=74 hikey=74 sample=/Instruments/Banjo/piano/D5.wav
<region> pitch_keycenter=51 lokey=51 hikey=51 sample=/Instruments/Banjo/piano/D#3.wav
<region> pitch_keycenter=63 lokey=63 hikey=63 sample=/Instruments/Banjo/piano/D#4.wav
<region> pitch_keycenter=75 lokey=75 hikey=75 sample=/Instruments/Banjo/piano/D#5.wav
<region> pitch_keycenter=52 lokey=52 hikey=52 sample=/Instruments/Banjo/piano/E3.wav
<region> pitch_keycenter=64 lokey=64 hikey=64 sample=/Instruments/Banjo/piano/E4.wav
<region> pitch_keycenter=76 lokey=76 hikey=76 sample=/Instruments/Banjo/piano/E5.wav
<region> pitch_keycenter=53 lokey=53 hikey=53 sample=/Instruments/Banjo/piano/F3.wav
<region> pitch_keycenter=65 lokey=65 hikey=65 sample=/Instruments/Banjo/piano/F4.wav
<region> pitch_keycenter=77 lokey=77 hikey=77 sample=/Instruments/Banjo/piano/F5.wav
<region> pitch_keycenter=54 lokey=54 hikey=54 sample=/Instruments/Banjo/piano/F#3.wav
<region> pitch_keycenter=66 lokey=66 hikey=66 sample=/Instruments/Banjo/piano/F#4.wav
<region> pitch_keycenter=78 lokey=78 hikey=78 sample=/Instruments/Banjo/piano/F#5.wav
<region> pitch_keycenter=55 lokey=55 hikey=55 sample=/Instruments/Banjo/piano/G3.wav
<region> pitch_keycenter=67 lokey=67 hikey=67 sample=/Instruments/Banjo/piano/G4.wav
<region> pitch_keycenter=79 lokey=79 hikey=79 sample=/Instruments/Banjo/piano/G5.wav
<region> pitch_keycenter=56 lokey=56 hikey=56 sample=/Instruments/Banjo/piano/G#3.wav
<region> pitch_keycenter=68 lokey=68 hikey=68 sample=/Instruments/Banjo/piano/G#4.wav
<region> pitch_keycenter=80 lokey=80 hikey=80 sample=/Instruments/Banjo/piano/G#5.wav
// Dynamic: forte (normal)
<group>
lovel=64
hivel=127
<region> pitch_keycenter=57 lokey=57 hikey=57 sample=/Instruments/Banjo/forte/A3.wav
<region> pitch_keycenter=69 lokey=69 hikey=69 sample=/Instruments/Banjo/forte/A4.wav
<region> pitch_keycenter=81 lokey=81 hikey=81 sample=/Instruments/Banjo/forte/A5.wav
<region> pitch_keycenter=58 lokey=58 hikey=58 sample=/Instruments/Banjo/forte/A#3.wav
<region> pitch_keycenter=70 lokey=70 hikey=70 sample=/Instruments/Banjo/forte/A#4.wav
<region> pitch_keycenter=82 lokey=82 hikey=82 sample=/Instruments/Banjo/forte/A#5.wav
<region> pitch_keycenter=59 lokey=59 hikey=59 sample=/Instruments/Banjo/forte/B3.wav
<region> pitch_keycenter=71 lokey=71 hikey=71 sample=/Instruments/Banjo/forte/B4.wav
<region> pitch_keycenter=83 lokey=83 hikey=83 sample=/Instruments/Banjo/forte/B5.wav
<region> pitch_keycenter=48 lokey=48 hikey=48 sample=/Instruments/Banjo/forte/C3.wav
<region> pitch_keycenter=60 lokey=60 hikey=60 sample=/Instruments/Banjo/forte/C4.wav
<region> pitch_keycenter=72 lokey=72 hikey=72 sample=/Instruments/Banjo/forte/C5.wav
<region> pitch_keycenter=84 lokey=84 hikey=84 sample=/Instruments/Banjo/forte/C6.wav
<region> pitch_keycenter=49 lokey=49 hikey=49 sample=/Instruments/Banjo/forte/C#3.wav
<region> pitch_keycenter=61 lokey=61 hikey=61 sample=/Instruments/Banjo/forte/C#4.wav
<region> pitch_keycenter=73 lokey=73 hikey=73 sample=/Instruments/Banjo/forte/C#5.wav
<region> pitch_keycenter=85 lokey=85 hikey=85 sample=/Instruments/Banjo/forte/C#6.wav
<region> pitch_keycenter=50 lokey=50 hikey=50 sample=/Instruments/Banjo/forte/D3.wav
<region> pitch_keycenter=62 lokey=62 hikey=62 sample=/Instruments/Banjo/forte/D4.wav
<region> pitch_keycenter=74 lokey=74 hikey=74 sample=/Instruments/Banjo/forte/D5.wav
<region> pitch_keycenter=86 lokey=86 hikey=86 sample=/Instruments/Banjo/forte/D6.wav
<region> pitch_keycenter=51 lokey=51 hikey=51 sample=/Instruments/Banjo/forte/D#3.wav
<region> pitch_keycenter=63 lokey=63 hikey=63 sample=/Instruments/Banjo/forte/D#4.wav
<region> pitch_keycenter=75 lokey=75 hikey=75 sample=/Instruments/Banjo/forte/D#5.wav
<region> pitch_keycenter=87 lokey=87 hikey=87 sample=/Instruments/Banjo/forte/D#6.wav
<region> pitch_keycenter=52 lokey=52 hikey=52 sample=/Instruments/Banjo/forte/E3.wav
<region> pitch_keycenter=64 lokey=64 hikey=64 sample=/Instruments/Banjo/forte/E4.wav
<region> pitch_keycenter=76 lokey=76 hikey=76 sample=/Instruments/Banjo/forte/E5.wav
<region> pitch_keycenter=88 lokey=88 hikey=88 sample=/Instruments/Banjo/forte/E6.wav
<region> pitch_keycenter=53 lokey=53 hikey=53 sample=/Instruments/Banjo/forte/F3.wav
<region> pitch_keycenter=65 lokey=65 hikey=65 sample=/Instruments/Banjo/forte/F4.wav
<region> pitch_keycenter=77 lokey=77 hikey=77 sample=/Instruments/Banjo/forte/F5.wav
<region> pitch_keycenter=54 lokey=54 hikey=54 sample=/Instruments/Banjo/forte/F#3.wav
<region> pitch_keycenter=66 lokey=66 hikey=66 sample=/Instruments/Banjo/forte/F#4.wav
<region> pitch_keycenter=78 lokey=78 hikey=78 sample=/Instruments/Banjo/forte/F#5.wav
<region> pitch_keycenter=55 lokey=55 hikey=55 sample=/Instruments/Banjo/forte/G3.wav
<region> pitch_keycenter=79 lokey=79 hikey=79 sample=/Instruments/Banjo/forte/G5.wav
<region> pitch_keycenter=56 lokey=56 hikey=56 sample=/Instruments/Banjo/forte/G#3.wav
<region> pitch_keycenter=68 lokey=68 hikey=68 sample=/Instruments/Banjo/forte/G#4.wav
As I really want something fast (a sample-set should be done in 2 minutes, not more), I don't want to support these very verbose formats, for which you need a third-party software to write definition files.
Fair enough and point taken.
Don.
SF2 matches idea of "drop samples and just play" perfectly.
There is a lot of sf2 free soundfonts around, and typical user probably has tons of that files or can obtain them easily in a minute, in cause if he does not want actually to create a new preset, but just copy something to the card and play. Not everyone is actually going to make preset from the scratch.
Please consider supporting sf2 - because without it you drop a very typical use case.
I must say i pretty agree with Mike.
Both support would be great actaully ;-)
Hi! Great project!
Is possible play for example use SoundFount of FluidSynth?
If yes, how to?
Thanks!!!!
There is a Python library for working with SFZ soundfont files:
https://github.com/ajjackson/pysfz
The README includes links to details of the SFZ file format.
http://drealm.info/sfz/plj-sfz.xhtml
http://ariaengine.com/overview/sfz-format/
According to the manual, it is natively supported
http://samplerbox.readthedocs.io/en/latest/Sample_Sets/index.html
Download sample-sets
There are a number of free instruments available for download on the SamplerBox website.
SFZ SoundFont packages currently have limited support, but they should work. There are many free downloads available on the web.