/FScape

A standalone audio rendering software for time domain and spectral signal processing. Mirror of https://codeberg.org/sciss/FScape

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

icon

FScape

Gitter Build Status Donate using Liberapay

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

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.

screenshot

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:

  1. sbt fscape/universal:packageBin
  2. 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:

  1. rm -rf full/target (otherwise Jlink fails)
  2. wine cmd.exe and Z:\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 and universal:packageBin

For Mac, a macOS computer is needed to build:

  1. git fetch; git merge origin/work
  2. sbt -java-home /Users/naya/Downloads/jdk-11.0.4+11/Contents/Home fscape-full/clean fscape-full/update fscape-full/universal:packageBin
  3. 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 then rm fscape-full_<version>_mac_x64.zip then chmod a+x fscape-full_<version>_mac_x64/bin/fscape then chmod a+x fscape-full_<version>_mac_x64/jre/bin/*
  4. Repackage: zip -y -r -9 fscape-full_<version>_mac_x64.zip fscape-full_<version>_mac_x64