{"id":16991038,"url":"https://github.com/gin66/piano_keyboard","last_synced_at":"2025-04-12T03:31:42.865Z","repository":{"id":57654959,"uuid":"171034807","full_name":"gin66/piano_keyboard","owner":"gin66","description":"This crate provides the graphical elements in order to draw a piano keyboard with close to realistic appearance.","archived":false,"fork":false,"pushed_at":"2020-04-07T16:46:11.000Z","size":44,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T23:34:40.170Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/gin66.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":"2019-02-16T18:06:07.000Z","updated_at":"2025-03-23T16:36:37.000Z","dependencies_parsed_at":"2022-08-25T04:21:05.491Z","dependency_job_id":null,"html_url":"https://github.com/gin66/piano_keyboard","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gin66%2Fpiano_keyboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gin66%2Fpiano_keyboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gin66%2Fpiano_keyboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gin66%2Fpiano_keyboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gin66","download_url":"https://codeload.github.com/gin66/piano_keyboard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248512731,"owners_count":21116669,"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":[],"created_at":"2024-10-14T03:24:38.642Z","updated_at":"2025-04-12T03:31:42.628Z","avatar_url":"https://github.com/gin66.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Piano_Keyboard\n\n[![Build Status](https://travis-ci.org/gin66/piano_keyboard.svg?branch=master)](https://travis-ci.org/gin66/piano_keyboard)\n\nThis crate provides the graphical elements in order to draw a piano keyboard\nwith close to realistic, pixel accurate appearance.\n\nReference for the dimension is this internet image:\n![octave drawing](http://www.rwgiangiulio.com/construction/manual/layout.jpg)\n\nThe dimensions described have been used to create the elements of\na piano keyboard like for an octave like this:\n![img](keyboard.png)\n\nIt is visible, that between white keys and even between white and black keys a gap\nis ensured.\n\nThe graphical representation only provides the white and black areas for the keys.\nThose areas are represented by pixel accurate, non-overlapping rectangles.\nNo aliasing or similar is done on this level.\n\nPixel accurate has the consequence, that in order to fill the requested width,\nany gaps, white or black keys may need to be modified by up to one pixel.\nThose changes may or may not be visible. If no adjustments have been made for\na given width and key range is reported by the function is_perfect()\n\nIf the enlargement of various elements does not succeed, then as last resort\ntechnique the outter gaps are enlarged.\n\nThe gap between white and black keys can be removed by an option of the KeyboardBuilder.\n\nThe interface is prepared to be compatible for an extension towards a 3d keyboard.\nThat's why the returned keyboard is called Keyboard2D and the related build function\nis called build2d().\n\n## Thanks for contribution\n\n* [PolyMeilex](https://github.com/PolyMeilex) for his patch\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgin66%2Fpiano_keyboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgin66%2Fpiano_keyboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgin66%2Fpiano_keyboard/lists"}