SpaceMusic is built in vvvv gamma, a visual programming tool for real-time graphics, audio and interaction on .NET (visualprogramming.net), together with C# and web code. The developer docs at docs.spacemusic.tv explain how to set up, run, change and release it.
For us: This page is for developers; users go to SpaceMusic and the Factory. Armin programs SpaceMusic. Ask Tebjan Halm about vvvv and the Core. The docs are the full manual; this page only tells you which docs page to open.
Start here
- Developer overview: every moving part, and how a change reaches people.
- Where Things Live: every repo, folder, website and outside service, and “I want to…” with the place to go.
- Prerequisites and cloning, then Running locally.
How to
Set up a developer PC
- Install the .NET SDK, Visual Studio Build Tools, Node.js, Git and gh. Only to make installers: also Inno Setup and Velopack.
- Clone the repo as the docs describe, then read Build gotchas.
Run it from source
- In the repo, start vvvv with
Start.bat. - Details: Running locally.
Add or change a parameter
DNA is the master list of every parameter (each slider, switch and value). The code and the control screens are made from it.
- Change the parameter in DNA at dna.spacemusic.tv (its own login, not the studio login).
- Press Publish to build. GitHub makes the new code; the web Pro UI updates by itself.
- The desktop app gets it with the next release.
- Details: What DNA is and How a DNA edit ships.
Ship a release
- Run
ship.batin the SpaceMusic repo. It asks what to ship and runs the right scripts. - Write what changed in
RELEASE_NOTES.mdin the repo. - Details: Ship a release. Only the web UIs: Publish the web UIs.
Change the Factory, the Worker or the 3D viewer
- Start at Factory for developers and its code map.
- The Factory website deploys when you push
main. - A new Worker: Worker: build, release, add a tool. The viewer: Model Viewer and GLB Converter.
Add files to the core library
- Follow Adding to the core library.
Issue or take back a licence
- Follow Issue and revoke a license.
See how the code fits together
- Open grapher.spacemusic.tv (studio login). It draws how the vvvv files depend on each other.
- To let an AI assistant map the vvvv code, use graphify_VL.
What we have
| Name | What | Where |
|---|---|---|
| vvvv gamma | The visual programming tool SpaceMusic is built in. The repo bundles its own copy; keep each tool on its own vvvv version. | vvvv-binaries |
| VL.StandardLibs | Our fork of the vvvv standard libraries, with local patches. Do not update it blindly; see PATCHES.md. | repo |
| Other vvvv libraries | Our forks and own add-ons: VL.Fuse, VL.Fuse.DomainExtensions, VL.Rhino3dm, VL.IO.AbletonLink. | Fuse, DomainExtensions, Rhino3dm, AbletonLink |
| DNA | The master list of all parameters, kept in Directus. | dna.spacemusic.tv, own login |
| SMCodeGen | Turns DNA into C# code and screen descriptions. | csharp/SMCodeGen in the repo |
| DNA helpers | DNA editor ideas, a tree view of all parameters, a sidebar menu tester. | dna-editor, TreeDiagram, SidebarTester |
| VL.Grapher | Draws how the files of a vvvv project depend on each other. | grapher.spacemusic.tv, repo |
| graphify_VL | Our fork of the graphify AI assistant skill that can read vvvv .vl files. | repo |
| Docs | The SpaceMusic manual: about 95 pages on the Factory, the app, the server and building the app. | docs.spacemusic.tv, studio login |
Find it
All links go to the developer docs (studio login).
- How it fits together: System overview, Repository and submodules, The channel contract
- Getting started: Prerequisites, Running locally, The CSV to code pipeline, Build gotchas
- Parameters and DNA: What DNA is, How a DNA edit ships, Triggering a publish, Derived vs stored fields, Operating DNA
- The Pro UI: The spec.json contract, The regenerate loop, Why a control is silently dead
- Shipping updates: Ship a release, How an update reaches a machine, Publish a Host version, Publish a Core version, Publish the web UIs, Build the installers, Side-by-side Core and recovery, Unattended machines, Release config and credentials, The release pipeline, Host command-line reference
- Factory: Overview, How an automation runs, .smbatch and export.json, Where a result’s files live, How a result gets its .glb and views, Model Viewer and GLB Converter, Code map, Worker jobs and the queue, Worker: build, release, add a tool
- The library: Core, yours, Dropbox, Library sync on the Host, Adding to the core library, What is not built yet
- Licensing: Where it lives, Issue and revoke a license, Client enforcement, API reference
- Reference: Domains and endpoints, Where secrets live, Known rough edges
- Server and API: see Studio server
- Repo: https://github.com/SpaceMusicZH/SpaceMusic (vvvv code in
SpaceMusic/SpaceMusic.vl, C# inSpaceMusic/csharp, overview indocs/technical.md) - Docs repo: https://github.com/SpaceMusicZH/SpaceMusic-docs
- Notion: SM Architecture, Testing SpaceMusic, VL Know-How, vvvv gamma, SM Licenses
- vvvv documentation: The Gray Book
- vvvv installer: Dropbox:
JHH SERVER/5_BIBLIOTHEK/13_Software/vvvv - Planning board: https://github.com/orgs/SpaceMusicZH/projects/2