Skip to content

atsushieno/aap-lv2-sfizz

Repository files navigation

aap-lv2-sfizz: sfizz plugin port to AAP using aap-lv2

This repository is an example port of sfizz LV2 plugin to Audio Plugins For Android, using aap-lv2.

Right now there is no way to specify SFZ file from the plugin at run time. It has to be specified at build time. Take it more like a proof of concept right now.

Building

make should take care of the builds. See our GitHub Actions script. for the normative setup.

Hacking

You can edit external/sfizz/lv2/sfizz.c to alter DEFAULT_SFZ_FILE to any other .sfz file. Note that since Android 11 you have quite limited access to local storage, so you should probably just put your sfz contents as assets. It will be automatically copied into local data storage area (as there is no alternative mechanism to load sfz and audio files by other means).

Our aap_metadata.xml is generated by aap-import-lv2-metadata tool but it is done manually. So every time sfizz submodule is updated, chances are that the metadata needs to be regenerated (or manually fixed). Run make update-metadata to regenerate it from the latest sources (though note that the resources may be relocated; they sometimes do).

app directory directly references sfizz's own CMakeLists.txt from build.gradle. Though note that sfizz itself is patched at build time (by make).

Licensing notice

aap-lv2-sfizz itself is distributed under the MIT license.

LV2 (repository for the headers) is under the ISC license.

sfizz is distributed under the MIT license, but it has dependencies that are under the Apache License 2.0 etc. See the project repository for details. As of v0.1.6, AAP Sfizz does not depend on libsndfile anymore.

AAP Sfizz apk bundles sample external sfz from sfzinstruments/SplendidGrandPiano whose samples are Public Domain.

The entire plugin application bundles androidaudioplugin-lv2 AAR module from aap-lv2, and androidaudioplugin AAR module, and is packaged into one application.