{"id":17115076,"url":"https://github.com/plnech/leapmidi","last_synced_at":"2025-07-10T13:33:24.762Z","repository":{"id":71322183,"uuid":"425587000","full_name":"PLNech/LEAPMidi","owner":"PLNech","description":"LEAPMidi","archived":false,"fork":false,"pushed_at":"2021-11-08T11:56:15.000Z","size":114,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T04:14:32.814Z","etag":null,"topics":["leapmotion","leapmotion-controller","livecoding","midi","midi-cc","midi-controller","supercollider","tidalcycles"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PLNech.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,"zenodo":null}},"created_at":"2021-11-07T18:42:45.000Z","updated_at":"2025-01-13T08:47:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"2c36527f-fe8b-470a-aa52-5d96f134b0f8","html_url":"https://github.com/PLNech/LEAPMidi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PLNech/LEAPMidi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PLNech%2FLEAPMidi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PLNech%2FLEAPMidi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PLNech%2FLEAPMidi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PLNech%2FLEAPMidi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PLNech","download_url":"https://codeload.github.com/PLNech/LEAPMidi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PLNech%2FLEAPMidi/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264585372,"owners_count":23632646,"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":["leapmotion","leapmotion-controller","livecoding","midi","midi-cc","midi-controller","supercollider","tidalcycles"],"created_at":"2024-10-14T17:21:32.705Z","updated_at":"2025-07-10T13:33:24.757Z","avatar_url":"https://github.com/PLNech.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LEAPMidi\n\u003e A LEAPMotion -\u003e MIDI Instrument controller\n\nLeapMIDI is a Javascript WebApp that reads your LeapMotion sensor data, transforms them into MIDi ControlChange messages,\nand sends them to your computer's `Midi Through` interface to control the instruments you connect to it.  \n\nIn this proof-of-concept, LeapMidi is used to control [ParVagues](https://me.plnech.fr/parvagues/)' track _Du Miel_'s instruments and effects: the CC messages are sent to [TidalCycles](tidalcycles.org/) and [SuperCollider](http://supercollider.sourceforge.net) to control the music.\n\n![Screenshot: TidalCycles track controlled by MIDI Messages sent from a JS webapp reading LeapMotion sensor data](https://user-images.githubusercontent.com/1821404/140657932-93aafe9b-b980-4f08-91b1-ac4e7daae241.png)\n_Example setup: Left a **TidalCycles** track, top right **LeapMIDI** tracking X/Y/Z positions of fingers, normalizing them as 0-127 CC values, and sending them via WebMIDI to **SuperCollider** via MidiThrough to control the track's instruments and effects. **LeapMotion Visualizer** bottom right debugs sensor data._\n\n## Usage\n\n0. Setup LeapMotion to send messages readable by the [SDKs](https://developer.leapmotion.com/), in a place where it sees your hands\n1. Connect your Midi instrument to the `MIDI Through` port\n2. open [index.html](./index.html) in your WebMidi-enabled browser\n3. Run [TidalCycles with ParVagues' Du Miel track](https://git.plnech.fr/Tidal/) or adapt the code to map to another use-case\n4. ???\n5. Profit!\n\n## Demo\n\n[![See demo on YouTube](https://user-images.githubusercontent.com/1821404/140731197-53e4bcd2-6561-4ad3-ba76-c700ef37b9e3.png)](https://www.youtube.com/watch?v=2r48gRZh_UU)\n\nIn this demo, the left hand controls effects (left thumb -\u003e global filter, left index -\u003e bass distortion, etc) while the right hand controls individual instruments' volume.\n\n## Thanks\n\n- [TidalCycles](tidalcycles.org) for these mind-blowing possibilities of musical livecoding\n- [WebMIDI](https://github.com/djipco/webmidi) for the powerful API and detailed [documentation](https://webmidijs.org/docs/latest/classes/Output.html#method_sendControlChange) 👏\n- [LeapJS](https://github.com/leapmotion/leapjs/) for the easy setup and great [examples](https://github.com/leapmotion/leapjs/tree/master/examples)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplnech%2Fleapmidi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplnech%2Fleapmidi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplnech%2Fleapmidi/lists"}