FScape
statement
FScape is a standalone, cross-platform audio rendering software. It is a "suite" of modules, from more classic to experimental, that usually take an audio file as input, and according to parameters set by the user generate a transformed output audio file.
FScape is (C)opyright 2001–2021 by Hanns Holger Rutz. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License v3 or newer.
This program is distributed in the hope that it will be useful, but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details.
To contact the author, send an e-mail to contact at sciss.de
. For project status, API and current version
visit github.com/Sciss/FScape.
FScape is winner of the 2014 LoMus award (ex-aequo) by the Association Française d’Informatique Musicale (AFIM).
Please consider supporting this project through Liberapay (see badge above) – thank you!
download and installation
- A binary (executable) version is provided via archive.org or GitHub Releases. We provide a universal zip for all platforms as well as JDK bundled versions for Linux, Windows, Mac, and a dedicated package for Debian / Ubuntu.
- The source code can be downloaded from github.com/Sciss/FScape or github.com/Sciss/FScape.
In order to run the application, you must have a Java Development Kit (JDK) installed or use one of the bundled ("full") downloads. The recommended versions are JDK 8. and JDK 11. https://adoptopenjdk.net/ is a good source for JVM installers.
Note: A new version of FScape ("next") is being developed based on a
UGen graph in Scala. Over time, it will
accumulate modules translated from FScape 1 as well as new modules. You can find these modules in the file
FScape-modules.zip
, a workspace for Mellite, distributed with the Mellite downloads.
running
In the binary distribution, you should use the shell scripts bin/fscape
(Linux, OS X) or bin/fscape.bat
(Windows)
to start the application. If you have installed the Debian package, fscape
should be on your path and available as a
desktop icon in your desktop environment.
Note Mac users: If you download the plain version without bundled JDK, there is a high chance that your system has a too old Java installation, typically indicated by a "java.lang.UnsupportedClassVersionError". See above for links to download JDK 8 or 11.
documentation
A basic quick start guide starts from help/index.html
. This help is also accessible from the help menu within the
application. For each of the processing modules, help is available via Help > Module Documentation.
An old but still useful short screencast is available on Vimeo.
For help, visit the Gitter channel.
contributing
Please see the file CONTRIBUTING.md for details.
building from source
See the section 'download and installation' for requirements (JDK).
FScape builds with sbt.
- to compile:
sbt compile
- to package:
sbt package
- to run:
sbt run
- to make a standalone jar:
sbt assembly
The standalone jar, created via sbt fscape/assembly
produces FScape.jar
which is double-clickable and can be
run via:
$ java -jar FScape.jar
Runnable packages can be created via sbt universal:packageBin
(all platforms) or sbt debian:packageBin
(Debian).
building with bundled JDK
We are currently experimenting with a build variant that bundles the JDK using the JLink plugin for sbt-native-packager.
In order to build this version, run sbt fscape-full/universal:packageBin
.
The produced installation is platform dependent, so will create a version that only works on the OS you are
building from.
Note that should probably specify an explicit java-home, otherwise the bundled package might be unreasonably large:
sbt -java-home ~/Downloads/OpenJDK11U-jdk_x64_linux_hotspot_11.0.4_11/jdk-11.0.4+11 fscape-full/clean fscape-full/update fscape-full/debian:packageBin
source code distribution
FScape's GPL'ed source code is made available through github.com/Sciss/FScape.
For OSC communication, FScape uses the NetUtil library, which is licensed under the GNU Lesser General Public License (LGPL). The source code is available from github.com/Sciss/NetUtil.
FScape uses the ScissLib library which is licensed under the GNU General Public License, source code provided through github.com/Sciss/ScissLib.
FScape is bundled with the Web Look-and-feel licensed under the GNU General Public License, source code provided through github.com/mgarin/weblaf.
The libraries Desktop, FileUtil and RaphaelIcons are covered by the LGPL.
The sbt build script by Paul Phillips is included which is licensed under a BSD style license.
creating new releases
This section is an aide-mémoire for me in releasing stable versions.
We're currently publishing the following artifacts:
fsacpe_<version>_all.zip
fscape-full_<version>_linux_x64.zip
fscape-full_<version>_amd64.deb
fscape-full_<version>_win_x64.zip
fscape-full_<version>_mac_x64.zip
To build for Linux:
sbt fscape/universal:packageBin
sbt -java-home '/home/hhrutz/Downloads/OpenJDK11U-jdk_x64_linux_hotspot_11.0.11_9/jdk-11.0.11+9' fscape-full/universal:packageBin fscape-full/debian:packageBin
Copy the artifacts to a safe location now. To build for Mac and Windows, we need to publish all libraries now to Maven Central. Then Windows can be built on Linux using wine:
rm -rf full/target
(otherwise Jlink fails)wine cmd.exe
andZ:\home\hhrutz\Downloads\OpenJDK11U-jdk_x64_windows_hotspot_11.0.9_11\jdk-11.0.9+11\bin\java.exe -jar Z:\home\hhrutz\Downloads\sbt-1.4.2\sbt\bin\sbt-launch.jar
then in sbt console:project fscape-full
anduniversal:packageBin
For Mac, a macOS computer is needed to build:
git fetch; git merge origin/work
sbt -java-home /Users/naya/Downloads/jdk-11.0.4+11/Contents/Home fscape-full/clean fscape-full/update fscape-full/universal:packageBin
- We need to set the execution bits on Linux after copying the zip to the Linux machine, and unpacking it:
rm fscape-full_<version>_mac_x64/bin/fscape.bat
thenrm fscape-full_<version>_mac_x64.zip
thenchmod a+x fscape-full_<version>_mac_x64/bin/fscape
thenchmod a+x fscape-full_<version>_mac_x64/jre/bin/*
- Repackage:
zip -y -r -9 fscape-full_<version>_mac_x64.zip fscape-full_<version>_mac_x64