purpl3F0x / MQA_identifier

Master Quality Authenticated codec reverse engineering, Tool to identify MQA encoding and Master's Sample Rate
Apache License 2.0
114 stars 10 forks source link

fix MQA detec and adds MQA Tags #15

Closed Besha1 closed 1 year ago

Besha1 commented 2 years ago

fix MQA detec and adds MQA Tags

Besha1 commented 2 years ago

fix MQA detec and adds MQA Tags

purpl3F0x commented 2 years ago

How do you know the encoder will be MQAEncode v1.1, 2.3.3+800 ? Also I don't think anyone would run that on android :P

Besha1 commented 2 years ago

Hi Well, in fact, just the MQAEncode label is enough. I just took the full description, it's the same in almost all MQA files, only the encoding date is different. I had to take up this topic since recently Tidal stopped sending MQA tags.On different players, there are different detection methods, for example, for my onkyo-6130, only the MQAENCODER == MQAEncode tag is enough, he does everything else himself ( ORIGINALSAMPLERATE,etc). But for Neutron player and MConnect player, all three tags are needed (ENCODER== MQAEncode,MQAENCODER==MQAEncode and ORIGINALSAMPLERATE). About android, you are in vain, I collected MQA_identifier with the help of termux (Android terminal emulator) without any problems, but only with libraries from boost. Thanks.

Отправлено из Mail.ru для Android пятница, 01 октября 2021г., 19:14 +03:00 от Stavros Avramidis @.*** :

How do you know the encoder will be MQAEncode v1.1, 2.3.3+800 ? Also I don't think anyone would run that on android :P — You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub , or unsubscribe . Triage notifications on the go with GitHub Mobile for iOS or Android .

Besha1 commented 2 years ago

Screenshot_20211002-015359_Termux Android termux.

Besha1 commented 2 years ago

MQA TAG RENAMING https://www.mqa.co.uk/tag435sdf43te

thammawat-s commented 2 years ago

@purpl3F0x hi, if you may consider to incorporate this in main and release.
also I'd to suggest to add an option for tag modification. eg. C:> MQA_modification.exe /w "abc.flac" Thanks to both of you!

purpl3F0x commented 2 years ago

The only problem i have is the MQAEncode Encoder version. If it's fixed and tag modification is passed as argument I'm oke to merge this

Besha1 commented 2 years ago

 

Понедельник, 14 февраля 2022, 17:24 +03:00 от thammawat-s @.>:     hi .. @Besha1 May you send me .exe file? (until @purpl3F0x release new version) — Reply to this email directly, view it on GitHub , or unsubscribe . Triage notifications on the go with GitHub Mobile for iOS or Android . You are receiving this because you were mentioned. Message ID: <purpl3F0x/MQA_identifier/pull/15/c1039099795 @ github . com>     С уважением, Евгений Гребенников @.  

Besha1 commented 2 years ago

ok, this week I will add a choice to make a tag or not and the ability to install my own version of the tag

thammawat-s commented 2 years ago

MQA TAG RENAMING https://www.mqa.co.uk/tag435sdf43te

Just to confirm, I test the above program on a file, and I look on Mp3tag program, notice it adds 3 tags.

ENCODER: MQAEncode v1.1, 2.4.0+1053 (278f5dd), E24F1DE5-32F1-4930-8197-24954EB9D6F4, Feb 14 2022 21:43:21 MQAENCODER: MQAEncode v1.1, 2.4.0+1053 (278f5dd), E24F1DE5-32F1-4930-8197-24954EB9D6F4, Feb 14 2022 21:43:21 ORIGINALSAMPLERATE: 44100

Besha1 commented 2 years ago

In my addition, everything is the same if mqa is found, then three tags are added

purpl3F0x commented 2 years ago

Just to be clear the MQA program get's those parameters (if missing) from the MQA metadata buried in the stream. I don't like the idea of just putting unaccurate metadata in the flac, if someone wants to reverse engineer that way far into the bitstream I have no problem adding them, else what's the point ? You can just put them with a batch script randomly...

Besha1 commented 2 years ago

The program checks the flac file and if it is an mqa container it checks its original sample rate and then adds three tags ENCODER: MQAEncode....... MQAENCODER: MQAEncode........ ORIGINALSAMPLERATE: Found sample rate If mqa is not found nothing happens

All this is necessary for those audio players who cannot determine mqa without hints Someone needs all three tags, someone needs MQAENCODER: MQAEncode, someone can just rename the file, for example, test.flac in test.mqa.flac and the player will be able to determine it, and someone does not need anything, he will do everything himself.But all this does not mean that by adding, for example, all three tags to a file that is not an mqa, the player will consider it an mqa file.These are all tips for players to do internal checks or not.

purpl3F0x commented 2 years ago

Yes, I get it. My problem is that the mqa encoder version is hardcoded. Not validated to be accurate. The purpose of this repository is to provide tools /& reverse enginner mqa. Not tidy up .flac files to play on some player. If you find a way to get reliable the mqa encoder version I'm more than happy to include it

Besha1 commented 2 years ago

So what is the end result?I didn't quite get it.What was the problem?I tested more than a hundred files and there were no problems.

purpl3F0x commented 2 years ago

I'm bit confused. So you checked an MQA-CD file from 2018. And the MQA's app put an encoder with version of 2022 ?

purpl3F0x commented 2 years ago

Ok, I see. So the whole string is the same ? and the checksums ? In that case I recommend the following suggestion MQAEncode v1.1, 2.4.0+1053 (278f5dd), E24F1DE5-32F1-4930-8197-24954EB9D6F4, MMM DD YYYY HH:MM:SS

I think it could be done easily with std::put_time(&cur_local_time, "%h %d %Y %H:%M:%S")

purpl3F0x commented 2 years ago

I meant the checksum on the string of it belongs to the decoder. If so with the datetime suggestion fixed I'm okay to merge

kur0tenh commented 2 years ago

Will this be merged any soon?, this would benefit a lot of portable players that aren't that smart to detect MQA files by waveform, but are in fact capable of fully decoding MQA since they use FLAC tags to enable MQA decoding.

Besha1 commented 1 year ago

added flag --add-mqaencoder if user want add tags added flag -rw if user want rewrite existing ones

purpl3F0x commented 1 year ago

Hello sorry for not getting back, being extremely busy will take a look at it next weekend. Cheers