Coder Social home page Coder Social logo

cue-music-command's Introduction

kew

GitHub license

Listen to music in the terminal.

kew (/kjuː/) is a command-line music player for Linux.

Features

  • Search a music library with partial titles.
  • Creates a playlist based on a matched directory.
  • Display album covers as ASCII art or as a normal image.
  • Control the player with previous, next and pause.
  • Has gapless playback (between files of the same format and type) and supports 24-bit audio.

Caveats

  • Does not yet work well with very long audio files that are not mp3, wav, flac, ogg or opus.
  • Seeking is disabled for ogg vorbis files.

Name Change

Had to rename cue to kew to resolve a name conflict. The meaning and pronounciation hasn't changed. Hope most of you can accept the new name. I think it gives the app more of a distinct identity.

Reviews

kew was reviewed by Linuxlinks.com:

https://www.linuxlinks.com/cue-command-line-music-player-gapless-playback/

And Tecmint.com:

https://www.tecmint.com/command-line-music-players-for-linux/

Thank you!

Installing

Packaging status

Installing on Debian

Under Debian Sid/Unstable you can run:

$ sudo apt install kew

Installing via AUR

On Arch Linux, and Arch-based distributions, kew can be found in the AUR. Install with pamac or an AUR helper like yay:

$ yay kew-git

Installing via Brew

For Homebrew user, you can install kew with:

$ brew install kew

Installing with quick install script

To quickly install kew, just copy and paste this to your terminal (if you have curl installed):

sudo bash -c "curl https://raw.githubusercontent.com/ravachol/kew/main/install.sh | bash"

Please note that this script might do a system update before installing kew.

Installing everything manually

kew dependencies are:

  • FFmpeg
  • FFTW
  • Chafa
  • FreeImage
  • libopus
  • opusfile
  • libvorbis
  • pkg-config
  • glib2.0 and AVFormat. These should be installed with the others, if not install them.

Install FFmpeg, FFTW, Chafa and FreeImage using your distro's package manager. For instance:

apt install ffmpeg libfftw3-dev libopus-dev libopusfile-dev libvorbis-dev git gcc make libchafa-dev libfreeimage-dev libavformat-dev libglib2.0-dev

Or:

pacman -Syu ffmpeg fftw git gcc make chafa freeimage glib2 opus opusfile libvorbis

Then run this (either git clone or unzip a release zip into a folder of your choice):

git clone https://github.com/ravachol/kew.git
cd kew
make
sudo make install

(Optional) Update the man db:

sudo mandb  # Update the man page database (may not be required on all systems)
sudo makewhatis /usr/local/share/man  # Update the man page index

A TrueColor capable terminal is recommended, like Konsole, kitty or st, to display colors properly.

For a complete list of capable terminals, see this page: Colors in Terminal (github.com).

Uninstalling

sudo make uninstall

Usage

In case you don't have a "Music" folder in your home folder, the first thing to do is to tell kew the path to your music library (you only need to do this once):

kew path "/home/joe/Musik/"

Now run kew and provide a partial name of a track or directory:

kew cure great

This command plays all songs from "The Cure Greatest Hits" directory, provided it's in your music library.

kew returns the first directory or file whose name matches the string you provide. It works best when your music library is organized in this way: artist folder->album folder(s)->track(s).

Some Examples:

kew (starting kew with no arguments plays all songs (up to 20 000) in your library, shuffled)

kew moonlight son (finds and plays moonlight sonata)

kew moon (finds and plays moonlight sonata)

kew beet (finds and plays all music files under "beethoven" directory)

kew dir <album name> (sometimes it's necessary to specify it's a directory you want)

kew song <song> (or a song)

kew list <playlist> (or a playlist)

kew shuffle <album name> (shuffles the playlist)

kew artistA:artistB:artistC (plays all three artists, shuffled)

kew --help, -? or -h

kew --version or -v

kew --nocover

kew --noui (completely hides the UI)

kew . loads kew.m3u

Put single-quotes inside quotes "guns n' roses"

Key Bindings

  • Use +, - keys to adjust the volume.
  • Use , or h, l keys to switch tracks.
  • Space, P to toggle pause.
  • F2 to show/hide the playlist and information about kew.
  • F3 to show/hide key bindings.
  • v to toggle the spectrum visualizer.
  • c to toggle album covers.
  • i to switch between using your regular color scheme or colors derived from the track cover.
  • b to toggle album covers drawn in ascii or as a normal image.
  • r to repeat the current song.
  • s to shuffle the playlist.
  • a to seek back.
  • d to seek forward.
  • x to save the currently loaded playlist to a m3u file in your music folder.
  • gg go to first song.
  • number +G, g or Enter, go to specific song number in the playlist.
  • g go to last song.
  • q to quit.

Configuration

kew will create a config file, kewrc, in your default config directory for instance ~/.config/. There you can change key bindings, number of bars in the visualizer and whether to use the album cover for color, or your regular color scheme (default). To edit this file please make sure you quit kew first.

License

Licensed under GPL. See LICENSE for more information.

Comments? Suggestions? Send mail to [email protected].

cue-music-command's People

Contributors

ravachol avatar chenrui333 avatar xplshn avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.