A computer music framework to describe, create and manage sound processes in the Scala programming language.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Hanns Holger Rutz 5f13c5f66a v4.14.2 -- fixes #116 <> 4 months ago
.github/workflows fix Txn -> synth.Txn transitions 1 year ago
_creation ... 3 years ago
compiler/src dates <> 5 months ago
core v4.14.2 -- fixes #116 <> 4 months ago
licenses v3.14.0 -- adds macros for Action() and proc.setGraph 5 years ago
notes fixes #41, fixes #111 <> 7 months ago
project Code.Program ; move attrSource <> 5 months ago
scripts Code.Program ; move attrSource <> 5 months ago
synth v4.14.2 -- fixes #116 <> 4 months ago
views dates <> 5 months ago
.gitignore v4.1.0 -- experimental support for Scala.js 2 years ago
CONTRIBUTING.md v3.35.5 -- master -> main 2 years ago
LICENSE add expr timeline addAll 3 years ago
README.md v4.14.2 -- fixes #116 <> 4 months ago
build.sbt v4.14.2 -- fixes #116 <> 4 months ago

README.md

SoundProcesses

Gitter Build Status Maven Central

statement

SoundProcesses is an extension for ScalaCollider to describe, create and manage sound processes in the Scala programming language. It is (C)opyright 2010–2022 by Hanns Holger Rutz. All rights reserved. SoundProcesses is released under the GNU Affero General Public License v3+ and comes with absolutely no warranties. To contact the author, send an e-mail to contact at sciss.de.

Further reading:

  • Tutorials on the Mellite website.
  • Notes on the Research Catalogue.
  • Rutz, H. H., "SoundProcesses: A New Computer Music Framework," in Proceedings of the ICMC|SMC|2014 Joint Conference, Athens 2014.

building

SoundProcesses builds with sbt against Scala 2.12, 2.13, Dotty (JVM), and Scala 2.13 (JS). The last version to support Scala 2.11 was 3.31.0. The dependencies should be downloaded automatically from Maven Central repository.

The Scala.js support it is still in experimental stage. Linker errors and bugs are to be expected here.

linking

The following submodules are available:

"de.sciss" %% "lucre-synth"             % v  // transactional layer for ScalaCollider
"de.sciss" %% "soundprocesses-core"     % v  // everything but views and compiler
"de.sciss" %% "soundprocesses-views"    % v  // common swing views
"de.sciss" %% "soundprocesses-compiler" % v  // compiler integration

The current version v is "4.14.2".

contributing

Please see the file CONTRIBUTING.md

usage

Project is still sparse, however there is a graphical front-end Mellite, and the Mellite website contains tutorials on SoundProcesses.

notes

  • currently, constant Expr object do carry an id and thus are not identical to each other when created repeatedly even with the same peer constant. This was done in order to satisfy Obj property, e.g. for any IntObj including its constants. A future version may go back to 'cheap' constants which must be explicitly lifted if one wants to access attr on them.

Scala.js

The following abstractions are currently not supported

  • Bounce
  • (Ex) Sys.Process, Sys.Exit, AudioFileSpec.Read