music-kraken-core/notes.md
Lars Noack ef299d534c dfsaf
2023-01-09 10:46:05 +01:00

98 lines
3.3 KiB
Markdown

# TO DO
- Create a super class for audio_source, from which yet to come classes like Musify or Youtube inherit.
- be able to select multiple things at once (eg "0, 3, 5, 6") and then download this selection with ok
- add the file system as audio source
- add complete search of musify (scraping of artist page etc.) as last resort
- add a check if the songs truly are the same with non changebal attributes (length etc.)
- get additional ISRCs
- add Deezer as additional source
- add a config file where you should be able to set:
- folder structure (genre/artist/release/track.mp3 eg.)
- proxies (maybe a boolean if tor should be enabled)
- toggling of audio sources and sorting priorities of audio sources
# Which "Modules" do I have
## Overview
- fetching of metadata
- creating the target paths/filenames
- fetching of the download sourced
- downloading of the mp3
- fetching of the lyrics
## Naming and Structure of Modules
- utils
- shared (equivalent to global variables and constants)
- config
- database
- some static methods that are in general usefull for me
- tagging
- song (within a class Song used to get and set the metadata of mp3 files)
- metadata
- search
- fetch
- target
- audio_source
- fetch_source
- fetch_audio
- sources
- musify
- youtube
- lyrics
- lyrics
- genius (will eventually be moved in a folder with lyric sources)
# Wrong Audio
- Crystal F - Hanging Man
# Did not found whole release
- Crystal F - Trail Mix 2 (Vollmond)
- Crystal F - Was ist blos mit Hauke los
- Psychonaut 4 - Neurasthenia (Sweet Decadence)
# Audio Formats
[Wikipedia](https://en.wikipedia.org/wiki/Audio_file_format)
> It is important to distinguish between the audio coding format, the container containing the raw audio data, and an audio codec.
## audio coding format
[Wikipedia](https://en.wikipedia.org/wiki/Audio_coding_format)
The audio coding format is a format, which tries to store audio in a minimal space, while still allowing a decent quality.
There are two types:
1. lossless compression
2. lossy compression
[Here a comperison of audio coding formats.](https://en.wikipedia.org/wiki/Comparison_of_audio_coding_formats)
The two criterias, which NEED to be met is:
1. open source
2. the encoder as well as the player need to be free to use
## container
[Wikipedia](https://en.wikipedia.org/wiki/Container_format)
A container embeddes the metadata in a file. In this case I am interested in containers regarding audio.
### considerations
Important differences between container, that I need to consider when choosing one, *cuz I only implement this shit once*, are:
1. advanced content, meaning which fields there are, for example title, length, ...
2. popularity *(the more poppular it is, the better will be the support between different software)*
3. support for different [codec features](#audio-codec) *(older codecs might not support newer frames)*
4. overhead *(different file size with different data, though this certainly is less an issue with audio)*
5. support streaming the media
These destinctions are sorted from top to bottom.
## audio codec
[Wikipedia](https://en.wikipedia.org/wiki/Audio_codec)
The audio codec is simply software/hardware, to convert audio from an [audio coding format](#audio-coding-format) to playable audio and vice versa.