Skip to content

dhulihan/grump

Repository files navigation

grump

Great but
Really
Ugly
Media
Player

A very minimal CLI audio player.

Features

  • cross-platform
  • ID3 tag scanning
  • Supports
    • FLAC
    • MP3
    • OGG/Vorbis
    • WAV
  • Tag Editor
  • Quick Ratings
  • Playback Effects (speed up/down)

Install

Linux

sudo apt install libasound2-dev build-essential
go get github.com/dhulihan/grump

Mac OSX

brew tap dhulihan/grump
brew install grump

Alternatively, you can install the latest (possibly unreleased) version:

go get github.com/dhulihan/grump
  • You can also download pre-build binaries on the releases page.

Usage

grump path/to/some/audio/files

Keyboard Shortcuts

┌───────┬───────────────────────────────────────────────────┐
│space  │pause/unpause                                      │
├───────┼───────────────────────────────────────────────────┤
│escape │stop track                                         │
├───────┼───────────────────────────────────────────────────┤
│d      │describe currently playing track                   │
├───────┼───────────────────────────────────────────────────┤
│e      │edit currently playing track                       │
├───────┼───────────────────────────────────────────────────┤
│delete │delete currently playing track (with prompt)       │
├───────┼───────────────────────────────────────────────────┤
│l      │view logs page                                     │
├───────┼───────────────────────────────────────────────────┤
│left   │seek forward (does not work on flac)               │
├───────┼───────────────────────────────────────────────────┤
│right  │seek backward  (does not work on flac)             │
├───────┼───────────────────────────────────────────────────┤
│]      │play next track                                    │
├───────┼───────────────────────────────────────────────────┤
│[      │play previous track                                │
├───────┼───────────────────────────────────────────────────┤
│=      │volume up                                          │
├───────┼───────────────────────────────────────────────────┤
│-      │volume down                                        │
├───────┼───────────────────────────────────────────────────┤
│+      │speed up                                           │
├───────┼───────────────────────────────────────────────────┤
│_      │speed down                                         │
├───────┼───────────────────────────────────────────────────┤
│q      │quit                                               │
├───────┼───────────────────────────────────────────────────┤
│0      │set rating of currently playing track to 🌑        │
├───────┼───────────────────────────────────────────────────┤
│1      │set rating of currently playing track to 🌕        │
├───────┼───────────────────────────────────────────────────┤
│2      │set rating of currently playing track to 🌕🌕      │
├───────┼───────────────────────────────────────────────────┤
│3      │set rating of currently playing track to 🌕🌕🌕    │
├───────┼───────────────────────────────────────────────────┤
│4      │set rating of currently playing track to 🌕🌕🌕🌕  │
├───────┼───────────────────────────────────────────────────┤
│5      │set rating of currently playing track to 🌕🌕🌕🌕🌕│
├───────┼───────────────────────────────────────────────────┤

Configuration

grump will load a ~/.grump.yaml file if present.

# log level. options: trace, debug, info, warn, error
log_level: info

# if true, write application logs to a file
log_to_file: false

# write logs to this file, if enabled
log_file: grump.log

Development

Building

# build for linux (linux host)
./scripts/build-linux.sh

# build for linux (non-linux host)
docker-compose run build-linux

# build for darwin (darwin host)
./scripts/build-darwin.sh

Releasing

VERSION=0.0.0
git tag $VERSION
git push origin $VERSION
goreleaser release --rm-dist