{"id":24343568,"url":"https://github.com/mikea/clave","last_synced_at":"2026-02-10T15:49:16.613Z","repository":{"id":272093860,"uuid":"915511628","full_name":"mikea/clave","owner":"mikea","description":"Midi click-track generator","archived":false,"fork":false,"pushed_at":"2025-01-20T23:37:45.000Z","size":109,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T11:21:12.439Z","etag":null,"topics":["clicktrack","metronome","midi"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/mikea.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}},"created_at":"2025-01-12T03:18:19.000Z","updated_at":"2025-01-20T23:36:34.000Z","dependencies_parsed_at":"2025-01-12T08:19:35.208Z","dependency_job_id":null,"html_url":"https://github.com/mikea/clave","commit_stats":null,"previous_names":["mikea/clave"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikea%2Fclave","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikea%2Fclave/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikea%2Fclave/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikea%2Fclave/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mikea","download_url":"https://codeload.github.com/mikea/clave/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248654032,"owners_count":21140236,"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":["clicktrack","metronome","midi"],"created_at":"2025-01-18T08:39:46.894Z","updated_at":"2026-02-10T15:49:16.590Z","avatar_url":"https://github.com/mikea.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Crates.io Version](https://img.shields.io/crates/v/clave)\n\n# Clave\n\nClave is a midi click-track generator. \nIt generates single-track single-channel midi file\nwith a customizable click pattern.\n\nNote: click tracks are percussion in their nature. \nBecause of this clave does not generate note off events\n(only note on).\n\n## Pregenerated Tracks\n\nA lot of pregenerated tracks are available\nin [tracks](https://github.com/mikea/clave/tree/master/tracks) folder.\n\n## Installation\n\n`cargo install clave`\n\n## Usage\n\nBy default Clave generates 1000 beats of 120bpm 4/4 clicks:\n\n```\nclave --out 44_120.mid\n```\n\nYou can use command line arguments to customize the track:\n\n```\n  -b, --bpm \u003cBPM\u003e              Track tempo (beats per minute) [default: 120]\n      --channel \u003cCHANNEL\u003e      Midi channel [default: 10]\n      --beats \u003cBEATS\u003e          Track length in number of beats [default: 1000]\n      --vel \u003cVEL\u003e              Default note velocity [default: 63]\n      --acc-vel \u003cACC_VEL\u003e      Accented note velocity [default: 94]\n      --ghost-vel \u003cGHOST_VEL\u003e  Ghost note velocity [default: 31]\n      --subs \u003cSUBS\u003e            Number of subdivisions in a pattern [default: 1]\n  -p, --pattern \u003cPATTERN\u003e      Click pattern [default: m\u003emmm]\n```\n\n### Click Pattern\n\nYou can use `--pattern` together with `--subs` to create\nmore sophisticated click patterns:\n\n- the pattern consists of pattern items optionally separated by spaces\n- each pattern item consists of the note:\n    - `m` - metronome click (32)\n    - `c` - clave click (75)\n    - `b` - bass drum (35)\n    - `s` - snare (38)\n    - `h` - closed hi-hat (42)\n    - `XX` or `XXX` - decimal number of the percussion key (https://en.wikipedia.org/wiki/General_MIDI#Percussion)\n    - `r` - rest\n- and optional volume modifier:\n    - `\u003e` - accented note\n    - `,` - ghost note\n- multiple notes can be played as a chord simultaneosly by surrounding them with `(` `)`.\n\nDefault pattern is `m\u003emmm` which corresponds to 4/4\nmetronome click with accented first beat.\n\n### Pattern Examples\n\n| Description | Subs | Pattern\n|---|---|--|\n|4/4 with ghost 8th| `2` | `\"m\u003em,mm,mm,mm,\"`\n|Son clave 3-2| `2` | `\"crrcrrcrrrcrcrrr\"`\n|Son clave 2-3|  `2` | `\"rrcrcrrrcrrcrrcr\"`\n|Rumba clave 3-2| `2` | `\"crrcrrrcrrcrcrrr\"`\n|Rumba clave 2-3| `2` | `\"rrcrcrrrcrrcrrrc\"`\n|Cascara 2-3| `2` | `\"h\u003erh\u003erhh\u003erhh\u003erhh\u003erh\u003erh\"`\n|Rock 4/4| `2` | `\"(bh)h(sh)h(bh)h(sh)h\"`\n|Funk 4/4| `4` | `\"(bh)h\u003ehb s\u003erhh\u003e bhh\u003eb (s\u003eh\u003e)r(s\u003eh\u003e)r\"`\n|Funk with Ghost Notes| `4` | `\"(bh)s,hs\u003e hs,hs, hs,(bh)r (s\u003eh)rhr\"`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikea%2Fclave","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmikea%2Fclave","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikea%2Fclave/lists"}