diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..17add68 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,101 @@ +# Change Log + +## [Unreleased](https://github.com/JoeLametta/whipper/tree/HEAD) + +[Full Changelog](https://github.com/JoeLametta/whipper/compare/v0.4.0...HEAD) + +**Merged pull requests:** + +- soxi: remove self.\_path unused variable, mark dep as 'soxi' [\#89](https://github.com/JoeLametta/whipper/pull/89) ([RecursiveForest](https://github.com/RecursiveForest)) +- Fix spelling mistake in README.md [\#86](https://github.com/JoeLametta/whipper/pull/86) ([takeshibaconsuzuki](https://github.com/takeshibaconsuzuki)) +- Error reporting enhancements \(conditional-raise-instead-of-assert version\) [\#80](https://github.com/JoeLametta/whipper/pull/80) ([chrysn](https://github.com/chrysn)) +- Update top level informational files [\#71](https://github.com/JoeLametta/whipper/pull/71) ([RecursiveForest](https://github.com/RecursiveForest)) +- Use soxi instead of gstreamer to determine a track's length [\#67](https://github.com/JoeLametta/whipper/pull/67) ([chrysn](https://github.com/chrysn)) + +## [v0.4.0](https://github.com/JoeLametta/whipper/tree/v0.4.0) (2016-11-08) +[Full Changelog](https://github.com/JoeLametta/whipper/compare/v0.3.0...v0.4.0) + +**Implemented enhancements:** + +- Migrate away from the "rip" command [\#21](https://github.com/JoeLametta/whipper/issues/21) + +**Fixed bugs:** + +- wrong status code when giving up [\#57](https://github.com/JoeLametta/whipper/issues/57) +- CD-TEXT issue [\#49](https://github.com/JoeLametta/whipper/issues/49) + +**Merged pull requests:** + +- Invoke whipper by its name + Readme rewrite [\#70](https://github.com/JoeLametta/whipper/pull/70) ([JoeLametta](https://github.com/JoeLametta)) +- do not recalculate musicbrainz disc id for every getMusicBrainzDiscId… [\#69](https://github.com/JoeLametta/whipper/pull/69) ([RecursiveForest](https://github.com/RecursiveForest)) +- Directory [\#62](https://github.com/JoeLametta/whipper/pull/62) ([RecursiveForest](https://github.com/RecursiveForest)) +- undelete overzealously removed plugin initialisation [\#61](https://github.com/JoeLametta/whipper/pull/61) ([RecursiveForest](https://github.com/RecursiveForest)) +- Readme rewrite [\#60](https://github.com/JoeLametta/whipper/pull/60) ([RecursiveForest](https://github.com/RecursiveForest)) +- README.md: drop executable flag [\#55](https://github.com/JoeLametta/whipper/pull/55) ([chrysn](https://github.com/chrysn)) +- nuke-autohell [\#54](https://github.com/JoeLametta/whipper/pull/54) ([RecursiveForest](https://github.com/RecursiveForest)) +- standardise program/sox.py formatting, add test case, docstring [\#53](https://github.com/JoeLametta/whipper/pull/53) ([RecursiveForest](https://github.com/RecursiveForest)) +- replace cdrdao.py with much simpler version [\#52](https://github.com/JoeLametta/whipper/pull/52) ([RecursiveForest](https://github.com/RecursiveForest)) +- use setuptools, remove autohell, use raw make for src/ [\#51](https://github.com/JoeLametta/whipper/pull/51) ([RecursiveForest](https://github.com/RecursiveForest)) + +## [v0.3.0](https://github.com/JoeLametta/whipper/tree/v0.3.0) (2016-10-17) +[Full Changelog](https://github.com/JoeLametta/whipper/compare/v0.2.4...v0.3.0) + +**Fixed bugs:** + +- UnicodeEncodeError [\#43](https://github.com/JoeLametta/whipper/issues/43) +- Use a single standard for config/cache/state files [\#24](https://github.com/JoeLametta/whipper/issues/24) + +**Merged pull requests:** + +- Sox [\#48](https://github.com/JoeLametta/whipper/pull/48) ([RecursiveForest](https://github.com/RecursiveForest)) +- Fast accuraterip checksum [\#37](https://github.com/JoeLametta/whipper/pull/37) ([MerlijnWajer](https://github.com/MerlijnWajer)) + +## [v0.2.4](https://github.com/JoeLametta/whipper/tree/v0.2.4) (2016-10-09) +[Full Changelog](https://github.com/JoeLametta/whipper/compare/v0.2.3...v0.2.4) + +**Implemented enhancements:** + +- Don't allow ripping without an explicit offset, and make pycdio a required dependency [\#23](https://github.com/JoeLametta/whipper/issues/23) +- Delete stale branches [\#7](https://github.com/JoeLametta/whipper/issues/7) +- get rid of the gstreamer-0.10 dependency [\#2](https://github.com/JoeLametta/whipper/issues/2) + +**Fixed bugs:** + +- whipper fails to build on bash-compgen [\#25](https://github.com/JoeLametta/whipper/issues/25) +- \[musicbrainz\] KeyError: 'disc' [\#22](https://github.com/JoeLametta/whipper/issues/22) +- NameError: global name 'musicbrainz' is not defined [\#16](https://github.com/JoeLametta/whipper/issues/16) +- Fix HTOA handling [\#14](https://github.com/JoeLametta/whipper/issues/14) +- rip offset find seems to fail [\#4](https://github.com/JoeLametta/whipper/issues/4) +- rip cd info seems to fail [\#3](https://github.com/JoeLametta/whipper/issues/3) + +**Closed issues:** + +- Minimal makedepends for building [\#17](https://github.com/JoeLametta/whipper/issues/17) +- Merge 'fork' into 'master' [\#1](https://github.com/JoeLametta/whipper/issues/1) + +**Merged pull requests:** + +- Issue24 [\#42](https://github.com/JoeLametta/whipper/pull/42) ([JoeLametta](https://github.com/JoeLametta)) +- Update .travis.yml [\#39](https://github.com/JoeLametta/whipper/pull/39) ([JoeLametta](https://github.com/JoeLametta)) +- Fix issue \#23 [\#32](https://github.com/JoeLametta/whipper/pull/32) ([JoeLametta](https://github.com/JoeLametta)) +- Remove thomasvs' python-deps [\#31](https://github.com/JoeLametta/whipper/pull/31) ([JoeLametta](https://github.com/JoeLametta)) +- Include name of used logger into whipper's txt report [\#30](https://github.com/JoeLametta/whipper/pull/30) ([JoeLametta](https://github.com/JoeLametta)) +- PRE\_EMPHASIS [\#27](https://github.com/JoeLametta/whipper/pull/27) ([RecursiveForest](https://github.com/RecursiveForest)) +- Resolve case where \_peakdB is None [\#20](https://github.com/JoeLametta/whipper/pull/20) ([chadberg](https://github.com/chadberg)) +- Remove old musicbrainz dependency [\#12](https://github.com/JoeLametta/whipper/pull/12) ([abendebury](https://github.com/abendebury)) +- Travis build fix [\#10](https://github.com/JoeLametta/whipper/pull/10) ([abendebury](https://github.com/abendebury)) +- Fork [\#6](https://github.com/JoeLametta/whipper/pull/6) ([abendebury](https://github.com/abendebury)) + +## [v0.2.3](https://github.com/JoeLametta/whipper/tree/v0.2.3) (2014-07-16) +[Full Changelog](https://github.com/JoeLametta/whipper/compare/v0.2.2...v0.2.3) + +## [v0.2.2](https://github.com/JoeLametta/whipper/tree/v0.2.2) (2013-07-30) +[Full Changelog](https://github.com/JoeLametta/whipper/compare/v0.2.1...v0.2.2) + +## [v0.2.1](https://github.com/JoeLametta/whipper/tree/v0.2.1) (2013-07-15) +[Full Changelog](https://github.com/JoeLametta/whipper/compare/v0.2.0...v0.2.1) + +## [v0.2.0](https://github.com/JoeLametta/whipper/tree/v0.2.0) (2013-01-20) + + +\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* and hand edited by [JoeLametta](https://github.com/JoeLametta). diff --git a/README.md b/README.md index 4f137d5..27587d0 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,16 @@ # Whipper -[![License: GPLv3+](https://img.shields.io/badge/license-GPLv3+-blue.svg)](https://github.com/JoeLametta/whipper/blob/readme-rewrite/COPYING) [![Build Status](https://travis-ci.org/JoeLametta/whipper.svg?branch=master)](https://travis-ci.org/JoeLametta/whipper) [![Current version number](https://img.shields.io/badge/version-0.4.0-red.svg)](https://github.com/JoeLametta/whipper/releases/latest) [![IRC](https://img.shields.io/badge/irc-%23whipper%40freenode-008000.svg)](https://webchat.freenode.net/?channels=%23whipper) [![GitHub Stars](https://img.shields.io/github/stars/JoeLametta/whipper.svg)](https://github.com/JoeLametta/whipper/stargazers) [![GitHub Issues](https://img.shields.io/github/issues/JoeLametta/whipper.svg)](https://github.com/JoeLametta/whipper/issues) +[![License: GPLv3+](https://img.shields.io/badge/license-GPLv3+-blue.svg)](https://github.com/JoeLametta/whipper/blob/master/LICENSE) [![Build Status](https://travis-ci.org/JoeLametta/whipper.svg?branch=master)](https://travis-ci.org/JoeLametta/whipper) [![Current version number](https://img.shields.io/badge/version-0.4.0-red.svg)](https://github.com/JoeLametta/whipper/releases/latest) [![IRC](https://img.shields.io/badge/irc-%23whipper%40freenode-008000.svg)](https://webchat.freenode.net/?channels=%23whipper) [![GitHub Stars](https://img.shields.io/github/stars/JoeLametta/whipper.svg)](https://github.com/JoeLametta/whipper/stargazers) [![GitHub Issues](https://img.shields.io/github/issues/JoeLametta/whipper.svg)](https://github.com/JoeLametta/whipper/issues) Whipper is a Python 2 CD-DA ripper, fork of the morituri project (_CDDA ripper for *nix systems aiming for accuracy over speed_). It improves morituri which development seems to have halted merging old ignored pull requests, improving it with bugfixes and new features. -Whipper is developed and tested _only_ on Linux distributions but _should_ work fine on other *nix OSes too. +Whipper is developed and tested _only_ on Linux distributions but _may_ work fine on other *nix OSes too. In order to track whipper's current development it's advised to check its commit history (README **isn't** still complete). ## Table of content - [Rationale](#rationale) - [Features](#features) -- [Release history](#release-history) +- [Changelog](#changelog) - [Installation](#installation) 1. [Required dependencies](#required-dependencies) 2. [Fetching the source code](#fetching-the-source-code) @@ -34,23 +34,24 @@ For a detailed description, see morituri's wiki page: [The Art of the Rip]( https://web.archive.org/web/20160528213242/https://thomas.apestaart.org/thomas/trac/wiki/DAD/Rip). ## Features -* Detects correct sample read offset and ability to defeat cache of drives +* Detects correct read offset (in samples) +* Has ability to defeat cache of drives * Performs Test & Copy rips * Verifies rip accuracy using the [AccurateRip database](http://www.accuraterip.com/) * Uses [MusicBrainz](https://musicbrainz.org/doc/About) for metadata lookup * Supports reading the [pre-emphasis](http://wiki.hydrogenaud.io/index.php?title=Pre-emphasis) flag embedded into some CDs (and correctly tags the resulting rip) -* Detects and rips non digitally silent [Hidden Track One Audio](http://wiki.hydrogenaud.io/index.php?title=HTOA) (HTOA) +* Detects and rips _non digitally silent_ [Hidden Track One Audio](http://wiki.hydrogenaud.io/index.php?title=HTOA) (HTOA) * Provides batch ripping capabilities * Provides templates for file and directory naming -* Supports lossless encoding -* Allows retagging of already completed rips +* Supports lossless encoding of ripped audio tracks +* Allows re-tagging of already completed rips * Allows extensibility through external logger plugins -## Release history +## Changelog -- 0.4.0 - Replace `cdrdao.py` with much simpler version. Logger update. Raise Exception when track rip runs out of attempts. Undelete overzealously removed plugin initialisation (fix regression). Invoke whipper by its name & README rewrite -- 0.3.0 - SoX is now used for peak detection. Migration to setuptools -- 0.2.4 - First tagged release after morituri fork (includes "new config/cache/state file paths" backward incompatible change) +See [CHANGELOG.md](https://github.com/JoeLametta/whipper/blob/master/CHANGELOG.md). + +For detailed information, please check the commit history. ## Installation With the exception of an [AUR package for Arch Linux](https://aur.archlinux.org/packages/whipper-git), whipper isn't currently available in a prepackaged form so, in order to use it, it must be built from its source code. @@ -65,7 +66,7 @@ Whipper relies on the following packages in order to run correctly and provide a - `gstreamer0.10-base-plugins` >= **0.10.22** for appsink - `gstreamer0.10-good-plugins` for wav encoding (it depends on the Linux distro used) - [python-musicbrainzngs](https://github.com/alastair/python-musicbrainzngs), for metadata lookup -- `python-setuptools`, for installation, plugins support +- [python-setuptools](https://pypi.python.org/pypi/setuptools), for installation, plugins support - [python-cddb](http://cddb-py.sourceforge.net/), for showing but not using metadata if disc not available in the MusicBrainz DB - [pycdio](https://pypi.python.org/pypi/pycdio/) (to avoid bugs please use `pycdio` **0.20** & `libcdio` >= **0.90** or, with previous `libcdio` versions, `pycdio` **0.17**), for drive identification - Required for drive offset and caching behavior to be stored in the configuration file @@ -114,7 +115,7 @@ is correct, while is not, because the `-d` argument applies to the whipper command. -~~Check the man page (`whipper(1)`) for more information.~~ (currently not available as whipper's documentation is planned to be migrated to [Sphinx](http://www.sphinx-doc.org)). +~~Check the man page (`whipper(1)`) for more information.~~ (currently not available as whipper's documentation is planned to be reworked ([Issue #73](https://github.com/JoeLametta/whipper/issues/73)). ## Getting started The simplest way to get started making accurate rips is: @@ -132,7 +133,7 @@ The simplest way to get started making accurate rips is: If you omit the `-o` argument, whipper will try a long, popularity-sorted list of drive offsets. - If you can not confirm your drive offset value but wish to set a default regardless, set `read_offset = 42` in `whipper.conf`. + If you can not confirm your drive offset value but wish to set a default regardless, set `read_offset = insert-numeric-value-here` in `whipper.conf`. Offsets confirmed with `whipper offset find` are automatically written to the configuration file. @@ -175,7 +176,7 @@ profile = flac Note: to get a literal `%` character it must be doubled. ## Backward incompatible changes -* Whipper executable name changed: from `rip` to `whipper` +* Whipper executable name changed: from `rip` to `whipper` ([PR #70](https://github.com/JoeLametta/whipper/pull/70)) * Whipper has adopted new config/cache/state file paths ([PR #42](https://github.com/JoeLametta/whipper/pull/42)) * Now always follows XDG specifications @@ -225,9 +226,9 @@ whipper cd rip -L what ### Official loggers -* [morituri-yamlloger](https://github.com/JoeLametta/morituri-yamllogger) - default whipper logger, yaml format -* [morituri-eaclogger](https://github.com/JoeLametta/morituri-eaclogger) - eac-like logger attempting to maintain strict compatability with EAC -* [morituri-whatlogger](https://github.com/RecursiveForest/morituri-whatlogger) - eac-like logger containing the informational enhancements of the yamllogger, for use on [What.CD](https://what.cd) +* [morituri-yamlloger](https://github.com/JoeLametta/morituri-yamllogger) - default whipper logger (provided as external logger for compatibility with morituri), yaml format +* [morituri-eaclogger](https://github.com/JoeLametta/morituri-eaclogger) - eac-like logger attempting to maintain strict compatiility with EAC +* [morituri-whatlogger](https://github.com/RecursiveForest/morituri-whatlogger) - eac-like logger containing the informational enhancements of the yamllogger, originally designed for use on What.CD ## License @@ -257,7 +258,7 @@ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ### Bug reports & feature requests -Please use the [issue tracker](https://github.com/JoeLametta/whipper/issues) to report any bugs or file feature requests. +Please use the [issue tracker](https://github.com/JoeLametta/whipper/issues) to report any bugs or to file feature requests. When filing bug reports, please run the failing command with the environment variable `RIP_DEBUG` set. For example: @@ -286,7 +287,7 @@ Thanks to: ## Links You can find us and talk about the project on IRC: [freenode](https://webchat.freenode.net/?channels=%23whipper), **#whipper** channel. -- [What.CD thread (official)](https://what.cd/forums.php?action=viewthread&threadid=163034) -- [Reddit thread (unofficial)](https://www.reddit.com/r/linux/comments/53hyw1/github_joelamettawhipper_for_those_about_to_rip_a/) +- [PassTheHeadphones thread (official)](https://passtheheadphones.me/forums.php?action=viewthread&threadid=150) - [Arch Linux whipper AUR package](https://aur.archlinux.org/packages/whipper-git/) - [Unattended ripping using whipper (script by Thomas McWork)](https://github.com/thomas-mc-work/most-possible-unattended-rip) +