{"id":30981272,"url":"https://github.com/nathanshelly/glove","last_synced_at":"2026-02-16T11:07:01.622Z","repository":{"id":80092293,"uuid":"100669803","full_name":"nathanshelly/glove","owner":"nathanshelly","description":"A pressure sensing musical glove","archived":false,"fork":false,"pushed_at":"2018-07-13T06:07:36.000Z","size":98580,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-04T15:53:00.013Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Max","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/nathanshelly.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-08-18T03:38:20.000Z","updated_at":"2018-02-16T03:13:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"2b39053a-a741-4601-9a95-aed7a0da1603","html_url":"https://github.com/nathanshelly/glove","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nathanshelly/glove","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanshelly%2Fglove","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanshelly%2Fglove/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanshelly%2Fglove/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanshelly%2Fglove/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nathanshelly","download_url":"https://codeload.github.com/nathanshelly/glove/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanshelly%2Fglove/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29506382,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T09:05:14.864Z","status":"ssl_error","status_checked_at":"2026-02-16T08:55:59.364Z","response_time":115,"last_error":"SSL_read: 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":"2025-09-12T08:30:46.227Z","updated_at":"2026-02-16T11:07:01.616Z","avatar_url":"https://github.com/nathanshelly.png","language":"Max","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Glove\n\n## Description\n\nThis project details the building of a musical instrument involving pressure\nsensors attached to a glove. This instrument can then be used to play any five MIDI\nnotes with a synthesizer. Below there is video of it in action, photos of the\nfinished product and detailed instructions on building your own if you'd\nlike. Happy tinkering!\n\nSpecial thanks to Professor Bryan Pardo of Northwestern University and\nProfessor Michael Gurevich of the University of Michigan for the inspiration\nand guidance they provided.\n\n### Video\n\n#### Opening riff of Kids by MGMT\n\n[![Kids](http://img.youtube.com/vi/K9sMBz1EEFs/0.jpg)](http://www.youtube.com/watch?v=K9sMBz1EEFs)\n\n#### Part of Swing Low Sweet Chariot\n\n[![Swing Low Sweet Chariot](http://img.youtube.com/vi/9VP2x4p4Dz0/0.jpg)](http://www.youtube.com/watch?v=9VP2x4p4Dz0)\n\n### Photos\n\n#### Board \u0026 Glove\n\n![Board \u0026 Glove](http://i.imgur.com/JKGfHn3.jpg \"Board \u0026 Glove\")\n\n#### Board\n\n![Board](http://i.imgur.com/uUJmy3Y.jpg \"Board\")\n\n#### Glove\n\n![Glove](http://i.imgur.com/4paEGjq.jpg \"Glove\")\n\n## Make Your Own\n\nThe following instructions specify how to make an exact replica of my glove but\nfeel free to experiment with and modify anything you'd like!\n\n### Circuitry\n\n#### Parts\n\n- 5 pressure sensors ([Force sensitive resistors](http://www.openmusiclabs.com/learning/sensors/fsr/))\n- 1 button\n- 5 resistors (1k Ohms)\n- 1 Arduino microchip (I used an Uno but others would work as well)\n- Various wires\n\n#### Construction\n\n1. Connect one lead of each pressure sensor to ground and the other lead in serial with power, a resistor and a connection to one of the Arduino's analog ports.\n2. Connect one of the button leads to ground and the other in serial with power and a connection to one of the Arduino's digital ports.\n3. Attach pressure sensors to pads of glove (I used hot glue for the adhesive)\n4. Enjoy!\n\n### Arduino Code\n\nThe Arduino code involved in this project is incredibly basic. It simply reads\nthe pressure level from each of the 5 sensors and whether or not the button is\npressed. This information is then written to the computer's serial stream over USB.\n\n### Max/MSP Code\n\nIf you would like to modify or play around with the code I recommend using the\n`master` patch along with the library patches contained in the dev folder. If you\nhave no interest in changing my software but want to make your own glove and\nplay it I recommend the self-contained `glove` patch in the prod folder.\n\n#### Prod folder\n\nOnce you've built your glove you should be able to open the `glove` patch\nand start playing! Hopefully the UI is intuitive to use and the included\ninstructions clarify anything that isn't intuitive but if you have questions\nplease feel free to open an issue and I'm happy to help!\n\n#### Dev folder\n\nThe Max code consists of one central `master` patch and several Library patches.\nUsing these library patches allows for abstraction and enables easier future\ndevelopment. In order for them to work they must be placed in the Library folder\nof your Max installation. Assuming Max was installed with defaults this would be\n(adjusting the Max version number as necessary):\n\n- MacOS: \t\t`~/Documents/Max 7/Library`\n- Windows:\t`C:\\Users\\{USERNAME}\\Documents\\Max 7\\Library`\n\nI was unable to find a software synth for Windows that respected MIDI volume\ndata so I chose to have additional pressure beyond a threshold trigger pitch bend\nbut if you would like to have fine control over volume of your notes and you\nfind a synthesizer that respects MIDI volume data that should be a relatively\nstraightforward change.\n\nThe Max code deals with serializing pressure values from the Arduino, the user\ninterface, and triggering of note and pitch bend data to a virtual synthesizer.\nThe comments should help explain some of the code, for any additional questions\nfeel free to ask.\n\n### Synthesizer\n\nThere are many different software synthesizers one could use with this program.\nIt can be connected to a DAW like Ableton and then played with any of the MIDI\ninstruments in that program, or it can be run with standalone synths. I developed\nthe code using a standalone synth, specifically [Tethys](http://www.urbanite.karoo.net/tnaudio.htm).\nThere are many other standalone synths that could be used as well though not all\nmay respect pitch bend values and some may need code modifications to work exactly\nas you'd like.\n\nP.S. for Windows users: Unfortunately Windows has poor (read non-existent)\nrouting of Midi signals between various programs so a 3rd party utility is needed\nto expose Midi connections from your synth to Max and vice versa. I recommend\n[loopMIDI](https://www.tobias-erichsen.de/software/loopmidi.html)\nbut there are multiple other alternatives if that doesn't work for you.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnathanshelly%2Fglove","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnathanshelly%2Fglove","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnathanshelly%2Fglove/lists"}