Küsimus:
Aidake tarkvara Pioneers Rekordbox EDB andmebaasifaili ümber pöörata
Evan Purkhiser
2014-05-11 17:21:30 UTC
view on stackexchange narkive permalink

Pioneeride Rekordbox tarkvara on DJ-de jaoks mõeldud muusikahalduse tööriist. Selle üks omadusi on muusikafailide tuvastamine BPM-is. Kahjuks ei kirjuta see seda teavet failide ID3 siltide BPM-i kaadrisse ja hoiab tuvastatud BPM-i enda andmebaasifailides.

Kirjutan CLI-tööriista, mis aitab mul oma muusika ja üks asi, mida ma tahaksin teha, on BPM-i andmete väljavõtmine iga loo rekordboxi andmebaasist.

Nagu Guntram Blohm osutas, pole BPM-i peaaegu kindlasti kahte salvestatud. ANLZ-failid. Selle asemel näib see olevat salvestatud faili Rekordbox 'database.edb'. Olen siia üles laadinud edb-faili näite [1], mis sisaldab ühte rada BPM-ga '170'.

Selle foorumilõigu [2] kohaselt pole edb-vorming ei avatud vormingus.


Pärast veidi rohkem uurimist näib, et see on varustatud suure jõudlusega SQL-i andmebaas, mis on mõeldud manustatud rakendustes kasutamiseks. (Pärast VEEL ROHKEM uuringuid on andmebaasi nimeks „DeviceSQL” . Selle kohta lugege algsete autorite Quora postitust). Tundub, et see pole midagi, mida oleks lihtne tagasi pöörata :(

Kõigile teistele, kes soovivad BPM-i teavet oma rekordkasti teegist välja võtta: Selgub, et saate kasutada XML-i eksporti. Kuigi see pole nii automatiseeritud kui lihtsalt andmebaasifaili lugemine, on see kena standardvorming!


Vana küsimus: tundub, et igal rajal on andmebaasis kaks faili (andmebaas on lihtsalt nende failide kataloogipuu) selle jaoks. Siin on näidisraja [4] failipaar. Raja jaoks tuvastati BPM 170-ga, kuigi ma kahtlustan, et see salvestab seda ujuva punktina või topelt, kuna mõned muud rajad on tuvastatavad numbritega nagu "169,96". Kuigi topelt- ja ujukomaheksandi kujutiste otsimine ei andnud mulle ühtegi vastet.

Ma näen, et failidel on päised, näiteks "PPTH", millele järgneb faili tee. ja "PQTZ" Rekordboxi kvantimisfunktsiooni jaoks. Kuid ma pole failivormingutega liiga tuttav, nii et ma ei saa öelda, kas see kasutab standardset failitüüpi. Või midagi omandiõiguslikumat.

Kui keegi on huvitatud failidest üle vaatama ja mind õiges suunas näitama, oleks see väga teretulnud! Praegu proovin lihtsalt välja selgitada, kuidas BPM salvestatakse.


Kuna mul pole veel piisavalt mainet, ei saanud ma enam kui ühte linki :( Siin on lingid ülaltoodud sulgudes olevate viidete jaoks: https://gist.github.com/EvanPurkhiser/72b37edd4a6ea26fbe73

Kolm vastused:
CodeKiller
2014-07-18 17:05:52 UTC
view on stackexchange narkive permalink

Täpsed BPM-id on tegelikult andmefailides (failinimi). DAT (võib üldine BPM-i olla edb-s ... aga ma ei saa seda kinnitada) Nii et ma olen mõlemad RekordBoxi loodud andmefailid tühistanud:

 fail.DAT -------- / numbrid on kõik suured endianid / [silt] - 4 baiti string4baiti - sildi päise suurus 4baiti - segmendi suurus (sh sildi päis) (mitmebitilistel väljadel, msb-to- lsb (vasakult paremale) on üldine suund) //////////////////////////////// PMAI - põhifaili kirjeldaja4baiti - pea suurus (28) 4 baiti - faili kogu suurus 4 baiti - ??? (1) 4baiti - ??? (65536) 4baiti - ??? (65536) 4baiti - ??? (0) PPTH - faili tee 4 baiti - pea suurus (16) 4 baiti - sildi suurus 4 baiti - andmete pikkusandmete_baiti - faili tee UTF16-s (suur endian) \ 0 lõpetatud 4 * 400 + 4) 4 baiti - 0> kirjed> 4 baiti - faili pos> last_entry> 4 baiti - ??? PQTZ - kvantiseeritud ajavööndid4 baiti - pea suurus (24) 4 baiti - sildi suurus4 baiti - 04 baiti - ??? (524288 = 0x80000) 4 baiti - kirjete arv> kirjed> 2 baiti - taktifaas (1-2-3-4) 2baiti - bpm * 100 4baiti - ajaindeks (msek) PWAV - madala eraldusvõimega laine kuvaandmed (5 + 3bit) 4baiti - pea suurus (20) 4baiti - sildi suurus (420) 4baiti - andmesuurus (400) 4baiti - ??? (65536)> kirjed> 3-bitine - värviindeks 5-bitine - kõrgus PWV2 - madalaima eraldusvõimega laineekraaniandmed (4-bitine) 4-baiti - pea suurus (20) 4-baiti - sildi suurus (120) 4-baiti - andmesuurus (100) 4-baiti - ??? (65536)> kirjed> 4bit - 0 4bit - heightPCOB - CUE Object /// esimene PCOB kuumade signaalide jaoks, teine ​​PCOB mälu jaoks /// genereeritud ainult USB-mälu jaoks, /// sisaldab muul juhul ainult näivaid andmeid ja tegelikke salvestatud kii andmeid edb-s 4 baiti - pea suurus (24) 4 baiti - sildi suurus 4 baiti - hotCUE? (1 = kuum signaal, 0 = mälu) 4 baiti - märgistepunktide arv 4 baiti - mälud (-1 = kuum signaal)> sisestusmärgendid> PCPT - CUE punkt 4 baiti - pea suurus (28) 4 baiti - sildi suurus (56)
4-baitine - kuum signaal nr #, 0 muidu 4-baidine - aktiivne (0 = passiivne / 4 = aktiivne) 4-baidine - (65536) 4-baitine - ???? ----- punkti tüüp: 0xffff ffff = kuum vihje //// mälu kõigepealt: 0xffff xxxxx ----- mälu viimane: 0x xxxx ffff> andmed> 1 baiti - kii tüüp 1 = üksik / 2 = silmus 1 baiti - 0 2baiti - ??? (1000) 4 baiti - algusaeg (msek) 4 baiti - tsükli lõpp (-1, kui seda ei kasutata) 16 baiti - 0 fail.EXT -------- PMAI - põhifaili kirjeldaja4 baiti - pea suurus (28) 4 baiti - faili kogu suurus4 baiti - ??? (1) 4baiti - ??? (65536) 4baiti - ??? (65536) 4baiti - ??? (0) PPTH - faili tee 4 baiti - pea suurus (16) 4 baiti - sildi suurus 4 baiti - andmete pikkusandmete_baiti - faili tee UTF16-s (suur endian) \ 0 lõpetatudPWV3 - kõrge eraldusvõimega laine kuvamise andmed4-baiti - pea suurus (24) 4-baiti - märgendi suurus4baiti -? ?? (1) 4 baiti - andme suurus 4 baiti - ??? (0x0096 0000)> kirjed> 3-bitine - 5-bitine - kõrgus 

Tagurdamise ajal ei olnud failides ühtegi PKEY-d, nii et ma ei tea, milleks see on mõeldud (ja näib, et mul on ainult 0 selles arvutis)

Nii et BPM-i väärtused salvestatakse PQTZ-märgendisse (dünaamilises režiimis võivad sama loo ajal olla erinevad BPM-id, nii et see on mõttekas)

Guntram Blohm supports Monica
2014-05-11 20:41:07 UTC
view on stackexchange narkive permalink

Tundub, et failivorming koosneb nagu päised, millel on silt. Kõik need päised näivad olevat üle 16-baidised, sildi jaoks on 4 baiti, päise pikkuseks 4, päise + andmete suuruseks 4 ja 4 baiti, milles ma pole kindel. Kahjuks on need pikkusbaidid big endian , mis pani mind mõtlema, et bpm võiks salvestada ka suurtesse endian IEEE floatidesse, mis võib olla põhjus, miks te midagi ei leidnud.

Esimene päis, PMAI. näib olevat mingisugune ümbrik (selle pikkuse väli on faili enda suurus), ülejäänud päised tunduvad mitmesuguste andmesisu vormidega.

Kirjutasin jaotiste nimede tühjendamiseks väikese programmi ja pikkused (palun ärge kasutage seda hea stiili näiteks!):

  #include <stdio.h> #include <arpa / inet.h> int main (int argc, char ** argv ) {analüüsima (argv [1]); } int analüüs (char * failinimi) {FILE * fp; struct {char tag [4]; int x0; int x1; int x2; } päis; int pikkus; if ((fp = fopen (failinimi, "rb")) == NULL) {perror (failinimi); tagasi; } while (fread (&header, päise suurus, 1, fp)) {päis.x0 = ntohl (päis.x0); päis.x1 = ntohl (päis.x1); päis.x2 = ntohl (päis.x2); printf ("% 04x% 4.4s:% 08x (% 06d) |% 08x (% 06d) |% 08x (% 06d) \ n", ftell (fp) -sizeof (päis), header.tag, header.x0 , päis.x0, päis.x1, päis.x1, päis.x2, päis.x2); if (! memcmp (header.tag, "PMAI", 4)) {// välise konteineri pikkus = header.x0; // jäta lihtsalt päis vahele
} else if (! memcmp (päis.tag, "PPTH", 4)) {int i; jaoks (i = 0; i<header.x2; i + = 2) {getc (fp); putšar (getc (fp)); } putchar ('\ n'); jätkata; } else {pikkus = päis.x1; // else jäta andmed vahele} fseek (fp, length-sizeof (päis), 1); }}  

mis annab järgmise väljundi:

  $ ./sections ANLZ0000.DAT 0000 PMAI: 0000001c (000028) | 000028fc (010492) | 00000001 (000001) 001c PPTH: 00000010 (000016) | 00000100 (000256) | 000000f0 (000240) E: \ muusika \ 247 Hardcore \ [+ singlid] \ [247HC055] [12B] Al Storm Ft. Malaya - alati öeldakse hüvasti (Technikore Remix) .mp3 011c PVBR: 00000010 (000016) | 00000654 (001620) | 00000000 (000000) 0770 PQTZ: 00000018 (000024) | 00001f40 (008000) | 00000000 (000000) 26b0 PWAV: 00000014 (000020) | 000001a4 (000420) | 00000190 (000400) 2854 PWV2: 00000014 (000020) | 00000078 (000120) | 00000064 (000100) 28cc PCOB: 00000018 (000024) | 00000018 (000024) | 00000001 (000001) 28e4 PCOB: 00000018 (000024) | 00000018 (000024) | 00000000 (000000) $ ./sektsioonid ANLZ0000.EXT 0000 PMAI: 0000001c (000028) | 0000cf56 (053078) | 00000001 (000001) 001c PPTH: 00000010 (000016) | 00000100 (000256) | 000000f0 (000240) E: \ muusika \ 247 Hardcore \ [+ singlid] \ [247HC055] [12B] Al Storm Ft. Malaya - alati öeldakse hüvasti (Technikore Remix) .mp3 011c PWV3: 00000018 (000024) | 0000ce26 (052774) | 00000001 (000001) cf42 PKEY: 00000014 (000020) | 00000014 (000020) | 0000000c (000012)  

Nii et PMAI on konteiner. PPTH on MP3-faili nimi. PVBR on tõenäoliselt teave muutuva bitikiiruse, PQTZ kvantiseerimise ning PWAV, PWV2 ja PWV3 erinevate lainevormide kohta. Mis jätab bittikiirust sisaldama ainult PCOB ja PKEY. Kahjuks, kui vaadata nende heksakuhjatist:

  000028c0 xx xx xx xx xx xx xx xx xx xx xx xx 50 43 4f 42 ........... .PCOB 000028d0 00 00 00 18 00 00 00 18 00 00 00 01 00 00 00 00 ................ 000028e0 ff ff ff ff 50 43 4f 42 00 00 00 18 00 00 00 18 .... PCOB ........ 000028f0 00 00 00 00 00 00 00 00 00 ff ff ff ff ............ 0000cf40 xx xx 50 4b 45 59 00 00 00 14 00 00 00 14 00 00 ..PKEY .......... 0000cf50 00 0c 00 00 00 00  

tundub, et PCOB sisaldab 00 00 00 00 ff ff ff ff ja PKEY-l on 00 00 00 00. Ükski neist ei näi tähendavat 170.

See artikkel ütleb: „Kui rekordbox jookseb käivitamisel kokku, siis nimetage andmebaas.backup.edb ümber to database.edb, kui see ikka veel kokku jookseb, eemaldage kõik andmefailid '. Kuna BPM ei tundu olevat ANLZ. * Failides salvestatud - kas teil on ka andmebaas.edb? Kas BPM-i võiks sinna salvestada?

Aitäh! Tunnen end pisut rumalana, kui ei mõista, et seda võiks kuhugi mujale salvestada. Tarkvara võimaldab teil määrata tee, kuhu ta peaks analüüsitud andmeid salvestama, kuid kleebib selle edb-faili alati kasutajate AppDatasse. Igatahes näeb edb-fail välja nagu see oleks fail, mis sisaldab BPM-i, nagu ma näen (mis näeb väljadefinitsioonina välja) nimega "BPM". [Siin on edb-fail] (https://docs.google.com/file/d/0B2TT08R8boDIS2V4WjJfWVZSN3c/edit). Veidi uurides näib, et laiendust kasutatakse tavaliselt MS Outlooksi "Exchange Databse" faili jaoks, kuid see tundub rumal.
[Selle kohaselt] (http://forums-archive.pioneerdj.com/eve/forums/a/tpc/f/240103214/m/7560086126) ei ole edb-fail avatud vormingus.
Vau, Evan, me oleme kaugelt jõudnud sellest ajast, kui te seda küsisite (ma ei mõistnud, et just teie olete selle küsimuse esitanud - mida ma nägin düsenteeriani viinud uuringute alustamisel -, kui teilt esimest korda kuulsin ). Traadiprotokoll on meil üsna hästi välja mõeldud ja suudame need andmed otse Pioneeri riistvarast võrgu kaudu koguda; üksikasjad on üles kirjutatud aadressil https://github.com/brunchboy/dysentery/blob/master/doc/Analysis.pdf, kuid mulle meeldiks ikkagi, kui saaksin teha võrguühenduseta analüüsi pöidla kettal asuvatest failidest. Vaja on vaid kedagi, kes saaks metaandmete jaoks välja selgitada edb-failid. Kas on lootust?
Tere, James, tahaksin aidata, kuna olen juba alustanud tagasikäiku, kuid loobunud aja ja motivatsiooni puudumise tõttu. Nagu te võib-olla teate, on EDB andmebaasivorming (deviceSQL), mis oli proovimiseks juba ammu saadaval, kuid enam pole (pole kuskilt programmi leidnud). Enamik metaandmetest on failides.DAT ja file.EXT, nagu eespool kirjeldatud. Kõik minu uurimused on täiesti musta kastiga, nii et täiesti seaduslikud (AFAIK).
See oleks fantastiline! Praegu peavad saateid korraldavad inimesed, kes soovivad töötada metaandmete ja kõigi CDJ-de komplektiga, koguma CDJ-lt aeglaselt kõik metaandmed võrgu kaudu, enne kui DJ-d samale meediumile kõik CDJ-d lisavad. Võimalus lugeda seda otse mälupulgalt enne saadet oleks suureks abiks.
Tere, @CodeKiller - mõistan seda vastust, kui olen 3-aastane, nii et ma ei eelda, et kogu teave on endiselt asjakohane. Püüan teha midagi sarnast, nagu ainult OP. Mind huvitab Rekordboxis esitusloendi andmete avamine. Kas teil on mõtteid selle kohta, millisel failil see on ja milline oleks parim viis seda lugeda?
@Yevgeny Simkin otsige üles uue Rekordbox v6 https://github.com/Deep-Symmetry/crate-digger ja sellega seotud projektid: https://rekord.cloud/blog/technical-inspection-of-rekordbox-6-and -see-uus-sisemine
AilisuywzlCMT aitäh!
Ferruccio
2015-02-13 18:19:49 UTC
view on stackexchange narkive permalink

EDB-vormingut kasutab Microsofti laiendatav salvestusmootor (ESE) paljude rakenduste ja teenuste (Exchange, Active Directory, töölauaotsing, Windows Live Mail jne) salvestusruumi tagamiseks

Kuigi EDB-vormingut ennast ei dokumenteerita, on see Windowsi API kaudu hästi toetatud.

EDB-faili sisule pääseb juurde ka libesedb kaudu.

Kui soovite vaid vaadata EDB-faili sisu inimesele loetaval viisil, on tööriist EseDbViewer väga hea.

Tere - ma saan sellest vastusest aru, kui olen 5-aastane, nii et ma ei eelda, et kogu teave on endiselt asjakohane. Püüan teha midagi sarnast, nagu ainult OP. Mind huvitab Rekordboxis esitusloendi andmete avamine. Kas teil on mõtteid selle kohta, millisel failil see on ja milline oleks parim viis seda lugeda?


See küsimus ja vastus tõlgiti automaatselt inglise keelest.Algne sisu on saadaval stackexchange-is, mida täname cc by-sa 3.0-litsentsi eest, mille all seda levitatakse.
Loading...