{"id":20058862,"url":"https://github.com/ably-labs/realtime-midi-player","last_synced_at":"2025-03-02T09:43:01.641Z","repository":{"id":39024727,"uuid":"288967667","full_name":"ably-labs/realtime-midi-player","owner":"ably-labs","description":"MIDI over Ably. Demo.","archived":false,"fork":false,"pushed_at":"2023-07-18T23:27:50.000Z","size":3573,"stargazers_count":2,"open_issues_count":39,"forks_count":0,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-01-12T22:08:56.429Z","etag":null,"topics":["collaboration","javascript","midi","midi-player","realtime"],"latest_commit_sha":null,"homepage":"https://realtime-midi-player.herokuapp.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ably-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-20T09:48:18.000Z","updated_at":"2024-12-14T12:21:02.000Z","dependencies_parsed_at":"2023-02-06T05:01:15.638Z","dependency_job_id":null,"html_url":"https://github.com/ably-labs/realtime-midi-player","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ably-labs%2Frealtime-midi-player","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ably-labs%2Frealtime-midi-player/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ably-labs%2Frealtime-midi-player/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ably-labs%2Frealtime-midi-player/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ably-labs","download_url":"https://codeload.github.com/ably-labs/realtime-midi-player/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241488154,"owners_count":19970826,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["collaboration","javascript","midi","midi-player","realtime"],"created_at":"2024-11-13T13:04:38.560Z","updated_at":"2025-03-02T09:43:01.613Z","avatar_url":"https://github.com/ably-labs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Running Locally\n\nThis project uses yarn workspaces to manage scripts and dependencies. If you do not have yarn installed you can install it by running\n\n```\nnpm i -g yarn\n```\n\nWith yarn installed you can install dependencies by running\n\n```\nyarn install\n```\n\nIn order to run the app locally you will need to create a `.env` file in the root of the project with the following two environment variables:\n\n```\nABLY_API_KEY=\u003cput your api key here\u003e\nPORT=5000\n```\n\nOnce that `.env` file has been created you can launch the client and server using the following commands respectively:\n\n```\nyarn run client\n```\n\n```\nyarn run server\n```\n\nThis will launch the client and server on your localhost at port 3000 and port 5000 respectively.\n\n## Deployment\n\nThis app is configured for Heroku with a `Procfile` and `heroku-postbuild` script.\n\nIn order to run correctly on Heroku you will need to add the ABLY_API_KEY environment variable. You can do this with the following command:\n\n```\nheroku config:set ABLY_API_KEY=\u003cput your api key here\u003e\n```\n\n## How it works\n\nThe `client` directory contains a `create-react-app` which can be launched to connect to channels on the Ably platform. This is done using token authentication and the `server` folder contains an express app which provides token requests using the configured API key from an environment variable.\n\nThe `client` app uses Redux for state management and both incoming and outbound Ably messages are handled using Redux middleware, which can be found in `client/src/app/createAblyMiddleware.ts`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fably-labs%2Frealtime-midi-player","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fably-labs%2Frealtime-midi-player","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fably-labs%2Frealtime-midi-player/lists"}