Git Product home page Git Product logo

audio_pipeline's People

Contributors

cephalopodblue avatar hidat avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

audio_pipeline's Issues

Too Many Tracks For Window

If there are too many tracks on a disc (such as 30+) to fit in a screen, you just can't see them all. Figure out a way to view the hidden tracks (such as a scrollbar).

Not all tracks displayed after editing metadata

I ripped a CD without any metadata, so I used TB to enter the metadata. After entering the metadata and hitting save on the edit window, the main TB screen only displayed the information for the first track. Hitting Next, and then Previous cleared up the problem, so the metadata was indeed properly saved, just not displayed correctly on the refresh.

Fail Gracefully (Or Don't Fail) When Missing Track Or Disc Numbers

Right now, TB blows up if you try to pull MBID metadata but the metadata is missing track or disc numbers.

Making it actually work is probably a bit much (TB depends on those track/disc numbers to know what's going on!) but it should at least fail more gracefully - i.e. display an error message, display a helpful error message with recommendations, or at least something.

Defaults for custom tags

Allow the user to set a default for a custom tag in the configuration file, and the first time a track or release is viewed, set the tag(s) to these defaults IF they are currently empty.

Make File Walker Restartable

Make the File Walker restartable by hashing the contents of each of the files and checking if a file with that hash already exists before processing the file. Do this by:

  • Creating a directory under the output directory call 'processed_hashes'
  • Computing the SHA1 hash of the audio file
  • Check for the presence of a file within the 'processed_hashed' directory, if present, skip this file
  • If file is not present, create this file AFTER all processing of the file has completed. If you want to put something in the file, write the full path and filename into the file.

Artist Import XMLs

Instead of writing out the list of unique artists to a CSV file, lets go ahead and pull the full artist information from MusicBrainz and write it out to XML files in the artist_meta_dir. Still keep track of the unique artists that you have seen, and only write the file if the artist is new.

Group

<?xml version="1.0" encoding="utf-8"?>
<Titles>
    <GlossaryValue>
        <!-- Begin of Mandatory fields -->
        <Key1>5b11f4ce-a62d-471e-81fc-a69a8278c7da</Key1>
        <ItemCode>5b11f4ce-a62d-471e-81fc-a69a8278c7da</ItemCode>
        <title>Nirvana (90s US grunge band)</title>
        <GlossaryType>Artist</GlossaryType>
        <KEXPName>Nirvana</KEXPName>
        <KEXPSortName>Nirvana</KEXPSortName>
        <KEXPMBID>5b11f4ce-a62d-471e-81fc-a69a8278c7da</KEXPMBID>
        <!-- End Mandatory fields -->
        <!-- Begin of optional fields -->
        <KEXPAlias>Nirvana US</KEXPAlias> <!-- multiple cardinality -->
        <KEXPAlias>Alias 2</KEXPAlias>
        <KEXPAnnotation>Nirvana is a band whose shows and session recordings have been widely bootlegged as unofficial videos, CDs and raw WAV/FLAC files and mp3s. Details of these releases have been added to Musicbrainz where the sources have been confirmed.</KEXPAnnotation>
        <KEXPArtistType>Group</KEXPArtistType>
        <KEXPBeginArea>Aberdeen</KEXPBeginArea>
        <KEXPBeginAreaMBID>a640b45c-c173-49b1-8030-973603e895b5</KEXPBeginAreaMBID>
        <KEXPBeginDate>1988-01</KEXPBeginDate>
        <KEXPCountry>United States</KEXPCountry>
        <KEXPCountryMBID>489ce91b-6658-3307-9877-795b68554c98</KEXPCountryMBID>
        <KEXPDisambiguation>90s US grunge band</KEXPDisambiguation>
        <KEXPEndArea></KEXPEndArea>
        <KEXPEndAreaMBID></KEXPEndAreaMBID>
        <KEXPEndDate>1994-04-05</KEXPEndDate>
        <KEXPEnded>1</KEXPEnded>
        <KEXPIPICode>IPI Code 1</KEXPIPICode> <!-- multiple cardinality -->
        <KEXPIPICode>IPI Code 2</KEXPIPICode>
        <KEXPIPICode>etc..</KEXPIPICode>
        <KEXPISNICode>0000000123486830</KEXPISNICode> <!-- multiple cardinality -->
        <KEXPISNICode>ISNI Code 2</KEXPISNICode>
        <KEXPLink>http://www.allmusic.com/artist/mn0000357406</KEXPLink> <!-- multiple cardinality -->
        <KEXPLink>http://www.bbc.co.uk/music/artists/5b11f4ce-a62d-471e-81fc-a69a8278c7da</KEXPLink>
        <KEXPLink>http://www.nirvanaarchive.com/</KEXPLink>
        <KEXPMember>ac05e29f-0561-4445-bb26-5562d2389531</KEXPMember> <!-- refers to an artist MBID: must be equal to the associated glossary s itemcode  -->
        <KEXPMember>3c9b356d-d1db-4f4e-a7a3-2d00c1d70255</KEXPMember> <!-- multiple cardinality -->
        <!-- End of optional fields -->
    </GlossaryValue>
    <!-- to create multiple glossary values in the same file: just add a new tag <GlossaryValue> prerequired fields, etc..</GlossaryValue> -->
</Titles>

Individual

<?xml version="1.0" encoding="UTF-8"?>
<Titles>
<GlossaryValue>
    <!-- Begin of Mandatory fields -->
    <Key1>3c9b356d-d1db-4f4e-a7a3-2d00c1d70255</Key1>
    <ItemCode>3c9b356d-d1db-4f4e-a7a3-2d00c1d70255</ItemCode>
    <title>Kurt Cobain</title>
    <GlossaryType>Artist</GlossaryType>
    <KEXPMBID>3c9b356d-d1db-4f4e-a7a3-2d00c1d70255</KEXPMBID>
    <KEXPName>Kurt Cobain</KEXPName>
    <KEXPSortName>Cobain, Kurt</KEXPSortName>
    <!-- End Mandatory fields -->
    <!-- Begin of optional fields -->
    <KEXPAlias>Kurt D Cobain</KEXPAlias> <!-- multiple cardinality -->
    <KEXPAlias>Kurdt Cobain</KEXPAlias>
    <KEXPAlias>Kurdt Kobain</KEXPAlias>
    <KEXPAnnotation>Kurt's death certificate: http://www.anomalies-unlimited.com/Death/KurtCert.html</KEXPAnnotation>
    <KEXPArtistType>Person</KEXPArtistType>
    <KEXPBeginArea>Aberdeen</KEXPBeginArea>
    <KEXPBeginAreaMBID>a640b45c-c173-49b1-8030-973603e895b5</KEXPBeginAreaMBID>
    <KEXPBeginDate>1967-02-20</KEXPBeginDate>
    <KEXPCountry>United States</KEXPCountry>
    <KEXPCountryMBID>489ce91b-6658-3307-9877-795b68554c98</KEXPCountryMBID>
    <KEXPDisambiguation></KEXPDisambiguation>
    <KEXPEndArea>Seattle</KEXPEndArea>
    <KEXPEndAreaMBID>10adc6b5-63bf-4b4e-993e-ed83b05c22fc</KEXPEndAreaMBID>
    <KEXPEndDate>1994-04-05</KEXPEndDate>
    <KEXPEnded>1</KEXPEnded>
    <KEXPGender>Male</KEXPGender>
    <KEXPIPICode>00227073975</KEXPIPICode> <!-- multiple cardinality -->
    <KEXPIPICode>IPI Code 2</KEXPIPICode>
    <KEXPIPICode>etc..</KEXPIPICode>
    <KEXPISNICode>0000000110685005</KEXPISNICode> <!-- multiple cardinality -->
    <KEXPISNICode>ISNI Code 2</KEXPISNICode>    
    <KEXPLink>http://www.allmusic.com/artist/mn0000095243</KEXPLink> <!-- multiple cardinality -->
    <KEXPLink>http://www.discogs.com/artist/275118</KEXPLink>
    <KEXPLink>http://www.imdb.com/name/nm0001052//</KEXPLink>           
    <!-- End of optional fields -->
</GlossaryValue>
    <!-- to create multiple glossary values in the same file: just add a new tag <GlossaryValue> prerequired fields, etc..</GlossaryValue> -->
</Titles>

Make track tags toggle

For track tags that are true false, make them toggle when given the command - i.e., 1 e would turn on 'Send to Enco' for track one, and then 1 e again would turn off 'Send to Enco' for track 1. If a range of tracks is given, toggle each track.

Duplicate command aliases

Currently multiple commands can have the same alias, making the actual command that is executed unclear (ex: KBCS style tag with [s] alias is executed rather than search which also has [s] alias).

TB should probably yell at you if multiple commands have the same alias, or at least have a clearly defined command-alias hierarchy.

Option 'display name' for tags

Allow a user defined tag to have an optional 'display name' that is used in the UI instead of the tag name. This way we can have 'generic' tags, but the displayed name can be more descriptive and/or specific to a customer.

Internal-only tags

Tags that are used only internally (chiefly post-process tags such as File Under) should not be defined in a user config file, though specifying aliases etc. should still be possible by the user.

Metadata output format

At a track level, lets create metadata information files with the following information pulled from MusicBrainz

  • raw_tags: Straight dump of all tags read from the file
  • release: information about the release
    • release_id
    • disc_num: pulled from raw tags
    • release-title: release-title
    • disc-title: media[disc_num].title
    • disambiguation
    • artists-credit[]
    • label-info-list[]
    • date
    • country
    • barcode
    • asin
  • track: mostly pulled from media[disc_num].tracks[track_num].recording
    • track_num: from raw tags
    • release_track_id:=tracks[:id]
    • track_id: recording[:id]
    • title: recording[:title]
    • length: recording[:length]
    • track_id: recording[:id]
    • isrcs: from raw tags or recording[:isrcs]
    • artist-credits: recording[:artist-credits]

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.