Giter Club home page Giter Club logo

moe's People

Contributors

actions-user avatar ali-ramadhan avatar dependabot[bot] avatar jtpavlock avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

moe's Issues

Accessing audio format, bit depth, and sample rate as track fields?

Describe the new feature

I would like to use the file format, bit depth, and sample rate of tracks to format paths. I see that audio_format is a Track property (but not a field) and that bit depth and sample rate are not properties nor fields.

I was wondering if it would make sense to add bit depth and sample rate as Track properties, then make all three fields so they could be used to format paths?

They are accessible via the mediafile I think , so I could try to add them in as Track properties via @property.

I think it's common to use audio format, bit depth, and sample rate to format album paths, however it might not make sense for them to be album properties. One reason being that some albums (some digital releases?) could have a mixture of formats, bit depths, and sampling rates.

So to format album paths using this information, it might make sense to create little plugins to return e.g. album_audio_format which could be FLAC or MP3 or even FLAC+MP3.

But this would still require audio format, bit depth, and sample rate to be Track properties I think.

Support numeric range queries

Describe the new feature

It would be great if we can use numerical values in queries. For example, year greater than 2010 or year between 1990 and 2000. This does not have to be limited to year, but can be extended to other fields, e.g., bitrate, rating.

Use case

This can be used to create smart playlists. For example, we can create a playlist for all tracks from '90s.

'Path not found' when adding an album in Windows Powershell

Describe the bug

When adding an album in Windows Powershell, Moe errors with a "Path not found" message.

To Reproduce

Moe output
PS C:\Users\Jacob> moe -vv add 'Z:\media\downloads\music\Tyler, The Creator - CALL ME IF YOU GET LOST (2021) - WEB FLAC\'
ERROR:moe.add:Path not found: Z:\media\downloads\music\Tyler, The Creator - CALL ME IF YOU GET LOST (2021) - WEB FLAC"

Setup

  • OS: Windows 11 - 10.0.22000
  • Python version: 3.9.6
  • Moe version: 0.7.1
Configuration file
[move]
library_path = '''Z:\media\music'''
asciify_paths = true

Import crashes when creating album from Musicbrainz release with unknown format

Describe the bug

When adding a few albums I encountered a KeyError when Moe tries to create an album from a Musicbrainz release. I think it's because the release format is unknown (for example: https://musicbrainz.org/release/8bd1c26c-68d5-4c27-b32d-cf3393bc1059).

The obvious fix would be to update the format on Musicbrainz (format should be CD I think), but Moe shouldn't be crashing either. Not sure what media should be set to in this case. Python doesn't have a missing data type so maybe None or the string unknown?

This would be a different issue but it's also worth noting that some releases come in a mix of media. For example, https://musicbrainz.org/release/827008e9-0779-4fd5-8e5a-7322462eba91 has a CD (Disc 1) and a DVD-Video (Disc 2), although for music tagging only the first disc matters.

To Reproduce

from moe.plugins.musicbrainz import get_album_by_id
get_album_by_id("8bd1c26c-68d5-4c27-b32d-cf3393bc1059")

Stacktrace:

KeyError                                  Traceback (most recent call last)
Input In [3], in <cell line: 1>()
----> 1 get_album_by_id("8bd1c26c-68d5-4c27-b32d-cf3393bc1059")

File ~/build/Moe/moe/plugins/musicbrainz/mb_core.py:378, in get_album_by_id(release_id)
    374 release = musicbrainzngs.get_release_by_id(release_id, includes=RELEASE_INCLUDES)
    376 log.info(f"Fetched release from musicbrainz. [release={release_id!r}]")
--> 378 return _create_album(release["release"])

File ~/build/Moe/moe/plugins/musicbrainz/mb_core.py:425, in _create_album(release)
    413 else:
    414     label = None
    416 album = MetaAlbum(
    417     artist=_flatten_artist_credit(release["artist-credit"]),
    418     barcode=release.get("barcode"),
    419     catalog_nums=catalog_nums,
    420     country=release.get("country"),
    421     date=_parse_date(release["date"]),
    422     disc_total=int(release["medium-count"]),
    423     label=label,
    424     mb_album_id=release["id"],
--> 425     media=release["medium-list"][0]["format"],
    426     original_date=_parse_date(release["release-group"]["first-release-date"]),
    427     title=release["title"],
    428 )
    429 for medium in release["medium-list"]:
    430     for track in medium["track-list"]:

KeyError: 'format'

Setup

  • OS: Linux Debian 5.10
  • Python version: 3.9.12
  • Moe version: master branch

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.