music-kraken-core/notes.md

98 lines
3.3 KiB
Markdown
Raw Normal View History

2022-11-08 17:17:24 +00:00
# TO DO
2022-11-16 09:17:13 +00:00
- Create a super class for audio_source, from which yet to come classes like Musify or Youtube inherit.
2022-11-14 17:55:32 +00:00
- be able to select multiple things at once (eg "0, 3, 5, 6") and then download this selection with ok
2022-11-14 17:53:34 +00:00
- add the file system as audio source
2022-11-08 17:17:24 +00:00
- 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
2022-11-16 08:44:50 +00:00
# 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
2022-11-16 09:15:35 +00:00
- target
2022-11-16 08:44:50 +00:00
- audio_source
- fetch_source
- fetch_audio
- sources
- musify
- youtube
- lyrics
- lyrics
- genius (will eventually be moved in a folder with lyric sources)
2022-11-16 08:44:50 +00:00
2022-11-14 17:53:34 +00:00
# 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
2022-11-14 18:07:14 +00:00
- Psychonaut 4 - Neurasthenia (Sweet Decadence)
2023-01-09 09:07:44 +00:00
# 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
2023-01-09 09:46:05 +00:00
[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
2023-01-09 09:07:44 +00:00
## container
[Wikipedia](https://en.wikipedia.org/wiki/Container_format)
2023-01-09 09:46:05 +00:00
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.
2023-01-09 09:07:44 +00:00
## 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.