All Projects → Sciss → ScalaColliderSwing

Sciss / ScalaColliderSwing

Licence: AGPL-3.0 license
A Swing based front end or "mini-IDE" for ScalaCollider.

Programming Languages

scala
5932 projects
shell
77523 projects

Projects that are alternatives of or similar to ScalaColliderSwing

Haskell Ide Engine
The engine for haskell ide-integration. Not an IDE
Stars: ✭ 2,433 (+15106.25%)
Mutual labels:  ide
Ecere Sdk
Ecere SDK (eC Language, Ecere IDE, Cross platform GUI, graphics, and more) — http://ec-lang.org —
Stars: ✭ 244 (+1425%)
Mutual labels:  ide
tree-core-ide
The next generation integrated development environment for processor design and verification. It has multi-hardware language support, open source IP management and easy-to-use rtl simulation toolset.
Stars: ✭ 79 (+393.75%)
Mutual labels:  ide
Composer
Visual and code editor for Common Workflow Language
Stars: ✭ 232 (+1350%)
Mutual labels:  ide
Ultimatepp
U++ is a C++ cross-platform rapid application development framework focused on programmer's productivity. It includes a set of libraries (GUI, SQL, Network etc.), and integrated development environment (TheIDE).
Stars: ✭ 237 (+1381.25%)
Mutual labels:  ide
Arrow Meta
Functional companion to Kotlin's Compiler
Stars: ✭ 246 (+1437.5%)
Mutual labels:  ide
Meghanada Server
A Java IDE Server for your editor. Java IDE-like features to your favourite text editor.
Stars: ✭ 213 (+1231.25%)
Mutual labels:  ide
wdl-ide
Rich IDE support for Workflow Description Language
Stars: ✭ 36 (+125%)
Mutual labels:  ide
Monodevelop
MonoDevelop is a cross platform .NET IDE
Stars: ✭ 2,682 (+16662.5%)
Mutual labels:  ide
apio-ide
🌱 Experimental open FPGA IDE using Atom and Apio
Stars: ✭ 82 (+412.5%)
Mutual labels:  ide
Ide Haskell
Haskell IDE plugin for Atom editor
Stars: ✭ 236 (+1375%)
Mutual labels:  ide
Sdk
The jMonkeyEngine3 SDK based on netbeans
Stars: ✭ 240 (+1400%)
Mutual labels:  ide
TwoDark
Atom's OneDark inspired theme for Sublime Text
Stars: ✭ 19 (+18.75%)
Mutual labels:  ide
Theia
Eclipse Theia is a cloud & desktop IDE framework implemented in TypeScript.
Stars: ✭ 15,920 (+99400%)
Mutual labels:  ide
IC-InteractiveConstructor
Construtor Interativo de website.
Stars: ✭ 15 (-6.25%)
Mutual labels:  ide
Edi
Edi - The open source text editor IDE based on AvalonDock and AvalonEdit
Stars: ✭ 220 (+1275%)
Mutual labels:  ide
Nesicide
Integrated Development Environment for the 8-bit Nintendo Entertainment System
Stars: ✭ 244 (+1425%)
Mutual labels:  ide
ToolBin
All the great tools we have for the field.
Stars: ✭ 91 (+468.75%)
Mutual labels:  ide
c9.ide.theme.jett
Flat Material Look for Cloud9!
Stars: ✭ 26 (+62.5%)
Mutual labels:  ide
lily
Lily is a modular and lightweight IDE for languages based on Panda Framework
Stars: ✭ 24 (+50%)
Mutual labels:  ide

icon

ScalaCollider-Swing

Gitter Build Status Maven Central Donate using Liberapay

statement

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

(C)opyright 2008–2021 by Hanns Holger Rutz. All rights reserved. It 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.

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.

Please consider supporting this project through Liberapay (see badge above) – thank you!

screenshot

downloading

building from source

ScalaCollider-Swing builds with sbt against Scala 2.13, 2.12. The last version supporting Scala 2.11 was 1.41.4.

  • sbt assembly creates a fully self-contained jar (platform neutral)

To link to ScalaCollider-Swing:

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

Or just to some submodules:

"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 version v is "2.9.2".

contributing

Please see the file CONTRIBUTING.md

running

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

$ java -jar ScalaCollider.jar

Runnable packages can be created via sbt universal:packageBin (all platforms) or sbt debian:packageBin (Debian).

You can also run the "old" multi-window demo using

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
    s.gui.scope()               // show oscilloscope for the output buses of the server

    // 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
    someBus.gui.scope()         // show oscilloscope for the given bus

    // graph functions
    val fun = graph {           // use `graph { ... }` instead of `play { ... }` to capture function
      PinkNoise.ar
    }
    fun.gui.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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].