{"id":16753413,"url":"https://github.com/thbar/touchzik","last_synced_at":"2026-03-18T22:01:58.114Z","repository":{"id":2971220,"uuid":"3986357","full_name":"thbar/touchzik","owner":"thbar","description":"A little hack to trigger MIDI events from the browser","archived":false,"fork":false,"pushed_at":"2012-04-10T20:48:34.000Z","size":108,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-19T09:51:40.394Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thbar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-04-10T19:45:08.000Z","updated_at":"2023-07-01T21:27:01.000Z","dependencies_parsed_at":"2022-08-26T04:50:28.347Z","dependency_job_id":null,"html_url":"https://github.com/thbar/touchzik","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/thbar/touchzik","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thbar%2Ftouchzik","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thbar%2Ftouchzik/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thbar%2Ftouchzik/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thbar%2Ftouchzik/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thbar","download_url":"https://codeload.github.com/thbar/touchzik/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thbar%2Ftouchzik/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29672754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T03:11:15.450Z","status":"ssl_error","status_checked_at":"2026-02-21T03:10:34.920Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-10-13T02:50:01.580Z","updated_at":"2026-02-21T04:01:42.956Z","avatar_url":"https://github.com/thbar.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"### Story\n\nI wanted to see how to generate midi events programmatically in Ruby and came across UniMIDI, while playing music with my son.\n\nWhile researching that, I thought that chaining that with some touches from an iPad could lead to interesting things.\n\nThe latency is surprinsigly low, which opens interesting potential :)\n\nThis project hosts the first bits of code of that.\n\n### Building blocks\n\n* sinatra serves the html app\n* faye maintains a bi-directional socket\n* kinetics is used for quick javascript shapes\n* unimidi allows to interact with the midi hardware\n\n### Immediate future\n\nThis is a quick hack with my son during easter week-end: don't expect many updates, as I'm hard at work on https://www.wisecashhq.com.\n\nThat said please hack around and send back anything you'd want to share!\n\n### How to use\n\n* make sure you have one midi output (as reported by `UniMIDI::Output.all') and connect it to something (ie: a real synth, or create an IAC setup to route it to Renoise or similar)\n* `bundle install`\n* `thin start -R config.ru` (don't use webrick)\n* open your browser on the iPhone to the correct host and port\n\nYou should then see squares and you should be able to touch them to play the music.\n\nPlease don't touch more than one pad at once! Multi-touch is not yet supported.\n\n### Tested on\n\nMac OS X.\n\n### TODO\n\n* support multi-touch\n* mix stuff with midi-topaz to provide tempo manipulation\n  * push back the current beat/bar to the web clients\n  * track down some state to create patterns\n* implement more stuff like in propellerheads \"figure\"\n* ...\n\n### License\n\nMIT\n\n### Author\n\n[Thibaut Barrère](http://twitter.com/thibaut_barrere)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthbar%2Ftouchzik","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthbar%2Ftouchzik","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthbar%2Ftouchzik/lists"}