Digital-Inn
 
 

Go Back   Digital-Inn > EAC - Offizielles Support Forum > Exact Audio Copy - English

Exact Audio Copy - English Offizielles Support Forum - Englisch

Reply
 
Thread Tools Display Modes
Old 16-03-2004   #31
Bytemastr
Registered User
Mitwirkender Frischling
 

Join Date: Mar 2004
Location: Washington, DC
Posts: 25
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Quote:
Originally Posted by mantra
hi

To automate EAC :

-extract
-extractmp3


cu, Andre
What about a way to detect gaps and create cue sheets on the command line prior to ripping?

Actually, ultimately, being able to automate every part of EAC's functionality via scripting or some other similar facility would be nice, but I know that'd be a mammoth undertaking.
Bytemastr is offline   Reply With Quote
Sponsored Links
Old 16-03-2004   #32
staffcurtis
Registered User
Mitwirkender Frischling
 

Join Date: May 2002
Location: Raleigh, NC USA
Posts: 28
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
I appreciate everyones comments here...especially on the auto CDDB select which I will look into. Is there still any ideas on how to get EAC to open to the last CD drive it closed with? If I have more than one cdrom ripping songs with more than one instance of EAC, and I close them all, EAC will only open to the last drive that closed . Sorry to not be clear, but I would pay money to make this work.

Thanks
staffcurtis is offline   Reply With Quote
Old 17-03-2004   #33
oudalrich
Registered User
Member Deluxe
 

Join Date: Oct 2003
Location: Germany
Posts: 208
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Quote:
I am still working on this rip project that is ongoing. I can rip CD's, but I cannot have unattended rips. Is there any improvements in the command lines, or options to choose which CDROM automatically? Also, auto-selecting the album title info would be excellent. Thanks Andre for your help.
The most versatile tool for automation that I know of is AutoIt. It was very powerful when I last used it about two years ago, and it seems to have made great progress since then. It's not easy to use, but the download used to include a very extensive helpfile. Also, it's free (and open source).

EDIT:I guess auto-selecting the correct drive should be possible by doing something like this:
  • Make Windows pop up a window containing the drive letter somewhere (simple explorer window should do) every time a CD is inserted and extract the drive letter using AutoIt, storing it in a variable. Close the window.
  • Have AutoIt open EAC and select the correct drive. It would obviously need a table containing drive letters and adapter addresses for all your drives for this to work. This was not possible in the older versions of AutoIt AFAIK, but since the homepage mentions AutoIt now has a Basic-like structure, there should at least be 'if' statements.
  • The rest of the process just involves a few clicks and/or key presses depending on the displayed windows or window contents. This is easily done with AutoIt.
I would look into this myself if I had the time, I'm really keen to see AutoIt's new features. Maybe Saturday.

Last edited by oudalrich on 17-03-2004 at 12:17
oudalrich is offline   Reply With Quote
Old 17-03-2004   #34
Andre Wiethoff
E.A.C. Coder
Senior Member (Board-Inventar)
 
Andre Wiethoff's Avatar
 

Join Date: Sep 2000
Posts: 2.523
Abgegebene Danke: 0
Erhielt 12 Danke für 6 Beiträge
Changes :
-extract is now -extractwav

New :
-drive x Drive number 0-n, is selected on startup
-close Close EAC after extraction (batch mode)
-nocorrection CD-Text will be taken unchanged (for e.g. Multichar languages)
-usefua Experimental Plextor switch (don't use it!)

cu, Andre
Andre Wiethoff is offline   Reply With Quote
Old 17-03-2004   #35
bunker13
Registered User
Board-Frischling
 

Join Date: Mar 2004
Location: Sweden
Posts: 5
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Andre,

could you please consider adding a -closemp3 flag that closes EAC only after the compression queue is empty/finished? This'd be very useful for automated rips with subsequent compression.


EDIT: It seems I wa a bit hasty with this request, all I had to do to let it close after compression was to turn off the compression queue in the options... Sorry for bothering you.

Last edited by bunker13 on 19-03-2004 at 15:27
bunker13 is offline   Reply With Quote
Old 17-03-2004   #36
staffcurtis
Registered User
Mitwirkender Frischling
 

Join Date: May 2002
Location: Raleigh, NC USA
Posts: 28
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Thanks Andre and Oudalrich for all your help with me on this subject. The batch files that you have listed Andre may help. The only problem is that windows will not know which batch to use depending on which cdrom drive you insert the CD into. I can have a batch file for each CD drive, but windows can only open one batch file for all CD drives based on which type of CD is inside (for example audio CD's). Please correct me if I am wrong, and let me know if there is a way around this.

Thanks
staffcurtis is offline   Reply With Quote
Old 18-03-2004   #37
EAC Lover
Registered User
Junior Member
 
EAC Lover's Avatar
 

Join Date: Oct 2001
Location: earth
Posts: 77
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
AutoIt looks to be a GUI Job Control Language; if you can
master that you probably will not need to use any BAT files.
EAC Lover is offline   Reply With Quote
Old 18-03-2004   #38
staffcurtis
Registered User
Mitwirkender Frischling
 

Join Date: May 2002
Location: Raleigh, NC USA
Posts: 28
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
I will have to check that out. I just went out and bought 12 more external cdrom drives so I can copy more CD's. I would like this as automated as possible. If anyone has used this program with EAC and would like to throw out input, feel free to let me know. I still wonder if the program can select the appropriate cdrom in EAC based upon which drive you insert the CD into.

Thanks
staffcurtis is offline   Reply With Quote
Old 19-03-2004   #39
oudalrich
Registered User
Member Deluxe
 

Join Date: Oct 2003
Location: Germany
Posts: 208
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Quote:
I still wonder if the program can select the appropriate cdrom in EAC based upon which drive you insert the CD into.
It definitely can, but in a not so obvious way. I finally found the time to download it and have a look at the help file (a complete manual in fact), and it really is a great piece of software. It has everything you need:
  • A Run() function to start EAC
  • A MouseClick("button",x,y) function to do menu clicks
  • A MouseCoordMode option that you can set to 0 using AutoItSetOption(), meaning coordinates passed to MouseClick will be relative to the active window position
  • A Select Case structure you can use to pass different coordinates to MouseClick according to what drive EAC should use (or you could use a loop and do Send("{DOWN}") a few times after simulating a click on the drive selection dropdown menu).
The problem is to let AutoIt know which drive should be used. As I stated before, this could be achieved by making Windows start a specific program each time an audio CD is inserted - like Explorer or a CD player app - and extract the relevant information from this window. Explorer, for example, displays the drive letter in the title bar, from where it can be extracted using WinGetTitle() and some easy string processing. Then you close the application using WinClose() and start EAC.
Some time ago, my installation of W2k used to annoy me by opening an Explorer window each time I inserted an audio CD, and I'm sure the is a way to configure XP to do the same.
Your AutoIt script would always run in the background, waiting for Explorer (or something else) to be run by Windows' autoplay function. The AutoIt function for this is WinWait(), which works with window titles, classnames, and handles.

Edit:You should also take a look at the ControlCommand() and ControlSend() functions. They can operate controls (dropdowns etc) directly by their classname, so no need to simulate mouseclicks. Use AutoIt Window Spy (is included) to see the classnames.

Last edited by oudalrich on 19-03-2004 at 18:55
oudalrich is offline   Reply With Quote
Old 19-03-2004   #40
oudalrich
Registered User
Member Deluxe
 

Join Date: Oct 2003
Location: Germany
Posts: 208
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Another Edit: OMG, there is so much new stuff. Maybe there is no need for all this make-Windows-open-Explorer stuff. DriveGetDrive("CDROM") returns an array containing all CD drives. Maybe you could use AdlibEnable() and DriveStatus() to periodically check all drives for status changes. If the status of a drive changes from "NOTREADY" to "READY" and DriveGetFileSystem() returns "CDFS", EAC could be started and told to use this drive. Should be possible with just a few lines of code.

Oops, this wasn't supposed to be a seperate post.
oudalrich is offline   Reply With Quote
Old 20-03-2004   #41
oudalrich
Registered User
Member Deluxe
 

Join Date: Oct 2003
Location: Germany
Posts: 208
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Sorry for making this page so wide, but the script won't work with the carriage returns introduced by QUOTE.

Right, four hours ago I thought I'd take another look at the whole thing, and this is what I ended up with.
This AutoIt script does pretty much what you want, staffcurtis. It monitors your drives, and if a CD is inserted, it starts EAC with the respective -drive command and -close. It queries freedb, closes all windows that may pop up, starts extracting + compressing and minimizes EAC. It will remain active and do the same if another CD is inserted in another drive.
Please note that this thing is practically untested. It works with my setup and my system and my EAC config. But I've only tried a few CDs, I'm sure there are potential problems I haven't thought of.

You have to make the following changes to the EAC options:
General -> On unknown CDs... = OFF (unfortunately, I wasn't aware of this option until I finished the script...)
General -> Ask before overwriting files = OFF
Tools -> On extraction, start external compressors... = OFF (does not work properly with -close, unfortunately)
Tools -> Do not open external... = ON
Directories -> Use this directy = ON

If it doesn't work properly, maybe turning off 'Disable CD autostart' in the 'General' tab will help, but that's just a guess.

You also have to change the $driveNums and $eac variables in the script itself to match your setup. Good luck.

Code:
;EAC drive numbers, separated by commas, sorted by respective drive letters:
$driveNums = "0,1"

;EAC command with full path and options (excl. -drive and -close)
$eac = "D:\Programme\eac095pb5\EAC.exe"

;Interval for checking drives in milliseconds
$interval = 500


$driveNums = StringSplit( $driveNums, ",")
$drives = DriveGetDrive( "CDROM" )

Dim $currStatus[UBound($drives)]
Dim $lastStatus[UBound($drives)]

If $drives[0] <> $driveNums[0] Then
    MsgBox( 0, "Error", $driveNums[0] & " drive numbers, should be " & $drives[0] & "!")
    Exit
Endif

For $i = 1 to $drives[0]
    $currStatus[$i] = DriveGetFileSystem( $drives[$i] )
Next

While 1
    Do
        $status = getStatus()
        Sleep( $interval )
    Until $status <> "X"
    
    Run( $eac & " -close -drive " & $status )
    WinWaitActive( "Exact Audio Copy" )
    Send( "!g" )
    AdLibEnable( "freedb" )
    WinWaitActive( "Transfer" )
    WinWaitActive( "Exact Audio Copy" )
    Send( "!F5" )
    AdLibDisable()
    WinSetState( "Exact Audio Copy", "", @SW_MINIMIZE )
Wend

Func getStatus()
    $lastStatus = $currStatus
    For $i = 1 to $drives[0]
        $currStatus[$i] = DriveGetFileSystem( $drives[$i] )
        If $currStatus[$i] <> $lastStatus[$i] And $currStatus[$i] = "CDFS" Then Return $driveNums[$i]
    Next
    Return "X"
EndFunc

Func freedb()
    Select
        Case WinActive( "Warning", "All data of the current" )
            ControlClick( "Warning", "", "Button1" )
        Case WinActive( "Transfer", "Error" )
            ControlClick( "Transfer", "", "Button1" )
        Case WinActive( "Select CD" )
            ControlClick( "Select CD", "", "Button1" )

    EndSelect
EndFunc

Last edited by oudalrich on 20-03-2004 at 00:46
oudalrich is offline   Reply With Quote
Old 21-03-2004   #42
staffcurtis
Registered User
Mitwirkender Frischling
 

Join Date: May 2002
Location: Raleigh, NC USA
Posts: 28
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Thanks for all of your hard work on this. I am going to finally download it this weekend and try to get it all automated. I will update you on how well things turned out. A local officemax had 52x cendyne lightning cdwriters on sale for $20, so I bought 12 more. I am obsessed at getting this to work, and I probably wouldn't have gotten as far without your help.

Thanks
staffcurtis is offline   Reply With Quote
Old 23-03-2004   #43
bunker13
Registered User
Board-Frischling
 

Join Date: Mar 2004
Location: Sweden
Posts: 5
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Another solution but this time in Girder

Since I talked about how you might be able to use Girder for automating the CD-ripping to mp3 task by automatically selecting the first CDDB entry here is something I did today:

I think I've successfully created a Girder group that detects EAC start, checks if it is running automated (with the -extractmp3 or -extract parameter), waits for a possible CDDB pop-up and if one shows within 10 seconds, clicks ok in it. This should eliminate the CDDB selection problem. It will also only auto select CDDB entry if you are running it with automation.

I need one or more of you to test it so that it works since I for some reason don't get CDDB checks using -extractmp3 on my machine.

If it works I'll add an option to minimize EAC after this bit is complete so basically it will be visible for a few seconds where you may be able to see which CDDB entry was chosen, and then it is minimized.

Caveats:
This will propably not work if EAC is already running. It will keep Girder from recognizing any other events from when EAC start up for two seconds if not using automation and if you are automating for up to twelwe seconds. Feel free to change the time-outs though.

Important:
You need to have the TaskCreate plugin activated in Girder.

Import this group:
http://www.cj.se/htpc/EAC.GML

Last edited by bunker13 on 23-03-2004 at 18:23
bunker13 is offline   Reply With Quote
Old 24-03-2004   #44
Andre Wiethoff
E.A.C. Coder
Senior Member (Board-Inventar)
 
Andre Wiethoff's Avatar
 

Join Date: Sep 2000
Posts: 2.523
Abgegebene Danke: 0
Erhielt 12 Danke für 6 Beiträge
What about this:
Usually nobody will use a changer system for this, so probably there is a CD in each drive. Why not selecting all drives before starting the script, so freedb naming is performed (and probably the right entry selected). Afterwards, there is nothing that can happen to stop the extraction (of course, if there is no CD in a drive, EAC will not close without extraction!)

cu, Andre
Andre Wiethoff is offline   Reply With Quote
Old 24-03-2004   #45
bunker13
Registered User
Board-Frischling
 

Join Date: Mar 2004
Location: Sweden
Posts: 5
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Andre, I assume you refer to the AutoIT script.

For the Girder group, I've added to have it minimize EAC just after ripping starts if it was started with any of the -extract??? parameters. Just download it again.

It should be noted that I didn't think about multiple instances of EAC when I did the Girder group but I think it could work for that purpose anyway but it will not solve any of the multidrive problems discussed previously.
bunker13 is offline   Reply With Quote
Sponsored Links
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT +2. The time now is 15:52.


Powered by vBulletin® Version 3.7.4
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 2.4.0
Template-Modifikationen durch TMS
Advertisement System V2.5 By   Branden
Copyright by NightwoLF & Jesse69