Changelog

2.5.2
  • New configuration file options:
    • ALSAStutterDefeat: avoid the ALSA bug which causes stuttering
  • Significant bug fixes:
    • Fixed error during configure on busybox systems
    • Fixed calculation of average bitrate in FLAC decoder
    • Fixed unintentional disabling of MMAP support
    • Fixed build failure on split ncurses/tinfo systems
    • Fixed unreaped children when running in foreground mode
    • Fixed freeze on Nokia devices if audios play to completion
    • Circumvented ALSA stutter bug
    • Added missing 'Precache' option to example config file
  • Miscellaneous:
    • Improved the accuracy of the average bitrate for FLAC
    • Mitigated out-of-file seeking for several formats
    • Warn of TagLib version requirement rising to 1.5
    • Warn of Musepack library changing to libmpc (from libmpcdec)

2.5.1

  • Significant bug fixes:
    • Corrected the setting of linked libraries for Berkeley DB
    • Fixed ALSA volume setting problem (Tomasz Golinski)
    • Fixed clearing of stream status message on error
    • Resolved FFmpeg/LibAV's downmixing API issues (Andreas Cadhalpun)
    • Removed duplicate logging of fatal error messages
  • Miscellaneous:
    • Adapted to FFmpeg 3.0 API
    • Warn of FFmpeg/LibAV version requirement rising to 1.0/10.0
    • Warn of pending POSIX.1-2001 compliance requirement
    • Fixed several warnings and errors on OpenBSD (Brent Cook)
    • Fixed various (and potential) segfaults (Daniel T. Borelli, Hendrik Iben, Rastislav Barlik)
    • Fixed various resource leakages
    • Silenced various compiler warnings
    • Added instructions on building with autoreconf

2.5.0 - "Consolidation"

  • Autotools and packaging changes:
    • Upgraded autoconf version requirement to 2.60
    • Added '--with-alsa' to suppress ALSA sound driver inclusion
    • Added '--without-oss' to suppress OSS sound driver inclusion
    • Added '--disable-cache' to remove tags cache support
    • Added specific GDB support to '--enable-debug'
    • Refactor decoder plug-ins' autoconf scripts into source directories
    • Ensure that all decoders get into the source distribution tarball
    • Removed SID decoder's dependance on .la-file presence
    • Removed distribution-specific .spec file
    • Minor reformatting of the configure summary
    • Added warnings for various deprecations and potential problems
    • Added warnings for unmet future package requirements
    • Updated GNU boilerplate text
  • Improved support for embedded systems:
    • Refined FFmpeg decoder configuration for use with cross-compilation
    • Provided use of Tremor with the Vorbis decoder
    • Improve portability to non-GNU library platforms
    • Added --with-libiconv-prefix configure option
  • Audio driver changes:
    • Allow use of the OSSv4 per-application mixer API
    • Provided SNDIO support for OpenBSD systems (Alexander Polakov)
  • New and changed audio decoders:
    • New TiMidity decoder for MIDI (Hendrik Iben)
    • Migrate AAC decoder to later FAAD2 API (Max Klinger)
    • Added AAC+ (HE-AAC) support to AAC decoder
    • New SidPlay2 decoder for SID (Hendrik Iben)
    • New Modplug decoder (Hendrik Iben)
    • New WavPack decoder (Alexandrov Sergey)
    • Renamed SndFile plugin for consistancy
    • Removed M4A format support from AAC decoder plugin
    • Removed WAV format support from ModPlug decoder plugin
    • Detect huge files in certain formats which SndFile cannot play
    • Improved (drastically in some cases) the accuracy of AAC durations
  • Overhauled FFmpeg/LibAV decoder:
    • Resolved FFmpeg API deprecations
    • Provided LibAV compatibility
    • Provided proper stereo downmixing
    • Provided locking support for non-thread-safe library functions
    • Provided better FFmpeg or LibAV discrimination
    • Provided better audio duration reliability determination
    • Increased number of decodable formats (including Xiph Opus)
    • Added decoding of audio from video formats
    • Added logging of FFmpeg/LibAV messages
    • Added seeking in most (but not all) formats
    • Added handling for "planar" codecs
    • Excluded experimental codecs from decoding
    • Fixed misreporting of tags, duration and bitrates
    • Fixed memory and file descriptor leakages
    • Fixed severe distortion on 8-bit samples
    • Fixed loop playing FLAC files
    • Fixed many FFmpeg/LibAV API breakages
    • Fixed many miscellaneous bugs
    • Detect over-length (and therefore broken) WAV files
    • Fixed log formatting when FFmpeg messages contain newline characters
  • Audio reproduction changes:
    • Improved support for 8-bit sample size
    • Added software mixer (Hendrik Iben)
    • Added parametric equalizer (Hendrik Iben)
    • Fixed many bugs which produced distorted sound
    • Fixed bugs in 24-bit sample handling (Tomasz Golinski)
  • General configuration file changes:
    • Reconciled and regularised example config and keymap files
    • Introduced lists and function-like syntax
    • Introduced variable substitution
    • Introduced symbol and boolean option types
    • Improved security of the configuration file
    • Automatic clearing of an overridden default key binding
    • Made processing of keymap file consistant with that of config file
  • Changed configuration file options:
    • Layout# options moved to a list and function-like syntax
    • SoundDriver option moved to a list syntax
    • Renamed OSSMixerChannel to OSSMixerChannel1
    • Renamed ALSAMixer to ALSAMixer1
    • QueueNextSongReturn moved to yes/no values
    • TagsCacheSize set to zero now disables tag caching
  • New configuration file options:
    • OnSongChange: run an external command (Jack Miller)
    • RepeatSongChange: govern the running of the OnSongChange command
    • OnStop: run an external command on stopping
    • EnforceTagsEncoding: substitutes ID3v1TagsEncoding for ISO-8859-1 encoding in ID3v2 tags (Aleks Sherikov)
    • FileNamesIconv: converts from local to UTF8 encoding for file names (Aleks Sherikov)
    • NonUTFXterm: converts UTF8 to local encoding for X-Term titles (Aleks Sherikov)
    • AutoLoadLyrics: says whether MOC should look for lyrics files
    • PreferredDecoders: allow finer control over decoder selection
    • XTerms: externalises terminals regarded as X-Terms
    • UseMIMEMagic: says whether to identify audio files by using MIME
    • JackStartServer: autostart JACK the server (Max Klinger)
    • ShowTimePercent: set the percent played state (Daniel T. Borelli)
    • Various options for SidPlay2, Modplug and TiMidity support
  • New command line options:
    • '-j' to jump to some position in the current track (Nuno Cardoso)
    • '-O' to override configuration file settings
    • '-Q' to display user formatted information (Juho Hämäläinen)
    • '-q' to queue files from command line (Martin Milata)
    • '-t' and '--on/off' to toggle or set playback options (Jack Miller)
    • '-v' to set the volume (Jack Miller)
  • Screen handling changes:
    • Changed minimum screen height to 7 lines (Tero Marttila)
    • Added support for GNU screen title (Jonathan Derque)
    • Restored screen to console mode after reporting fatal errors
    • Populated playlist panel when loading default playlist file
    • Removed default playlist autofocus at start
    • Fixed overlength highlight bar
    • Fixed screen upset when tags contain control characters
    • Fixed some screen upsets when tags contain UTF-8 characters (firejox)
    • Fixed screen upset caused by screen(1) mis-detection
  • New and updated client interaction features:
    • 'a' command: also add a directory to the playlist (Filippo Giunchedi)
    • 'L' command: display music lyrics (Géraud Le Falher)
    • 'Y' command: prune unreadable files from the playlist (tyranix)
    • Queued messages for display in the message area
    • Added play queue (Martin Milata)
    • Mark a fragment of a file which can be passed to external commands
    • Clear status message after a stream open failure
    • Minor help menu clarifications
  • Improve text entry history and editting:
    • Recognise ^u (by default) as delete to start of line
    • Recognise ^k (by default) as delete to end of line
    • Save and restore entered text prior to history scrolling
    • Save history entry modifications
    • Do not save adjacent duplicate entries
    • Do not save or modify with blank entries
    • Position cursor at end of restored or history line
  • Theme changes:
    • Enabled highlighted playlist numbers and file times (Marc Tschiesche)
    • Fixed miscoloured frame when switching themes (Alexander Polakov)
    • Fixed default colour settings
    • Fixed cursor placement in themes menu (Alex Merenstein)
    • Fixed ordering of theme files in themes menu
    • Fixed new attributes application on theme switching (Alex Merenstein)
  • General code cleaning:
    • Refactoring, optimisations and cosmetic improvements
    • Silenced many build warnings and errors
    • Replaced various deprecated, legacy and platform-specific functions
    • Improved thread safety
  • Significant bug fixes:
    • Fixed stale locks freeze in tags cache database following a crash
    • Fixed CURL timeout for internet streaming errors (Daniel Stenberg)
    • Fixed audio distortion on MP3 file having overly long tag values
    • Fixed false positive stream detection in the MP3 decoder
    • Fixed Ogg/Vorbis stream detection in the Vorbis decoder
    • Fixed 'LRINTF error' raised when reconfiguring MOC
    • Fixed backspace key mishandling
    • Fixed client interface meta-key handling
    • Fixed pthread stack overflow segfault on OpenBSD
    • Fixed segfault when text entry history becomes full
    • Fixed segfault processing playlists with relative paths
    • Fixed memory corruptions when toggling tag reading
    • Fixed assertion when a second client is started
    • Fixed slow memory leak in client on long-playing streams
    • Fixed severe distortion on 11025Hz 16-bit mono audios
    • Fixed freeze at end of playing audio file
    • Fixed server crash when attempting to play a deleted file
    • Fixed MIME type detection on HTTP redirection
    • Fixed crash when mixer value is above 100%
    • Fixed handling of huge (greater than 2 GiB) files
    • Fixed sub-second audio truncation on ALSA
    • Fixed segfault when MIME-detected MP3 file has no "extension"
    • Fixed segfault when using '--format' without an audio playing
    • Workaround for streams that have the actual title as tags/comments
    • Indentified cause of "undefined symbol" build errors
    • Plugged all known memory and file descriptor leaks
    • Fixed nonsense duration values returned on some corrupt FLAC files
    • Fixed 'time >= 0' assertion at change of audio file
    • Fixed client event notification failure in some circumstances
    • Fixed client abort on duplicated playlist filenames
    • Fixed delayed client exit when server invokes long-running scripts (Alex Merenstein)
    • Fixed occasional server freeze on logging when running scripts
    • Fixed non-conforming 'User-Agent' HTTP request header
  • Miscellaneous:
    • Updated and reformatted mocp manpage and equalizer README file
    • Made many warning and error reports more informative and consistant
    • Better logging of more problem determination information
    • More informative version information display
    • Introduced MD5-based decoder verification tools
    • Improved compatibility with 64-bit systems
    • Improved compatibility with big-endian systems
    • Moved tags cache to a Berkeley DB
    • Integration of down-stream distribution patches
    • Fixed frames to duration calculations in ALSA
    • Fixed some mutex management bugs
    • Fixed many bugs which crashed MOC

2.4.4

  • Fix crash when saving a playlist with URLs.
  • Fix hang in case of symlink loop (like symlink to parent directory) when adding files recursively to the playlist.
  • Fix bad memory access when using FILL parameter in layouts that caused "FATAL_ERROR: Layout1 is malformed".
  • Fix compilation with newer ffmpeg. (Alexis Ballier)
  • Increase maximum file title (made from tags) length to 512. Helps on wide terminals.
  • Fix displaying URLs on the playlist when it ends with a slash.
  • Fix compilation of flac plugin by detecting libflac using pkg-config.
  • Fix for multichannel playback. (Maarten van Es)
  • Fix handling of invalid track number in tags. A segfault occurred when the track number was at least a value of 2^31.
  • Support for the new (SVN) libmpcdec API.
  • Remove old, irrelevant comment about iconv from the configuration file.
  • Fix configure to display proper information about compiled RCC.
  • Run libtoolize in autogen.sh to prevent conflicts with installed libtool/libltdl version.

2.4.3

  • Fix displaying tags from Internet streams, sometimes the name of the station or other less useful text was displayed instead the title.
  • Fix a problem with opening Internet streams with curl 7.16.x. (Samid Tennakoon)
  • Fix XTermTitle for urxvt.
  • Fix delete and backspace keys in entries.
  • Fix a race (crash) when issuing the next commands one after another very fast.
  • Fix problems with vmix OSS virtual driver (no supported audio formats).
  • Fix FollowPlayedFile after CLI restart.
  • Updated moc.spec (Klaus Ethgen)

2.4.2

  • Disable 24bit output by default due to reported problems with some sound cards. It can be enabled by setting Allow24bitOutput option to yes.
  • Fix escape key handling. (Jack Miller)
  • Fix CTRL-key combinations in entries. (Jack Miller)
  • Fix a crash when a file is precached and user requests playing a different file.
  • Disabled using mmap() for reading files in the default configuration due to reported incrased memory usage.
  • Fix ffmpeg build failure due to LOG_H defined by ffmpeg headers.
  • Fix reading PLS playlists with more than 9 entries.
  • Fix configure script: libiconv is required to build moc.
  • Fix the A command for '..' directory (Debian Bug#416102)
  • Fix displaying the playlist panel when the width of the terminal is an odd number.

2.4.1

  • Added Command 'P' and a configuration option PlaylistFullPaths to turn on/off displaying full paths for files in the playlist.
  • Fixed choosing endianess when playing float samples (musepack or wave and other libsndfile formats).
  • Fixed a crash when going to '../' with the search entry.
  • Added MP4 to the list of supported by FFmpeg extensions.
  • Fixed clearing playlist from the command line (crash on mocp -c -a -p file.mp3).
  • Fixed handling mixer errors (crash in some situations).
  • Fix searching with '/' (search began with the current item, not the whole list).
  • Correct support librcc: tags ID3v1/v1.1 will be recoded in UTF-8 instead of the local encoding. (Alexey Gladkov)
  • Fixed handling invalid time in tags cache.
  • Fixed handling error when time information for a file could not be read.
  • MusicDir and FastDirX are parsed before they are used, this handles not "clean" directories in the config file (like /bin/ - with slash at the end).
  • When interface is killed by SIGTERM or SIGHUP the playlist is saved and the terminal mode is restored.
  • Setting volume in jack using an exponential function instead of linear. (x37v.alex)
  • Draw bottom lines for side menus that don't touch the botom of the main menu.
  • Reload directory content after running a custom command to see changes made in the filesystem by this command.
  • Added missing exec_command# keys in the example keymap file.

2.4.0

  • Layout of the main window can be changed using Layout[123] options. Switching between layouts is done using the 'l' key and now TAB is used to switch between the playlist and the directory menu. For example, you can configure the layout to see both the playlist and a directory content.
  • Support for WMA, RealAudio, MP4 and AAC file using FFmpeg.
  • UTF-8 support.
  • Selecting themes at runtime - T command (this does not change the config file).
  • Executing external commands, like 'cp %f /mnt/usb_drive' where %f is substituted with the path to the currently selected file.
  • Tags are cached at the server side and read in a separate thread. The interface is not locked until the tags are read. Size of the cache can be adjusted using TagsCacheSize. The cache is saved at exit and loaded at startup.
  • Moving items up and down: u and j commands.
  • Workaround for encoding of ID3v1 tags. New options: UseRCC - to use librcc for ID3v1 reencoding (Initial patch by Alexey Gladkov), 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).
  • Added m4a and aac to the list of extensions supported by ffmpeg.
  • Pressing n when nothing is played starts playing from the first item on the playlist.
  • Added FollowPlayedFile option: menu follows the currently played file so that it is scrolled if the file is outside the visible part (default to yes).
  • Numbering items in the playlist. Can be turned off using PlaylistNumbering.
  • New themes: moca_theme (Nicola Vitale), red_theme (yyz), and darkdot_theme (David Lazar).
  • Added a command for adding a URL to the playlist using entry (CTRL-u).
  • A and --append can add files from playlists.
  • Interface show the playlist after startup if something from the playlist is played (CanStartInPlaylist option).
  • Commands: --append, --clear, --play work now as expected even if there is no client running.
  • Use full paths instead of just file names for displaying on the playlist.
  • Internet streams can be paused.
  • Ogg plugin name was changed to vorbis.
  • Added RPM SPEC file. (Fredrik Rambris)
  • Redesign of the interface code. This is a big change in the code, but not really visible to the user. It was necessary to maintain and extend the interface in the future.
  • MOC can now be compiled under OpenBSD. Thanks to Tilo Stritzky for pointing out the issues.
  • Striping leading and trailing white characters from URLs entered by the user.
  • Count speex time without scaning the whole file.
  • -e is an alias for -a.
  • Display the current time for Internet streams.
  • MusicDir can be a playlist.
  • Silent seeking can be configured using SilentSeekTime option.
  • After adding a file to the playlist, the cursor is moved down.
  • The help screen's position is kept when it's not displayed.
  • Some operations like deleting items from the playlist should now be faster.
  • Fixed a possible deadlock while seeking. This fixes a hang on FreeBSD 6.
  • Fixed OSS support on some machones (like G3 iBook).

2.3.3

  • Workaround for backspace key on many terminals (like aterm).
  • Fixed a memory leak when playing Internet streams. (rixx)
  • Fixed a crash when an mpc file coudn't be read.
  • Fixed a memory leak occuring with every played mp3 file.
  • Fixed a memory leak when seeking in MPC file.
  • Fixed compilation on OpenBSD. (Tilo Stritzky)
  • Fixed parsing Icy metadata packages (possible segfault).
  • Fixed resource leak when reading tags from invalid OGG file.
  • Check if FileNamesIconv has valid format at startup like TagsIconv.

2.3.2

  • Optimized 24bit->16bit conversion. Helps playing mp3 on handheld devices without FPU.
  • Fixed a crash when using the playlist with ReadTags turnedoff.
  • Fixed detecting taglib 1.4.
  • Fixed mutex initialization in io objects (crash on some systems - FreeBSD).
  • Moved the man page to section 1.
  • Fixed bahaviour when one or both OSS mixer channels are not available.
  • Sort file names using the current locale settings. (breg)
  • Fixed -p description.
  • Fixed a memory leak when adding an item to a full entry's history.
  • Slightly less CPU usage in the client due to elimination of useless bitrate updates.
  • Fixed a typo: owerwrite -> overwrite.

2.3.1

  • Fixed detecting MPEG stream by the content (Shoutcast fix).
  • Fixed handling ALSA mixer events (crash in some situations).
  • Fixed handling a mixer channel that has no playback volume.
  • Fixed crash when the alsa mixer couldn't be opened.
  • Fixed crash when nothing was decoded (appears sometimes when holding the enter key on an mp3 file).
  • Fixed a crash which shows up on FreeBSD 5.4 after playing a file. Thanks to Joseph Dunn for help.
  • Fixed includes for maximum and minimum values of intiger types (fix compilation on some systems).
  • Fixed the syntax (not a proper C code). Mostly taken from the FreeBSD port.
  • Show stream URL instead of nothing if the title is not available.
  • Fixed yellow_red_theme theme.
  • Fixed a hang after file open error.
  • Fixed counting time after file open error.
  • Fixed some gcc4 warnings.

2.3.0

  • Network streams (shoutcast, icecast, regular HTTP, FTP). You can load an m3u file with a URL or use the 'o' command.
  • JACK output (by Alex Norman).
  • Added support for musepack (mpc).
  • The search command filters out not matching elements from the menu and allows to walk through the items like in the regular menu.
  • Added support for speex format.
  • Plugins: to drop dependencies from many exotic libraries, support for file formats was moved to shared libraries. This should help making MOC packages in future when more formats will be added.
  • Sample rate conversion using libsamplerate and some sound conversions like 16bit -> 24bit etc. With 24bit sound cards 24bit output is used with mp3.
  • Added support for PLS version 2 playlists.
  • Added mono to stereo conversion.
  • MOC now compiles using libtool.
  • Error messages for precached files are not displayed while other file is being played.
  • Input buffer in a separated thread is used for reading files (new options: InputBuffer and Prebuffering).
  • New theme: Yellow/Red (by Morten Grunnet Buhl).
  • Added -A command line option and ASCIILines config option that disables usage of graphic characters to draw lines.
  • Added commands to set volume from 10% to 90% in 10% steps, default bindings are ALT-1 to ALT-9.
  • Added commands to quickly go to a selected directories (by Alex Norman).
  • Added --next and --previous command line options (by Alex Norman).
  • Added --info command line option that prints all information about the currently played file. (Based on the code by Michael Banks)
  • Two mixer channels can be set in the configuration file. They can be switched at run time by pressing x.
  • Documentation of some parts of the code in Doxygen format.
  • Colors can be redefined in themes using 'colordef COLOR = R G B' (works for terminal that can change the colors).
  • Support for 24bit flac files (not tested).
  • Added SeekTime option: how fast the seeking is. (Kamil Tarkowski)
  • A list of sound drivers can be used instead of only one driver in the configuration file. The first working driver will be used.
  • MusicDir can be set to a playlist.
  • Alsa mixer has always 0-100 range despite the actual device range.
  • Added --toggle-pause command line option.
  • Don't block the audio device when paused. Based on a patch by hondza <miscreant@tiscali.cz>
  • Treat an option that is set in the config file more than once as an error.
  • Print descriptions for some errors in the config file.
  • Better error messages in the Ogg plugin.
  • Better detecting Ogg vorbis stream by content.
  • Decreased the time to wait for the pcm to become ready to get samples in alsa. This helps with underruns.
  • Fixed protect attribute in themes.
  • Added black_theme (by Arn).
  • History for "go to a directory" and "enter URL" commands (using arrows).
  • CTRL-l like CTRL-r refreshes the screen.
  • Separated iconv() conversion for file names and tags.
  • Improved performance a bit when operating on big playlists.
  • G command points to the currently played file - on the playlist if it's there, and selects it in the menu.
  • When going to a directory using the i command, TAB completes to the matching part of ambiguous directories.
  • Volume changes made by other programs are detected.
  • Added --recursively command line option (make a playlist from the content of a directory given at command line).
  • Show bitrate in the right time - the value corresponds to what you can hear, not the position that the decoder is at.
  • Added description about creating a decoder plugin.
  • Added introduction pages to Doxygen documentation.
  • Documented decoder plugins API.
  • Added --playit option (play files given on the command line without modifing the playlist).
  • Added UseRealtimePriority (default no) option: set realtime priority for the output buffer thread.
  • Titles in saved playlists are not converted by iconv().
  • Fixed crash on some systems when a file is precached.
  • Refuse to run if an ALSA mixer channel is wrong.
  • Fixed adding items to the playlist when the server's playlist already has added files.
  • Don't try to use colors on black/white terminals.
  • Fixed a memory leak in iconv_str() when iconv() is not available. (breg)

2.2.2

  • Added an option to ignore CRC errors in mp3 files (set to yes by default, like most players do). This fixes playing mp3 files that have bad CRC checksums but are actually good.
  • Fixed marking the currently played item when a new item on the playlist appears.
  • Fixed a crash when going back at the first item with Repeat turned on (Debian Bug#307651).
  • Fixed a crash when the time of a file can't be read.
  • Fixed handling FLAC files with 8-bit samples.
  • Added mp2, mp1, and mpga to the list of supported extensions by MAD: this makes possible to play MPEG Layer I and II files.
  • Fixed a race condition that crashes MOC when switching songs quickly.
  • Fixed a small memory leak in FLAC.
  • Ogg Vorbis is not required for compilation (a bug in the configure script).
  • Use a pipe to wake up another thread from select() instead of a signal. Helps on NetBSD where pthread_kill() doesn't interrupt select().
  • Fixes for compiler warnings on 64-bit systems.
  • Fixed a warning about wprintw() usage on some systems.
  • Fixed setting compiler flags for vorbis.

2.2.1

  • Fixed missing titles of files without tags when added to the playlist.
  • Fixed refreshing the screen after searching.
  • Fixed recognizing AIFF file extension.
  • Fixed compiler warnings on 64bit systems.
  • Fixed detecting ncurses, now also works with curses.
  • Fixed compilation errors on ioctl() use on some systems.
  • Support for libossaudio (NetBSD).
  • Fixed an compiler warning about EV_ERROR on NetBSD.
  • Better checking for vorbis.
  • Fixed --without-sndfile configure option.
  • Fixed a rare deadlock.

2.2.0

  • Added support for FLAC audio format.
  • Added support for various file formats like au, aiff, voc and more using libsndfile. This also provides better support for wav files.
  • Custom keymaps can be used.
  • Synchronizing the playlist between clients (interface instances).
  • Going to a directory by typing the path with file-name completion (i command).
  • Ability to use default (transparent) and grey color. (Marcin Michałowski).
  • Added a theme with transparent background (Marcin Michałowski).
  • Added nightly_theme (Wim Speekenbrink).
  • Added green_theme (Jacek Lehmann).
  • Global theme directory.
  • MOC should now work on big-endian processors.
  • Added XTermTheme option to use a different theme when running on XTerm.
  • Fixed the 'next' command when AutoNext option is turned off.
  • Displaying the total time of files on the playlist and in directories.
  • Faster reading and saving playlists.
  • Added --pause and --unpause command line parameters.
  • Added AlsaMixer and AlsaDevice options.
  • Added G command: go to a directory when the currently played file is.
  • Added U command: go to '..'.
  • Recognize if a file was modified and rereading tags and time if necessary.
  • Fast, silent seeking ('[' and ']' keys).
  • The cursor is hidden when it's not needed.
  • Changed the erroneous name of the time_left_frames to time_total_frames in themes.
  • Added '/' command working as an alias for g (Kamil Tarkowski).
  • Added CTRL-n working like CTRL-g (Kamil Tarkowski).
  • ? key working like h (Kamil Tarkowski).
  • Playlist time displayed in format 000:00:00 (Kamil Tarkowski).
  • True shuffle, not a random item from the playlist.
  • Changing the icon name when changing the xterm title (Jacek Lehmann).
  • Arrow keys and the delete key works in the entry field.
  • Detecting other terminals beside xterm (Jacek Lehmann).
  • Added b (back) command (Kamil Tarkowski).
  • A bit faster getting files time.
  • Added SavePlaylist option.
  • Added a bar showing time of the current file.
  • Repeat without AutoNext plays a song in loop.
  • Added (empty|filled)_mixer_bar, (empty|filled)_time_bar to themes.
  • Fixed setting sound parameters while playing OGG. This caused crashes on big endian machines (Philippe De Muyter).
  • Fixed crash on some file tags.
  • Fixed crash when issuing some errors.
  • Fixed the --help message.
  • Fixed bad terminal state after exiting the client in rare cases.
  • Fixed adding directories recursively when ReadTags is turned off.
  • Fixed going to the root directory with the i command.
  • Fixed getting time when nothing is played.
  • iconv() (character set conversion) for file names.
  • END and HOME keys working in the i command entry (go to a directory).
  • Synchronizing adding/deleting items from the playlist with the server's playlist.
  • Faster operations on big playlists.
  • Fixed saving playlist when more than one client wants to do this.
  • Fixed recursive adding file to the playlist if some directory can't be read.
  • Fixed deleting items from the playlist.
  • Fixed handling a playlist file as command a line argument.
  • Fixed compilation with --disable-debug.
  • Fixed --version information.
  • Fixed sorting when using the A command.
  • Position of time and format in menu is fixed.
  • Searching for a theme in the user directory first.
  • Fixed a memory leak when reading OGG tags.
  • Few fixes when running MOC with file names or directories as arguments.
  • Fixed reading track numbers for mp3 files.
  • Small fixes of ALSA behaviour when underrun occurs.

2.1.4

  • Fixed the 'next' command when AutoNext is turned off.
  • Sorting the files before adding them to the playlist when using the A command.
  • Fixed a memory leak when reading tags of ogg files.
  • Fixed reading track numbers of mp3 files.
  • Detect other X terminals beside xterm.
  • Fixed error messages for mp3 files.
  • Fixed segfault when reading some tags.

2.1.3

  • Fixed compilation with header files not from Linux 2.4.

2.1.2

  • Fixed playing mp3 with UseMmap turned on.
  • Fixed handling ALSA device open errors.
  • Proper handling 8, 16, and 24 bit sound, raise error if using anything else.
  • Fixed a (almost :) deadlock when pressing stop when seeking.

2.1.1

  • Added missing example_theme.

2.1.0

  • Multiple clients. You can have moc interface on many consoles/terminals.
  • Searching the menu (CTRL-g) like M-s in Midnight Commander.
  • Playlist load/save support (m3u files).
  • The apperance can be customized using themes.
  • Displaying file time and format in the menu.
  • Precaching files and not closing the audio device when playing the next file - no more gaps between two songs.
  • ALSA support.
  • Optional character set conversion using iconv().
  • MOC remembers the playlist between runs.
  • Option to hide file names extension.
  • Use of mmap() can be turned off (usefull on NFS).
  • Ability to use different config file/directory tan the default.
  • Pressing CTRL-C interrupts long operations that blocks the interface like reding tags for hundreds of files.
  • Fixed seeking and counting time in VBR mp3 files.
  • Fixes for systems where threads are not processes.
  • Small fixes and cleanups.

2.0.1

  • Do not allow to add '..' to the playlist.
  • Fixed seeking when not playing.
  • Fixed segfault when using f after creating a playlist from the command line.
  • Fixed invoking MOC with relative path arguments
  • Fixed displaying file title longer than the window.
  • Fixed broken menu after resizing terminal when help screen is displayed.

2.0.0

  • Split into client-server, you can detach the interface and leave the server playing songs in the background (keys: q - background, Q - quit).
  • Output buffer with seperate thread.
  • Using OSS directly - better stop and pause.
  • Support xterm resizing.
  • Using xterm title.
  • Autonext option (X key).
  • Faster reading directory contents.
  • Displaying time left to the end of the songs.
  • Fixed moving through symlinked directories.
  • Renamed executable file to mocp due to conflict with QT meta object compiler.
  • Configurable mixer channel, OSS output device, and mixer device.
  • ^r - refresh the screen, r - reread the directory.
  • H command and ShowHiddenFiles - as the option says.
  • Do not allow displaying bitrate too fast to read it.
  • Fixed compilation with pthreads, better configure.
  • Fixed problems when compiling with gcc 3.3
  • Fixed displaying window title longer than the window.
  • Space key working as pause.
  • Fixed possible segfault in trenary expressions.
  • Removed version checker.
  • Fixed sorting directories ('../' was not always on top).
  • Fixed escaping characters in config file, no need for '\\\\'.
  • Stronger checking for parse errors in configuration file.

1.1.0

  • Support for WAVE.
  • Playlist without reading/writeing to file.
  • Option in the config file to automaticaly change process priority at startup. Helpful on slow computers.
  • Recursivaly adding files from comamnd line and from the interface.
  • Shuffle and repeat.
  • Nice progress bar for longer operations.
  • Fixed segfault when using the END key.
  • Fixed segfault when playing OGG files.
  • Workaround for kde and gnome terminals.
  • Now MOC can be compiled on FreeBSD.
  • Other fixes.

1.0.0

  • First release intended to be stable and user-friendly :)
  • Added man page.
  • Added version checker (simple command to see if a new version of MOC has been released).
  • Fixed problem when compiling without ogg.
  • Added redraw command.
  • Other small fixes.

0.9.2

  • Fixed -s option.
  • Added 'f' command (switching between short and full file names).
  • Added README file.
  • Added support for config file.
  • Added MusicDir option, 'm' command and '-m' switch.
  • Added ability to turning off messages about broken streams.
  • Fixed including dirent.h for various OS.
  • Fixed and updated configure.

0.9.1

  • Added mixer (using OSS).
  • Added help screen.
  • Fixed some tiny buffer overflows.
  • Small fixes in code.

0.9.0

  • First stable version.