Project directions¶
.github: PR and issue template for GitHub.travis: scripts for Travis CIcmake_modules: Find and Config modules for CMakecommon: C++ files needed by multiple components of the projecteditors: Files forscideand editor extensionssc-el: the SuperCollider Emacs package,scelsc-ide: source forscidesced: source for the SuperCollidergeditplugin,scedscvim: the SuperCollider Vim package,scvim
examples: SuperCollider code examples, packaged into release assetsexternal_libraries: C and C++ third-party librariesboost: root of Boost C++ sourcesboost_sync: contains Boost::sync, a synchronization lib which was never integrated into Boost proper.hidapi: HID API project, whichsclanguses for HID capability. Our fork is significantly patched for cross-platform compatibility.icu: IBM’s ICU libraryjackey: a simple header for Jack that makes working with Jack Metadata easier. Used byscsynthandsupernova, but not in current builds (only whenSC_JACK_USE_METADATA_APIis defined, may be old work that was never completed)libsndfile: header forlibsndfile, for working with audio file formats. Used bysclangand the serversnova-simd:nova-simd, a framework for SIMD vector functionsnova-tt:nova-tt, a library for cross-platform thread synchronizationoscpack_1_1_0: Oscpack, a library for working with OSC packets.portaudio_sc_org: SC’s fork of PortAudio, which has been modded for cross-platform workportmidi: PortMIDI, a cross-platform library for MIDI I/Osimplejson-2.3.2: simplejson, a Python package used byscedyaml-cpp: yaml-cpp, a C++ library for YAML
HelpSource: schelp source for SCDocicons: contains icon files for the projectinclude: C++ headers for client code, including server pluginslang: C++ source forsclangLangSource: sources for the core of the language, including the interpreterLangPrimSource: sources for SuperCollider primitive functions. Loosely organized by functionality.
package: tools for preparing and packaging release assets, including changelog-related scriptsplatform: various platform-specific bitsQtCollider: sources for the Qt GUI extensions tosclangSCClassLibrary: SuperCollider sources for the core class librarySCDoc: C++ sources for SCDoc, the .schelp parserserver: C++ sources forscsynth,supernova, and server pluginsplugins: sources for server plugins (UGens)scsynth: sources for scsynthsupernova: sources for supernova
sounds: sound files, packaged into release assetstestsuite: test filesclasslibrary: SuperCollider-language tests for the core class librarysclang: tests forsclangserver: C++ tests forscsynthandsupernova
tools: various tools useful for maintainers
Important files in the root directory are:
.appveyor.yml: config file for AppVeyor CI.travis.yml: config file for Travis CIbuild_sclang_cfg.in: config file used for the specialSC_DOC_RENDERbuild targetCMakeLists.txt: main CMake fileREADME_*: readmes for various platformsSCVersion.txt: the primary versioning document. The version number is stored here and nowhere else.travis_test_run_proto.json: config file used by qpm to run tests in CI