12.03.2023 Was ist das hier? Hier habe ich eine alte Platte mit einem guten Dokumentenscanner (Epson Perfection V850 Pro) eingescannt und dann versucht, die akustischen Signale über Bildverarbeitung aus den Scans zu extrahieren. BTW, ich hab mit scanimage hantiert und das ging dann etwa so: scanimage --device="epson2:libusb:003:004" --source=Flatbed --mode=Gray --depth=8 --resolution=6400 -l 82 -x 60 -t 0 -y 100 --format=pnm --output-file=s_00.pnm --progress Die Werte für -l, -x, -t und -y wurden so gewählt, dass halt im oberen mittleren Bildbereich der mich interessierende Ausschnitt zu sehen ist. Zuerst hatte ich mit epsonscan2 hantiert aber das Ding ist ja dermaßen instabil (zumindest unter Linux) und 'mittelmäßig', bis ich dann kapiert hatte, dass das mit scanimage ja viel besser geht! Für die jpgs kam dann noch sowas: pnmtojpeg -quality=100 s_00.pnm > s_00.jpg Ich selber arbeite am liebsten mit dem netpbm-Format aber damit die Menschen im Browser auch was sehen, hab ich halt aus den pnms noch jpgs gemacht. Tatsächlich kann ich im Programm auch jpgs einlesen, falls kein pnm da sein sollte. scans: da sind 16 Originalscans der Platte enthalten. Die vielen Scans musste ich machen, weil die Rille nur dann gut rauskommt, wenn sie sozusagen waagrecht im Bild liegt. Das scheint mit der Aufnahmetechnik des Scanners zusammenzuhängen. Also habe ich 16 Scans bei verschiedenen Drehpositionen gemacht. platte01.c, platte01: Das ist das (Source-)Programm (und mein Binary), welches die 'Tonextraktion' macht. Ich arbeite unter Linux und wenns jemand nachvollziehen will, das Binary selber zu erzeugen, das geht dann so: Übersetzen mit: cc -o platte01 platte01.c -lgsl -lgslcblas -lm -Wall -O3 Ich arbeite mit der GSL (GNU Scientific Library), daher muss die installiert sein. Außerem hantiere ich gerne mit 'system(3)', um das eine oder andere (Kommandozeilen-)Programm aufzurufen. Es müssen daher auch folgende Sachen vorhanden sein: netpbm, sox, lame Es gibt ein #define DBG_FILES damit kann man steuern, ob etliche zusätzliche 'Degubfiles' angelegt werden sollen. Das sind dann vor allem einige 'Visualisierungen'. Man sieht dann, wo genau die Tonspuren vermutet/gefunden wurden etc.. Meine Sachen sind ziemlich 'RAM-intensiv'. Vielleicht hätte man auch noch ein bisschen mehr sparen können aber warum hab ich mir denn 128 GB in die Kiste gesteckt? Das 'Unglück' ist umso größer, weil ich zum Teil mit Threads hantiere. Ich versuche aber, bei wenig physikalischem RAM auch nur wenige Threads zu starten. Zum Nachvollziehen der Sachen muss man also einfach Folgendes machen: 1. Irgendwo im Filesystem das Direktorium 'scans' mit den 16 Scans anlegen 2. 'Genau neben' scans das Sourcefile platte01.c legen 3. Compilieren mit cc -o platte01 platte01.c -lgsl -lgslcblas -lm -Wall -O3 4. Programm starten etwa mit ./platte01 Das Programm versucht dann 16 'geeignete' Files im Direktorium 'scans' zu finden und es wird ein neues Direktorium 'scans_result' angelegt, in dem dann alle möglichen Ausgaben landen, u.a. ein riesiges log-File. Wenn man mit dem '#define DBG_FILES' arbeitet, sind durchaus bis um die 200 GB Plattenplatz nötig für die vielen Degubfiles! Es gibt dabei auch die eine oder andere Ausgabe auf stderr aber diese Ausgaben sind eher nur Warnungen oder Hinweise. Da liest man z.B. sowas wie 'search_rim: x out of range'. Hat mir lediglich als Hinweis darauf gedient, dass an diesen Stellen keine Suche (mehr) gemacht wird. Das Ganze ist eher so als 'Machbarkeitsstudie' gedacht und könnte sicher noch deutlich verbessert / verallgemeinert werden. Als Beispielplatte habe ich genommen: 'OOH - LA - LA' von State Record Limited von 1977 von den RUBETTES Nachdem das mit dieser Platte so einigermaßen funktioniert hatte, war die Idee, noch die eine oder andere weitere Platte zu verarbeiten. Dabei stellt sich aber heraus, dass die Scans zum Teil ein deutlich anderes Aussehen hatten und die vorhandene Software damit nicht ohne weiteres klar kommt. Ich habe es daher bei der einen Platte belassen. Ich erzeuge am Ende u.a. 4 Audiofiles für: mono, links, rechts und stereo. Bei stereo knisterts dann schon ein bisschen aber man hört durchaus noch was;-) Gerne hätte ich diese Audiofiles als 'Hörprobe' mit auf die Page getan aber ich bin mir da jetzt nicht so ganz sicher, inwieweit das dann rechtliche Probleme mit einer 'Musikdarbietung' heraufbeschwören würde. Ich habe da nämlich fast eine Odyssee hinter mich gebracht, nur um die rechtliche Lage zu ergründen und bin am Ende doch nicht so ganz schlau geworden. Zuerst hatte ich mich an die 'Rubettes' gewandt. Ja, die scheinen immer noch aktiv und erreichbar zu sein. Siehe dazu rubettes.txt. Nachdem ich dort aber erfahren hatte, dass da jetzt eher Universal Music zuständig ist, habe ich micht dort gemeldet: universal_music.txt. Dort habe ich schließlich erfahren, dass ich mich an die GEMA wenden sollte: gema.txt. Deren Text habe ich nun so verstanden / interpretiert, dass sie sich nur für MP3-Files interessieren würden und dass sie nicht zuständig sind für andere Dinge, die ich veröffentliche. Insbesondere mein Computerprogramm oder auch die (hochauflösenden) Scans der Platte sollte ich also auf meine Page tun können. So jedenfalls mein Verständnis. Ist natürlich schade aber vielleicht spornt das dann tatsächlich irgend jemand an, das Programm selber laufen zu lassen mit meinen Scans, um endlich an die MP3s zu kommen;-)