Coder Social home page Coder Social logo

ludelafo / panosse Goto Github PK

View Code? Open in Web Editor NEW
9.0 1.0 0.0 362 KB

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

License: GNU Affero General Public License v3.0

Go 96.58% Dockerfile 3.42%
flac audio cobra metaflac viper clean encode normalize replaygain verify golang

panosse's Introduction

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).

panosse's People

Contributors

ludelafo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

panosse's Issues

[BUG] GoReleaser Changelog does not consider groups

Before you submit your issue, please review the following elements. Check the boxes below to confirm that you have read and understood each item.

  • I have read and agreed to panosse's Contributing guide.
  • I have checked that the issue does not already exist or has not already been resolved in another issue or pull request.

Describe the bug

panosse uses Pull Requests (from Issues) to improve panosse. As all commits in a pull request are squashed to keep a clean Git history, all pull requests keep the names [FEATURE] or [BUG] from their related issue.

As for now, GoReleaser does not seem to correctly pick up those commit messages to generate the groups in the releases page as described in the GoReleaser configuration file of this project.

More documentation in the official documentation at https://goreleaser.com/customization/changelog/.

To reproduce

  1. Create a new Git tag
  2. Workflow runs and create a new release
  3. The release does not contain the groups "Features" and Bug fixes"

Expected behavior

The changelog should contain the three categories "Features", "Bug fixes" and "Others".

[FEATURE] Improve concrete example

Before you submit your issue, please review the following elements. Check the boxes below to confirm that you have read and understood each item.

  • I have read and agreed to panosse's Contributing guide.
  • I have checked that the issue does not already exist or has not already been resolved in another issue or pull request.

Is your feature request related to a problem/frustration? Please describe.

Improve the concrete example to have an end-to-end example.

[FEATURE] Add contributing guide

Is your feature request related to a problem/frustration? Please describe.

Add a contributing guide so everyone knows who to contribute.

[FEATURE] Improve README readability

Before you submit your issue, please review the following elements. Check the boxes below to confirm that you have read and understood each item.

  • I have read and agreed to panosse's Contributing guide.
  • I have checked that the issue does not already exist or has not already been resolved in another issue or pull request.

Additional context

This issue comes from the feedback got on Reddit that encourage to make the README less dense.

[FEATURE] Fix typos in README

Before you submit your issue, please review the following elements. Check the boxes below to confirm that you have read and understood each item.

  • I have read and agreed to panosse's Contributing guide.
  • I have checked that the issue does not already exist or has not already been resolved in another issue or pull request.

Is your feature request related to a problem/frustration? Please describe.

Some typos remain in the README file.

[FEATURE] Add missing options from EAC

Before you submit your issue, please review the following elements. Check the boxes below to confirm that you have read and understood each item.

  • I have read and agreed to panosse's Contributing guide.
  • I have checked that the issue does not already exist or has not already been resolved in another issue or pull request.

Additional context

Add missing options discovered while using Exact Audio Copy.

[FEATURE] Add code of conduct

Is your feature request related to a problem/frustration? Please describe.

Add a code of conduct so everyone contributing to the project knows the rules.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.