Small, fast and powerful console music player for Unix-like operating systems.

Related tags

cmus
Overview

Warning: cmus is not actively maintained. For details, please see #856

cmus — C* Music Player

https://cmus.github.io/

Build Status

Copyright © 2004-2008 Timo Hirvonen [email protected]

Copyright © 2008-2017 Various Authors

Configuration

List available optional features

$ ./configure --help

Auto-detect everything

$ ./configure

To disable some feature, arts for example, and install to $HOME run

$ ./configure prefix=$HOME CONFIG_ARTS=n

After running configure you can see from the generated config.mk file what features have been configured in (see the CONFIG_* options).

Note: For some distributions you need to install development versions of the dependencies. For example if you want to use 'mad' input plugin (mp3) you need to install libmad0-dev (Debian) or libmad-devel (RPM) package. After installing dependencies you need to run ./configure again, of course.

If you want to use the Tremor library as alternative for decoding Ogg/Vorbis files you have to pass CONFIG_TREMOR=y to the configure script:

$ ./configure CONFIG_VORBIS=y CONFIG_TREMOR=y

The Tremor library is supposed to be used on hardware that has no FPU.

Building

$ make

Or on some BSD systems you need to explicitly use GNU make:

$ gmake

Installation

$ make install

Or to install to a temporary directory:

$ make install DESTDIR=~/tmp/cmus

This is useful when creating binary packages.

Remember to replace make with gmake if needed.

Manuals

$ man cmus-tutorial

And

$ man cmus

Mailing List

To subscribe to [email protected] or view the archive visit http://lists.sourceforge.net/lists/listinfo/cmus-devel.

The mailing list now serves as an archive for old releases and issues. Please use the GitHub issues page for any problems, suggestions, or bug reports.

Reporting Bugs

Bugs should be reported using the GitHub issue tracker. When creating a new issue, a template will be shown containing instructions on how to collect the necessary information.

Additional debug information can be found in ~/cmus-debug.txt if you configured cmus with maximum debug level (./configure DEBUG=2). In case of a crash the last lines may be helpful.

Git Repository

https://github.com/cmus/cmus

$ git clone https://github.com/cmus/cmus.git

Hacking

cmus uses the Linux kernel coding style. Use hard tabs. Tabs are always 8 characters wide. Keep the style consistent with rest of the code.

Bug fixes and implementations of new features should be suggested as a pull request directly on GitHub.

Issues
  • Stats

    Stats

    Hi,

    I've implemented a track play_count field to count how many times a particular track was played. I use it along with a filter to determine which tracks in my library hasn't yet been played.

    Could you please review the changes and merge them (if there's everything alright with'em) ?

    opened by dagon666 44
  • 99% CPU at *end* of song

    99% CPU at *end* of song

    Sometimes cmus freezes and gets locked into around 98-100% CPU usage, and can only be killed by a SIGKILL. I've discovered for me, unlike other issues that experience this, it happens at the end of a song. It freezes once the song finishes and is about to move to the next one. But when I play the next one without finishing the previous, it works fine.

    Some conveniently free examples of music that triggers this for me (fan-made rearrangements of videogame music, because I'm that person :stuck_out_tongue: ):

    • https://ocremix.org/remix/OCR03483 "Dream of Green"
    • https://ocremix.org/remix/OCR03019 "A Derelict Machine"

    Most of the music there is fine. I haven't found a pattern.


    1. uname -a:
    Linux changeling 5.3.18-lp152.66-default #1 SMP Tue Mar 2 13:18:19 UTC 2021 (73933a3) x86_64 x86_64 x86_64 GNU/Linux
    
    1. cmus --version:
    cmus v2.9.1
    Copyright 2004-2006 Timo Hirvonen
    Copyright 2008-2016 Various Authors
    
    1. cmus --plugins:
    Input Plugins: /usr/lib64/cmus/ip
      wav:
        Priority: 50
        File Types: wav
        MIME Types:
      cue:
        Priority: 50
        File Types:
        MIME Types: application/x-cue
      flac:
        Priority: 50
        File Types: flac fla
        MIME Types:
      ffmpeg:
        Priority: 30
        File Types: aa aac ac3 aif aifc aiff ape au fla flac m4a m4b mka mkv mp+ mp2 mp3 mp4 mpc mpp ogg opus shn tak tta wav webm wma wv *
        MIME Types:
    
    Output Plugins: /usr/lib64/cmus/op
      pulse
      alsa
      oss
    
    bug 
    opened by AlbeyAmakiir 39
  • Can cmus sorted only by Album?

    Can cmus sorted only by Album?

    It is not convenience for user to find songs in a album that has more than one singer/writer.

    feature request question 
    opened by lungziyim 38
  • ip_read: BUG: rc % (((((((ip->data.sf))) & 0x00000038 ) >> 0) >> 3) * ((((ip->data.sf)) & 0xff000000 ) >> 24)) != 0

    ip_read: BUG: rc % (((((((ip->data.sf))) & 0x00000038 ) >> 0) >> 3) * ((((ip->data.sf)) & 0xff000000 ) >> 24)) != 0

    Hi there! Seems like i got myself a little bug. In a track "Corrupt system"(By VHS Glitch, album is Moral Decay), i'm getting this after some time of playing and cmus crashes

    ip_read: BUG: rc % (((((((ip->data.sf))) & 0x00000038 ) >> 0) >> 3) * ((((ip->data.sf)) & 0xff000000 ) >> 24)) != 0
    

    It seems that some of the tracks in this album is causing this bug too. The other ones is playing absolutely great. I'm actually listening CD-rip in flac with ~1500 kbps, so it's not caused by some badly converted song.

    1. uname -a:
    Linux laptop.scvh 4.9.5-200.fc25.x86_64 #1 SMP Fri Jan 20 12:24:16 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    
    1. cmus --version:
    cmus v2.7.1
    
    1. cmus --plugins:
    Input Plugins: /usr/lib64/cmus/ip
      ffmpeg:
        Priority: 300
        File Types: aa aac ac3 aif aifc aiff ape au fla flac m4a m4b mka mkv mp+ mp2 mp3 mp4 mpc mpp ogg shn tak tta wav webm wma wv
        MIME Types:
      mad:
        Priority: 55
        File Types: mp3 mp2
        MIME Types: audio/mpeg audio/x-mp3 audio/x-mpeg
      wavpack:
        Priority: 50
        File Types: wv
        MIME Types: audio/x-wavpack
      cue:
        Priority: 50
        File Types:
        MIME Types: application/x-cue
      aac:
        Priority: 50
        File Types: aac
        MIME Types: audio/aac audio/aacp
      mp4:
        Priority: 50
        File Types: mp4 m4a m4b
        MIME Types:
      wav:
        Priority: 50
        File Types: wav
        MIME Types:
      vorbis:
        Priority: 50
        File Types: ogg oga ogx
        MIME Types: application/ogg audio/x-ogg
      opus:
        Priority: 50
        File Types: opus
        MIME Types:
      flac:
        Priority: 50
        File Types: flac fla
        MIME Types:
      modplug:
        Priority: 50
        File Types: mod s3m xm it 669 amf ams dbm dmf dsm far mdl med mtm okt ptm stm ult umx mt2 psm
        MIME Types:
      mpc:
        Priority: 50
        File Types: mpc mpp mp+
        MIME Types: audio/x-musepack
    
    Output Plugins: /usr/lib64/cmus/op
      pulse
      alsa
      ao
    
    FFmpeg bug flac input plugin 
    opened by schvabodka-man 30
  • Fixes incorect bit rate declaration for 24bit flac

    Fixes incorect bit rate declaration for 24bit flac

    flac inflates the bit rate to 32bit for 24bit files, but declares 24bit in the sf structure.

    fixes #644

    opened by nefthy 30
  • Random sequence always the same on Cygwin

    Random sequence always the same on Cygwin

    $ cmus --version
    cmus v2.5.0
    

    Although random generated by BASH differs between restarts:

    $ echo $RANDOM
    21277
    
    $ echo $RANDOM
    17761
    
    bug 
    opened by garncarz 27
  • native CoreAudio plugin

    native CoreAudio plugin

    native CoreAudio plugin, with interesting features such as hog mode, auhal, device selection, volume setting, native audio format, and more!

    Comparing to libao, this plugin reduces core audio daemon CPU utilization at least to 5% (sometimes to 1%). In addition you're not going to see deprecate warnings populated onto your terminal.

    opened by Wang-Yue 27
  • High bit/sample rate FLAC produces noise on macOS with both ao and CoreAudio

    High bit/sample rate FLAC produces noise on macOS with both ao and CoreAudio

    High bitrate FLAC files produce nothing but noise on my macOS 10.11.6 machine using Cmus from HEAD (both 90722a0 and c5af200) installed via Homebrew.

    brew install --HEAD --with-ffmpeg was used to install.

    44KHz/16bit FLACs play fine, 96KHz/24bit FLACs produce nothing but noise.

    Have tried setting

     dsp.coreaudio.enable_hog_mode true
     dsp.coreaudio.sync_sample_rate true
    

    with no luck.

    Have also tried using ao driver as output. With CoreAudio, the noise is quite choppy, with ao it's still noise but it's much less choppy.

    Have tried setting ffmpeg priority higher than FLAC so it will play the files, but I still get noise.

    These files play back fine on a Linux box with cmus, using Foobar2000 on Windows, as well as with VOX on the Mac, so the files appear to be valid.cv

    Github won't let me attach an example as they're >80MB, so I've uploaded one to my webserver at https://lefty.tv/stuff/Nirvana%20-%20In%20Utero%20-%2020th%20Anniversary%20Super%20Deluxe%20-%2001%20-%20Serve%20The%20Servants%20(Album%20Version).flac

    SHA256 (Nirvana - In Utero - 20th Anniversary Super Deluxe - 01 - Serve The Servants (Album Version).flac) = 884db526ac1514c44fac05f650006cba6c65b03551d275a283e4e289513107df

    $ metaflac --show-bps --show-sample-rate Nirvana\ -\ In\ Utero\ -\ 20th\ Anniversary\ Super\ Deluxe\ -\ 01\ -\ Serve\ The\ Servants\ \(Album\ Version\).flac
    24
    96000
    

    Converting the file to Apple Lossless using XLD seems to allow it to play fine with Cmus.

    Please let me know if I can provide any extra information.


    1. uname -a:
    Darwin eav1046337m.local 15.6.0 Darwin Kernel Version 15.6.0: Thu Sep  1 15:01:16 PDT 2016; root:xnu-3248.60.11~2/RELEASE_X86_64 x86_64
    
    1. cmus --version:
    cmus v2.8.0-rc0
    Copyright 2004-2006 Timo Hirvonen
    Copyright 2008-2016 Various Authors
    
    1. cmus --plugins:
    Input Plugins: /usr/local/Cellar/cmus/HEAD-c5af200_1/lib/cmus/ip
      mad:
        Priority: 55
        File Types: mp3 mp2
        MIME Types: audio/mpeg audio/x-mp3 audio/x-mpeg
      aac:
        Priority: 50
        File Types: aac
        MIME Types: audio/aac audio/aacp
      cue:
        Priority: 50
        File Types:
        MIME Types: application/x-cue
      flac:
        Priority: 50
        File Types: flac fla
        MIME Types:
      mp4:
        Priority: 50
        File Types: mp4 m4a m4b
        MIME Types:
      vorbis:
        Priority: 50
        File Types: ogg oga ogx
        MIME Types: application/ogg audio/x-ogg
      wav:
        Priority: 50
        File Types: wav
        MIME Types:
      ffmpeg:
        Priority: 30
        File Types: aa aac ac3 aif aifc aiff ape au fla flac m4a m4b mka mkv mp+ mp2 mp3 mp4 mpc mpp ogg shn tak tta wav webm wma wv
        MIME Types:
    
    Output Plugins: /usr/local/Cellar/cmus/HEAD-c5af200_1/lib/cmus/op
      coreaudio
      ao
    
    bug needs feedback 
    opened by LeftyBC 26
  • [Feature request] multiple playlists/treat playlists like directories

    [Feature request] multiple playlists/treat playlists like directories

    I'm opening this issue to discuss the option of multiple playlists. If they were stored in a central spot (like ~/.cmus/playlists/), then the third view could just show the directory and have an option to make a new one.

    Then if you open a playlist, it would work just like it does now, except there'd be a ../ at the top, like in the file browser, so you could go back and look at more playlists.

    Thanks for this awesome music player!

    feature request 
    opened by losingkeys 25
  • Add conditionals in format strings

    Add conditionals in format strings

    Idea from #150. Syntax %{if COND then A [else B] }. I used expr.c for parsing. format_print.c was modified. It uses gbuf now: I think, it is more convenient. Id's in COND can be options. Any unknown id is false. Id stream checks if is_http_url( %{filename} ). I haven't changed/removed/added default formats yet.

    opened by pavel-belikov 24
  • Fix documentation for passwd config option

    Fix documentation for passwd config option

    fixes #971

    opened by pgaskin 0
  • Implement pl_env_vars option for library/playlist/cache relocation

    Implement pl_env_vars option for library/playlist/cache relocation

    See pl_env.h for more details.

    closes #834 closes #245

    opened by pgaskin 8
  • Error when trying to play an RTSP radio stream

    Error when trying to play an RTSP radio stream


    1. uname -a:
    Linux PC 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux
    
    1. cmus --version:
    cmus v2.7.0
    Copyright 2004-2006 Timo Hirvonen
    Copyright 2008-2013 Various Authors
    
    1. cmus --plugins:
    Input Plugins: /usr/lib/cmus/ip
      mad:
        Priority: 55
        File Types: mp3 mp2
        MIME Types: audio/mpeg audio/x-mp3 audio/x-mpeg
      vorbis:
        Priority: 50
        File Types: ogg oga ogx
        MIME Types: application/ogg audio/x-ogg
      cue:
        Priority: 50
        File Types:
        MIME Types: application/x-cue
      wav:
        Priority: 50
        File Types: wav
        MIME Types:
      aac:
        Priority: 50
        File Types: aac
        MIME Types: audio/aac audio/aacp
      flac:
        Priority: 50
        File Types: flac fla
        MIME Types:
      mpc:
        Priority: 50
        File Types: mpc mpp mp+
        MIME Types: audio/x-musepack
      opus:
        Priority: 50
        File Types: opus
        MIME Types:
      wavpack:
        Priority: 50
        File Types: wv
        MIME Types: audio/x-wavpack
      modplug:
        Priority: 50
        File Types: mod s3m xm it 669 amf ams dbm dmf dsm far mdl med mtm okt ptm stm ult umx mt2 psm
        MIME Types:
      cdio:
        Priority: 50
        File Types:
        MIME Types: x-content/audio-cdda
      ffmpeg:
        Priority: 30
        File Types: aa ac3 aif aifc aiff ape au mka shn tak tta wma webm aac fla flac m4a m4b mp+ mp2 mp3 mp4 mpc mpp ogg wav wv
        MIME Types:
    
    Output Plugins: /usr/lib/cmus/op
      pulse
      alsa
      jack
      ao
    
    

    My internet router has an integrated DVB-C tuner. The router provides access to TV and radio channels over the network via RTSP. From the router page a playlist containing RTSP URIs for all radio channels can be downloaded as an m3u file. cmus can open this playlist but if I try to play a radio channel I receive:

    Error: Couldn't get file information for rtsp://192.168.178.1:554/?avm=1&freq=450&bw=8&msys=dvbc&mtype=256qam&sr=6900&specinv=1&pids=0,16,17,18,20,700,710
    

    VLC can play these RTSP streams just fine. I can also play these with FFMPEG like this:

    ffplay -nodisp "rtsp://192.168.178.1:554/?avm=1&freq=450&bw=8&msys=dvbc&mtype=256qam&sr=6900&specinv=1&pids=0,16,17,18,20,700,710"
    

    It's not clear to me whether cmus supports RTSP or not (e.g. through FFMPEG).

    In my case, I think all radio channels come with an mp2 audio stream for compatibility with TVs. Some radio channels additionally offer an AC-3 stream, usually for higher audio quality or to provide surround sound. In such cases mp2 and AC-3 are available over the same RTSP stream. In VLC I can switch between the two audio streams. It would be nice if it was possible to do this with cmus as well. Perhaps one could also configure a preference for audio codecs for RTSP streams. For instance, if an AC-3 stream is available, use that by default and only use mp2 as a fallback if no AC-3 is available.

    opened by Hiradur 0
  • Fix segfault when reading mp4 files

    Fix segfault when reading mp4 files

    Cmus will encounter a segmentation fault reading mp4/m4a/m4b if the shared libmp4v2 library is at v4.1.4+. This is because that release changed the MP4Read function from an overloaded method to a single method with a default argument of nullptr, causing cmus to segfault when it only specified one argument.

    This PR fixes that by changing the function call to specify NULL as the second argument, which prevents cmus from segfaulting.

    Fixes #1076.

    Related: mp4v2/#47

    Feel free to raise any concerns with this fix.

    opened by OxygenCobalt 0
  • Segmentation fault when opening any m4a/m4b/mp4 file

    Segmentation fault when opening any m4a/m4b/mp4 file

    I tried to refresh the music library on cmus today, but it seems that whenever I try to add an m4a file it encounters a segmentation fault error. I've tried this with files without metadata and it still happens. This also seems to happen with m4b and mp4 files as well.

    So I got a stack trace with gdb cmus:

    #0  0x00007fffe0002128 in ?? ()
    #1  0x00007fffefd3ef86 in ?? () from /usr/lib/libmp4v2.so.2
    #2  0x00007fffefd41e59 in ?? () from /usr/lib/libmp4v2.so.2
    #3  0x00007fffefd42d29 in ?? () from /usr/lib/libmp4v2.so.2
    #4  0x00007fffefd37c57 in MP4Read () from /usr/lib/libmp4v2.so.2
    #5  0x00007ffff7072789 in ?? () from /usr/lib/cmus/ip/mp4.so
    #6  0x0000555555580c13 in ip_open ()
    #7  0x000055555556b275 in ?? ()
    #8  0x000055555556c020 in cache_get_ti ()
    #9  0x0000555555582269 in ?? ()
    #10 0x0000555555582746 in ?? ()
    #11 0x000055555558275b in ?? ()
    #12 0x00005555555828a4 in ?? ()
    #13 0x000055555559fa48 in ?? ()
    #14 0x00007ffff7f85299 in start_thread () from /usr/lib/libpthread.so.0
    #15 0x00007ffff7c2f053 in clone () from /usr/lib/libc.so.6
    

    Which I then used to trace back this issue. It seems like a change in libmp4v2 v4.1.4/4.1.5 is causing cmus to not compile [and maybe segfault]. Currently my version of libmp4v2 is 4.1.4-1, so I would be affected if that was the case.

    Edit: On further inspection of the stacktrace, the function it seems to reference is MP4Read, which is also the same function that contains the C++ instruction that causes the compilation issue in the first place. This change is probably the cause.

    Is there anything that can be done here?

    1. uname -a:
    Linux primary 5.9.16-1-MANJARO #1 SMP PREEMPT Mon Dec 21 22:00:46 UTC 2020 x86_64 GNU/Linux
    
    1. cmus --version:
    cmus v2.8.0
    Copyright 2004-2006 Timo Hirvonen
    Copyright 2008-2016 Various Authors
    
    1. cmus --plugins:
    Input Plugins: /usr/lib/cmus/ip
      mad:
        Priority: 55
        File Types: mp3 mp2
        MIME Types: audio/mpeg audio/x-mp3 audio/x-mpeg
      wavpack:
        Priority: 50
        File Types: wv
        MIME Types: audio/x-wavpack
      cue:
        Priority: 50
        File Types:
        MIME Types: application/x-cue
      opus:
        Priority: 50
        File Types: opus
        MIME Types:
      vorbis:
        Priority: 50
        File Types: ogg oga ogx
        MIME Types: application/ogg audio/x-ogg
      cdio:
        Priority: 50
        File Types:
        MIME Types: x-content/audio-cdda
      aac:
        Priority: 50
        File Types: aac
        MIME Types: audio/aac audio/aacp
      modplug:
        Priority: 50
        File Types: mod s3m xm it 669 amf ams dbm dmf dsm far mdl med mtm okt ptm stm ult umx mt2 psm
        MIME Types:
      mpc:
        Priority: 50
        File Types: mpc mpp mp+
        MIME Types: audio/x-musepack
      flac:
        Priority: 50
        File Types: flac fla
        MIME Types:
      mp4:
        Priority: 50
        File Types: mp4 m4a m4b
        MIME Types:
      wav:
        Priority: 50
        File Types: wav
        MIME Types:
      ffmpeg:
        Priority: 30
        File Types: aa aac ac3 aif aifc aiff ape au fla flac m4a m4b mka mkv mp+ mp2 mp3 mp4 mpc mpp ogg shn tak tta wav webm wma wv
        MIME Types:
    
    Output Plugins: /usr/lib/cmus/op
      pulse
      alsa
      oss
      jack
      ao
    
    opened by OxygenCobalt 11
  • :lqueue in playlist view

    :lqueue in playlist view

    Hello!

    Thank you for making cmus. I only recently discovered it, having gladly switched from mpd/ncmpcpp, and I keep finding new things I love about it. Clearly a lot of care and thought has gone into the design. I'm also very grateful for how easy cmus is to build.

    Sorry if this is something I should have figured out on my own, and this may be an uncommon use-case, but with the cursor on a track in the playlist view, I often want to add that track's corresponding whole album to the queue. My first assumption was that :lqueue would do this, but this appears to add albums from the library.

    Is there a way to have :lqueue add albums from the playlist view? Or is there a way to "jump" from a track in playlist to its album in the library (to then add to queue)?

    Many thanks.

    1. uname -a:
    Darwin nostromo.local 17.7.0 Darwin Kernel Version 17.7.0: Fri Oct 30 13:34:27 PDT 2020; root:xnu-4570.71.82.8~1/RELEASE_X86_64 x86_64
    
    1. cmus --version:
    cmus a262346a4
    
    1. cmus --plugins:
    Input Plugins: /usr/local/pkg/lib/cmus/ip
      wav:
        Priority: 50
        File Types: wav
        MIME Types:
      cue:
        Priority: 50
        File Types:
        MIME Types: application/x-cue
      flac:
        Priority: 50
        File Types: flac fla
        MIME Types:
      ffmpeg:
        Priority: 30
        File Types: aa aac ac3 aif aifc aiff ape au fla flac m4a m4b mka mkv mp+ mp2 mp3 mp4 mpc mpp ogg opus shn tak tta wav webm wma wv
        MIME Types:
    
    Output Plugins: /usr/local/pkg/lib/cmus/op
      coreaudio
      ao
    
    feature request 
    opened by rnkn 0
  • playlist track windows always rendered as inactive

    playlist track windows always rendered as inactive


    1. uname -a:
    Darwin ******.local 19.6.0 Darwin Kernel Version 19.6.0: Mon Aug 31 22:12:52 PDT 2020; root:xnu-6153.141.2~1/RELEASE_X86_64 x86_64
    
    1. cmus --version:
    cmus v2.9.1
    
    1. cmus --plugins:
    Input Plugins: /usr/local/lib/cmus/ip
      mad:
        Priority: 55
        File Types: mp3 mp2
        MIME Types: audio/mpeg audio/x-mp3 audio/x-mpeg
      opus:
        Priority: 50
        File Types: opus
        MIME Types:
      wav:
        Priority: 50
        File Types: wav
        MIME Types:
      mp4:
        Priority: 50
        File Types: mp4 m4a m4b
        MIME Types:
      cue:
        Priority: 50
        File Types:
        MIME Types: application/x-cue
      aac:
        Priority: 50
        File Types: aac
        MIME Types: audio/aac audio/aacp
      flac:
        Priority: 50
        File Types: flac fla
        MIME Types:
      vorbis:
        Priority: 50
        File Types: ogg oga ogx
        MIME Types: application/ogg audio/x-ogg
      ffmpeg:
        Priority: 30
        File Types: aa aac ac3 aif aifc aiff ape au fla flac m4a m4b mka mkv mp+ mp2 mp3 mp4 mpc mpp ogg opus shn tak tta wav webm wma wv
        MIME Types:
    
    Output Plugins: /usr/local/lib/cmus/op
      coreaudio
    

    The track window in playlist view seems to be win_inactive (for color scheme) regardless of whether or not the track window is the active window.

    Say, I have a color scheme where color_win_inactive_sel_attr=underline, color_win_sel_attr=bold, with all other fields left as default. No matter which window (playlist or track) I focus on, using the win_next command, the selected track in the right track window would be underlined instead of bold. The playlist window renders normally.

    This issue was absent in 2.8.1.

    bug 
    opened by shenqshuoh 1
  • Managing playlists externally while cmus is running

    Managing playlists externally while cmus is running

    I want to rate my music with Ulauncher while cmus plays music, but I'm facing an issue.

    1. I start cmus
    2. I have 5 empty playlists (rated_1_stars, rated_2_stars, and so on)
    3. I start playing music
    4. In Ulauncher I type "rate 4" which triggers a script which adds the current song in the rated_4_stars playlist
    5. I quit cmus
    6. Playlists are emptied

    Rating script is inspired from https://gist.github.com/Markus00000/ad8c0ff46290f9dc2887

    Why are playlists reverted back to the state they were when cmust started. What am I doing wrong?

    feature request 
    opened by sebw 1
  • 100% cpu usage if ALSA output is removed while cmus is running

    100% cpu usage if ALSA output is removed while cmus is running

    1. uname -a:
    Linux laptop 5.10.0-2-amd64 #1 SMP Debian 5.10.9-1 (2021-01-20) x86_64 GNU/Linux
    
    1. cmus --version:
    cmus v2.9.1
    
    1. cmus --plugins:
    Input Plugins: /usr/lib/cmus/ip
      mad:
        Priority: 55
        File Types: mp3 mp2
        MIME Types: audio/mpeg audio/x-mp3 audio/x-mpeg
      vorbis:
        Priority: 50
        File Types: ogg oga ogx
        MIME Types: application/ogg audio/x-ogg
      wavpack:
        Priority: 50
        File Types: wv
        MIME Types: audio/x-wavpack
      cdio:
        Priority: 50
        File Types:
        MIME Types: x-content/audio-cdda
      cue:
        Priority: 50
        File Types:
        MIME Types: application/x-cue
      opus:
        Priority: 50
        File Types: opus
        MIME Types:
      wav:
        Priority: 50
        File Types: wav
        MIME Types:
      flac:
        Priority: 50
        File Types: flac fla
        MIME Types:
      modplug:
        Priority: 50
        File Types: mod s3m xm it 669 amf ams dbm dmf dsm far mdl med mtm okt ptm stm ult umx mt2 psm
        MIME Types:
      aac:
        Priority: 50
        File Types: aac
        MIME Types: audio/aac audio/aacp
      mpc:
        Priority: 50
        File Types: mpc mpp mp+
        MIME Types: audio/x-musepack
      ffmpeg:
        Priority: 30
        File Types: aa aac ac3 aif aifc aiff ape au fla flac m4a m4b mka mkv mp+ mp2 mp3 mp4 mpc mpp ogg opus shn tak tta wav webm wma wv
        MIME Types:
    
    Output Plugins: /usr/lib/cmus/op
      pulse
      alsa
      jack
      ao
    

    cmus hangs with 100% cpu usage if ALSA device is removed after cmus is started.

    Steps to reproduce

    1. Set device in ~/.asoundrc
      defaults.pcm.!card 3
      defaults.ctl.!card 3
      defaults.ctl.!device 0
      defaults.pcm.!device 0
      
    2. Start cmus in tmux, play a file, set it on pause.
    3. Remove device (number 3 in this case).
    4. Observe the following:
      ps a -o %cpu,%mem,cmd | grep cmus | grep -v grep
      73.0  0.2 /usr/bin/cmus
      
    bug output plugin 
    opened by savchenko 6
Releases(v2.9.1)
  • v2.9.1(Jan 22, 2021)

    A lot of improvements and fixes compared to v2.8.0, but nothing really major. Here is the shortlog:

    Adel Bordbari (1):
          add amazon.theme (#975)
    
    Alex (1):
          mute/unmute command (#934)
    
    Chris Grahn (1):
          Fix bug on ppc64 caused by narrowing cast (#941)
    
    David Flatz (1):
          play pregaps of songs by adding them at the end of the previous song (#983)
    
    Felipe (1):
          Fix typo: it's->its (#947)
    
    Gregory Petrosyan (3):
          cmus 2.9.0-rc0
          cmus 2.9.0
          cmus 2.9.1
    
    Guillermo Bonvehí (1):
          Make cmus-update*.py use env python and fix pidgin with py3 (#857)
    
    Jinwoo Park (1):
          fixed playlist name searching (#906)
    
    Johannes Lange (1):
          added "exiting" player status (#648)
    
    Jon Higgs (1):
          Add `continue_album` option (#927)
    
    Lucius Martius (1):
          Add support for 'DISCNUMBER' REM-field in CUE-sheets (#982)
    
    Mathieu Lemay (1):
          Fix type of MPRIS2 fields title and album (#972)
    
    MyLegGuy (1):
          properly calculate size of print string (#987)
    
    Nicu Borta (1):
          ip/cdio.c: only declare track_comments_found if (#1030)
    
    Niko E (7):
          Makes save -p consistent with documentation (#859)
          Fixes various compiler warning (#862)
          Fixes ffmpeg deprecations (#861)
          Changes yes_no_query to signal error on cmus exit (#858)
          Fixes incorect bit rate declaration for 24bit flac (#867)
          Makes :quit only prompt if -i is given (#888)
          Fixes truncation warnings by replacing %s with %.s (#1040)
    
    Patrick G (2):
          Add *.lo to clean in Makefile (#864)
          Add note about overriding keybindings using rc (closes #742) (#866)
    
    Patrick Gaskin (15):
          Make mouse behavior on playlist window consistent with library (#1011)
          Update zsh completion (#985) (#1019)
          Add gruvbox-warm.theme (#1014)
          Add -n option to win-add-{l,p,Q,q} to prevent selecting the next item (#1017)
          Add tree width options (#1018)
          Implement mouse events for status bar (#1013)
          Fix whitespace issues (#1021)
          Implement mouse events for title bar (#1025)
          Switch to GitHub Actions (#1026)
          Documentation improvements for keybindings and some commands (#1037)
          Spelling, grammar, and other improvements (#1024)
          Add comments about fg/bg color to gruvbox-warm.theme (#1038)
          Increase help view keybinding width (#1039)
          Remove unused functions in op/sndio.c (#1041)
          Fix playlist track selection (#1044)
    
    Shiba (1):
          Add support for elogind (#846)
    
    Tim Gates (1):
          docs: fix simple typo, speacial -> special (#1002)
    
    amangrewal (1):
          Ensures all data sent on dbus is in utf8 (#847) (#871)
    
    edclements (2):
          Stop after queue (resolves #696) (#1006)
          Shuffle first track (#893) (#1008)
    
    enigmatic-system (1):
          Adding "--server SOCKET --passwd PASSWORD" section (#958)
    
    eshrh (1):
          Add -f, --file to cmus-remote (#984)
    
    gavtroy (1):
          Support R128_TRACK_GAIN / R128_ALBUM_GAIN tags (#994)
    
    jetomit (1):
          Fix a crash when moving all tracks in a view (#916)
    
    lennonhill (1):
          ip/mp4: add metadata support for bpm/tempo (#878)
    
    mrffr (1):
          Allow push to accept no arguments (#937)
    
    tomty89 (4):
          Avoid -I$(pwd) (#820)
          ip/ffmpeg: enable opus support (#865)
          bits-per-sample fixes (#870)
          misc_init: remove variable user_name (#898)
    
    Source code(tar.gz)
    Source code(zip)
  • v2.9.0(Jan 17, 2021)

    A lot of improvements and fixes compared to v2.8.0, but nothing really major. Here is the shortlog:

    Adel Bordbari (1):
          add amazon.theme (#975)
    
    Alex (1):
          mute/unmute command (#934)
    
    Chris Grahn (1):
          Fix bug on ppc64 caused by narrowing cast (#941)
    
    David Flatz (1):
          play pregaps of songs by adding them at the end of the previous song (#983)
    
    Felipe (1):
          Fix typo: it's->its (#947)
    
    Gregory Petrosyan (2):
          cmus 2.9.0-rc0
          cmus 2.9.0
    
    Guillermo Bonvehí (1):
          Make cmus-update*.py use env python and fix pidgin with py3 (#857)
    
    Jinwoo Park (1):
          fixed playlist name searching (#906)
    
    Johannes Lange (1):
          added "exiting" player status (#648)
    
    Jon Higgs (1):
          Add `continue_album` option (#927)
    
    Lucius Martius (1):
          Add support for 'DISCNUMBER' REM-field in CUE-sheets (#982)
    
    Mathieu Lemay (1):
          Fix type of MPRIS2 fields title and album (#972)
    
    MyLegGuy (1):
          properly calculate size of print string (#987)
    
    Nicu Borta (1):
          ip/cdio.c: only declare track_comments_found if (#1030)
    
    Niko E (7):
          Makes save -p consistent with documentation (#859)
          Fixes various compiler warning (#862)
          Fixes ffmpeg deprecations (#861)
          Changes yes_no_query to signal error on cmus exit (#858)
          Fixes incorect bit rate declaration for 24bit flac (#867)
          Makes :quit only prompt if -i is given (#888)
          Fixes truncation warnings by replacing %s with %.s (#1040)
    
    Patrick G (2):
          Add *.lo to clean in Makefile (#864)
          Add note about overriding keybindings using rc (closes #742) (#866)
    
    Patrick Gaskin (14):
          Make mouse behavior on playlist window consistent with library (#1011)
          Update zsh completion (#985) (#1019)
          Add gruvbox-warm.theme (#1014)
          Add -n option to win-add-{l,p,Q,q} to prevent selecting the next item (#1017)
          Add tree width options (#1018)
          Implement mouse events for status bar (#1013)
          Fix whitespace issues (#1021)
          Implement mouse events for title bar (#1025)
          Switch to GitHub Actions (#1026)
          Documentation improvements for keybindings and some commands (#1037)
          Spelling, grammar, and other improvements (#1024)
          Add comments about fg/bg color to gruvbox-warm.theme (#1038)
          Increase help view keybinding width (#1039)
          Remove unused functions in op/sndio.c (#1041)
    
    Shiba (1):
          Add support for elogind (#846)
    
    Tim Gates (1):
          docs: fix simple typo, speacial -> special (#1002)
    
    amangrewal (1):
          Ensures all data sent on dbus is in utf8 (#847) (#871)
    
    edclements (2):
          Stop after queue (resolves #696) (#1006)
          Shuffle first track (#893) (#1008)
    
    enigmatic-system (1):
          Adding "--server SOCKET --passwd PASSWORD" section (#958)
    
    eshrh (1):
          Add -f, --file to cmus-remote (#984)
    
    gavtroy (1):
          Support R128_TRACK_GAIN / R128_ALBUM_GAIN tags (#994)
    
    jetomit (1):
          Fix a crash when moving all tracks in a view (#916)
    
    lennonhill (1):
          ip/mp4: add metadata support for bpm/tempo (#878)
    
    mrffr (1):
          Allow push to accept no arguments (#937)
    
    tomty89 (4):
          Avoid -I$(pwd) (#820)
          ip/ffmpeg: enable opus support (#865)
          bits-per-sample fixes (#870)
          misc_init: remove variable user_name (#898)
    
    Source code(tar.gz)
    Source code(zip)
  • v2.9.0-rc0(Jan 12, 2021)

  • v2.8.0(Jan 29, 2019)

    Major new features:

    • multiple playlists support in playlist view
      • new :pl-* commands for playlist management
    • CoreAudio output plugin
    • BASS input plugin
    • D-Bus (MPRIS) support

    Notable changes:

    • use of internal cue parser instead of libcue
    • 24-bit playback support for
      • FLAC
      • JACK
      • sndio
    • plugin ABI versioning checks
    • new themes:
      • dracula
      • gruvbox
      • gruvbox-alt
      • jellybeans
    • new commands:
      • :left-view / :right-view
      • :player-pause-playback
      • :raise-vte
      • :rand
      • :version
      • :win-half-page-down / :win-half-page-up
    • new options:
      • color_win_cur_attr
      • input.*.priority
      • lib_add_filter
      • start_view
      • time_show_leading_zero
    Source code(tar.gz)
    Source code(zip)
  • v2.8.0-rc0(Nov 20, 2016)

    Major new features:

    • multiple playlists support in playlist view
      • new :pl-* commands for playlist management
    • CoreAudio output plugin
    • MPRIS support

    Notable changes:

    • use of internal cue parser instead of libcue
    • 24-bit playback support for
      • FLAC
      • JACK
      • sndio
    • plugin ABI versioning checks
    • new themes:
      • jellybeans
      • gruvbox
      • gruvbox-alt
    • new commands:
      • :rand
      • :player-pause-playback
      • :left-view / :right-view
      • :win-half-page-down / :win-half-page-up
    • new options:
      • input.*.priority
      • lib_add_filter
      • time_show_leading_zero
    Source code(tar.gz)
    Source code(zip)
  • v2.7.0(Jun 29, 2015)

    Major new features:

    Notable changes:

    • lots of new formatting options:
      • format_treewin
      • format_treewin_artist
      • format_trackwin_album
      • format_statusline
    • play count support (%X or %{play_count} in format strings)
    • Bash completion support for cmus and cmus-remote
    • support for CMUS_SOCKET environment variable
    • format_print remote command
    • pwd command
    • auto_expand_albums option is split into
      • auto_expand_albums_follow
      • auto_expand_albums_search
      • auto_expand_albums_selcur

    Enjoy!

    Source code(tar.gz)
    Source code(zip)
  • v2.6.0(Aug 11, 2014)

    Lots of new features and fixes since 2.5.0 (which was released loooong ago)!

    Major new features:

    Other notable new things:

    • «Night» and «Solarized» color schemes
    • reverse sort order support
    • ReplayGain closer to the spec
    • vim-style <c-e> / <c-y> scrolling
    • follow option
    • show_playback_position option
    • XDG directories support
    • better support for newer versions of FFmpeg
    • support for .oga and .ogx file extensions
    • stream metadata in cmus-remote -Q

    Enjoy!

    P.S. This release is functionally equivalent to v2.6.0-rc0.

    Source code(tar.gz)
    Source code(zip)
  • v2.6.0-rc0(May 14, 2014)

    Lots of new features and fixes since 2.5.0 (which was released loooong ago)! All fixes will go into a 2.5.1 release in the near future as well.

    Major new features:

    Other notable new things:

    • «Night» and «Solarized» color schemes
    • reverse sort order support
    • ReplayGain closer to the spec
    • vim-style <c-e> / <c-y> scrolling
    • follow option
    • show_playback_position option
    • XDG directories support
    • better support for newer versions of FFmpeg
    • support for .oga and .ogx file extensions
    • stream metadata in cmus-remote -Q

    Enjoy!

    Source code(tar.gz)
    Source code(zip)
Owner
C* Music Player
Small, fast and powerful console music player for Unix-like operating systems.
C* Music Player
网易云音乐第三方

ieaseMusic Elegant NeteaseMusic desktop app, Rock with NeteaseMusic ?? Built by Electron, React, MobX, JSS API 由 Binaryify/NeteaseCloudMusicApi 提供。 Pr

null 8.5k Jun 6, 2021
Streaming music player that finds free music for you

Desktop music player focused on streaming from free sources Links Official website Mastodon Twitter Support channel (Matrix): #nuclear:matrix.org Disc

null 6.4k Jun 6, 2021
:tangerine: Clementine Music Player

Clementine Clementine is a modern music player and library organizer for Windows, Linux and macOS. Latest Release Latest Pre-Releases Website: http://

Clementine 3k Jun 4, 2021
Music player for deepin desktop environment.

deepin-music Deepin music is a local music player with beautiful design and simple functions developed by Deepin Technology. Dependencies Build depend

Wuhan Deepin Technology Co.,Ltd. 155 Jun 3, 2021
Mopidy is an extensible music server written in Python

Mopidy Mopidy is an extensible music server written in Python. Mopidy plays music from local disk, Spotify, SoundCloud, Google Play Music, and more. Y

Mopidy 7k Jun 5, 2021
🎵 A simple, clean and cross-platform music player

Museeks A simple, clean and cross-platform music player. (museeks.io) Features Museeks aims to be a simple and easy to use music player with a clean U

Pierre de la Martinière 1.1k Jun 2, 2021
music library manager and MusicBrainz tagger

beets Beets is the media library management system for obsessive music geeks. The purpose of beets is to get your music collection right once and for

beetbox 10.1k Jun 7, 2021
Small, fast and powerful console music player for Unix-like operating systems.

Warning: cmus is not actively maintained. For details, please see #856 cmus — C* Music Player https://cmus.github.io/ Copyright © 2004-2008 Timo Hirvo

C* Music Player 4.2k Jun 7, 2021
GTK 3 client for the Music Player Daemon - I'm looking for new maintainers!

Sonata is looking for new maintainers! I (@multani) don't use Sonata much anymore and as a consequence, I've been very slow to answer even to the few

Jonathan Ballet 122 May 10, 2021
Music player and music library manager for Linux, Windows, and macOS

Quod Libet: an audio library, manager & player Quod Libet is a cross-platform audio / music management program. It provides many ways to view your loc

Quod Libet 960 Jun 6, 2021
DeaDBeeF Player

About DeaDBeeF is a multiple-platform music player for desktop operating systems. The Official Website. If you wish to chat with developers, join us o

null 1.1k Jun 9, 2021
The git repository of the advanced drum machine

Hydrogen drum machine Hydrogen is an advanced drum machine for GNU/Linux, Mac and Windows. It's main goal is to bring professional yet simple and intu

Hydrogen 668 Jun 4, 2021
MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!

Music notation and composition software MuseScore is an open source and free music notation software. For support, contribution, and bug reports visit

MuseScore 5.8k Apr 24, 2021
An Internet radio player for Linux

Radiotray-NG: An Internet radio player for Linux It became clear as one of the early contributors to the RadioTray project that it was not getting the

Ed Bruck 182 Jun 2, 2021