https://github.com/dhulihan/grump
A CLI audio player written in go.
https://github.com/dhulihan/grump
audio cli cli-audio-player mp3 mp3-player music music-player terminal
Last synced: 5 months ago
JSON representation
A CLI audio player written in go.
- Host: GitHub
- URL: https://github.com/dhulihan/grump
- Owner: dhulihan
- License: mit
- Created: 2020-04-03T20:14:35.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T22:34:23.000Z (over 1 year ago)
- Last Synced: 2024-11-30T07:24:09.550Z (over 1 year ago)
- Topics: audio, cli, cli-audio-player, mp3, mp3-player, music, music-player, terminal
- Language: Go
- Homepage:
- Size: 211 KB
- Stars: 80
- Watchers: 3
- Forks: 11
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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
```sh
sudo apt install libasound2-dev build-essential
go get github.com/dhulihan/grump
```
### Mac OSX
```sh
brew tap dhulihan/grump
brew install grump
```
Alternatively, you can install the latest (possibly unreleased) version:
```sh
go get github.com/dhulihan/grump
```
* You can also download pre-build binaries on the [releases](https://github.com/dhulihan/grump/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.
```yaml
# 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
```sh
# 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
```sh
VERSION=0.0.0
git tag $VERSION
git push origin $VERSION
goreleaser release --rm-dist
```