SFZ Player from Squinky Labs

I don’t read it that way. I know early on my lexer didn’t know how to deal with spaces in a path, but that was fixed way before release. Not that there couldn’t be a bug in it. check this out - this is actually a valid line in an SFZ:

ampeg_release=.2 sample=a file with space.wav

Fair enough, just how I read it, guess we wait to hear from the horse’s mouth.

1 Like

That’s what I’ve got, except there was no karoryfert-samples-cello directory. The other four are as in your screenshot, with sfz files in Programs and wav files in Samples.

[edit] No I do not. I must have moved the Samples directory into the Programs directory some time earlier. :blush: I’ll get back to y’all later.

This is typical of what I’m finding in the sfz files:

<region>
sample=..\Samples\sus\C1_mp_d.wav
tune_oncc123=10
pan_oncc122=-70
amp_velcurve_90=1

(maybe the forum software removed the backslash in my earlier post) Let’s see - I will type two periods and a backslash: …\

Huh. It left the backslash but added a period in the preview on the right side of the page. In the finished post, it became three periods and restored the backslash. I guess it would be wise to use the “Preformatted text” button.

Changing those items to —

sample=Samples\sus\C1_mp_d.wav
tune_oncc123=10
pan_oncc122=-70
amp_velcurve_90=1

— did the job, but only when I loaded that particular sfz file in SFZ PLAYER. Some of the sfz files (not that I can easily find any at the moment :angry:) reference “includes” files, so I’ll have to chase them down and see where the recursion (if any) takes me.

[another edit] In light of discovering that I probably moved the directory, I’ll have to undo that mod and see what happens.

And it’s macOS Catalina v.10.15.7

Ok, with the formatting uncorrupted I see there are no ... kicking around good.

Small fyi that you may or may not know, a single dot in the path means “the current folder”, and when you load an sfz the folder that contains the sfz is the current folder. so ./Samples/foo.wav and Samples/foo.wav both mean the same thing: a folder called Samples is below the folder with the SFZ, and in there is a file called foo.wav. And, of course .. means “the parent folder of the current one”.

Also, in case you were worried, some sfz are in mac/unix format with forward slashes, others are in windows format with back slashes as folder separators. But don’t worry, they all work fine. SFZ player converts these as appropriate for your platform. Also, if they have non-latin unicode characters they will load correctly.

And, yes, include files make everything more complicated, and will make it almost impossible for you to solve folder issues by editing SFZ. On the “bright” side, I have not yet found an SFZ complicated enough to use #Include, but simple enough for SFZ Player to understand ;-(

Anyway… It sounds like your problems are mainly with folder hierarchies/relationships. And I’m confident you will be able to fix these. It sounds like you know your away around this stuff pretty well.

Small mac tip - I have had files on a mac that would not unzip from finder, but if I ran the command line unzip.foo.zip from the terminal it would work. No idea if this applies here, just something I need to do at work a lot.

Lastly, you should never need to modify any SFZ just to get the samples loaded. It’s very unlikely someone is distributed SFZ that are that broken. Now for sure there are some that I can’t play (yet!) that you could “dumb down” by editing the SFZ.

A couple hours later: The sfz files in the “Virtual Playing Orchestra3” directory worked without modification once I moved the “libs” directory (with all the actual wav files) from the separate download into the “Virtual Playing Orchestra3” directory.

I realize that this is straying off the topic (being not an issue with SFZ Player), but I tried a different de-archiver and it was a bit more forthcoming about what the issue was with VCSL-1.2.2-RC.tar.gz .

When you hit “Continue” it finishes up with this. Whatever. It’s something for later.

It turned out that the only examples I could find of “#include” references were all in “Karoryfer_x_bigcat_cello” files.

I ran into them in UI_metal-gtx (even with proper handling of includes I can’t play it).

so probably a download error. I know on windows I need to use 7-zip to unzip a tar.gz file don’t know on mace.

The one from this mirror unzipped for me : Dropbox - VSCO-2-CE-1.1.0.zip - Simplify your life

It was the other two linked from Releases · sgossner/VSCO-2-CE · GitHub that failed to expand.

And, bonus, the half-dozen instruments I selected at random worked right out of the box. :+1:t3:

Oh, hey - a new little drop-down menu now appears for some instruments, giving choice of pizzicato, sustained, etc. where available. That’s nice.

I made a little patch with Aria Salvatrice’s “Modellus Salomonis Regis” sequencer and two MERGEs to feed SFZ Player just to audition the various instruments with random notes. That sequencer has knobs to restrict the pitch range to the same as what’s indicated by SFZ Player for a given instrument.

Oh, nice! Yeah the drop down is for a key switch region. Aside from the drop down you can activate those by playing notes. But that’s probably pretty awkward in a typical patch. Most SFZ that I have run into don’t have keyswitch, but a lot do.

btw, I hope it was “worth it”. There seems to be a lot of great sounds in VSCO-2.

Yup, and yup. :+1:t3: :+1:t3:

Once you identify which sfz files take advantage of that feature, it certainly saves time trying them out, comparing Sustain vs. Pizzicato vs. Spiccato, etc. I tag them with a colour code (in the Mac Finder) as I discover them.

If it’s your thing, you can go into the SFZ files and change the default key-switch region. Then they will come up like you want. At least I think that works! :wink: Oh, but I guess you are talking about the non key switched versions that are already there. Yeah, I get it…

I measured what the Sforzando player does with no ampeg_release, and I measured 20 ms. So I asked the SFZ spec folks, and after swearing up and down the 1 ms. was correct they finally measured again and came up with 30 ms. I guess they will update the spec, but in any case I have a 1.0.18 version coming out very soon where I upped the default ampeg_release to 30 ms, which should be enough to avoid obvious pops on release. That’s the only change in SFZ Player (for now). The release is mostly for a new VCV (called F2). But I had to change that release ASAP.

1 Like

As a feature request: It would be great if looping was supported, i.e., oscillator=on so that SFZ Player could be utilized as a wavetable oscillator

1 Like

Good idea. thanks!

1 Like

@jml : I have a version that you can try with looping. I have to confess I didn’t implement oscillator. Does that just set a loop for the whole sample when it’s on? Does anyone use it?

Anway send me a message it you want to try it. You either need to join my Slack channel, or build yourself usually.

Wow, that’s great news, would be happy to try it out! I am on macOS and wouldn’t mind building it myself. I guess its on the main branch and related to this particular point from the changelog: extended the maximum attack time and the minimum release time? On which branch could I find it?

What I am basically after is using SFZ as a simple wavetable oscillator. However when I played around with the player I discovered that I get small gaps in playback and thus suggested implementing the oscillator mode that I read about here: https://sfz.tools/sfizz/quick_reference#wavetable-oscillator

An example of an SFZ synth featuring oscillator and various related options (e.g. for detuning etc) can be found here: GitHub - sfztools/sfizz: SFZ parser and synth c++ library, providing AU / LV2 / VST3 plugins and JACK standalone client. But in principle any kind of continuous looping of samples without playback gaps would already be great

I’ll look at those links. I do fear there may be some aliasing with huge shifts, but you be the judge. Working on ‘oscillator’ opcodes today. Branch is par2. Be vigilant, though, there are lots of changes there, and little testing.

Since oscillator isn’t there yet, you could try loop start, loop end, and loop mode to do the same thing.

Oh, any yes it’s not the same branch that the Comp II stuff is on. But now both of them are on the par2 branch.

Hmmm… may not to look more closely at oscillator=on. don’t think I got that right.

@robert.kock could this sampler get an upgrade to handle stereo files with a stereo output? Is this possible?

Love the module. One more feature request though: a retrigger input. The gate works great with a keyboard, but it would be really helpful to be able to start the sample over without the having to interrupt the gate.