Complete Control of EAC
Somebody once said:
'What FIH is trying to say: he likes to have the "DNA" of a wav file. I am however unsure what good it will do.'
'one long an boring shoutpage in 1 sentence'
I say: We'll see....
I'm writing a utility to automate EAC rips, to ensure that **ONLY** secure rips can be done in the correct way and to make things as simple as possible. Imagine it as a front-end to EAC (you won't even see EAC) with everything a lossless file sharer could possibly need and with all the EAC pointless and complicated options (in the lossless/secure world) completely invisible. That's right, the emphasis will be on lossless and sharing - not on ripping personal copies for personal use which is pretty much what EAC is designed for.
Quick feature list....
OK, people will still be able to "fake it" by ripping from a CDR, but trying to rip from images etc.. will proove difficult (I won't go into the technical details) and at least if you own the original and suspect a rip to be faulty there will be a wealth of information at your disposal.
Low priority features that maybe someday will be added...
I expect to have a alpha* version out in a few days so stay tuned.
*which to not dissapoint will largely be proof-of-concept/bug-busting excercise I will distribute to a few EAC-heads for testing.
FAQ
Q) Why am I not writing my own ripping tool?
A) Because I'm lazy. Also because it's f**king hard work. And also because EAC is a great and well-trusted proven program.
Q) Have I not heard of Accurip?
A) Yes, but Accurip is again designed for personal use - not for ripping CD's and distributing them, not for my Mother or anyone else who can still make mistakes with EAC configuration - at best the mistakes get spotted, at worst they never do.
Q) Is this legal?
A) I will not be distributing the code with EAC - you will download EAC. It is not a derirative work of EAC (merely a front-end) and in fact it pays nothing but homage to EAC. Also of course the music you rip/distribute should only be your own or where you have copyright permission ;)
Q) Will this be available on Mac/Linux?
A) The ripping/encoding routines will work on any platform the only trusted lossless ripper (EAC) can run on :P
Q) But what about if a Mac/Linux user recieved the files and cannot do anything with them?
A) In terms of a torrent file, the individual track-based FLAC files will still be distributed as normal - for instant playing. Once it's past beta stage on the Windows format I'll be welcome to talk to Mac/Linux heads about writing some tools on their side.
Q) Is it vaporware?
A) Yes and no. I've written a EAC Class. It's a messy affair right now all driven from a console/command prompt. This Class does a few naughty things such as spy on EAC and it's internal memory. These things are all possible and all working now. I can see all EAC options as they are changed. I can read a cuesheet before EAC even generates one. I can modify any EAC setting directly. I can find out/report more about drives than EAC does - such as firmware version etc... I can see exactly what ASPI layer and version of ASPI layer you are using. I can read the test/rip CRC32's, read errors, track quality etc... as and when they are being generated - you will not have time to change them. I can produce a EAC logfile before EAC does.
Q)How can I help?
A)Support me, just say "Sounds good" if nothing else. If you want to go a bit further then please post any features you'd like to see, or any questions and I will update this post as necessary.
'What FIH is trying to say: he likes to have the "DNA" of a wav file. I am however unsure what good it will do.'
'one long an boring shoutpage in 1 sentence'
I say: We'll see....
I'm writing a utility to automate EAC rips, to ensure that **ONLY** secure rips can be done in the correct way and to make things as simple as possible. Imagine it as a front-end to EAC (you won't even see EAC) with everything a lossless file sharer could possibly need and with all the EAC pointless and complicated options (in the lossless/secure world) completely invisible. That's right, the emphasis will be on lossless and sharing - not on ripping personal copies for personal use which is pretty much what EAC is designed for.
Quick feature list....
- Protection from tampering from all but the most determined - this means that other than in the realms of disassembling the program, lamers armed even with a hex-editor will not be able to fake stuff.
- Protected embedded cuesheets/logiles/tags (encoded to avoid tampering by phoney-rippers). From the encoded version these can be generated into XML/txt format and it's anticipated these "extracted" versions would be distributed alongside the original for human-readable information.
- Start the rip & then tag/name files whilst it's ripping (you're bored, right? Isn't this the logical time to do it)
- Generate a EAC-style logfile and any type of cuesheet you want at any time - it's anticipated generating EAC style logfiles will soon become redundant.
- Discs organised into collections.
- Quick generation of Image WAV or split back into track-based WAVs. Also perform this process on lossless encoded files (FLAC/WV/APE)
- Detection of stereo/mono.
- Intelligent handling of pregap tracks/bonus tracks/blank tracks/tracks with long gaps in the middle (e.g. last track on Nirvana's Nevermind). Pointless digital (e.g. total) silence "they" put on CD's can be taken out of lossless, as long as it is held somewhere and as long as somebody who wants to burn an exact-duplicate CD can put it back - why not have a standard way of "fixing it"?
- More details logged such as CD Drive firmware version, specific ASAPI adaptor used etc..
- Fingerprint analysed before the WAV is even encoded
- Fingerprint of noise-only (trimming leading/trailing silence) - very useful to detect a incorrect drive offset of your or their rip.
- Replaygain analysis (a useful audio signature if nothing else)
- Silence analysis
- Frequency analysis
- Waveform preview
- Encoding into FLAC (of course), but to be followed by WAVPack support and APE support if anyone's still using it.
- Audio analysis/offset correction information - by way of audio 'DNA' - a custom spec I've drawn up which makes a fingerprint seem like a blood type. Fingerprint...DNA...get it ;) ?
- Shit loads more...
OK, people will still be able to "fake it" by ripping from a CDR, but trying to rip from images etc.. will proove difficult (I won't go into the technical details) and at least if you own the original and suspect a rip to be faulty there will be a wealth of information at your disposal.
Low priority features that maybe someday will be added...
- Secondary encoding option - for lossy etc... (very low priority)
- Automatic creation of torrent files
- Automatic posting of torrents to your favourite site (e.g. Oink)
- Automatic HTML/PHPBB style tracklist formatting etc... (for presentation pages)
- Messaging/Emails etc.. when rip complete
I expect to have a alpha* version out in a few days so stay tuned.
*which to not dissapoint will largely be proof-of-concept/bug-busting excercise I will distribute to a few EAC-heads for testing.
FAQ
Q) Why am I not writing my own ripping tool?
A) Because I'm lazy. Also because it's f**king hard work. And also because EAC is a great and well-trusted proven program.
Q) Have I not heard of Accurip?
A) Yes, but Accurip is again designed for personal use - not for ripping CD's and distributing them, not for my Mother or anyone else who can still make mistakes with EAC configuration - at best the mistakes get spotted, at worst they never do.
Q) Is this legal?
A) I will not be distributing the code with EAC - you will download EAC. It is not a derirative work of EAC (merely a front-end) and in fact it pays nothing but homage to EAC. Also of course the music you rip/distribute should only be your own or where you have copyright permission ;)
Q) Will this be available on Mac/Linux?
A) The ripping/encoding routines will work on any platform the only trusted lossless ripper (EAC) can run on :P
Q) But what about if a Mac/Linux user recieved the files and cannot do anything with them?
A) In terms of a torrent file, the individual track-based FLAC files will still be distributed as normal - for instant playing. Once it's past beta stage on the Windows format I'll be welcome to talk to Mac/Linux heads about writing some tools on their side.
Q) Is it vaporware?
A) Yes and no. I've written a EAC Class. It's a messy affair right now all driven from a console/command prompt. This Class does a few naughty things such as spy on EAC and it's internal memory. These things are all possible and all working now. I can see all EAC options as they are changed. I can read a cuesheet before EAC even generates one. I can modify any EAC setting directly. I can find out/report more about drives than EAC does - such as firmware version etc... I can see exactly what ASPI layer and version of ASPI layer you are using. I can read the test/rip CRC32's, read errors, track quality etc... as and when they are being generated - you will not have time to change them. I can produce a EAC logfile before EAC does.
Q)How can I help?
A)Support me, just say "Sounds good" if nothing else. If you want to go a bit further then please post any features you'd like to see, or any questions and I will update this post as necessary.
FLAC In Hell's Hellhole




19 Comments:
I've been waiting for the day something would come along where the person wouldn't be able to tamper with the log and fake it. :)
Well Flac
I must say! Good On You!
I will most definitley be a tester...been an EAC head since late 99/early 2000...
email and lemme know
karmageddon420@gmail.com
or you can find me on the calonet site/Joygrenade hub
actually, an ammendment ...
I still use APE (way better compression than FLAC and i back EVERYTHING up so size DOES matter)..any chance we can get right on with the APE setting for this?
- Karmageddon
Don't expect all these things right away =- not even FLAC encoding, with this early alpha it will basically be a "is my EAC setup correctly" style check + a few other things.
I've got a lot written, but am aiming to get a 100% verified "working core" before the end of the week.
A massive wealth of variables will be listed for bugtesters to check against EAC and try to break/spot bugs.
I'm in need of someone with access to some old crappy drives that CANNOT handle CD Text & ISRC codes - I aim to always rip these, and then elminate them if they are ripped wrong (drive cannot support them).
Sounds positively amazing. It would be trivial to make it disallow ripping from CD-Rs, and this would be an awesome feature to see in action.
If EAC is to be integrated, you should fix the bug whereby my Lite-On with SMART-X refuses to spin up to full speed unless I test a track in burst mode first. I doubt Lite-On is ever going to release fixed firmware for it. ;)
d4rk said...
Sounds positively amazing. It would be trivial to make it disallow ripping from CD-Rs, and this would be an awesome feature to see in action.
How???????? Please explain because I'm all ears on this one.
As for your feature request, to be honest consider it at very very low priority. I have a Lite-On with no problems.
Sounds like you have a problem drive, a dodgy firmware (try a newer one or a "hacked" firmware) or an incorrect ASPI layer.
Older CD's don't have CD-Text so would fail. Believe me, if there was a way to distinguish audio CDR's from audio CD's somebody would have done it already.
FLAC_In_Hell: There are ways to distinguish CD-Rs from CD-ROMs. Have you ever used the Disc Info feature in Nero? It can always tell you whether the medium is recordable or not. But I think this only works on CD-RW (or DVD-RW) drives. Also, think for a moment about how game copy protections work. They can tell the difference between a CD-R and a CD-ROM by using something called ATAPI (IIRC).
There are ways to figure out if the original is a CD-R. I'm not an expert so I don't know how to do it exactly...but I'm sure you'll figure it out.
Anyway, great idea! I look forward to your program.
Hmm...I forgot to add...but maybe you can auto-fetch the read offset from accuraterip too?
ImgBurn can tell the difference between a CD-R and a CD-ROM that I have inserted in my (writeable) drive. I have no idea how to do it programatically, but what ec was describing is essentially what I was talking about.
Well, this feature is way-down on the list. Things are going very nicely by the way, so expect something soon.
I don't have the time to look but if someone can find some specs/code on how to detect this I'm very interested - as I said I still don't think it can be done.
I am aware that a virgin (unburned) CDR will of course be detectable as well as one that has not had it's session close. CDRW should of course be detectable too.
People extracting from example Alcohol 120% image files will be noticed because I will be timing rip start time/end time.
I am considering having a user tickable flag - Source: Original or Backup.
Before you all go crazy most sites would obviously not accept those ticked as "from Backup". Some do however and it's a useful way of getting acceptance of the tool, which is a good start.
However it's a useful clause if anyone who ticks "Orignal" and is subsquently found to have uploaded a CDR to get a serious ass-kicking :D
I personally have no problem with people uploading whatever they like to some places, AS LONG AS THEY ARE HONEST.
Myself, well I wouldn't download a known CDR rip, nor one without logs/cues.
@ec461, regarding Accurip.
Once it's off the ground what I am considering is an internal database of offset codes - probablt sourced from places like Accurip in addition to you lot.
Would be useful to hold the info for a few other features such as Big Endian Order / Swap Channels so it really is a "no setup required" affair for the non-techie user.
If your drive is not detected, well you'll have to wait - maybe you can get issued with a special code or something to continue with the rip. A few trusted people would be able to issue these.
What would be great is to setup some sort of system of trust, at the moment the only person I trust is me (that's harsh, but 99.999% is not 100%....sorry!).
If I make some "Audio DNA" (read the spec) of some of my CD's....and then dbcalo for example does the same and it matches....I trust him.... you rip some CDs that matches his.... he trusts you, therefore I trust you.
Keep thinking, keep throwing down ideas because at this stage of the coding this is the best time to implement them or allow for them in the future.
I'll be releasing the alpha in I think 1 or 2 days, and also the AudioDNA spec (which will not be implemented until fully discussed).
Very good idea. People are too damn lazy to configure EAC. With this they have no excuse, and the rest of us don't suffer from bad rips.
Best of luck!
@Whatizname
At a guess I'd say it ignores leading digital silence (null values) at both the start and end of the wav.
Which means on studio albums, even with a bad offset they should match up.
On a live album they wouldn't.
I'll be doing something similar, but with CRC32's and Fingerprints - and keeping the original full-stream ones too of course.
The no-use-null-samples one will just be a tip if someones drive is badly offset.
How are you determining your CRC results?
By running a CRC-checker utility on the WAV file?
It won't work, because you are picking up the WAV header too in your CRC check.
I've got code that does a CRC on a WAV file (skipping the header) and it does match with what EAC produces - so don't worry.
A bit of a hold up, because I'm trying to add more things - also I forgot that it's not really the done thing to be coding on New Years Eve/Day :D
Right now I'm heavily into ASPI/SCSI programming (for the first time) and anyone who'e ever seen the specs will appreciate just how hard this shit is, and how just being able to get the drive to spin for the first time by sending SCSI commands at 3am in the morning is enough to make you open a bottle of beer !!
I've noticed a few features lacking in EAC (the info cannot be grabbed from its memory) so before it rips I wanna get a hold of the CD Drive and read the TOC and other such stuff - and even attempt the enigma of detecting pre-emphasis when it is NOT stored in the TOC, and only in the subchannels.
Basically I'm only going to use EAC to detect pre-gaps in the TOC and then secure rip.
Now it's bloody hard work SCSI/ATAPI programming but I want to attempt this stuff first as it determines just where I can go with this project.
Wow, lots of impressive writing, specs, etc. If you are able to back all of that up with halfway working code, I'd be impressed. And would be willing to beta-test it.
I especially like the human-readable, but tampering-resistant logs (as dbcalo already pointed out). However if you indeed to "dirty stuff" like e.g. accessing the EAC allocated memory, would that also work with different EAC versions or only one special EAC version?
About CD-R(W): CD/DVD writers (not ROMs!) can read the ATIP. "cdrecord -atip" (opensource) e.g. should be interesting to read. This is also the way how Nero and others show what CD-type is in the drive.
About pre-Emphasis in subchannels (not TOC) as seen on some Japanese classic CDs, mainly Denon: "cdda2wav" (opensource) is IMHO the only tool to detect that properly, with switch -T it de-emphasizes those, otherwise it will change the TOC to show Pre-Emphasis.
cdrtools is opensource and platform independant, the sourcecode might give some hints on how to access optical drives with SCSI commands.
I guess we'll soon see whether your ambitions plans can work. This would indeed also help Pedro's community, since you have no problems with the people there, you'd probably appreciate a more widely use of your planned furiaa release.
Btw: your efforts seem much better spent on furiaa than on the blogs ;)
Just some addendum/ideas:
if you try to read the ATIP, it will fail on a CD/DVD ROM, so it might be a good idea to include that in the (tampering resistant) log "medium could not be verified". However it will work on a CD/DVD writer and you could then include "CD-R(W) medium" or "pressed medium" in the log.
I hope you find a good compromise between "even a trained monkey can use it" and a serious tool. There is an old saying "if you create a software any fool can use, only fools will use it". ;)
Great idea! Keep up the good work!
Post a Comment
<< Home