Skip to content

panosse is a CLI tool to clean, encode, normalize, and verify your FLAC music library.

License

Notifications You must be signed in to change notification settings

ludelafo/panosse

Repository files navigation

panosse

Latest release License Issues Pull requests Discussions

What is panosse?

panosse is a CLI tool to clean, encode, normalize, and verify your FLAC music library.

It is merely a wrapper around flac and metaflac and uses Cobra and Viper under the hood.

Usage:
  panosse [command]

Available Commands:
  clean       Clean FLAC files from blocks and tags
  config      Display panosse configuration
  encode      Encode FLAC files
  help        Help about any command
  normalize   Normalize FLAC files with ReplayGain
  verify      Verify FLAC files

Note

This is my first Go project. The code may not be idiomatic. I am open to suggestions and improvements. Criticism is welcome!

What panosse is not

panosse is not a music player, tag editor, or a music library manager. panosse is focused on cleaning, encoding, normalizing, and verifying FLAC files.

Other tools can be used to manage your music library, such as beets, MusicBrainz Picard, or foobar2000.

As already mentioned, panosse is only a wrapper around flac and metaflac. It does not provide much more functionality. It was developed to automate and set sane defaults for my music library maintenance.

panosse tries to stay close to the UNIX philosophy of doing one thing and doing it well. For example, panosse only proccesses one file at a time (except for normalization), so you can easily parallelize the process using find and xargs or similar tools.

Usage

panosse can be used as a standalone binary or with Docker.

For detailed information, see the dedicated Usage documentation.

Commands and flags

Every panosse's commands have a help command to describe the command's usage.

You can use panosse [command] --help or panosse help [command] to display the help.

For detailed information, see the dedicated Commands and flags documentation.

Configuration

Configuration can be set using environment variables, flags or a configuration file.

The order of precedence is:

  1. Flags
  2. Environment variables
  3. Configuration file

Display the current configuration with panosse config.

For a commented version of the example file, check the config.yaml file.

For detailed information, see the dedicated Configuration documentation.

Development

To build panosse, Go must be installed and configured .

Once Go is installed, build panosse with the following command:

# Build panosse
go build

Once panosse is built, run it with the following command:

# Run panosse
./panosse

What does panosse mean?

panosse (/pa.nɔs/) is a Swiss-French word meaning mop. The idea is that a mop cleans a floor, panosse cleans FLAC files.

Contributing

If you have interested in contributing to panosse, check the Contributing guide.

Thank you in advance!

License

panosse is licensed under the GNU Affero General Public License (GNU AGPL-3.0).