SCLOrkTools User Guide:
Filter:
SCLOrkTools/Guides (extension) | Quarks > SCLOrkTools

SCLOrkTools User Guide
ExtensionExtension

The organization and structure of the software in SCLOrkTools.

Overview

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.

SCLOrkChat - Network Chat and Code Sharing

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.

SCLOrkChatThe primary chat user interface.
SCLOrkChatMessageViewA utility class for SCLOrkChat, handles all of the logic around rendering of a single chat message.
SCLOrkChatClientA programmatic client interface to the SCLOrkChat system.
SCLOrkChatServerA chat server, run one per chat system instance.
SCLOrkChatMessageA simple wrapper class around the chat message format.

SCLOrkClock - Network Clock Synchronization

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.

SCLOrkClockThe client clock set, a singleton instance that makes one of every clock cohort on the network.
SCLOrkClockServerCoordinates the various clock cohorts on the network, runs on the server.

SCLOrkPD - Support for Public Domain, a SCLOrk composition

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.

SCLOrkPDThe primary SCLOrk Public Domain user interface.
SCLOrkPDParameterViewA utility class for SCLOrkPD, renders a single parameter inside of the voice.
SCLOrkPDPresetParses an entire Public Domain preset .scd file into the individual voices.
SCLOrkPDVoiceAn individual voice within a preset, parsed from the .scd file.

Miscellaneous Support Classes

Various tools developed to support the other parts of the SCLOrkTools, or SCLOrk performance overall.

SCLOrkWireA reliable UDP-based OSC network communication class.
SCLOrkWiimoteUses the SuperCollider HID classes to provide communication with a paired Wiimote.
SCLOrkWiimoteUIProvides visualization of the SCLOrkWiimote state.