-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
31 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
## Retagging | ||
|
||
By design, music meta information such as title/artist/album etc is embedded and re-encrypted into the `ncm` header. This decision was reached considering the following factors: | ||
|
||
- The audio content isn't _"clean"_. Meaning if we take the embedded tag of the audio as overwrites, some music might be "polluted" by the tags at the original state. | ||
|
||
- Audio content is not verified when played by _NCM player_. So there is no way to tell whether it's modified, nor to completely restore the file state. | ||
|
||
- Replay gain is written to the audio content because it's recoverable and **simply tested** that the file hash will turn back after clearing the custom gain information. | ||
|
||
- The meta information stored in the `ncm` header is essentially a standard stringified `JSON` object, allowing easy extension while preserving all original fields. Although modifying it would change the identification key, causing the _NCM player_ to refuse to playback, it's totally recoverable by deleting the overwrites. | ||
|
||
Currently, the downloaded `.ncm` files can be recognized and played by the _NCM player_ if: | ||
|
||
- It's put in a monitored directory. | ||
- The album art or the replay gain is edited, while other meta information isn't. | ||
- Other meta information is once edited, then cleared by `Remove tags` utility. | ||
|
||
## Extractor | ||
|
||
- The extraction menu is unavailable in old fb2k versions (v1.6), due to API incompatity. | ||
- The extraction process is multi-threaded. Spawn order: `UI => extractor(x1) => worker(xN)`. | ||
- The output file would be overwritten if existed, and no warning would be given in this case. See the comments at | ||
`ncm_file::save_raw_audio()`. |
File renamed without changes
File renamed without changes