The main goal of liquidsfz is to implement a library that supports playing .sfz files and is easy to integrate into other projects. We also provide a JACK client and a LV2 plugin.

A new version, liquidsfz-0.3.2 is now available.

This release fixes a crash triggered by Carla while saving without path. It also allows for overlapping notes during sustain, which makes sustain sound more realistic. A precompiled windows LV2 binary is now available.

For a list of changes, see the github release.


#1 antonio on 07.17.23 at 23:39

I have a question: Can I play .MID files with liquidsfz, either alone or with aplaymidi?

#2 stw on 07.18.23 at 10:18

There is no direct support for loading/playing midi files with liquidsfz. So you need to supply midi events at the jack midi input port of liquidsfz.

One way to use aplaymidi is starting aplaymidi with the alsa midi through port as output, and connect the alsa midi through port to the input of liquidsfz (for instance using qjackctl to do the connection).

#3 amc252 on 07.18.23 at 20:53

Worked like a charm. You’re a genius.

#4 amc252 on 08.14.23 at 21:08

A few questions about tuning a piano library at 432Hz. Does liquidsfz support the opcode ‘tune’?
Would the value tune=-32 work?
Would placing the tune= opcode under the header work or it needs to be placed somewhere else?

#5 stw on 08.15.23 at 12:26

The list of supported opcodes is available at

And yes, it supports the tune opcode (as an alias for pitch). The value -32 (cent) looks correct to me.

You should be able to place the tune=… in a “global” section at the beginning so that it applies to all regions. However note that if “tune” is used in a lower level region (elsewhere in the .sfz), it will override the value from the “global” section.

So it might be a good idea to add the possibility to re-tune a .sfz without editing the .sfz itself to liquidsfz.

#6 amc252 on 08.15.23 at 17:07

Thanks for the prompt answer. Yes, it seems to work. This is pretty cool ’cause I love the 432Hz tuning for piano solo, and being able to achieve that so simply is a great feature.

#7 amc252 on 10.31.23 at 15:55

Are there any chances that the next release of Liquidsfz will support the header and opcode so that we can add resonances?
By the way, thanks again for your awesome work.

#8 amc252 on 10.31.23 at 16:03

Sorry, for some reason the message came out wrong. The header is “effect” and the opcode “strings_number”.

#9 stw on 11.02.23 at 12:09

Right now my top priority for liquidsfz is getting it integrated properly in the open source “Anklang” DAW, this was the reason I initially started to implement it at all. Still new opcodes remain important of course, if they are needed for sfz files users want to have in Anklang. Which sfz files would benefit from this effect being added?

Another specific problem with this opcode is that the documentation I found is not great, so its not clear how to implement it. Sfizz has some code for this opcode, but the sfizz compatibility documentation says “Difference of behavior”, so it may or may not do the right thing.

#10 amc252 on 11.02.23 at 15:41

It’s supposed to add string resonance in sampled pianos. I too have noticed that some .sfz opcodes are poorly documented which certainly make it harder for a developer to integrate them. I didn’t know Anklang but it seem a very interesting project.

#11 stw on 11.06.23 at 10:55

Can you provide a link one or more example piano sfzs which actually use this string resonance feature?

Out of curiosity: is this only used if the sustain pedal is down?

#12 amc252 on 11.14.23 at 21:39

I don’t know of any sfz piano that uses this feaure yet. I’m not sure whether it’s supposed to be used with pedal down samples or both.

#13 amc252 on 02.24.24 at 22:53

I have been using some sfz libraries which have both pedal up and pedal down samples.
I have noticed that with Liquidsfz, when I lift the pedal, the sustain keep playing, whereas of course it should stop. This does not happens when I play the same library with sfizz.
The behavior persists even if I comment out the opcodes which Liquidsfz does not support.
Here is a link to the sfz file if you wish to take a look.

#14 stw on 03.08.24 at 09:53

Ok, I’ve looked at the .sfz you provided, and I can understand why the sustain pedal doesn’t work. Since liquidsfz doesn’t implement all opcodes used by the .sfz (especially it doesn’t implement the ampeg_dynamic opcode) the effect of the sustain pedal won’t be correct.

See also:

#15 amc252 on 03.12.24 at 04:18

Thanks for your reply and the link. It’s a pity Liquidsfz doesn’t support (yet, I hope) the opcodes necessary to implement the pedal down samples effect. Some rather good free libraries (namely the Pianobook Experience Yamaha, Fazioli and Steinway) ship with both pedal down/pedal up samples for increased playability, and are a great alternative to paid VSTs.

Leave a Comment