All Projects → Sciss → SwingOSC

Sciss / SwingOSC

Licence: other
An OpenSoundControl (OSC) server to dynamically instantiate and control Java objects. Its main application is a GUI library for SuperCollider.

Programming Languages

HTML
75241 projects
java
68154 projects - #9 most used programming language
SuperCollider
123 projects
Pure Data
34 projects
shell
77523 projects
scala
5932 projects

Projects that are alternatives of or similar to SwingOSC

Fsynth
Web-based and pixels-based collaborative synthesizer
Stars: ✭ 146 (+563.64%)
Mutual labels:  osc, supercollider
tidal-looper
Different looper variants for SuperDirt to provide live sampling in TidalCycles.
Stars: ✭ 55 (+150%)
Mutual labels:  osc, supercollider
LoboEvolution
Lobo Evolution Java Web Browser. Forks welcome!
Stars: ✭ 53 (+140.91%)
Mutual labels:  swing
flucoma-sc
Fluid Corpus Manipulation plugins for Supercollider
Stars: ✭ 45 (+104.55%)
Mutual labels:  supercollider
superfomus
SuperCollider bindings to Fomus Music Notation
Stars: ✭ 23 (+4.55%)
Mutual labels:  supercollider
tinyspec-cling
tiny spectral synthesizer with livecoding support
Stars: ✭ 31 (+40.91%)
Mutual labels:  osc
RegexReplacer
A flexible tool to make complex replacements with regular expression
Stars: ✭ 38 (+72.73%)
Mutual labels:  swing
ManosOsc
(Eyebeam #13 of 13) Output OSC, MIDI, and After Effects/Maya animation scripts from the Leap Motion controller.
Stars: ✭ 53 (+140.91%)
Mutual labels:  osc
Carcassonne
A digital version of the board game Carcassonne, implemented in Java. This desktop computer game supports up to five players at the same time (shared-screen multiplayer mode).
Stars: ✭ 70 (+218.18%)
Mutual labels:  swing
jpass
🔐 Password manager application with strong encryption (AES-256). [Java/Swing]
Stars: ✭ 129 (+486.36%)
Mutual labels:  swing
OSCShark
OSC Shark is a tool for monitoring and analysing OSC (Open Sound Control) packets.
Stars: ✭ 24 (+9.09%)
Mutual labels:  osc
VCVRack-Holon.ist
Holon.ist Receiver for VCV Rack
Stars: ✭ 13 (-40.91%)
Mutual labels:  osc
GC4S
GUI Components for (Java) Swing
Stars: ✭ 36 (+63.64%)
Mutual labels:  swing
ofxOscMidi
Midi in, OSC out with Midi thru. Based on openFrameworks
Stars: ✭ 66 (+200%)
Mutual labels:  osc
osc
Open Sound Control 1.0 for golang
Stars: ✭ 34 (+54.55%)
Mutual labels:  osc
ionic-swing
[NOT MAINTAINED] A fork of swing.js and angular2-swing for Ionic without external hammerjs dependencies
Stars: ✭ 20 (-9.09%)
Mutual labels:  swing
vimix
Live Video Mixer
Stars: ✭ 172 (+681.82%)
Mutual labels:  osc
loaf
loaf: lua, osc, and openFrameworks
Stars: ✭ 37 (+68.18%)
Mutual labels:  osc
bcomp-extended
Emulator of basic computer
Stars: ✭ 21 (-4.55%)
Mutual labels:  swing
portedplugins
A collection of plugins for the SuperCollider sound environment, all of which are ported / remixed from elsewhere
Stars: ✭ 124 (+463.64%)
Mutual labels:  supercollider

logo

Build Status

SwingOSC

Note: this project is basically abandoned. The reason being that SuperCollider now has a better supported cross-platform GUI library, and furthermore that I use a different SuperCollider client now. The project was just recently updated to make sure it still compiles. It may still be useful where you have to run older SuperCollider versions or want a remote GUI server. I am unsure whether it still runs under SuperCollider v3.6.x or newer.

statement

SwingOSC is an OpenSoundControl (OSC) server intended for scripting Java(tm), such as to create graphical user interfaces with AWT or Swing classes. It uses the reflection and beans mechanisms to dynamically create instances of Java classes and control them. A separate set of SuperCollider language classes is included to allow the building of GUIs from within sclang.

SwingOSC is (C)opyright by 2005-2016 Hanns Holger. All rights reserved. It is released under the GNU General Public License.

SwingOSC version 0.70 is intended to be used with SuperCollider 3.5.1 or higher.

security note

SwingOSC uses UDP and TCP network protocols. It allows to create and execute almost any kind of java code on your machine. Therefore, running SwingOSC in a network that can be accessed from outside is a severe security problem, allowing hijacking, information retrieval and massive damage on your machine. You have been warned!

It is strongly advised to launch SwingOSC with the -L option which limits communication to the local computer. Alternatively, make sure your firewall settings are appropriate.

requirements

SwingOSC is written in Java and requires a Java runtime environment (JRE) version 1.6 or better. SwingOSC should work with Oracle Java or OpenJDK. You can verify your current Java version by opening a terminal and executing the command java -version.

installation

Installing SuperCollider classes: please refer to the separate file SuperCollider/README.md. Also see file INSTALL_LINUX on Linux.

contributing

Please see the file CONTRIBUTING.md

launching the server

Note: Typically you will launch SwingOSC from sclang, using SwingOSC.default.boot. The following section describes how to launch SwingOSC from a terminal and the types of switches accepted.

Open a terminal and cd into the SwingOSC folder. Either run the default script by typing sh SwingOSC_TCP.ext (where ext is .command on OS X, .sh on Linux, and .bat on Windows), or launch with custom options:

java [java-VM-options] -jar SwingOSC.jar [swing-osc-options]

where the VM options are:

  • -Dswing.defaultlaf=<LookAndFeelClassName>: specifies a custom look-and-feel class. e.g. com.birosoft.liquid.LiquidLookAndFeel. Note that the widgets are now optimised for Nimbus, so it is recommended to just use the -nimbus switch instead.
  • -Xdock:icon=application.icns : (Mac OS only) uses a prettier icon for display in the dock and programme switching screen.
  • -Xdock:name=SwingOSC : (Mac OS only) uses an alternative name in the screen bar and dock

and the SwingOSC options are:

  • -t <port> (recommended) : uses the given TCP port for message reception. The SuperCollider classes assume that you use port 57111!
  • -u <port> : uses the given UDP port for message reception. if absent, an arbitrary free port will be picked.
  • -L (recommended) : uses loopback address ("127.0.0.1") for communication. if absent, the local host's IP address is used. when your computer is connected to a network and SwingOSC needs only be accessed from the local computer, make sure you use this option to minimize the security issue mentioned above.
  • -i : runs Swing initialization upon startup. On Mac OS, a terminal app becomes a GUI app with screen menu bar and icon in the Dock, as soon as an AWT or Swing component is created. This initialization can be enforced by using this option.
  • -h <host:port> (recommended) : sends a [ /swing, "hello", <swingHost>, <swingPort>, <swingProtocol> ] message to the given UDP socket. this kind of manual "bonjour" is used by the SuperCollider classes to detect the startup of the SwingOSC server.
  • --nimbus (recommended) : enforces the use of the Nimbus look and feel. Requires Apple Java 6, Oracle Java 6, or OpenJDK 7 or newer.

If you wish to include custom Java classes or libraries, you can either

  • use the /classes OSC command (see OSC reference for details).

  • include them in the SwingOSC.jar file

  • add them to the java class path, as shown in the following example which adds the freetts speech libraries (assuming they have been copied to the lib folder):

    java -cp SwingOSC.jar:lib/freetts.jar:lib/jsapi.jar de.sciss.swingosc.SwingOSC [swing-osc-options]

compilation from source

SwingOSC now builds with sbt. Includes is a little helper bash script sbt by Paul Philips (license)which will download the sbt launcher to the SwingOSC directory if not yet present, and then invoke it.

You can also install sbt as explained on the sbt website.

To compile and assemble SwingOSC, run ./sbt assembly-devel. The final fully self-contained jar file will be SwingOSC.jar in the base directory. Make sure you adjust your SwingOSC.program settings in SuperCollider accordingly.

To package distribution zip files in the dist directory, run ./sbt package-dist.

The project now includes all the JXBrowser library components. In lib you find two license keys jxbrowser_development_license_for_swingosc.jar and jxbrowser_runtime_license_for_swingosc.jar. If creating a binary artifact of SwingOSC, only the runtime key may be distributed, and the development key must not be included.

download

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].