Sfizz Integration

Are you using a code repository? like github or gitlab?
I think the linuxsampler engine has a function to test if the osc port is listening. I wonder if that is causing it to stall?

Yes, I use this repo: https://github.com/pierre-girbon/zynthian-ui.git

It seems to me that the error is generic to the current master branch of zynthian-ui

1 Like

Hello,

I use the master branch of zynthian-ui, but bugs prevent me to properly develop the engine.

Is there a stable branch of zynthian-ui that I can use to develop the engine?

Thanks

The master branch is the most stable branch. What bugs are preventing you to develop? You should open issues for those bugs and specify in a detailed way how to reproduce them.

Thanks!

OK,

I’ve created this issue : https://github.com/zynthian/zynthian-issue-tracking/issues/190 on github

Maybe jackpeak isn’t working as it should or even is not installed at all.
You can try to build it again by running from command line
/zynthian/zynthian-ui/jackpeak/build.sh

Thanks for the rely,

It actually solves the problem! Icould have my first sounds out of Sfizz on Zynthian! :slightly_smiling_face:

I’m know facing another issue : I can only assign one sound to the Sfizz engine. When I load a SFZ file on a second engine, both the engine play the same sound…

Is there a best practice to address this issue? I’m thinking about launching the command in background (with a & at the end of the command). Do you think of a better idea?

Thanks for your support.

1 Like

Check it’s not just sending midi connections to the first instance.

HI @ll,

I made an installation recipe for sfizz. I can add the LV2-plugin inside MOD-UI but I currently have no plan how to load SFZ files…

Here is the installation script:

#!/bin/bash
cd ${ZYNTHIAN_PLUGINS_SRC_DIR}
sudo apt-get install libxcb-util0-dev libxcb-keysyms1-dev libxcb-xkb-dev libxkbcom
mon-x11-dev
git clone https://github.com/sfztools/sfizz.git sfizz.lv2
cd sfizz.lv2
mkdir build
cd build
git submodule update --init --recursive
cmake ..
make -j4
make install
mv /usr/local/lib/lv2/sfizz.lv2 ${ZYNTHIAN_PLUGINS_DIR}/lv2/
make clean
cd ${ZYNTHIAN_PLUGINS_SRC_DIR}
1 Like

I try, but I have this error:
E: Unable to locate package libxkbcom
E: Unable to locate package mon-x11-dev
so I must do some upgrade…

Hard coding the Soundfont data (as a workaround) would be fine with me for a single instrument lv2 using one of the massive piano samples. (as a poor man’s Pianoteq)
You can find some .sf2 pianos diluted down to <100Mb as well as recorded samples here.

A 25.4Mb (uncompressed) SalamanderC5-Lite, Grand Piano SoundFont derived from a 1.12GB original, reduced to 7 velocity layers, with looping. not totally public domain.

Another test case: the 57Mb OggVorbis compressed SFZ version of SalamanderGrandPianoV2 (may require desktop decompress on the fly power, uses 641 .ogg files) HERE

2 other SFZ scheme examples can be found HERE.
“Sfizz is the recommended SFZ synthesizer for FreePats’ sound banks.”

I have only tested these using the Sforzando, which I consider just a reference standard player. (I just noticed that velocity is mapped over the length of their virtual keyboard keys) It’s using their Aria (SFZ) Player engine which cam be used as a plug-in (Audio Unit, VST, RTAS) (might only be distributed in sound bundles)

An aside: schristiancollins.com says:
For desktop Linux users, I recommend using Plogue sforzando through Wine. Sforzando’s SFZ 2.0 implementation is just miles ahead of anything that runs natively on Linux at this point in time (3/5/2016). Both Linux projects I am aware of (LinuxSampler and calfbox) are currently lacking support for many features. (He called Fluidsynth the best SF2 player)

(Soundfont editor for creating subsets)

Ok, thanks for testing. I already had both packages installed on my Zynthian. Here is the script with a fix for those problems (I hope):

#!/bin/bash
cd ${ZYNTHIAN_PLUGINS_SRC_DIR}
sudo apt-get install libxcb-util0-dev libxcb-keysyms1-dev libxcb-xkb-dev libxkbcommon-x11-dev libxkbcommon-x11-dev libxkbcommon0
git clone https://github.com/sfztools/sfizz.git sfizz.lv2
cd sfizz.lv2
mkdir build
cd build
git submodule update --init --recursive
cmake ..
make -j4
make install
mv /usr/local/lib/lv2/sfizz.lv2 ${ZYNTHIAN_PLUGINS_DIR}/lv2/
make clean
cd ${ZYNTHIAN_PLUGINS_SRC_DIR}

Regards, Holger

3 Likes

Wow, ran your recipe, searched for new presets… and BINGO. now I need to start playing with Polyphone and start building soundfonts that will work with a breath controller! Awesome!

Oops… it was there only for a minute or two. It must have crashed. I’ll check later. Is anyone running Sfizz on the Test Branch?

I rebooted and sfizz is working. Is the default voice a tenor sax ? I have sfizz on channel 8 and a LinuxSample tenor sax loaded on channel 1. and WOW… I changed it to Tuba and Wow. At the present state use Linux Sample on channel one to load the soundfont ?

I just installed sfizz on my zynthian and it works like a charm. I had to install “zenity” for getting the LV2 GUI running:

apt-get -y install zenity

After that, the LV2-GUI works too, but i can’t open any of the dialogs: load file, etc.

Could anybody confirm this problem? Solutions?

Regards,

How are you installing sfizz?

I am updating to the sfizz development branch and observed these errors:

E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/a/aspell/libaspell15_0.60.7~20110707-6_armhf.deb 404 Not Found [IP: 93.93.128.193 80]
E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/a/aspell/aspell_0.60.7~20110707-6_armhf.deb 404 Not Found [IP: 93.93.128.193 80]
E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/w/webkit2gtk/libjavascriptcoregtk-4.0-18_2.32.1-1~deb10u1+rpi1_armhf.deb 404 Not Found [IP: 93.93.128.193 80]
E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/w/webkit2gtk/libwebkit2gtk-4.0-37_2.32.1-1~deb10u1+rpi1_armhf.deb 404 Not Found [IP: 93.93.128.193 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

I don’t know if they have an impact but worth mentioning.

Hi @zynthianers!

Good news!! I’ve an initial implementation for the sfizz engine that should replace linuxsampler one.
You simply point your zynthian-ui & zynthian-sys repos to “sfizz” branch and update :wink:

Enjoy!!

3 Likes

does not load samples…

A Specs. survey

Being interested in CC Modulation capabilities, I found:
The SFZ standards have no tidy central Modulator input list, got from text searches:
From the standard’s Opcodes data.)

SFZ v1 spec Opcode Modulation inputs with suffix: ccN  (24 count)

ampeg_attackccN     amplfo_depthccN   hiccN                 xfin_hiccN        
ampeg_decayccN      amplfo_freqccN    loccN                 xfin_loccN        
ampeg_delayccN      cutoff_ccN        offset_ccN            xfout_hiccN       
ampeg_holdccN       delay_ccN         on_hiccN              xfout_loccN       
ampeg_releaseccN    fillfo_depthccN   on_loccN              
ampeg_startccN      fillfo_freqccN    pitchlfo_depthccN     
ampeg_sustainccN    gain_ccN          pitchlfo_freqccN      
SFZ v2 spec Modulation inputs with  suffix: ccN  ( 48 count)

ampeg_attack_onccN    cutoff_curveccN     delay_onccN          
ampeg_decay_onccN     cutoff_onccN        delay_samples_onccN  
ampeg_delay_onccN     cutoff_smoothccN    fillfo_depth_onccN   
ampeg_hold_onccN      cutoff_stepccN      gain_onccN           
ampeg_release_onccN   cutoff2_ccN         offset_onccN         
ampeg_start_onccN    cutoff2_curveccN    pitch_curveccN       
ampeg_sustain_onccN  cutoff2_onccN       pitch_onccN          
amplfo_depth_onccN   cutoff2_smoothccN   pitch_smoothccN      
                     cutoff2_stepccN     pitch_stepccN        
                                         pitchlfo_depth_onccN 
resonance_ccN         reverse_hiccN   
resonance_curveccN    reverse_loccN   
resonance_onccN       set_ccN         
resonance_smoothccN   start_hiccN     
resonance_stepccN     start_loccN     
resonance2_ccN        stop_hiccN      
resonance2_curveccN   stop_loccN      
resonance2_onccN      volume_curveccN 
resonance2_smoothccN  volume_onccN    
resonance2_stepccN    volume_smoothccN

Text colors are just a formatting artifact.
(Haven’t looked into the 44 ccX codes)

Sfizz currently has implemented a total of 496 Opcodes, for 4 different standards:
SFZ v1 96% (182)
SFZ v2 75% (157)
Cakewalk 20% (53)
ARIA 57% (82)
sfizz defines 1 unique Opcode: label_keyN

Apparently 26 ccN codes for SFZ v1, and 30 ccN codes for SFZ v2

There are quite a few SFZ Opcodes slated for removal from the standards (marked pink), including I believe.
SFZ v1: 95 (of 194 total)
SFZ v2: 105 (of 205 total):