This page in english:
NEU: besuche meine Frage und Antwort-Seite !!
(Antworten zu Fragen über Hardware/Software und das dahinter stehende System...(bisher nur in Englisch)
Es ist absolut einfach, mit einem MD-recorder Musik aufzunehmen. Man kann eine komplette CD überspielen, oder einfach mit Winamp eine Playliste abspielen.
Bisher habe ich direkt vom digitalen Ausgang meines Toshiba-CDROM Laufwerks zum MD-recorder überspielt. Dazu habe ich einen optischen SPDIF-Sender (TOTX173) an den CDROM Ausgang angeschlossen, und konnte direkt optisch aufnehmen. Besonders angenehm war, daß das CDROM zwischen jedem Titel den Datenstrom sehr kurz unterbrach, was der MD-Recorder als Track-Marker interpretierte. Somit hatte ich schon immer automatische Track-Marker.
Seit längerem habe ich meine CD-Sammlung mit CDex auf dem PC abgelegt, und benutze den Winamp, um meine MD's zu erstellen. Dabei mußte ich feststellen, daß keine Track-Marker gesetzt werden. Als Ursache wurde sehr schnell der SPDIF-Ausgang der SBLive-VALUE festgemacht. Während Pausen oder anderweitiger 'Nichtbenutzung' wird auf dem Ausgang der SBlive-VALUE weiterhin ein kontinuierliches Signal gesendet, was dazu führt, daß keine Track-Marker gesetzt werden. Somit mußte eine Lösung dafür her.
Es sind vier (anscheinend gleichwertige) digiale SPDIF-Ausgänge auf der SBLive-Value vorhanden:
Um den richtigen Kontakt des 12-poligen Steckverbinders auf der SBlive-Value zu finden, siehe das folgende Bild (Pin-Zuordnungs Tabelle):
Ich verwende den optischen Sender von Toshiba - den TOTX173. Dieses Bauteil kann bei mehreren Elektronik-Versendern und Elektronik-Läden gekauft werden...
Nun kommen wir zum Schaltplan. Das Steuersignal (CONTROL) wird von der seriellen Schnittstelle genommen, weil sich das am einfachsten programmieren ließ. Außerdem ist bei fast jedem PC eine serielle Schnittstelle vorhanden und oft auch unbenutzt. Das CONTROL-Signal muß an den TTL-Pegel des 74HC08 angepaßt werden, dazu dienen der Vorwiderstand und die Diode.
Die Eingänge der unbenutzten Gatter des 74HC08 müssen auf definiertes Potential gelegt werden, das kann gegebenfalls auch mittels eines 100Ohm-Widerstandes nach VCC oder GND erfolgen. Nicht zu vergessen - die Abblockkondensatoren für das IC !
Das zur Steuerung des SPDIF-Datenstroms verwendete CONTROL-Signal wird aus dem Signal DTR (Data Terminal Ready) gewonnen. Hier ein kleiner Überblick über die Pinbelegung des 9-pin und 25-pin SUB-D serial port Steckverbinders:
Name 25-pin 9-pin --------------------------------------------------------- TxD 2 3 transmit data RxD 3 2 receive data RTS 4 7 request to send (here: power source) CTS 5 8 clear to send DSR 6 6 data set ready GND 7 5 ground DCD 8 1 data carrier detect (here: signal line) DTR 20 4 data terminal ready
Auf der Winamp-Homepage existiert eine Developer-site, dort ist die Programmierung mit C/C++ erläutert. Deswegen will ich nur auf die wichtigsten verwendeten Funktionen verweisen, das von mir geschriebene Programm ist unter der GPL (GNU Public License) frei verfügbar - d.h. jeder kann das Programm weiterverändern. Ich würde mich über jede Verbesserung der Software freuen, und das verbesserte Programm hier präsentieren.
Zuerst muß die WINAMP-Applikation gesucht werden:
HWND hwnd_winamp = FindWindow("Winamp v1.x",NULL);
Danach wird auf das Abspielen eines Titels gewartet:
IPC_ISPLAYING returns the status of playback. If it returns 1, it is playing. if it returns 3, it is paused, if it returns 0, it is not playing. int res = SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_ISPLAYING);
Mit dem nachfolgenden API 'taste' ich mich langsam an das Titel-Ende heran, um für ca 1msec..5msec den SPDIF-Datenstrom zu unterbrechen:
IPC_GETOUTPUTTIME returns the position in milliseconds of the current song (mode = 0), or the song length, in seconds (mode = 1). Returns -1 if not playing or error. int res = SendMessage(hwnd_winamp,WM_WA_IPC,mode,IPC_GETOUTPUTTIME);
Die Unterbrechungszeit von nur 1 msec ist nach meinen Erfahrungen völlig ausreichend und kann bis auf unendlich verlängert werden - solange kein SPDIF-Datenstrom am optischen Eingang des MD-Recorders anliegt, wird auch nicht aufgezeichnet - was sehr praktisch ist !
Das Programm (und die Sourcen) sind hier:
MD-Track Software (24kByte)