Page 1 of 2

What do you want from a %100 free/libre SFZ sampler?

Posted: Tue Mar 12, 2019 12:48 am
by Lyberta
Ok, so I've started writing a replacement for LinuxSampler some time ago but then hit a roadblock and put it away for now. But since most of the stuff is not implemented, I think maybe I can just ask people what they want and get things right from the start.

So what do you want from an SFZ sampler? Right now the scope is strictly SFZ but there may be more formats in the future but don't count on it because I have a lot of other projects right now. Or maybe you are writing your own sampler and don't want to make stupid mistakes so I think this thread may be useful to a lot of people.

Re: What do you want from a %100 free/libre SFZ sampler?

Posted: Tue Mar 12, 2019 12:54 am
by artofmusic
A gui to easily load sfz's in the plugin itself. VST and LV2 support and look at all the opcodes supported by sforzando for a reference for the standard. Pretty much that. Maybe custom GUI support to allow users to make their own sample bank interfaces. HISE might be a good place to start for building this behemoth that you're trying to build. http://www.hise.audio/

Re: What do you want from a %100 free/libre SFZ sampler?

Posted: Tue Mar 12, 2019 1:42 am
by d.healey
The HISE sampler engine might be good if you can build it without needing JUCE - I know your views on JUCE ;)

As far as features are concerned

The implementation of as many opcodes as possible - Key switching, Dynamic crossfading, round robin, legato.

Re: What do you want from a %100 free/libre SFZ sampler?

Posted: Tue Mar 12, 2019 4:03 am
by Lyberta
I'm writing the sampler in ISO C++ on top of ftz Audio. There will be a core library that can be embedded anywhere. The very first release will probably be a standalone JACK app using Qt. Then I probably release plugins using DPF, not sure about GUI in the plugins though.

I'm using this as a reference.

Oh, there is so much wrong with HISE. The site doesn't open via Tor, it uses JUCE, JavaScript, focuses on Windows and MacOS, no way to produce LV2 or DSSI plugins.

Re: What do you want from a %100 free/libre SFZ sampler?

Posted: Tue Mar 12, 2019 6:39 am
by stanlea
Disk streaming is mandatory and not an easy thing to implement, in my view.

Re: What do you want from a %100 free/libre SFZ sampler?

Posted: Tue Mar 12, 2019 11:05 am
by d.healey
stanlea wrote:Disk streaming is mandatory and not an easy thing to implement, in my view.
+1 to this. SFZero has disk streaming but lacks a million other things.

Re: What do you want from a %100 free/libre SFZ sampler?

Posted: Tue Mar 12, 2019 12:08 pm
by rhydermike
That it be a plugin (Linux VST and LV2 pref).
That the GUI have ADSR controls. It's highly frustrating when you have a soundbank that's working for you, but you just need to slightly tweak the release time.
As others have said, the disk streaming would be nice.

Re: What do you want from a %100 free/libre SFZ sampler?

Posted: Tue Mar 12, 2019 2:41 pm
by Michael Willis
Release early and often and get other people involved in the development to minimize the project's "bus factor". Clean, modular separation of concerns, such that other free software projects can reuse algorithms, or put on a different front end for different use cases (for example, different user interfaces may better facilitate electronic vs orchestral music)

I may be willing to work on a DPF plugin, including the user interface.

Re: What do you want from a %100 free/libre SFZ sampler?

Posted: Thu Mar 14, 2019 2:15 am
by Lyberta
stanlea wrote:Disk streaming is mandatory
Is it though? I've just measured: VSCO2 CE + VPO + Salamander Grand Piano + No Budget Band comsume about 6 GiB of space. Assuming they are 16 bit int and I store 32 bit float in RAM, they would occupy 12 GiB of RAM. That would still fit into my 16 GiB. And that's 2 full symphonic orchestras and a pop orchestra - absolute overkill.
rhydermike wrote:That the GUI have ADSR controls.
That's actually pretty hard in general case because every region has its own ADSR envelope which means to do it properly I would need a full blown SFZ GUI editor.
Michael Willis wrote:Clean, modular separation of concerns
Definitely. For example, my sampler dependency tree right now consists of 7 separate libraries and that's without any GUI.

Re: What do you want from a %100 free/libre SFZ sampler?

Posted: Thu Mar 14, 2019 11:50 am
by d.healey
Lyberta wrote:
stanlea wrote:Disk streaming is mandatory
Is it though? I've just measured: VSCO2 CE + VPO + Salamander Grand Piano + No Budget Band comsume about 6 GiB of space. Assuming they are 16 bit int and I store 32 bit float in RAM, they would occupy 12 GiB of RAM. That would still fit into my 16 GiB. And that's 2 full symphonic orchestras and a pop orchestra - absolute overkill.
Many people are working with much less RAM. But also one problem when designing SFZs is knowing that you have to try to be RAM efficient so you end up doing whatever you can to save space - using mono only samples, shorter samples, lower bit rates, non-chromatic sampling etc.

What you end up with is a smaller file but at the cost of quality. If we have disk streaming then it's possible to make much better quality SFZs with more sample content.

Re: What do you want from a %100 free/libre SFZ sampler?

Posted: Mon Aug 12, 2019 6:02 pm
by iurie
I am using almost in every piece I am composing VSCO orchestra SFZ. There is an LV2 plugin for LinuxSampler, but I would like a LV2 GUI sampler player that gives the easy selection of instruments. I don't mean to make here marketing for particular software, but I would like, for example, to see a GUI like this (of course, in a more simplified version) https://media.sweetwater.com/api/i/q-82 ... -large.jpg, i.e. to be able to work quickly with, even though never used Miroslav or the similar.

One big problem I see regarding this sampler player is a good resampling algorithm. I have implemented an experimental algorithm for resampling (for Geonkick for key-to-pitch), that works well for lowering the pitch, but not good for scaling it. There are libraries for resampling, but I don't know how well they works and are good for real-time purposes. Ninja2 by rghvdberg uses libresampler probably, but I don't know how it works, need to make tests. Also, I have looked into Linux Sampler code, and I see they have implemented their own version of resampling that is based on linear and cubic interpolation, and probably they are using also an antialising filter, but probably there is something more they use, and I'll find what because from my point of view LinuxSmapler is doing well on resampling.

So with this my message also I would like to ask if someone knows how to do resampling in a good way? Or libraries like libresampler are enough?

Re: What do you want from a %100 free/libre SFZ sampler?

Posted: Tue Aug 13, 2019 2:55 am
by rghvdberg
I use libsamplerate for resampling on loading only. Pitch is done with a simple linear interpolation which works good enough for the purposes of ninjas2, a sample slicer, with pitchbend. It's not a melodic sampler.
Although that's definitely on the list.

Re: What do you want from a %100 free/libre SFZ sampler?

Posted: Tue Aug 13, 2019 10:01 am
by iurie
rghvdberg wrote:I use libsamplerate for resampling on loading only. Pitch is done with a simple linear interpolation which works good enough for the purposes of ninjas2, a sample slicer, with pitchbend. It's not a melodic sampler.
Although that's definitely on the list.
Ah, ok, thank you. I thought you are doing key->pich. I'll try to build Ninja and play with it. :)

Re: What do you want from a %100 free/libre SFZ sampler?

Posted: Wed Aug 14, 2019 7:56 am
by Basslint
LV2 support, definitely

Re: What do you want from a %100 free/libre SFZ sampler?

Posted: Fri Aug 23, 2019 10:47 am
by Galeb_G4
Newbie reporting.
What I'd want for such a project would be... a guide :lol: even a short one that's written in a tiny .txt file would be great. I've discovered everything Linux a short time ago, and I always have to check out forums, quora threads or things like that to learn how to use this or that tool.