Languages
Find the syntax and runtime contract for code used in score. Each reference separates the underlying language from the objects, ports, variables or shader resources supplied by score. Process and device pages explain how to insert, connect and operate the corresponding component.
Scripts and expressions
| Language | Use in score | Reference |
|---|---|---|
| JavaScript and QML | Execution processes, editor automation, custom interfaces and scripted devices | Language and runtime overview |
| ExprTK | Mathematical mappings, value and audio expressions, array generation | Syntax, variables and functions |
| jq and Jk | Querying, selecting and reshaping maps and arrays with Object filter | Syntax, built-ins and supported jq subset |
| C++ | Native JIT processes and CPU texture generation | Language and host interfaces |
| RE2 regular expressions | Matching, extracting, replacing and splitting text | Pattern and replacement syntax |
JavaScript and QML APIs
The same language runs in several different contexts. Choose the API for the place where the code executes; a console script and an audio-process callback do not have the same responsibilities.
-
Process API:
Script, ports, callbacks, timing, audio, MIDI and textures. - Editor API: document editing, transport, devices, utilities and view automation.
-
Custom UI API: control bindings,
ScriptUI, persistent state and texture previews. - QML device API: device trees, mappings and protocol-specific callbacks.
- QML transport API: sockets, framing, HTTP, OAuth, OSC and MIDI payloads.
For editor workflow and examples, see Scripting and Custom UI. These are Qt-hosted scripts, not a browser or Node.js environment.
Audio languages
| Language | Use in score | Reference |
|---|---|---|
| Faust | Compiled signal-processing graphs for synthesis and effects | Syntax, composition, libraries and controls |
| JSFX / EEL2 | Source-based audio and MIDI effects hosted through YSFX | Language, API references and host compatibility |
| Pure Data | Visual dataflow patches hosted through libpd | Patch language and score interface |
| Bytebeat | Short arithmetic and bitwise expressions that generate sound | C++ expression dialect and formula collection |
ExprTK, JavaScript and C++ also provide audio-processing interfaces. Their timing and buffer contracts differ; use the reference for the selected process rather than transferring a callback from another language.
GPU languages and shader formats
Start with GLSL and Vulkan compatibility for types, shader stages, standard functions and the distinction between user code and declarations generated by score. The formats below combine GLSL with a header that defines controls, resources and execution.
| Format | Execution model | Reference |
|---|---|---|
| ISF — Interactive Shader Format | Fullscreen fragment passes for images and video | ISF and score extensions |
| CSF — score’s compute extension | Compute dispatches over images, buffers and geometry | CSF headers, resources and functions |
| Raw raster pipeline | Vertex and fragment stages for custom geometry rendering | Raster interfaces and pipeline state |
| Vertex Shader Art | Procedural points and lines generated in a vertex shader | VSA inputs and shader contract |
| Geometry filter | Vertex-attribute callback applied by the downstream renderer | Geometry-filter shader contract |
The Graphics pipeline explains how these processes connect. The Shader cookbook gives recipes that use the references. A Vulkan-compatible shader language does not mean that every GPU or rendering backend supports every resource or extension.
Rule-based graphics
- EisenScript: transformations, recursive rules and weighted alternatives for Structure Synth geometry.
- Context Free / CFDG: shape grammars for image generation.
These languages build geometry or images from rules; they are not per-sample audio languages or per-frame GPU shaders.
External interpreters
External scripts links the Python, POSIX shell, Bash, Zsh, Fish, PowerShell and Cmd references used with Shell command. These interpreters must be installed separately: invoking them is not the same as embedding their language runtime in score.
Which documentation applies?
Use the upstream language manuals for grammar and standard functions, and the local references for score’s integration. Installed Qt modules, compiler support, plug-ins and graphics capabilities determine what is available in a particular build. See Add-ons for optional capabilities and Live coding for the shared code-editor workflow.
Table of contents
- JavaScript and QML
- JavaScript editor API
- QML custom UI API
- QML device API
- QML transport API
- ExprTK language
- jq and Jk
- C++ native code
- RE2 regular expressions
- Faust language
- JSFX and EEL2
- Pure Data patch language
- Bytebeat expressions
- GLSL runtime reference
- ISF language reference
- CSF language reference
- Raw raster shader reference
- Vertex Shader Art reference
- Geometry filter shaders
- EisenScript
- Context Free and CFDG
- External script languages