Thanks to visit codestin.com
Credit goes to github.com

Skip to content

jackrr/drum-circle-app

Repository files navigation

Drum Circle (Client App)

Svelte(kit) app for playing music in a group.

Dev setup

  1. Clone this repo.

  2. Create a file .env in the root of the project with the following:

PUBLIC_WS_SERVER_HOST=ws://localhost:8080
  1. Clone and follow dev setup steps for the backend server.

  2. Install dependencies

npm i
  1. Start server
npm run dev

Contributing

See 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!

WebRTC APIs

Creating drum circle

  1. Client opens WS to backend
  2. Client sends create message to backend
  3. Backend generates shortcode/ID of circle
  4. Backend sends back circle ID
  5. ... wait for other members ... (see join)
  6. Backend forwards SDP offer from joiner
  7. Client creates new RTC conn with remote description to SDP
  8. ... Both clients start exchanging ICE candidates through backend ...
  9. Client creates RTC conn answer
  10. Client sends to RTC answer to backend
  11. Backend sends RTC answer to the specific joiner

Joining drum circle

  1. Client opens WS to backend
  2. Client sends join message with ID of circle
  3. Backend sends message with "IDs" of members in circle
  4. Client creates new RTC conn for each member
  5. Client sends payload with SDP offer for each ID of member
  6. Backend forwards SDP offer to each member of drum circle
  7. GOTO Creating drum circle ... wait for other members ...

Playing music

  1. Client sends sound events on RTC data channel

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •