Svelte(kit) app for playing music in a group.
-
Clone this repo.
-
Create a file
.envin the root of the project with the following:
PUBLIC_WS_SERVER_HOST=ws://localhost:8080-
Clone and follow dev setup steps for the backend server.
-
Install dependencies
npm i- Start server
npm run devSee the Issues tab to find proposed features and known issues. You are welcome to suggest a solution on one of those, put up a PR, or open a new issue to suggest additional changes!
- Client opens WS to backend
- Client sends create message to backend
- Backend generates shortcode/ID of circle
- Backend sends back circle ID
- ... wait for other members ... (see join)
- Backend forwards SDP offer from joiner
- Client creates new RTC conn with remote description to SDP
- ... Both clients start exchanging ICE candidates through backend ...
- Client creates RTC conn answer
- Client sends to RTC answer to backend
- Backend sends RTC answer to the specific joiner
- Client opens WS to backend
- Client sends join message with ID of circle
- Backend sends message with "IDs" of members in circle
- Client creates new RTC conn for each member
- Client sends payload with SDP offer for each ID of member
- Backend forwards SDP offer to each member of drum circle
- GOTO Creating drum circle ... wait for other members ...
- Client sends sound events on RTC data channel