GET
Read it.
ONE · ALLAN OPEN PLATFORM IN THE MAKING
OpenSoundstage is a place to create, connect, and grow ideas. No programming knowledge needed to understand the idea. Just four simple building blocks.
MUSIC WITHOUT GATEKEEPERS. CREATIVITY WITHOUT COMPLEXITY.
01 / THE BUILD LANGUAGE
You already know what these words mean. BUILD simply gives them a place to work together.
Read it.
ONE · ALLWrite it.
NEW · SETConnect it.
ADD · CUTExecute a saved BUILD.
DOFour core instructions, seven methods: GET ONE, GET ALL, PUT NEW, PUT SET, LINK ADD, LINK CUT, and DO.
02 / THE SANDBOX
Think of sand. Tiny grains come together to make a shape. Shapes come together to make a sandcastle. Step back and you see the whole creation. That's a BUILD.
You choose what to share. Your music and creations remain yours.
03 / TWO FILE TYPES
A BUILD file says what to do. A GRAIN file stores what was made. A saved GRAIN can be read by another BUILD, making creations reusable.
Executable instructions
PUT NEW "Hollow Drift" PUT NEW "ZERO" LINK ADD "Hollow Drift" "ZERO" GET ALL "Hollow Drift"
Saved data and connections
GRAIN "Hollow Drift" GRAIN "ZERO" LINK "Hollow Drift" "ZERO"
GRAIN and LINK inside a .grain file are data labels, not extra BUILD commands. The interpreter supports file imports and session-memory results. Grain names must be unique within a run; stable cross-file IDs are future work.
04 / REUSE A CREATION
A second BUILD can use a previously saved grain collection. Try this workflow in the live interpreter below.
GET ONE "MUSIC.grain" PUT NEW "Friday Concert" LINK ADD "Friday Concert" "Hollow Drift" LINK ADD "Friday Concert" "ZERO" GET ALL "Friday Concert"
GRAIN "Friday Concert" LINK "Friday Concert" "Hollow Drift" LINK "Friday Concert" "ZERO"
The real engine must preserve references to imported grains; this compact display omits their internal identifiers.
GET ONE on a .grain filename imports the saved grains and links into the current run.
05 / LIVE SANDBOX INTERPRETER
This is a working, browser-based BUILD interpreter. Paste .build instructions or .grain data, give the file a name, and save it to session memory. Run a BUILD to produce a reusable .grain file.
Run a BUILD to see its result.
Limits enforced by the interpreter: 16 KiB per file, 256 KiB total workspace, 64 files, 256 grains, 512 links, 1,000 execution steps, and 8 nested DO levels. Unknown commands, invalid syntax, missing grains, duplicate names, circular DO calls, and oversized results stop execution with an error. No eval or script execution. Files remain in browser memory until the page is reloaded; download anything you want to keep. This protects against common mistakes and resource exhaustion, but it is not a formal security guarantee.
06 / THE PRINCIPLES
New abilities build on the same four commands. No new language versions required.
A BUILD can execute another BUILD or reuse information stored in a .grain file.
Execute the same BUILD repeatedly. The saved instructions remain unchanged; output naming and overwrite behavior remain to be specified.
PLAY, COMPARE, and DECIDE are not magic commands. Their behavior must be defined.
Keep your work. Share it voluntarily. Reuse respects the creator's permission.
The basic interpreter runs now. Stable identities, conditions, and audio playback still need design.
07 / THE IDEA
OpenSoundstage is the open platform. BUILD is its four-block language. The SANDBOX is where .build instructions work with .grain information to make something bigger.
Follow the open project ↗We're designing this in the open. The basic BUILD interpreter works in the browser. This is an experimental language, not a production security boundary.