Self-owned backup fork of sfztools/sfizz (archived upstream 2025). Buildable snapshot in R2/archive.
Find a file
2020-01-25 10:13:33 +01:00
.travis Wrong operator 2019-12-27 01:48:48 +01:00
benchmarks Updated licenses and copyright date 2020-01-25 10:13:33 +01:00
clients Added a C++ opaque API for the shared lib 2020-01-23 22:17:06 +01:00
cmake NOOP - whitespace 2020-01-24 11:15:11 +01:00
doxygen Avoid unneeded Doxygen builds by removing footer build date 2019-12-27 12:22:12 +01:00
external Benchmark crept back in?? 2019-12-29 18:32:02 +01:00
lv2 Updated licenses and copyright date 2020-01-25 10:13:33 +01:00
scripts NOOP - whitespace 2020-01-24 11:15:11 +01:00
src Updated licenses and copyright date 2020-01-25 10:13:33 +01:00
tests Updated licenses and copyright date 2020-01-25 10:13:33 +01:00
.editorconfig Minor changes 2019-12-30 05:39:39 +01:00
.gitignore Added Arm64 Travis build 2019-12-22 14:22:40 +01:00
.gitmodules Removed the benchmark submodule 2019-11-29 23:25:43 +01:00
.travis.yml Change IRC notifications channel 2020-01-24 17:50:10 +01:00
CMakeLists.txt New pc file update 2020-01-23 22:28:27 +01:00
Doxyfile Automated Doxygen documentation with Travis-CI 2019-12-02 02:35:58 +01:00
LICENSE.md Create LICENSE.md 2019-08-30 00:53:38 +02:00
README.md Updated README 2020-01-19 11:06:54 +01:00

sfizz

Travis Build Status

Building

sfizz depends on the libsndfile library. The JACK client depends on the jack library. To build sfizz you need to install both as shared libraries on the system. In Debian-based distributions, this translates into

sudo apt install libjack-jackd2-dev libsndfile1-dev

The benchmarks depend on the benchmark library (https://github.com/google/benchmark). If you wish to build the benchmarks you should either build it from source and install the static library, or use the library from your distribution---Ubuntu proposes a libbenchmark-dev package that does this.

The process is as follows:

  1. Clone the repository with all the submodules
  2. Create a build directory for CMake and cd into it
  3. Build as release
  4. Enjoy :)

In the shell world, this means

git clone --recursive https://github.com/sfztools/sfizz.git
git checkout develop
cd sfizz
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
sudo make install

By default this builds and installs:

  • The shared library version of sfizz
  • The JACK client
  • The LV2 plugin

The JACK client client will forcefully connect to the system output, and open an event input in Jack for you to connect a midi capable software or hardware (e.g. jack-keyboard).

Note that you can disable all targets but the LV2 plugin using

cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_JACK=OFF -DSFIZZ_SHARED=OFF ..

and process as before.

Possible pitfalls and alternatives

If you already cloned the repository without the --recursive option, update the submodules manually with

git submodule update --init --recursive

You can build with clang, although in that case the CMakeFile defaults to using libc++ instead of libstdc++.

Building with MSVC on windows

The simplest is to use vcpkg as a package manager, which will give you access to libsndfile.

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat
.\vcpkg integrate install
.\vcpkg integrate powershell

Assuming you want to build for x64, install the relevant packages as follows

.\vcpkg.exe install libsndfile:x64-windows-static benchmark:x64-windows-static

In the sfizz source directory, you can then build with CMake as usual, although you should clone the windows branch:

git clone --recursive https://github.com/sfztools/sfizz.git
cd sfizz
mkdir build
cd build
cmake .. -DSFIZZ_JACK=OFF "-DCMAKE_TOOLCHAIN_FILE=C:\Users\Paul\source\vcpkg\scripts\buildsystems\vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=x64-windows-static
cmake --build . -j 16 --config Release

This builds the lv2 plugin in build\lv2\Release and the Turtle files in build\sfizz.lv2, but the installation procedure is not entirely automatic yet. In particular, having the required DLLs along with sfizz.dll is actually not helpful because the system cannot find dlls from another dll's root directory. You thus need to add all of FLAC.dll, libsndfile-1.dll, vorbis.dll, ogg.dll, vorbisenc.dll in some directory in your PATH variable, and manually add sfizz.dll to the sfizz.lv2 directory, and the the sfizz.lv2 directory to %APPDATA%\Roaming\LV2. Ardour should then find the plugin correctly and load it without issues.