Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A Swing based front end for ScalaCollider
Scala Shell

v1.25.2

latest commit 74a527185f
@Sciss authored
Failed to load latest commit information.
_creation remove bitmap images (gauge still missing); add new web-laf version
app/src/main/scala/de/sciss/synth/swing ...
core/src
icons stabilise dependency versions. clean up. add recovered vector icon.
interpreter/src/main/scala/de/sciss/synth/swing latest dependencies; update (c) dates
licenses latest dependencies; update (c) dates
plotting/src/main/scala/de/sciss/synth/swing ...
project fix scala 2.10 compilation; remove ls
.gitignore add OS X terminal script as alternative to (currently unavailable)
.travis.yml
README.md v1.25.2
ScalaCollider.command
ScalaCollider.desktop v1.16.0 for Scala 2.11 and 2.10
build.sbt v1.25.2
interpreter.txt
sbt simple preferences

README.md

logo

ScalaCollider-Swing

Flattr this Build Status Maven Central

statement

ScalaCollider-Swing is a Swing GUI front-end for ScalaCollider. ScalaCollider is a client for the SuperCollider sound synthesis server.

(C)opyright 2008-2015 by Hanns Holger Rutz. All rights reserved. It is released under the GNU General Public License v3+ and comes with absolutely no warranties. To contact the author, send an email to contact at sciss.de.

Please see the licenses folder for details. It contains the license headers for all dependencies and transitive dependencies. For the binary release of ScalaCollider-Swing, source code is not included but available via the respective OSS project pages, as indicated in the license files, or—in compliance with GPL/LGPL—on request via E-Mail. All source code with group-ID de.sciss is available from github.com/Sciss.

downloading

building from source

ScalaCollider-Swing compiles against Scala 2.11 and 2.10 using sbt 0.13.

-sbt assembly creates a fully self-contained jar (platform neutral) -sbt appbundle creates an Mac OS X application bundle

Note: The appbundle task is currently broken because it doesn't work with multi-project builds. Therefore, on OS X you currently need to use the fat jar as well.

A the sbt shell script by paulp, made available under a BSD-style license, is now included. So if you do not want to install sbt directly on your system, you can just use that script: ./sbt.

To link to ScalaCollider-Swing:

"de.sciss" %% "scalacolliderswing" % v

Or just to some sub-modules:

"de.sciss" %% "scalacolliderswing-core"        % v  // only the core library extensions
"de.sciss" %% "scalacolliderswing-interpreter" % v  // plus the Scala REPL
"de.sciss" %% "scalacolliderswing-plotting"    % v  // plus plotting functions
"de.sciss" %% "scalacolliderswing-app"         % v  // plus the desktop IDE

The current stable version v is "1.25.2".

running

The standalone jar, created via sbt assembly produces ScalaCollider.jar which is double-clickable and can be run via:

$ java -jar ScalaCollider.jar

A Linux desktop template is included. You will have to edit this file to change the installation path. Future versions may simplify this procedure or provide a direct .deb package.

On OS X, you can use the ScalaCollider.command shell script now. It should be associated automatically to open with Terminal.app.

documentation

GUI commands

The GUI extensions are available by calling the special .gui method on supported objects. The extensions are imported with import de.sciss.synth.swing.Implicits._.

    // server
    s.gui.meter()               // show peak meters for main I/O
    s.gui.tree()                // show node tree for server's root group

    // group
    someGroup.gui.tree()        // show node tree with a given group as root

    // audio-bus
    someBus.gui.meter()         // show peak meters for the given bus
    someBus.gui.waveform(dur)   // record and plot bus output for duration in seconds

    // graph functions
    val fun = gui {             // use `gui { ... }` instead of `play { ... }` to capture function
      PinkNoise.ar
    }
    fun.waveform(dur)           // record and plot graph function for duration in seconds

Experimental support for JFreeChart is added (app sub-project only). Extensions are imported with import de.sciss.synth.swing.Plotting.Implicits._.

    Vector.fill(200)(random).plot()                 // 1D plot, lines
    Vector.fill(100)(random).plot(discrete = true)  // 1D plot, sample-and-hold

    Vector.tabulate(316) { i => (i * 0.003 * 0.2).cos -> (i * 0.025).sin } .plot()  // 2D plot, scatter

    Vector.fill(3)(Vector.fill(100)(random-random).integrate).plot() // multiple 1D plots

Chart properties and export to PNG and PDF are available through a context menu.

Something went wrong with that request. Please try again.