Development release.

New development release.

MOC 2.6-alpha1 Released

After a week of celebration and festivities throughout MOCdom at the release of MOC 2.5.0, today we deliver MOC 2.6-alpha1! But don't get too excited; this release doesn't contain any bug fixes or new features.

MOC 2.5.0-beta2 Released

I'll tell you what I wanted, what I really, really wanted, and that was that after MOC 2.5.0-beta1 was released into the wild we'd see no new bugs and could put out a stable release shortly thereafter. Unfortunately, we don't always get what we want. But finally, MOC 2.5.0-beta2 is here!

MOC 2.5.0-beta1 Released

I've started nearly every week for the last three months thinking that by the weekend the next release of MOC would be out. But each week, for one reason or another, it kept on not happening... until now!

It's been a long time in the making, but we're proud to announce the release of MOC 2.5.0-beta1. This version has been the subject of a great amount of development and consequently a great amount of testing, so we're expecting that the stable MOC 2.5.0 version will follow shortly. Of course, any reported problems will be investigated and fixed if possible before the stable release, but no new functionality will be added before then.

Changes in this release can be summarised as:

  • Autotools and packaging changes,
  • Improved support for embedded systems,
  • New and changed audio driver capabilities,
  • New and changed audio decoders,
  • Overhaul of the FFmpeg/LibAV decoder,
  • New and improved audio reproduction features and fixes,
  • General configuration file changes,
  • New and changed configuration file options,
  • New command line options,
  • Screen handling changes and fixes,
  • New and updated client interaction features,
  • Improved text entry history and editting,
  • Theme changes and fixes,
  • General code cleaning,
  • Significant bugs fixed, and
  • Many miscellaneous improvements and fixes.

See the included NEWS file for more details and the SVN log for exact details.

For this release we have created a new MOC Release Signing Key and the source tarball will be signed using this new key. The key is signed by both Damian Pietras (who used his key personal to sign the previous releases) and myself so that should go some way to assuring you of its authenticity.

pub 2048R/2885A7AA 2012-10-02
Key fingerprint = 5935 9B80 406D 9E73 E805 99BE F312 1E4F 2885 A7AA
uid MOC Release Signing Key
sub 2048R/E6D3B213 2012-10-02

John Fitzgerald,
MOC Maintainer.

MOC 2.5.0-alpha4 released

Here is another alpha release: 2.5.0-alpha4. It has numerous improvements and bug fixes comparing to the previous unstable version released one and a half year ago. As you can see from the changelog most changes were made by contributors, not me. You can see there most of the patches posted/mentioned on the forum. There is the play queue, lyrics displaying, the equalizer and more.

There are also some fixes in this release that are not present in the stable version, I hope to find time to merge them soon.


  • Tags cache using BerkeleyDB for better perfomance, reliability and smaller memory usage.
  • Play queue. (Martin Milata)
  • Display lyrics saved in files together with music. Press L to try it. (Géraud Le Falher)
  • Parametric equalizer and mono-mixing, see README_equalizer. (Hendrik Iben)
  • Keys to mark fragment of a file while it's playing using (default ' and "). The positions in seconds can be passed as arguments via ExecCommandX as %S and %E. (John Fitzgerald )
  • Add check for newer faad2-library (AAC). (Hendrik Iben)
  • Allows to use the OSSv4 per-application mixer API (supported by 4Front reference OSS implementation, and by FreeBSD-current). (thotypous)
  • Allow the use of FormatString tags in --format arguments. (Reuben Thomas)
  • Add -j (--jump N{%,,s}) command line option to jump to some position in the current track. (Nuno Cardoso)
  • Add the following options: EnforceTagsEncoding (assume, that if encoding of id3v2 is set to ISO-8859-1, then it is actually ID3v1TagsEncoding), FileNamesIconv (conversion of filenames from local encoding to UTF8), NonUTFXterm (conversion of xterm title from UTF8 to local encoding). (Aleks Sherikov)
  • Add .oga extension to formats supported by the vorbis plugin.
  • When maging item visible (for example, after pressing "next"), scroll it to the middle. (Daniel Kalør)
  • Allow seeking to beginning of a file in vorbis/flac. (Daniel Kalør)
  • Fix the symbol for "kilo", use "k" (lowercase). (Daniel Kalør)
  • Don't run the server if the user doesn't really want to do that when using few commands from command line like --info. (Reuben Thomas)
  • Fix race condition when waiting for the end of a file playback. Fixes freez on song changes.
  • Change minimum screen height to 7 lines. (Tero Marttila).
  • Add '--without-alsa' and '--without-oss' options to configure. (John Fitzgerald)
  • Queue messages for display in the client's message area. (John Fitzgerald)

2.5.0-alpha3 release: community release

New alpha version is here. The list of new features is not very long although. I've called it "community release' because all changes except one were contributed. I know it's been long time from the last release, but we have it and this proofs that Open Source works and community exist :)

New features:

  • AAC plugin with intenet streams support.
  • New options in themes to make file time and playlist numbers highlighted. (Marc Tschiesche). Update to existing themes is needed, without that they will look bad.
  • Software mixer. (Hendrik Iben)
  • Add -Q (--format) FORMAT_STRING option to display file information like with --info but using a format string where sequences like '%album', '%title' are substituted. (Juho Hämäläinen)
  • Don't exit program if the terminal heught is below some limit, just print an error message. (Niels Aan de Brugh)
  • Some fixes as usual including patches merged from the stable line.

moc 2.5.0-alpha2

Here is MOC-2.5.0-alpha2. It comes with 2 new decoder plugins, few new features and many bugs fixed. Most of the biggest changes were made by contributors (as you can see from the changelog). Unfortunately (for MOC) I have a new job in a new town and even less time to work on MOC. This is why the release is delayd and many bugs are not fixed (you can see them in the TODO file included with sources). Here is full list of changes:

  • Add SID plugin using libsidplay2. (Hendrik Iben)
  • Add Wavpack support. (Alexandrov Sergey)
  • Add support for GNU screen title. (Jonathan Derque)
  • The 'a' command can also add a directory to the playlist.
  • Add file duration %d (duration in xx:yy format) and %D (duration as number of seconds) options to OnSongChange command.
  • Add OnStop configuratipon option that allows to run an external command on Stop event.
  • OnSongChange reads tags from the cache.
  • Fix and a possible segfault when OnSongChange option is not defined and memory allocation functions usage.
  • Fix OnSongChange description in config.example.
  • Fix the A command for '..' directory (Debian Bug#416102).
  • Pass the environmential variables to the child process in OnSongChange.
  • Fixed a race condition when handling tags read to the tags cache.
  • Fix reading tags using tags_cache_read_add() in case when tags in the cache are not everything we need.
  • Fix displaying the playlist panel when the width of the terminal is an odd number.
  • Fix zombie processes (from OnSongChange) cleanup.
  • Fix a memory leak when handling OnSongChange.
  • Fix a crash when a file is precached and user requests playing a different file.
  • Prevent situations when two threads/processes reads tags for the same file at a time.
  • Prevent adding internet strams to the tags cache.


Here is it: 2.5.0-alpha1. This release wouldn't be possible without contribution from few people, mainly Hendrik Iben (MIDI and Modplug plugins) and Jack Miller (OnSongChange and other features and fixes), but there are more names in the changelog. I'm proud that MOC got to the point where my role is more like a maintainer than an author.

This release includes a demanded option: running a command when song changes. It should be useful for example to scripts that submit data to If you think you need something more flexible or have any comments on that, please use the forum.

The full changelog is here:

  • Add Modplug support. (Hendrik Iben)
  • Add MIDI plugin that uses libtimidity - an interface to TiMidity, software-only MIDI sequencer. (Hendrik Iben)
  • Add OnSongChange option which runs a program/script when song is changed. (Jack Miller)
  • Add Y command to prune unreadable files from the playlist. (tyranix)
  • Fix for compilation with FLAC 1.1.3. (Josh Coalson)
  • Support for filenames and directory names recoding using librcc. (Alexey Gladkov)
  • Add a command line option --volume for setting volume. (Jack Miller)
  • Add -t/--on/-off options to change next/repeat/shuffle options. (Jack Miller)
  • Add average bitrate field to the output of mocp -i. (Jack Miller)
  • Add support for "speaker" mixer channel in OSS. Seems to be the only channel that affects volume on iMac (reported by Francesco Versaci).
  • Workaround for Shoutcast streams that have a static title in their metadata (like a radio station name) and the actual title as tags/comments in the stream data.
  • Empty key list for a command in the keymap file is possible.
  • Fix escape key handling. (Jack Miller)
  • Fix CTL-key combinations in entries. (Jack Miller)
  • Fix receive errors handling with internet streams.
  • Fix a memory leak when reading FLAC tags.
  • Fixed "mocp -e directory" command in case when no client is running and the playlist is not empty.
  • Fix ffmpeg build failure due to LOG_H defined by ffmpeg headers.
  • Fix reading PLS playlists with more than 9 entries.
  • Disable 24bit output by default due to reported problems with some sound card. It can be enabled by setting Allow24bitOutput option to yes.
  • Fix configure script: libiconv is required to build moc.

2.4.0-beta2: the final beta release

This is the last beta release for 2.4.0 version. It contains fixes for few bugs and few new minor features. Most important changes are fixes for displaying non-ASCII characters. Thanks to people who reported bugs.

Full list of changes:

  • Workaround for encoding of ID3v1 tags. New options: UseRCC - to use librcc for ID3v1 reencoding, ID3v1TagsEncoding - assumed encoding for ID3v1 tags.
  • Added UseCursorSelection option (default: no) to display cursor on the selected file. This is useful with braille displays.
  • Added SetXtermTitle option (disable/enable setting xterm title).
  • Fixed displaying menu title that contains non-ASCII characters.
  • Fixed next/previous commands when the position of the current file has changed.
  • Fixed segfault when adding URLs to the playlist using the -a command line option.
  • Fixed compilation with ffmpeg-config (--plugin-libs instead of --libs).
  • wcswidth() is required to compile MOC.


Subscribe to RSS - Development release.