https://github.com/junhsss/metronome
A simple, reliable CLI metronome
https://github.com/junhsss/metronome
audio beat bpm drums guitar metronome music music-tools piano rhythm sound tempo
Last synced: about 1 month ago
JSON representation
A simple, reliable CLI metronome
- Host: GitHub
- URL: https://github.com/junhsss/metronome
- Owner: junhsss
- Created: 2025-09-02T17:31:44.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2025-09-02T18:17:35.000Z (about 2 months ago)
- Last Synced: 2025-09-02T20:23:02.507Z (about 2 months ago)
- Topics: audio, beat, bpm, drums, guitar, metronome, music, music-tools, piano, rhythm, sound, tempo
- Language: Rust
- Homepage:
- Size: 913 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Metronome
A precise, terminal-based CLI metronome.
![]()
### Install
```bash
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/junhsss/metronome/releases/download/v0.1.0/metronome-installer.sh | sh
```### Run
```bash
metronome [OPTIONS] [BPM] [SUBCOMMAND]
```### Examples
```bash
# Start at 100 BPM
metronome 100# Specify signature, subdivision, sound, and BPM flag
metronome --signature 7/8 --subdivision sixteenth --sound wood --bpm 140# Ramp from 100 to 140 BPM over 2 minutes
metronome ramp "100..140@2m"# Tap tempo, then start at the measured BPM
metronome tap
```### Options
- **[BPM]**: optional positional BPM (20–400). Overrides --bpm when provided.
- **-b, --bpm **: starting BPM (20–400). Default: 120.
- **-s, --signature **: time signature (denominator one of 1,2,4,8,16). Default: 4/4.
- **--subdivision **: ticks per beat. Default: quarter.
- **--sound **: click sound. Default: click.
- **--mute**: disable audio output.### Subcommands
- **tap**: tap tempo on the keyboard; the measured BPM is applied to the session.
- **ramp **: linearly ramp BPM over a duration.
- Examples: `120..160@2m`, `90..120@30s`, `100..80@500ms`.### Keyboard controls (while running)
- **Space**: Play/Pause
- **q / Esc**: Quit
- **↑ / ↓**: BPM ±1
- **← / →**: BPM ±5
- **s**: Cycle subdivision (quarter → eighth → triplet → sixteenth)
- **Tab**: Cycle common signatures (4/4 → 3/4 → 6/8 → 7/8)
- **h**: Toggle on-screen help