{"id":23763513,"url":"https://github.com/tomashubelbauer/web-midi","last_synced_at":"2025-09-05T08:32:56.728Z","repository":{"id":107986368,"uuid":"230811633","full_name":"TomasHubelbauer/web-midi","owner":"TomasHubelbauer","description":"OP-1 working with web MIDI","archived":false,"fork":false,"pushed_at":"2022-04-28T08:55:17.000Z","size":8781,"stargazers_count":21,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-12-21T12:33:43.672Z","etag":null,"topics":["akai","apc-mini","launchpad","midi","op-1","op1","web-midi","web-usb"],"latest_commit_sha":null,"homepage":"https://tomashubelbauer.github.io/web-midi","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TomasHubelbauer.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-29T22:41:34.000Z","updated_at":"2024-09-08T20:58:08.000Z","dependencies_parsed_at":"2023-05-15T13:15:43.617Z","dependency_job_id":null,"html_url":"https://github.com/TomasHubelbauer/web-midi","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/TomasHubelbauer%2Fweb-midi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasHubelbauer%2Fweb-midi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasHubelbauer%2Fweb-midi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasHubelbauer%2Fweb-midi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TomasHubelbauer","download_url":"https://codeload.github.com/TomasHubelbauer/web-midi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232032116,"owners_count":18462972,"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":["akai","apc-mini","launchpad","midi","op-1","op1","web-midi","web-usb"],"created_at":"2024-12-31T22:12:50.528Z","updated_at":"2024-12-31T22:12:50.921Z","avatar_url":"https://github.com/TomasHubelbauer.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [Web MIDI](https://tomashubelbauer.github.io/web-midi)\n\nIn this repository I am experimenting with the JavaScript Web MIDI API to talk\nto various MIDI devices.\n\n## Running\n\n`npx serve .` because CORS does not work with `file://`.\n\n## Akai APCmini Launchpad\n\nI've implemented two hacks both having to do with the launchpad grid button\nlights. If you have this launchpad, you can connect it to your laptop and view\nthis site in a Web MIDI supporting browser (Chrome, Edge).\n\n### Text Marquee\n\n[![](https://i3.ytimg.com/vi/ZD0jvqGuul0/maxresdefault.jpg)](https://www.youtube.com/watch?v=ZD0jvqGuul0)\n\n### Fader Levels\n\nTurn off the marquee animation first using the stop button.\n\n[![](https://i3.ytimg.com/vi/XP5PGQ_B-Jg/maxresdefault.jpg)](https://www.youtube.com/watch?v=XP5PGQ_B-Jg)\n\n### Audio Visualizer\n\nTurn off the marquee animation first using the stop button and then click the\ndocument body to initiate playback.\n\n[![](https://i3.ytimg.com/vi/feNGAObR10Y/maxresdefault.jpg)](https://www.youtube.com/watch?v=feNGAObR10Y)\n\n## To-Do\n\n### Implement an OP-1 device and another for the keyboard\n\n### Figure out how to query the initial values of the faders\n\nI captured the Ableton communication in my `akai-apc-mini` repository so maybe\nthere will be a hint in that.\n\n### Model the launchpad in 3D and use my SVG 3D projector to render it\n\nThis will look cooler, prop it up so that it is slightly tilted back and to the\nright.\n\nThe SVG 3D projector repo of mine is called `svg-3d`.\n\n### Implement Snake or Etch-a-sketch or something silly like that\n\n### Implement a spectrum visualizer using the grid and Web Audio API\n\n### Add tests by mocking the devices\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomashubelbauer%2Fweb-midi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftomashubelbauer%2Fweb-midi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomashubelbauer%2Fweb-midi/lists"}