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.
- liquidsfz-0.3.2 source code
- precompiled statically linked linux 64bit binary
- precompiled windows LV2 64bit binary
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.
15 comments ↓
Hello,
I have a question: Can I play .MID files with liquidsfz, either alone or with aplaymidi?
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).
Worked like a charm. You’re a genius.
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?
Thanks.
The list of supported opcodes is available at https://github.com/swesterfeld/liquidsfz/blob/master/OPCODES.md
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.
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.
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.
Sorry, for some reason the message came out wrong. The header is “effect” and the opcode “strings_number”.
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.
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.
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?
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.
Hello,
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.
https://drive.google.com/file/d/1IMJQzvZ_h_k50HH4n9PbPlXHOJ0n0-Jj/view?usp=sharing
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: https://github.com/swesterfeld/liquidsfz/issues/41
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