All Projects → ambientsound → Pms

ambientsound / Pms

Licence: mit
Practical Music Search is an interactive Vim-like console client for the Music Player Daemon.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Pms

Php Console
🖥 PHP CLI application library, provide console argument parse, console controller/command run, color style, user interactive, format information show and more. 功能全面的PHP命令行应用库。提供控制台参数解析, 命令运行,颜色风格输出, 用户信息交互, 特殊格式信息显示
Stars: ✭ 310 (+70.33%)
Mutual labels:  console-application, interactive
ilua
Portable Lua kernel for Jupyter
Stars: ✭ 99 (-45.6%)
Mutual labels:  interactive, console-application
Criterion
Microbenchmarking for Modern C++
Stars: ✭ 140 (-23.08%)
Mutual labels:  console-application
Mocp
Music On Console Player
Stars: ✭ 171 (-6.04%)
Mutual labels:  console-application
Smenu
smenu started as a lightweight and flexible terminal menu generator, but quickly evolved into a powerful and versatile CLI selection tool for interactive or scripting use.
Stars: ✭ 1,906 (+947.25%)
Mutual labels:  interactive
So Nice
Small Web interface to control iTunes, Spotify, Rdio, MPD, Rhythmbox, Amarok and XMMS2. ♫
Stars: ✭ 141 (-22.53%)
Mutual labels:  mpd
Fzf Scripts
a collection of scripts that rely on https://github.com/junegunn/fzf
Stars: ✭ 158 (-13.19%)
Mutual labels:  mpd
Webpack Bundle Analyzer
Webpack plugin and CLI utility that represents bundle content as convenient interactive zoomable treemap
Stars: ✭ 11,472 (+6203.3%)
Mutual labels:  interactive
Sunburstr
R htmlwidget for interactive sunburst plots
Stars: ✭ 177 (-2.75%)
Mutual labels:  interactive
React Svg Map
A set of React.js components to display an interactive SVG map
Stars: ✭ 150 (-17.58%)
Mutual labels:  interactive
Qoa
Minimal interactive command-line prompts
Stars: ✭ 2,007 (+1002.75%)
Mutual labels:  interactive
Interpolate
Swift interpolation for gesture-driven animations
Stars: ✭ 1,809 (+893.96%)
Mutual labels:  interactive
Zalo.github.io
A home for knowledge that is hard to find elsewhere
Stars: ✭ 143 (-21.43%)
Mutual labels:  interactive
Diagram Maker
A library to display an interactive editor for any graph-like data.
Stars: ✭ 2,086 (+1046.15%)
Mutual labels:  interactive
Interactive machine learning
IPython widgets, interactive plots, interactive machine learning
Stars: ✭ 140 (-23.08%)
Mutual labels:  interactive
How To Markdown
Learn how to start using Markdown
Stars: ✭ 173 (-4.95%)
Mutual labels:  interactive
Hledger
A reliable, user-friendly Plain Text Accounting tool with command line, terminal and web interfaces.
Stars: ✭ 1,887 (+936.81%)
Mutual labels:  console-application
Githeat
🔥 Interactive heatmap for your git repos
Stars: ✭ 145 (-20.33%)
Mutual labels:  interactive
Kilua
A minimal text-editor with lua scripting.
Stars: ✭ 158 (-13.19%)
Mutual labels:  console-application
Clerk
clerk - mpd client, based on rofi/fzf
Stars: ✭ 180 (-1.1%)
Mutual labels:  mpd

Practical Music Search

Build Status Go Report Card codecov License

Practical Music Search is an interactive console client for the Music Player Daemon, written in Go. Its interface is similar to Vim, and aims to be fast, configurable, and practical.

PMS has many features that involve sorting, searching, and navigating. It’s designed to let you navigate your music collection in an effective way. Some of the currently implemented features are:

  • Vim-style look and feel!
  • Can be configured to consume a very small amount of screen space.
  • MPD player controls: play, add, pause, stop, next, prev, volume.
  • Highly customizable top bar, tag headers, text styles, colors, and keyboard bindings.
  • Fast library search, featuring UTF-8 normalization, fuzzy search, and scoring.
  • Selecting songs, by visual mode, manual selection, and specific tags.
  • Many forms of tracklist manipulation, such as cut, copy, paste, filter, and sort.
  • Config files, tab completion, history, and much more!

Documentation

Documentation is available in the project repository.

Project status

PMS is in alpha stage, and is a work in progress. A more feature complete, but older, version can be found in the 0.42.x branch.

This software was previously written in C++. The master branch now contains a rewrite, currently implemented in Go. The current goal of the Go implementation is to implement most of the features found in the 0.42 branch.

This functionality is present in the 0.42.x branch, but missing in master:

  • Automatically add songs to the queue when it is nearing end.
  • Remote playlist management.
  • ...and probably more.

Getting started

You’re assumed to have a working Go development environment. Building PMS requires Go version 1.13 or higher.

Assuming you have the go binary in your path, you can install PMS using:

git clone https://github.com/ambientsound/pms
cd pms
make install

This will put the binary in $GOBIN/pms, usually at ~/go/bin/pms. You need to run PMS in a regular terminal with a TTY.

If PMS crashes, and you want to report a bug, please include the debug log:

pms --debug /tmp/pms.log 2>>/tmp/pms.log

Requirements

PMS wants to build a search index from MPD's database. To be truly practical, PMS must support fuzzy matching, scoring, and sub-millisecond full-text searches. This is accomplished by using Bleve, a full-text search and indexing library.

A full-text search index takes up both space and memory. For a library of about 30 000 songs, you should expect using about 500 MB of disk space and around 1 GB of RAM.

PMS is multithreaded and benefits from multicore CPUs.

Contributing

See how to contribute to PMS.

Authors

Copyright (c) 2006-2019 Kim Tore Jensen <[email protected]>.

The source code and latest version can be found at Github: https://github.com/ambientsound/pms.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].