opensource sample lib format

You name it!
ccherrett
Advanced User
Posts: 162
Joined: Wed Jan 23, 2008 11:24 pm
Contact:

Re: opensource sample lib format

Post by ccherrett » Thu Nov 19, 2009 3:33 am

I have set everything up and tried to load the sfz but received the error:

sfz::Engine error: Failed to load instrument, cause: Not an integer

So I filed a bug and will keep trying :)

https://bugs.linuxsampler.org/cgi-bin/s ... cgi?id=134
Christopher Cherrett
Founder of The Open Octave Project
http://www.openoctave.org

ccherrett
Advanced User
Posts: 162
Joined: Wed Jan 23, 2008 11:24 pm
Contact:

Re: opensource sample lib format

Post by ccherrett » Thu Nov 19, 2009 7:34 am

ccherrett wrote:I have set everything up and tried to load the sfz but received the error:

sfz::Engine error: Failed to load instrument, cause: Not an integer

So I filed a bug and will keep trying :)

https://bugs.linuxsampler.org/cgi-bin/s ... cgi?id=134
I just posted this email to the dev list:

OK Some progress!

I was able to create a small template using a GIG file and then export
it, change it to use the SFZ engine and load the .sfz file. I then did a
cat to netcat and it all loaded up without errors.

From there I was able to open Fantasia and it all worked unless I tried
to reload the sfz in the channel.

So it looks like the problem is with Fantasia or jlscp.

On a side note, my file loaded but there were no keys lit in Fantasia to
play. Does Linuxsampler respect groups in the sfz yet?

Here is an example of some mapping inside my .sfz: (Any suggestions from
the devs on getting this going would be great!)


/////////////////////////////////////////////////////////////////////////////
/// legato 1 down

<group>
//group=1 offby=1 offmode=normal <- these commands are not yet supported I guess
group=1
ampeg_release=0.3
lovel=108 trigger=legato

<region> key=a2 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_C3.wav pitch_keycenter=c3 sw_previous=a#2
<region> key=a#2 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_C3.wav pitch_keycenter=c3 sw_previous=b2
<region> key=b2 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_C3.wav pitch_keycenter=c3 sw_previous=c3
<region> key=c3 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_C3.wav pitch_keycenter=c3 sw_previous=c#3
<region> key=c#3 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_D3.wav pitch_keycenter=d3 sw_previous=d3
<region> key=d3 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_D3.wav pitch_keycenter=d3 sw_previous=d#3
<region> key=d#3 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_E3.wav pitch_keycenter=e3 sw_previous=e3
<region> key=e3 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_E3.wav pitch_keycenter=e3 sw_previous=f3
<region> key=f3 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_F#3.wav pitch_keycenter=f#3 sw_previous=f#3
<region> key=f#3 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_F#3.wav pitch_keycenter=f#3 sw_previous=g3
<region> key=g3 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_G#3.wav pitch_keycenter=g#3 sw_previous=g#3
<region> key=g#3 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_G#3.wav pitch_keycenter=g#3 sw_previous=a3
<region> key=a3 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_A#3.wav pitch_keycenter=a#3 sw_previous=a#3
<region> key=a#3 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_A#3.wav pitch_keycenter=a#3 sw_previous=b3
<region> key=b3 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_C4.wav pitch_keycenter=c4 sw_previous=c4
<region> key=c4 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_C4.wav pitch_keycenter=c4 sw_previous=c#4
<region> key=c#4 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_D4.wav pitch_keycenter=d4 sw_previous=d4
<region> key=d4 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_D4.wav pitch_keycenter=d4 sw_previous=d#4
<region> key=d#4 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_E4.wav pitch_keycenter=e4 sw_previous=e4
<region> key=e4 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_E4.wav pitch_keycenter=e4 sw_previous=f4
<region> key=f4 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_F#4.wav pitch_keycenter=f#4 sw_previous=f#4
<region> key=f#4 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_F#4.wav pitch_keycenter=f#4 sw_previous=g4
<region> key=g4 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_G#4.wav pitch_keycenter=g#4 sw_previous=g#4
<region> key=g#4 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_G#4.wav pitch_keycenter=g#4 sw_previous=a4
<region> key=a4 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_A#4.wav pitch_keycenter=a#4 sw_previous=a#4
<region> key=a#4 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_A#4.wav pitch_keycenter=a#4 sw_previous=b4
<region> key=b4 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_C5.wav pitch_keycenter=c5 sw_previous=c5
<region> key=c5 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_C5.wav pitch_keycenter=c5 sw_previous=c#5
<region> key=c#5 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_d5.wav pitch_keycenter=d5 sw_previous=d5
<region> key=d5 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_d5.wav pitch_keycenter=d5 sw_previous=d#5
<region> key=d#5 sample=HO_02leg_f_01_do/HO_02leg_f_1-do_d5.wav pitch_keycenter=d5 sw_previous=e5
Christopher Cherrett
Founder of The Open Octave Project
http://www.openoctave.org

User avatar
dahnielson
Moderator
Posts: 632
Joined: Wed Jan 23, 2008 11:25 pm
Location: Linköping / Tranås, Sweden
Contact:

Re: opensource sample lib format

Post by dahnielson » Thu Nov 19, 2009 11:23 am

ccherrett wrote:sfz::Engine error: Failed to load instrument, cause: Not an integer
Yes. It's a known issue (or rather omission on my part). Currently the SFZ reader (based on my sfz.cpp/sfz.h reader) only accept MIDI note numbers and not literal note names.
Anders Dahnielson

Ardour2, Qtractor, Linuxsampler, M-AUDIO Delta 1010, Axiom 61, Korg D12, AKAI S2000, E-MU Proteus 2k, Roland R-5, Roland HP 1300e, Zoom RFX-1000, 4GB RAM x86_64 Intel Pentium Dual 1.80GHz Gentoo Linux

ccherrett
Advanced User
Posts: 162
Joined: Wed Jan 23, 2008 11:24 pm
Contact:

Re: opensource sample lib format

Post by ccherrett » Thu Nov 19, 2009 1:10 pm

So is the group tag supported?

I am wondering why in Fantasia when I get this loaded from command line I do not see any white keys activated on the virtual keyboard.
Christopher Cherrett
Founder of The Open Octave Project
http://www.openoctave.org

User avatar
dahnielson
Moderator
Posts: 632
Joined: Wed Jan 23, 2008 11:25 pm
Location: Linköping / Tranås, Sweden
Contact:

Re: opensource sample lib format

Post by dahnielson » Thu Nov 19, 2009 3:55 pm

ccherrett wrote:So is the group tag supported?
Yes, the group header, as it's called, is supported. It act as a template for the regions that follow it until a new group header is defined.
Anders Dahnielson

Ardour2, Qtractor, Linuxsampler, M-AUDIO Delta 1010, Axiom 61, Korg D12, AKAI S2000, E-MU Proteus 2k, Roland R-5, Roland HP 1300e, Zoom RFX-1000, 4GB RAM x86_64 Intel Pentium Dual 1.80GHz Gentoo Linux

ccherrett
Advanced User
Posts: 162
Joined: Wed Jan 23, 2008 11:24 pm
Contact:

Re: opensource sample lib format

Post by ccherrett » Thu Nov 19, 2009 11:31 pm

http://www.tsiwebdesign.com/testing/20_ ... LEGATO.sfz
dahnielson wrote:
ccherrett wrote:So is the group tag supported?
Yes, the group header, as it's called, is supported. It act as a template for the regions that follow it until a new group header is defined.
Can you look through my sfz and tell me if you see any errors?

I am trying to figure out why I get no sound. I have successfully loaded and used other sfz files.
Christopher Cherrett
Founder of The Open Octave Project
http://www.openoctave.org

ccherrett
Advanced User
Posts: 162
Joined: Wed Jan 23, 2008 11:24 pm
Contact:

Re: opensource sample lib format

Post by ccherrett » Fri Nov 20, 2009 7:36 am

dahnielson wrote:
ccherrett wrote:sfz::Engine error: Failed to load instrument, cause: Not an integer
Yes. It's a known issue (or rather omission on my part). Currently the SFZ reader (based on my sfz.cpp/sfz.h reader) only accept MIDI note numbers and not literal note names.
Ah I think this is my issue. Any idea when this will be resolved?

Thanks!
Christopher Cherrett
Founder of The Open Octave Project
http://www.openoctave.org

ccherrett
Advanced User
Posts: 162
Joined: Wed Jan 23, 2008 11:24 pm
Contact:

Re: opensource sample lib format

Post by ccherrett » Fri Nov 20, 2009 8:42 am

OK so more progress!

I have written this small sfz and it works. I can hear the samples sound a bit tinny for some reason. It will be nice when the named notes are in so you are not just stuck to midi numbers.

My next test is adding another set of samples with the legato trigger. So this set should play first then the legato ones.

<group>
group=1 off_by=1 off_mode=normal
ampeg_release=0.3
lovel=108 trigger=first

<region> sample=HO_oV_nA_sus_f_C3.wav lokey=57 hikey=60 pitch_keycenter=60
<region> sample=HO_oV_nA_sus_f_C#3.wav key=61
<region> sample=HO_oV_nA_sus_f_D3.wav key=62
<region> sample=HO_oV_nA_sus_f_D#3.wav key=63
<region> sample=HO_oV_nA_sus_f_E3.wav key=64
<region> sample=HO_oV_nA_sus_f_F3.wav key=65
<region> sample=HO_oV_nA_sus_f_F#3.wav key=66
<region> sample=HO_oV_nA_sus_f_G3.wav key=67
<region> sample=HO_oV_nA_sus_f_G#3.wav key=68
<region> sample=HO_oV_nA_sus_f_A3.wav key=69
<region> sample=HO_oV_nA_sus_f_A#3.wav key=70
<region> sample=HO_oV_nA_sus_f_B3.wav key=71
<region> sample=HO_oV_nA_sus_f_C4.wav key=72
<region> sample=HO_oV_nA_sus_f_C#4.wav key=73
<region> sample=HO_oV_nA_sus_f_D4.wav key=74
<region> sample=HO_oV_nA_sus_f_D#4.wav key=75
<region> sample=HO_oV_nA_sus_f_E4.wav key=76
<region> sample=HO_oV_nA_sus_f_F4.wav key=77
<region> sample=HO_oV_nA_sus_f_F#4.wav key=78
<region> sample=HO_oV_nA_sus_f_G4.wav key=79
<region> sample=HO_oV_nA_sus_f_G#4.wav key=80
<region> sample=HO_oV_nA_sus_f_A4.wav key=81
<region> sample=HO_oV_nA_sus_f_A#4.wav key=82
<region> sample=HO_oV_nA_sus_f_B4.wav key=83
<region> sample=HO_oV_nA_sus_f_C5.wav lokey=84 hikey=88 pitch_keycenter=84
Christopher Cherrett
Founder of The Open Octave Project
http://www.openoctave.org

typewriter
Advanced User
Posts: 147
Joined: Fri Sep 26, 2008 9:04 am

Re: opensource sample lib format

Post by typewriter » Sat Nov 21, 2009 8:12 pm

dahnielson wrote: Huh? MIDI instrument Map is what LinuxSampler use to interpret banks and program changes.
You are totally right. I did this with samplelord. There are same features to reduce the preload of the samples and I was curious how far I could go with this. It was possible to combine ALL VSL string samples into one file that used around 120 MB RAM with full access to all sounds by program change.

I am excited about christopher's success with converting the first performance files. As soon as I have holidays I'll jump in, too.

ccherrett
Advanced User
Posts: 162
Joined: Wed Jan 23, 2008 11:24 pm
Contact:

Re: opensource sample lib format

Post by ccherrett » Sun Nov 22, 2009 8:54 am

typewriter wrote:
dahnielson wrote: Huh? MIDI instrument Map is what LinuxSampler use to interpret banks and program changes.
You are totally right. I did this with samplelord. There are same features to reduce the preload of the samples and I was curious how far I could go with this. It was possible to combine ALL VSL string samples into one file that used around 120 MB RAM with full access to all sounds by program change.

I am excited about christopher's success with converting the first performance files. As soon as I have holidays I'll jump in, too.
I am not sure my success if fulfilled yet :

However I have been successful in getting multilayer velocity blends to work between the first set of sustain patches for the performance horns. But I think there is something wrong with the triggers. I am looking into a way to monitor the samples fired to see if the correct samples are triggered at the correct time according tto the triggers set in the script.

Here is my latest tests with the horn. I am very very close now:

http://www.tsiwebdesign.com/testing/testhorn_full.sfz

If anyone knows more than I do please join in to get this running :)
Christopher Cherrett
Founder of The Open Octave Project
http://www.openoctave.org

Post Reply