Exaile Changelog

What's new in Exaile 4.0.0

Sep 30, 2019
  • Fixes and improvements:
  • Exaile's playback engine has been rewritten. There is only one engine now, which supports gapless, fade in/out, and crossfade features (the latter is still experimental).
  • Massive speed improvements, can handle 50000+ song library (#457, #458, #465).
  • On RTL locales, keep playback controls in LTR order (#144).
  • Disallow mouse scrolling on numeric tags in the tag editor to prevent accidental changes (#6).
  • Ogg Opus tags can now be read correctly (#150).
  • Show loading indicator when opening large playlists (#135).
  • Fixed bug on tracklist selection when a new track plays while the tracklist is being filtered (#80).
  • New tracklist columns: Year (#127), Language (#252, tagger support in #208), Website.
  • Save the Track Properties dialog location and size (#212, #236).
  • MP3 transcoding now uses the lamemp3enc GStreamer plugin instead of lame (#214).
  • Smart playlists can now be correctly exported (#216).
  • The progress bar now seeks on mouse scroll (#230).
  • Fixed Track Properties dialog not showing up when the BPM tag is non-numeric (#209, #235).
  • Unknown tags are now shown as empty instead of "Unknown", except in the title field (#250).
  • Matroska files with no TimecodeScale are now supported.
  • Fixed showing of Matroska discnumber and tracknumber tags.
  • Exaile now includes a 128x128 icon.
  • When going up the directory hierarchy in the Files panel, the previous directory is selected.
  • Searching on the collection and tracklist can be done regardless of diacritics (#176).
  • Fixed intermittent segfault when quickly browsing through menus (#97, #283).
  • Support for .aac files.
  • Fixed reading certain wav files.
  • Improved support for reading .aif/.aiff/.aifc files (#463).
  • Fixed failure on deleting tags from certain formats (#152, #286).
  • Smart playlist now supports filtering by bitrate (#274).
  • Smart playlist now supports matching by a whole word (#486).
  • Smart playlist now supports a user-specified default sort order (#469).
  • The search language now supports the "contains word" (w=) and "does not contain word" (!w=) operators. They have also been added to the smart playlist dialog.
  • A lot of dialog windows that were previously parentless are now properly attached to an Exaile window.
  • When using PulseAudio, other PA clients such as volume controls will classify Exaile's stream as music and correctly show Exaile's application name and icon (#324).
  • Exaile now comes with Bash and Fish completion scripts (#132 for Bash).
  • When Exaile fails to play a file due to missing GStreamer plugin, it tries to give the option to install the plugin using gstpbutils (#35).
  • New dialog to list available shortcuts: Help → Shortcuts.
  • A few new keyboard shortcuts have been added.
  • New menu entry: Help → Open error logs.
  • Pressing Spacebar on the tracklist now triggers the play/pause action (#441).
  • Covers are now associated with album+artist+date instead of just album; if the musicbrainz_albumid tag is available then it is used instead (#306, #501). This may require covers to be re-fetched.
  • Playlist widget: implement sorting across multiple columns (#510).
  • Fixed track and disc number parsing on remote tracks (#520).
  • There is an option to tell GTK to use a dark theme if available.
  • New shuffle mode: random playback.
  • When editing smart playlists, entries with spin button + combo box are now loaded correctly (#582).
  • The Collection panel has new options for grouping by album artists (#576).
  • Added Album Artist tracklist column (#576).
  • Many track tags are now directly editable in the playlist view by clicking the cell twice or pressing F2 (#594, #614)
  • Plugins:
  • New plugins:
  • mpris2 implements most of the MPRIS 2.2 spec for external control of Exaile from compatible clients (e.g. GNOME Shell, KDE Plasma, and Playerctl). A few minor functionalities are still missing, and there is no plan to implement the optional TrackList interface.
  • keybinder replaces the xkeys plugin, providing multimedia keys support for setups where D-Bus is not available. It requires libkeybinder3, which uses Xlib directly and thus won't work on Wayland or MS Windows.
  • Fixes/improvements/changes:
  • All plugins distributed with Exaile now have version numbers identical to Exaile's (#82). This is mostly to keep things more consistent than they have been in the past. External plugins are not affected and may use any versioning scheme they consider appropriate.
  • Plugins can now specify dependencies and supported platforms in their PLUGININFOs. Plugins with missing dependencies are shown with a warning icon (#503). Plugins for the wrong platform are hidden by default.
  • bpm can detect track BPMs using GStreamer's bpmdetect element.
  • daapclient shows track years, disc numbers, and album artists.
  • equalizer presets have been normalized so they are of somewhat similar loudness (#104). Existing configs may not be affected.
  • grouptagger can export group tags to JSON. It can't import them yet.
  • ipconsole has been updated for IPython 5, although some features are still buggy.
  • minimode's Playlist window now acts more like a normal window than a popup (it doesn't hide automatically) (#222).
  • moodbar has been rewritten for GTK+ 3.
  • When previewdevice is enabled, moodbar also replaces the secondary (preview) player with a moodbar (#81).
  • screensaverpause also supports MATE and Cinnamon Screensaver.
  • winmmkeys now has experimental support for the keyboard Python module.
  • Plugins that need love:
  • abrepeat, lastfmdynamic, librivox, minimode, and podcasts are in various levels of disrepair.
  • amazoncovers, bookmarks, currentsong, lastfmlove, massstorage, multialarmclock, shutdown, and streamripper need testing. If you use any of these plugins, please let us know whether they work.
  • Removed plugins:
  • awn integrates with Avant Window Navigator, which appears to be an abandoned project. If you still want to use the plugin and are willing to help testing it, please contact us.
  • contextinfo, droptrayicon, and ipod depend on APIs or libraries that are not compatible with the new PyGObject API.
  • exfalso has not worked with up-to-date versions of Ex Falso for a while now.
  • gnomemmkeys and mpris are superseded by mpris2.
  • lyricsviewer has been merged into core Exaile (#421). To download lyrics from online services you will still need a lyrics provider plugin.
  • notifyosd has been merged into notify (#404).
  • xkeys is superseded by keybinder.
  • Any help in porting forward some of the missing functionalities will be appreciated.
  • Dependency changes:
  • New dependencies:
  • Exaile now requires the bsddb or bsddb3 Python module.
  • [optional] libkeybinder3 is required by the new keybinder plugin.
  • See the New plugins section above for limitations of the plugin.
  • [optional] The following Python modules used to be bundled with Exaile plugins; now they depend on system libraries:
  • feedparser, for the podcasts plugin (#242).
  • musicbrainzngs, for the musicbrainzcovers plugin (#206).
  • pylast, for the lastfmlove plugin (#183).
  • spydaap, for the daapclient and daapserver plugins (#445).
  • Upgraded dependencies:
  • Exaile now depends on GTK+ >=3.10 and GStreamer >=1.6.
  • The Python version requirement has been bumped up to 2.7.
  • [optional] While Exaile's moodbar plugin is able to work with the old Moodbar program, we recommend using the newer implementation that is based on GStreamer 1.
  • [optional] WebKit2 is now used instead of WebKit on the wikipedia plugin.
  • The only other user of WebKit was the contextmenu plugin, which has been removed.
  • Removed dependencies:
  • [optional] HAL (hald) and UDisks 1 are not supported anymore for hardware detection.
  • The only supported hardware detection method now is UDisks 2.
  • bsdisks (which provides the UDisks 2 API on FreeBSD) is not tested but should work.
  • In practice, only the cd plugin is affected by this change because it is currently the only component using Exaile's hardware detection facility.
  • [optional] The previously-bundled simplejson module is not required anymore by jamendo, which now uses the built-in json module from Python (#205).
  • [optional] The following dependencies are not used anymore due to the removal of the respective plugins:
  • EggTrayIcon (from libegg), due to removal of the droptrayicon plugin.
  • Ex Falso (sometimes packaged as part of Quod Libet), due to removal of the exfalso plugin.
  • libgpod, due to removal of the ipod plugin.
  • mmkeys, due to removal of the xkeys plugin.
  • PIL (Python Imaging Library) or Pillow, due to removal of the contextmenu plugin.
  • The full dependency list can be viewed in the DEPS file.
  • Platform changes:
  • On Windows we now use pyinstaller to produce frozen executables, and our installer will no longer require installation of external dependencies.
  • On OSX we only support installation via homebrew.

New in Exaile 3.4.5 (Apr 30, 2015)

  • Errors loading Smart Playlists that filter based on a playlist
  • Missing icon issue
  • Disable equalizer by default

New in Exaile 3.4.1 (Nov 5, 2014)

  • For those of you wanting to use Exaile on OSX Mavericks or Yosemite, this release is for you! Prior releases of Exaile did not work properly because of font issues in GTK. This release contains workarounds for that.
  • There are other minor fixes too, check the commit log for details.

New in Exaile 3.4.0 (Sep 2, 2014)

  • General:
  • Audio output device can now be switched while playing songs
  • Official support for OSX!
  • Improved unicode support
  • An option has been added to disallow playback while another song is playing (great for DJs)
  • Linux: UDisks/UDisks2 support
  • Covers: cover manager improvements, saving to disk
  • UI:
  • Playlists can be shown in multiple panes
  • The left tab panels are now closable
  • BPM counter plugin has better UI integration
  • Enhanced smart playlists:
  • Create playlists based on other playlists
  • Support for filtering over 20 different tag types
  • Plugins:
  • A simpler plugin API is available (but the old one still works!)
  • Plugin manager doesn't show users potentially broken plugins anymore
  • New plugins: console, Icecast Radio, lyricsmania, mono output, playlist analyzer, Soma.FM
  • Broken/old plugins removed: lyricsfly, shoutcast
  • Fixes/improvements for various plugins
  • Windows:
  • Improved bootup times for Windows
  • Installer has support for 64-bit python
  • Exaile restart doesn't break
  • Improved multimedia keys plugin

New in Exaile 0.3.2.1 (Feb 21, 2011)

  • The shoutcast plugin has been removed from the default install, as shoucast has changed their API and the new terms of service are not compatible with our license.
  • The default lyrics provider was changed to lyricwiki, as lyricfly no longer works properly.
  • A bug that prevented Exaile from running on very recent versions of pygobject was fixed.
  • A bug preventing files from being added via the CLI was fixed.
  • A number of additional minor issues were resolved.

New in Exaile 0.3.2 (Jun 26, 2010)

  • No new features since the rc, just a smattering of minor bugfixes.

New in Exaile 0.3.1.2 (Jun 1, 2010)

  • Full python2.5 compatibility was restored
  • A bug resulting in unexpected duplicate playlist entries was fixed
  • Several stability and interface issues were resolved

New in Exaile 0.3.0 (Aug 27, 2009)

  • Last.fm cover support
  • Autodetection of cds and media players
  • An optional shiny new context panel, like that of amarok 1.x
  • Experimental support for gapless (must be enabled in prefs)
  • New artwork throughout exaile
  • A librivox plugin
  • UI has been improved in several places
  • and more!