JamSpace

project overview
JamSpace is a collaborative music workspace for turning a first idea into a shared, listenable sketch. Version 1.1 adds a project dashboard, active collaborator presence, AI-generated four-track continuations, and WAV export. Musicians edit the same composition in real time, privately audition AI candidates, and apply the ideas they want to keep. Each browser renders audio locally from shared musical data.
TRY JAMSPACE 1.1 BETA↗️
VIDEO↗️
A small group can sketch one musical bar quickly, but developing it into a complete phrase takes repetitive editing. Collaboration also requires a clear way to find the project, see who is working, and take the result outside the editor.
JamSpace 1.1 explores a creative loop for 2–4 people making a short musical sketch:
Start together, explore editable AI suggestions, and leave with a listenable sketch.
Musicians can create or find a project, share its editor link, work across Drums, Bass, Synth, and Lead, then arrange their patterns and export a WAV file.
Problem
Getting from a first bar to a shared musical phrase.
Remote collaboration often means exchanging files or managing multiple versions. Even inside a shared editor, moving beyond an initial loop requires repeated note entry, arrangement work, and a way to carry the music elsewhere.
The 1.1 product scope connects project entry, live collaboration, editable AI continuation, and export in one browser workflow.
The product question is:
How can a small group turn an initial idea into a phrase they can hear, edit, and keep?
How it works
Find a project. Build a phrase. Arrange and export it.
JamSpace gives every musician their own browser-based workspace while keeping everyone connected to the same composition.
Join the same creative space
The workspace home supports creating, searching, and entering projects with a stage name. Invite copies the editor link, and active collaborator presence shows who is currently connected rather than everyone who has ever joined.
Work on different parts of the song
Each participant can contribute through instrument tracks such as drums, bass, synth and lead. Notes, patterns and mixer changes appear across connected browsers without refreshing the page.
Turn loops into an arrangement
Reusable patterns can span multiple bars and be placed on the shared Song timeline. Version 1.1 lets the group export that arrangement as a WAV file.
A Key Product Decision
Collaborative when it matters. Personal when it doesn’t.
Making every control global would technically create collaboration—but it would also make the product frustrating.
If one musician stopped playback or adjusted a volume while another person was working, the entire session could be interrupted. I addressed this by designing two playback modes:
Sync Mode
Playback, tempo and mixer settings are shared across the session. This mode is designed for listening and reviewing the composition together.
Personal Mode
A musician can privately audition the song or adjust local track volumes without changing what collaborators hear.
This separation makes collaboration intentional instead of forcing every individual action onto the group.
Continue my melody
Three directions to explore, with the final choice left to the musician.
After a musician writes an initial bar, the AI workflow uses the latest occupied bar and up to four preceding bars as context. It returns three four-bar candidates, each covering Drums, Bass, Synth, and Lead.
Candidates are auditioned privately in the requesting browser. An explicit Apply step adds the chosen continuation to the shared project, where every note remains editable. Suggestions stay temporary until accepted.
Before applying, a SpacetimeDB reducer rechecks the source and destination. The four-track result is written in one transaction; conflicting edits reject the apply instead of overwriting another collaborator’s notes.
WAV export
Take the shared arrangement outside the editor.
Export renders the current Song arrangement as 44.1 kHz, 16-bit stereo PCM in the browser, including shared track mute and volume settings. The export uses a snapshot captured when Download is clicked, so later collaborator edits cannot change the file being rendered. The prototype supports WAV only, with a five-minute limit.
Architecture
The React and TypeScript client subscribes to sessions, tracks, patterns, arrangement blocks, notes, and presence in a Rust/SpacetimeDB backend. Collaborators share editable composition data, while Tone.js handles local playback and WAV rendering.
A server-side melody endpoint calls an OpenAI model and returns editable candidates without writing to the project. The model API key stays on the server. The 1.1 beta is deployed on Vercel with a separate MainCloud database.
Shared playback controls and BPM are implemented. Sample-accurate listening across browsers has not been measured.
My contribution in 1.1
I independently defined the 1.1 product scope, designed the workflow, built the React client and Rust/SpacetimeDB changes, integrated the model service, and deployed the beta. The original hackathon prototype was a collaboration with Christine Cui.
Prototype status and next steps
This is a working prototype for testing. Projects are visible on the workspace home and editable by anyone who opens them; editor links provide entry rather than private access. AI generation requires a shared testing code.
Private projects, server-enforced roles, revocable invitations, authenticated AI quotas, listener-only published versions, and whole-candidate undo remain future work. Next validation will focus on two-person project completion, candidate acceptance, export reliability, and model quality. No adoption, retention, or time-saved results have been measured yet.