daten von audio cd lesen ...



  • hmm, hier für interessierte schon mal die "*.cda entschlüsselung"

    CDA music tracks file format
      by Wojtek Kaniewski 1997
    
      Note: Everything in this file is based on my own investigations.
            All information that you'll find in this text file do not
            come from Microsoft Corp.
    
      CDA files are generally RIFF resources. The RIFF id of .CDA file is
      "CDDA" (43h, 44h, 44h, 41h). They contain only one data block
      called "fmt " (66h, 6dh, 74h, 20h). In current version of .CDA file,
      this block is 24 bytes long. Here's structure of it:
    
         Offset  Length  Description
         00h     02h     CDA file version. Currently equals 1. If it has
                         other value, following data may be out of date.
         02h     02h     Number of track.
         04h     04h     CD disc serial number (the one stored in CDPLAYER.INI)
         08h     04h     Beginning of the track in HSG format.
         0Ch     04h     Length of the track in HSG format.
         10h     04h     Beginning of the track in Red-Book format.
         14h     04h     Length of the track in Red-Book format.
    
      As you see, time is represented in two formats: HSG and Red-Book.
      HSG can be calculated as following: 
    
        time = minute * 4500 + second * 75 + frame
    
      Red-book is much easier to use, because it contains minutes,
      seconds and frames in unmodified form, byte-packed:
    
         Offset  Length  Description
         00h     01h     Frame
         01h     01h     Second
         02h     01h     Minute
         03h     01h     not used
    
      Now, I'll show you an example file. First part is a hex dump
      of the file, the second is the explanation of the fields.
    
         52 49 46 46 24 00 00 00  43 44 44 41 66 6D 74 20  RIFF$...CDDAfmt 
         18 00 00 00 01 00 04 00  B8 24 F6 00 F7 11 01 00  .........$......
         B4 5C 00 00 0A 25 0F 00  20 10 05 00              .\...%.. ...
    
         01 00       - first version of CDA file :)
         04 00       - fourth track
         B8 24 F6 00 - serial number of CD in CDPLAYER.INI is [F623B8]
    
         F7 11 01 00 - begining of track in HSG format
         B4 5C 00 00 - length of track in HSG format
    
         0A 25 0F 00 - begining of track in Red-Book format (15:37)
         20 10 05 00 - length of track in Red-book format (05:16)
    
      That's all. It should be enough to write CDA Viewer :) If you need more
      info or something isn't clear, feel free to write.
    

    ansonsten bin ich immer noch an weiteren tipps interessiert 🙂

    rocknix ///



  • ein weiterer mehr oder weniger erfolgreicher versuch ...

    unsigned char data[16384];
    DWORD dwRead = 0;
    DWORD dwError = 0;
    
    HANDLE hFile = CreateFile(  "//./O:", GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, 
                                    NULL, OPEN_EXISTING, NULL, NULL);
    
    ReadFile( hFile, (void*) &data[0], 16384, &dwRead, NULL);
    
    DWORD dwError = GetLastError();
    
    CloseHandle(hFile);
    

    funktioniert bei einer normalen CD-ROM einwandfrei bei einer Audio CD gibts als error eine 87 (INVALID PARAMETER) nach dem ReadFile() call zurück ...

    hat jemand eine idee, welcher parameter und warum ?

    rocknix ////

    [ Dieser Beitrag wurde am 10.01.2003 um 14:14 Uhr von RockNix editiert. ]



  • Der Parameter ist bestimmt ein ungültiges File Handle. 🙂



  • nein, CreateFile() liefert einen gültigen HANDLE zurück ...

    rocknix ///





  • Um dir das Suchen noch ein bisschen zu vereinfachen: "Playing a Compact Disc Track" ([url] http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/mci_45d7.asp [/url]).

    Die Infos aus den CDA-Dateien brauchst du überhaupt nicht, die Länge und Startposition der Tracks kannst du viel einfacher über MCI-Commands bekommen.



  • vielen dank erstmal ...

    MCI fällt aber doch aus, da ich keinen zugriff auf die daten habe, da diese doch direkt vom cd-rom zur soundkarte übertragen werden.

    oder irre ich mich da ?

    rocknix ////



  • Sorry, ich dachte, du willst die Dateien nur abspielen. 🙄
    Wenn du an die Daten der Tracks rankommen willst, musst du IMHO mit Low Level Multimedia Funktionen arbeiten.
    Bei Codeguru gibt's den Source Code von einem CD-Ripper zum downloaden. Hab mir den Code nicht angeguckt, aber vielleicht ist es ja was für dich:
    [url] http://codeguru.earthweb.com/multimedia/MusicRip.html [/url]

    [ Dieser Beitrag wurde am 11.01.2003 um 14:41 Uhr von macphistox2002 editiert. ]



  • werde mal reinschauen ... vielleicht ist es das, was ich suche.

    vielen dank erstmal für die hilfe

    rocknix ///



  • hmm, da hat sich der autor bei code-guru wohl ein wenig weit aus dem fenster gelehnt ... siehe auch die kommentare 🙄

    leider handelt es sich hier nicht um einen echten ripper sondern die sounds werden über waveOut gespielt und dann direkt wieder über waveIn recorded ...

    schade, hörte sich soooo vielversprechend an

    und weiter gehts ...rocknix ///



  • aloa RockNix ...

    [url] http://akrip.sourceforge.net [/url]

    da solltest den quellcode von deinem der besten ripper finden den ich kenne.
    vielleicht hilft dir das weiter

    Deadman



  • superlink - hat auf jeden fall schon mal etwas licht ins dunkel gebracht 🙂

    heissen dank ... rocknix ///



  • also die lösung scheint die WNASPI32.DLL zu sein, aber ...

    scheinbar gibt es unter 9x/nt verschiedene versionen (logisch), die aber auch frei benannt werden können 😕 ...

    weiss jemand, ob es da einen key in der registry gibt, wo der name der aspi-support-dll eingetragen ist ?

    rocknix ///


Anmelden zum Antworten