SCLOrkTools is a Quark maintained primarily by Luke Nihlen for use by the Santa Clara University Laptop Orchestra, conducted by Bruno Ruviaro. The code lives on GitHub, is GPLv3 open source, and contributions, issue reports, feedback, and all else are enthusiastically welcomed there. If you find this Quark useful, particularly if you aren't a part of SCLOrk, I'd be delighted to hear it.
SCLOrkTools is the consolidation of several different Quarks that I developed independently into one. Those with historical interest are directed to the release notes, but the point here is that while there are many interdependencies between the different parts of the tools they can still best be considered as a few different projects, which we detail here.
For a user manual please consult the SCLOrkChat-User-Guide. In terms of engineering overview, all network communication happens using SCLOrkWire. A server object, the SCLOrkChatServer, runs on the SCLOrk server. Network topology is a classic "star" configuration, with all communication between client and server and no client-client communication. A SCLOrkChatClient class provides a convenient client-side abstraction, which is the same class that the SCLOrkChat UI uses.
SCLOrkChat | The primary chat user interface. |
SCLOrkChatMessageView | A utility class for SCLOrkChat, handles all of the logic around rendering of a single chat message. |
SCLOrkChatClient | A programmatic client interface to the SCLOrkChat system. |
SCLOrkChatServer | A chat server, run one per chat system instance. |
SCLOrkChatMessage | A simple wrapper class around the chat message format. |
The SCLOrkClock has recently undergone a substantial refactor and as succh the documentation is out of date, so it was deleted during the consolidation of SCLOrkClock out of its own repositories and in to SCLOrkTools. New documentation is TBD, or a PR on GitHub would be gladly accepted!
In short, SCLOrkClock exposes an API very similar to TempoClock, and also includes facilities for synchronization of these clocks across a LAN.
SCLOrkClock | The client clock set, a singleton instance that makes one of every clock cohort on the network. |
SCLOrkClockServer | Coordinates the various clock cohorts on the network, runs on the server. |
The Public Domain piece plays with the idea of being able to sample from different eras of music depending on the evolution of copyright law, and specifically the defintion of Public Domain, as it is restricted to increasingly older music. As performers we wanted to be able to improvise Pbindef
statements, but also to coordinate switching between many different templates to serve as starting places for that improvisation. The SCLOrkPD objects parse .scd
files containing a set of Pbindef
statements, called a preset, organized into individual voices. The UI then allow for switching between presets with appropriate voice already selected, and for interactive editing and performance right in the UI.
SCLOrkPD | The primary SCLOrk Public Domain user interface. |
SCLOrkPDParameterView | A utility class for SCLOrkPD, renders a single parameter inside of the voice. |
SCLOrkPDPreset | Parses an entire Public Domain preset .scd file into the individual voices. |
SCLOrkPDVoice | An individual voice within a preset, parsed from the .scd file. |
Various tools developed to support the other parts of the SCLOrkTools, or SCLOrk performance overall.
SCLOrkWire | A reliable UDP-based OSC network communication class. |
SCLOrkWiimote | Uses the SuperCollider HID classes to provide communication with a paired Wiimote. |
SCLOrkWiimoteUI | Provides visualization of the SCLOrkWiimote state. |