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
|
2022-11-16 09:30:00 +00:00
|
|
|
- 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.
|