Clean up readme, quick additional info will follow

This commit is contained in:
redtide 2020-02-18 13:38:53 +01:00
parent 8941f0a800
commit e6850a3be9
2 changed files with 34 additions and 120 deletions

154
README.md
View file

@ -1,131 +1,45 @@
# sfizz
![alt tag](sfizz_screenshot.png)
[![Travis Build Status]](https://travis-ci.com/sfztools/sfizz)
[![Travis Build Status](https://img.shields.io/travis/com/sfztools/sfizz.svg?label=Linux&style=popout&logo=travis)](https://travis-ci.com/sfztools/sfizz)
SFZ library and LV2 plugin, please check [our website] for more details.
## Building
![Screenshot](screenshot.png)
Most people will probably want the LV2 plugin with `libsndfile` built-in statically.
You can directly build it this way through Docker by calling these in an *empty* directory :
```
wget https://raw.githubusercontent.com/sfztools/sfizz/master/scripts/Dockerfile
wget https://raw.githubusercontent.com/sfztools/sfizz/master/scripts/x64-linux-hidden.cmake
docker build -t sfizz .
docker cp $(docker create sfizz:latest):/tmp/sfizz/build/sfizz.lv2 .
```
Note that the statically linked LV2 plugin is to be distributed under the LGPL license, as per the terms of the `libsndfile` library.
### More generic builds and development
`sfizz` depends mainly on the `libsndfile` library.
To build the other `sfizz` targets you need to install both `libsndfile` and `JACK` as shared libraries on the system.
In Debian-based distributions, this translates into
```bash
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
```bash
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 with both C and C++ interfaces
- The JACK client
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
```sh
cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_JACK=OFF -DSFIZZ_SHARED=OFF ..
```
and process as before.
In this case, the LV2 plugin will load `libsndfile` dynamically from your system.
## Possible pitfalls and alternatives
If you already cloned the repository without the `--recursive` option,
update the submodules manually with
```bash
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`.
```powershell
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
```powershell
.\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:
```powershell
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.
You need to manually add `lv2\Release\sfizz.dll` to the `build\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.
### Building the LV2 plugin with static linkage to `libsndfile` on Linux
This uses Docker and `vcpkg` on Linux.
Install a Docker version and use the `Dockerfile` located in `scripts/`.
The `scripts/` directory also contains a `docker_lv2_release.sh` file that automates downloading the current `develop` branch and building an LV2 release plugin.
Note that the statically linked LV2 plugin is to be distributed under the LGPL license, as per the terms of the `libsndfile` library.
## License and contribution information
## Author and contributors
Contributors to `sfizz` include:
- Paul Ferrand (2019-) (maintainer)
- Andrea Zanellato (2019-) (devops, documentation and distribution)
- Jean-Pierre Cimalando (2020-)
- Michael Willis (2020-)
- Alexander Mitchell (2020-)
- Paul Ferrand (2019-2020) (maintainer)
- Andrea Zanellato (2019-2020) (devops, documentation and distribution)
- Jean-Pierre Cimalando (2020)
- Michael Willis (2020)
- Alexander Mitchell (2020)
## Dependencies and licenses
The sfizz library makes primary use of:
- [libsndfile](https://github.com/erikd/libsndfile/) (licensed under the GNU Lesser General Public License v2.1)
- [Abseil](https://github.com/abseil/abseil-cpp) (licensed under the Apache License 2.0)
- [atomic_queue](https://github.com/max0x7ba/atomic_queue) by Maxim Egorushkin (licensed under the MIT license)
- [filesystem](https://github.com/gulrak/filesystem) by Steffen Schümann (licensed under the BSD 3-Clause license)
- [hiir](http://ldesoras.free.fr/prod.html#src_hiir) by Laurent de Soras (licensed under the Do What The Fuck You Want To Public License v2 license)
- [libsndfile], licensed under the GNU Lesser General Public License v2.1
- [Abseil], licensed under the Apache License 2.0
- [atomic_queue] by Maxim Egorushkin, licensed under the MIT license
- [filesystem] by Steffen Schümann, licensed under the BSD 3-Clause license
- [hiir] by Laurent de Soras, licensed under the WTFPL v2 license
The sfizz library also uses in some subprojects:
- [Catch2](https://github.com/catchorg/Catch2) (licensed under the Boost Software License 1.0)
- [benchmark](https://github.com/google/benchmark) (licensed under the Apache License 2.0)
- [LV2](https://lv2plug.in/) (licensed under the ISC license)
- [JACK](https://github.com/jackaudio/jack2) (licensed under the GNU Lesser General Public License v2.1)
- `neon_mathfun.h` and `sse_mathfun.h` by Julien Pommier (licensed under the zlib license)
- [Catch2], licensed under the Boost Software License 1.0
- [benchmark], licensed under the Apache License 2.0
- [LV2], licensed under the ISC license
- [JACK], licensed under the GNU Lesser General Public License v2.1
- `neon_mathfun.h` and `sse_mathfun.h` by Julien Pommier,
licensed under the zlib license
[Abseil]: https://github.com/abseil/abseil-cpp
[atomic_queue]: https://github.com/max0x7ba/atomic_queue
[benchmark]: https://github.com/google/benchmark
[Catch2]: https://github.com/catchorg/Catch2
[filesystem]: https://github.com/gulrak/filesystem
[hiir]: http://ldesoras.free.fr/prod.html#src_hiir
[JACK]: https://github.com/jackaudio/jack2
[libsndfile]: https://github.com/erikd/libsndfile/
[LV2]: https://lv2plug.in/
[our website]: https://sfz.tools/sfizz
[Travis Build Status]: https://img.shields.io/travis/com/sfztools/sfizz.svg?label=Linux&style=popout&logo=travis

BIN
screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB