JKCLOAD Hilfe

JKCLOAD dient zum Einlesen von Computer-Kassettenaufnahmen einiger in der DDR üblichen Kleincomputer. Dabei kann sowohl direkt von einem Kassettenrekorder eingelesen werden als auch von einer vorher aufgenommenen Audio- bzw. Sounddatei (z.B. WAV-Datei).

lesen Sie bitte die Lizenzbestimmungen, bevor Sie JKCLOAD weiter verwenden!

Die Hilfe gliedert sich in folgende Rubriken:


1. Bedienung

Wählen Sie zuerst das Aufnahmeformat aus, mit dem die einzulesenden Kassettenaufnahmen erzeugt wurden (siehe Einstellungen weiter unten). Anschließend öffnen Sie entweder über das Menü Datei oder über die Schaltfläche mit den dei Punkten rechts oben eine Audioquelle (Audiokanal oder Audiodatei). Sobald die Audioquelle geöffnet ist, beginnt automatisch das Einlesen. Die eingelesenen Dateien werden im unteren Bereich des Fensters angezeigt. Von dort können sie gespeichert werden. Trat beim Einlesen ein Fehler auf, so wird dies angezeigt. Detailliertere Informationen zu etwaigen Fehlern finden Sie im Protokoll, welches Sie sich anzeigen lassen können.

Mit einem Klick auf die Schaltfläche Parameter... gelangen Sie in die Einleseparameter. Diese haben Einfluss auf den Einleseprozess. Wenn das Einlesen nicht fehlerfrei möglich war, können Sie die Parameter ändern (siehe weiter unten) und erneut versuchen, die Kassettenaufzeichnung einzulesen.

2. Einlesen direkt von einem Kassettenrekorder

Möchten Sie direkt von einem Kassettenrekorder oder einem anderen Audiogrerät einlesen, müssen Sie folgendes tun:
  1. Schließen Sie den Kassettenrekorder bzw. das Audiogerät an den Lini-In- oder Mikrofonanschluss ihres Computeres an.
  2. Sofern Sie am Kassettenrekorder den Kopfhöreranschluss verwenden, regeln Sie die Lautstärke soweit auf, dass das Tonsignal leicht bis deutlich übersteuert am Computer ankommt.
  3. Regeln Sie im Betriebssystem das betreffende Aufnahmegerät soweit auf, dass JKCLOAD ein lautes Tonsignal "hören" kann.
  4. Öffnen Sie im JKCLOAD über den entsprechende Menüeintrag einen Audiokanal zu dem betreffenden Gerät.
  5. Überprüfen Sie anhand der Pegelanzeige im JKCLOAD, ob das Tonsignal ankommt und ausreichend stark ist.

Achtung! Viele Notebooks sind mit einer kombinierten Audiobuchse ausgestattet, die sich aufgrund der Anschlussbelegung nicht gut für den Anschluss eines Kassettenrekorders eignet. In dem Fall ist es empfehlenswert, einen USB-Audioadapter zu verwenden.

Achtung! Das direkte Einlesen von einem Kassettenrekorder stellt besonders hohe Anforderungen an die gesamte Signalverarbeitung. Wenn das direkte Einlesen einfach nicht gelingen will, dann nehmen Sie die Kassettenaufzeichnung zuerst mit einem Audiorekorder auf, speichern die Aufzeichnung in eine WAV-Datei und öffnen dann die WAV-Datei im JKCLOAD.

3. Einlesen einer Audiodatei

Beim Einlesen einer Audio- bzw. Sounddatei können Sie diese auch mithören. Klicken Sie dazu auf das durchgestrichene Lautsprechersymbol neben der Fortschrittsanzeige. Mit dem Schieberegler rechts daneben regeln Sie die Lautstärke. Ein nochmaliger Klick auf das Lautsprechersymbol schaltet das Mithören wieder aus.

4. Einstellungen

Es gibt folgende Einstellungen:

4.1. Parameter für das Einlesen

Der Einleseprozess kann durch einige Parameter beeinflusst werden, die dazu dienen, aus den gelesenen Audiodaten die einzelnen Datenblöcke, Synchronisationsinformationen und Bits richtig zu erkennen. Es gibt folgende Parameter:

4.2. Einstellungen speichern

Über das Fenstermenü können die Einstellungen gespeichert werden, so dass JKCLOAD beim nächsten mal mit diesen Einstellungen startet. Dabei werden auch die Positionen der geöffneten Fenster gesichert.

Die gespeicherten Einstellungen lassen sich über das Menü auch wieder löschen. Dann startet JKCLOAD beim nächsten mal mit Standardeinstellungen.

5. Analysedaten

Das Einlesen von Kassettenaufnahmen kann nur dann funktionieren, wenn die Audioquelle (z.B. Kassettenrekorder) ein sauberes und auswertbaren Signal liefert. Das ist leider nicht immer der Fall, vorallem dann nicht, wenn die Aufnahmen schon älter sind. Sollte das Einlesen einfach nicht gelingen wollen, kann JKCLOAD Analysedaten aufzeichnen, die man sich dann ansehen kann. So soll Ihnen die Möglichkeit gegeben werden, die Ursache des Problems zu finden und hoffentlich auch abstellen zu können.

Das Aufzeichnen der Analysedaten muss im Menü Analyse aktiviert werden. Dann werden beim nächsten Einlesevorgang diese Daten aufgezeichnet und stehen bei Beendigung des Vorgangs, d.h. beim Schließen der Audioquelle, in einem separaten Fenster zur Verfügung. Nutzen Sie dazu den Menüeintrag AnalyseAnalysedaten anzeigen.... In dem sich öffnenden Fenster sehen Sie:

Mit den Schaltflächen + und - können Sie in die Anzeige hinein- und wieder herauszoomen, so dass Sie bis auf die Ebene der einzelnen Schwingungen sehen können, was wie erkannt und eingelesen wurde. Wenn man mit der Maus in die Anzeige klickt, wird die angeklickte Position unten angezeigt und das Hinein- und Herauszoomen erfolgt dann an dieser Position.

Die Analysedaten kann man in eine Datei speichern und später wieder öffnen. Es ist auch möglich, die in den Analysedaten enthaltenen Audiodaten sowie die daraus ermittelten Phasenlagedaten (Rechteckschwingungen) in eine Audiodatei zu speichern.

Des Weiteren ist es möglich, mit der Maus einen Bereich zu markieren und dann die eingelesenen Audiodaten nur dieses Bereichs als Audiodatei zu speichern. So können Sie die Aufnahme leicht in verschiedene Teile separieren.

Mit Hilfe des Menüeintrags BearbeitenAktuelle Position als von/bis setzen kann man auch größere Bereiche bis auf Frame-Position exakt markieren:
  1. Zoomen Sie hinein und klicken auf die gewünschte Anfangsposition.
  2. Benutzen Sie den Menüeintrag BearbeitenAktuelle Position als von/bis setzen. Damit merkt sich das Programm die aktuelle Position als Anfangsposition.
  3. Klicken Sie nun auf die gewünschte Endposition. Dazu können Sie auch vorher Zoomen und Scrollen.

Achtung Diese Art der Markierung wird aufgehoben, sobald Sie mit der Maus beginnen zu markieren, d.h., sobald Sie bei gedrückter Maustaste die Maus bewegen, vergisst das Programm die gemerkte Anfangsposition.

6. Audiodateien zusammenfügen

In den Fenster Analysedaten kann man eine Audioaufnahme in einzelne Teile zerlegen und diese separat speichern, um störende Töne vor und nach der gewünschten Aufnahme abzuschneiden. Für den umgekehrten Fall gibt es im Hauptfenster den Menüpunkt ExtraAudiodateien zusammenfügen. Hier kann man mehrere Audiodateien auswählen, ggf. die Reihenfolge anpassen und alle diese Dateien zusammen als eine Datei wieder speichern. Sinnvoll ist diese Funktion, wenn eine zusammengehörige Aufnahme aus mehreren Blöcken besteht, zwischen denen es eine deutliche Pause gibt und man die Blöcke einzeln aufgenommen hat. Solche Pausen gibt es z.B. bei BASICODE-Datendateien und bei ZX-Spectrum-Aufnahmen. Korrekt Einlesen lassen sich solche Aufnahmen aber nur als Ganzes, d.h. wenn alle zugehörigen Blöcke in einer Aufnahme, also z.B. in einer Audiodatei, vorhanden sind,

7. Vorgehensweise bei der Fehlersuche

Wenn das Einlesen von Kassetteaufzeichnungen einfach nicht erfolgreich gelingen will, fängt die Fehlersuche bei der Auswertung der Analysedaten an.
  1. Haben in den Analysedaten in der oberen Zeile die gelesenenn Audiodaten eine saubere Signalform und einen ausreichend hohen Pegel? Sind sie einzelnen Kassettenaufzeichungen klar als solche erkennbar? Wenn nein, dann liegt das Problem vor JKCLOAD. Stellen Sie sicher, dass die Audioquelle ein ausreichend gutes Signal liefert und dass im Betriebssystem der betreffende Audioeingang aufgeregelt ist, so dass das Java-Laufzeitsystem und somit auch JKCLOAD die Audiodaten lesen kann.

  2. Werden überhaupt Kassettenaufzeichnungen bzw. einzelne Datenblöcke erkannt (grüner bzw. roter Balken in der dritten Zeile der Audiodaten)? Wenn nein, wurde das richtige Kassettenaufzeichnungsformat ausgewählt? Falls ja, dann vergleichen Sie die erkannte Phasenlage (zweite Zeile in den Analysedaten) mit den gelesenen Audiodaten. Jede relevante Schwingung in den Audiodaten (erste Zeile) muss sich auch als Rechteckschwingung (zweite Zeile) wiederfinden, und zwar so, dass die Phasenwechsel der Rechteckschwingung zeitlich exakt mit den Flanken der Schwingungen der Audiodaten übereinstimmen. Dazu müssen Sie in die Analysedaten hineinzoomen.

    Die Erzeugung der korrekten Rechteckschwingungen ist der entscheidenste Punkt für den Erfolg, allerdings ist dies zu überprüfen auch sehr aufwändig. Die Flanken der Audioschwingungen müssen möglichst steil sein. Gegebenfalls sollte dazu der Eingangspegel erhöht werden. Auch muss der Schieberegler Mindestpegel ausreichend hoch gestellt sein.

  3. Wenn bisher keine oder kaum Datenblöcke erfolgreich erkannt wurden, aber die Flanken des Audiosignals ausreichend steil sind, sollten Sie den Algorithmus Steile Flanken zur Erkennung der Phasenwechsel auswählen und dann mehrfach versuchen einzulesen und dabei jeweils in kleinen Schritten die Flankenhöhe verändern.

  4. Wenn die Rechteckschwingungen gut und gleichmäßig aussehen, aber einzelne Datenblöcke trotzdem nicht erkannt werden, stimmt wahrscheinlich die Signalform der Trennschwingung (nicht bei allen Aufzeichnungsformaten vorhanden) nicht. Hier können Sie die Frequenztoleranz erhöhen.

  5. Wenn vor einer Kassettenaufzeichnung irrtümlich ein Block erkannt wurde und fehlerhaft eingelesen wurde, dann versuchen Sie durch Herunteregeln des Mindestpegels diesen auszublenden. Alternativ markieren Sie in den Analysedaten nur den relevanten Bereich der Kassettenaufzeichnung, speichern die markierten Audiodaten in eine neue Datei und lesen diese Datei wieder ein.

Für den Erfolg ist häufig viel Geduld erforderlich. Probieren Sie die einzelnen Schritte immer wieder mit leicht veränderten Parameterwerten erneut aus und schauen Sie in den Analysedaten, ob mehr Datenbereiche überhaupt eingelesen werden konnten (grüner und/oder roter Balken wird länger) bzw. ob mehr Datenbereiche auch erfolgreich eingelesen werden könnten (nur grüner Balken).

8. Hinweise zu einigen Kassettenaufzeichnungsverfahren

8.1. AC1

JKCLOAD unterstützt AC1-Maschinencodedateien (AC1 MC) und Aufnahmen des 8K-BASIC-Interpreters (AC1 BASIC). Wenn keines dieser beiden Formate erkannt wird. liest JKCLOAD die Kassettenaufzeichnung trotzdem ein, und zwar als Rohdaten (angezeigt als AC1 Rohdaten). Diese Rohdaten enthalten alle eingelesenen Bytes hinter dem Synchronisationsbyte E6h.

Achtung! Es gibt nur bei AC1-Maschinencodedateien (AC1 MC) eine Prüfsumme, anhand derer Fehler beim Einlesen erkannt werden können. Bei AC1 BASIC und AC1 Rohdaten kann JKCLOAD nicht festellen, ob die eingelesenen Daten fehlerhaft sind.

Achtung! Aufgrund des beim AC1 verwendeten Modulationsverfahrens und der Art und Weise, wie diese Kassettenaufnahmen eingelesen werden, hat der Schieberegler Frequenztoleranz keine Wirkung auf das eigentliche Einlesen, sondern nur auf die grafische Darstellung in den Analysedaten.

8.2. AC1/LLC2-TurboSave

Das AC1/LLC2-TurboSave-Format vom Studio Computerclub Halle (SCCH) beginnt mit einem 32-Byte großen Block, der eine Kennung, den Dateinamen sowie Anfangs- und Endadresse enthält. Sollte JKCLOAD im ersten Block die AC1/LLC2-TurboSave-Kennung nicht finden, werden die eingelesenen Daten als AC1/SCCH-TurboSave Rohdaten angezeigt und können als RAW-Datei gespeichert werden. Diese RAW-Datei enthält auch den ersten Block.

8.3. BASICODE

Bei BASICODE gibt es Programm- und Datendateien. Während Programmdateien nur aus einem Block mit einer variablen Länge bestehen, können Datendateien mehrere Blöcke enthalten. Laut BASICODE-Spezifikation enthalten diese Datenblöcke immer 1024 Datenbytes. Es gibt aber BASCODER, die größere Datenblöcke schreiben. Aus diesem Grund liest JKCLOAD Datenblöcke folgendermaßen ein: Nach dem Blocktyp und der Blocknummer werden entsprechend der BASICODE-Spezifikation 1024 Datenbytes gelesen. Nun müsste das Blockendezeichen folgen. Ist das nicht der Fall, werden weiter Bytes eingelesen und als Datenbytes übernommen, bis das Blockendezeichen kommt. So werden sowohl korrekte Datenblöcke gelesen, die beliebige Binädaten enthalten können, als auch längere Blöcke, sofern sie das Blockendezeichen enthalten.

Wird ein Block gelesen, dessen Blocktyp (erstes Byte) weder für ein Programm noch für einen Datenblock steht, wird der Block bis zum Blockendebyte und dem nachfolgenden Prüfbyte gelesen und steht als RAW-Datei zur Verfügung. Diese Rohdaten enthalten neben den eigentlichen Datenbytes auch das Blocktypbyte, das Blockendebyte und das Prüfbyte, sofern der Block nicht schon vorher zu Ende ist.

Bei BASICODE wird jedes Byte mit einem Start- und normalerweise zwei Stoppbits aufgezeichnet. Die Stoppbits haben die gleiche Frequenz wie der Vorton. Aus diesem Grund werden in den Analysedaten die Startbits als Trennung und die Stoppbits ais Vorton markiert. Nach einem Block folgt ebenfalls noch ein Vorton. Des Weiteren wird jedes Byte mit negiertem Bit 7 aufgezeichnet. Sieht man also in den Analysedaten als letzten Bit eines Bytes ein 1-Bit, so ist dieses dann in der eingelesenen Datei ein 0-Bit.

BASICODE-Programme sind reine ASCII-Dateien, die auf Band aufgezeichnet häufig das Zeilenendebyte 0Dh haben. Dieses Zeilenendebyte ist auf heutigen Computern eher unüblich. Aus diesem Grund konvertiert JKCLOAD das Zeilenende in die übliche Bytefolge 0Dh 0Ah. Über den Menüeintrag EinstellungenBASICODE-Einstellungen können Sie aber auch festlegen, dass in das Linux/Unix-Format (nur 0Ah) konvertiert wird oder auch gar nicht konvertiert werden soll. Im letzteren Fall enthält die speicherbare ASC-Datei die Zeilenendebytes so, wie sie eingelesen wurden. BASICODE-Datendateien werden dagegen immer unverändert eingelesen.

8.4. BCS3

Sofern eine eingelesene Kassettenaufzeichnung mit SE-BASIC 3.1 oder S/P-BASIC 3.3 erzeugt wurde, zeigt JKCLOAD anhand der Anfangsadresse die BASIC-Version sowie die bei der Speicherung eingestellte Anzahl an sichtbaren Bildschirmzeilen an.

Achtung! Aufgrund des beim BCS3 verwendeten Modulationsverfahrens und der Art und Weise, wie diese Kassettenaufnahmen eingelesen werden, hat der Schieberegler Frequenztoleranz keine Wirkung auf das eigentliche Einlesen, sondern nur auf die grafische Darstellung in den Analysedaten.

8.5. ZX Spectrum

Unterstützt wird das Standard-Kassettenaufzeichnungsverfahren, welches im ROM des ZX Spectrum implementiert ist. Bei diesem besteht eine Datei immer aus einem Kopf- und einem Datenblock, wobei im Kopfblock die Länge des nachfolgenden Datenblocks steht. Wenn das erste gelesene Byte ungleich 0 ist, handelt es sich nicht um einen Kopfblock. Ein ordnungsgemäßes Einlesen ist dann nicht möglich. JKCLOAD versucht aber trotzdem, den Block zu lesen. Da in dem Fall die Blocklänge nicht bekannt ist, muss das Blockende anhand der Signalform erkannt werden, was jedoch eine gewisse Unsicherheit bedeutet. Die so eingelesenen Daten werden als ZX Rohdaten angezeigt und können als RAW-Datei gespeichert werden. Man muss sich jedoch darüber im Klaren sein, dass diese Rohdaten kein korrekt eingelesenes Programm darstellen.