Posts by PiCiJi

    Hast du einen Wave Editor? Sprich, kannst du den Tonschnitt selbst machen? Dann würde ich alles einfach sauber aufnehmen mit Fleisch vorne und hinten und du kannst ja dann die Stücke rauspicken, und herumexperimentieren.

    ich habe mit "Audacity" ein paar Schnitte zwecks Anpassung der Programmierung vorgenommen.

    Ok ich versuche den Schnitt hinzubekommen. Vielleicht brauch ich deine Hilfe beim Aus Schneiden des Dreh Geräusches des Spindel Motors mit dem Ziel diesen derart in einer Schleife abzuspielen, dass dies auch unbemerkt bleibt.

    Ja, bei den meisten Floppys ist das tatsächlich so. Die höheren Tracks hört man dann manchmal gar nicht mehr.

    ok ich bereite das Ganze jetzt erstmal für 2 Stepper WAV's in Abhängigkeit vom Track vor. Das ist nicht in Stein gemeißelt, nur als Anfang gedacht. Es können auch mehr sein oder neue Bedingungen sinnvoll erscheinen, wie eine andere WAV beim runter Steppen.


    Ich erwähnte eingangs, jeweils eine WAV für Disk Einlegen und Klappe schließen bzw. Öffnen und Entfernen. Das könnte man zusammenfassen, also Einlegen und Klappe schließen in einer einzelnen Datei.

    Das heißt, wenn Stereo, dann muss das auf jeden Fall eine monokompatible Mikrofonierung sein, kein AB oder so.

    bin mir nicht sicher ob ich dich richtig verstehe.

    Denise übergibt dem Audio Treiber immer 2 Kanäle (rechts, links). Wird nur ein SID emuliert, ist der Audio Stream in beiden Kanälen gleich.


    monokompatible Mikrofonierung: Damit ist das Zusammen Mischen beider Stereo Kanäle gemeint oder ?

    dann Nein. Die beiden Kanäle werden nicht zusammengemischt, sondern jeweils rechts und links ausgegeben.

    Z.b. werden bei 2 SID's einer im rechten und einer im linken Kanal ausgegeben, so dass ein Stereo Effekt entsteht.

    oder anders: Man kann angeben, welche SID's im rechten bzw. im linken Kanal zusammen gemischt werden.

    Wenn Du grad dabei bist, kannst Du auch ein Sample mit Schnellader aufnehmen? Die schnelleren Trackwechsel klingen meiner Meinung nach anders als die normalen...

    In VICE sind 2 Stepper WAV's im Einsatz, eines für Tracks kleiner 18 und eines für höhere Tracks. Zudem wird die Abspiellautstärke der Steps mit zunehmenden Tracks gesenkt.

    Werden die Step Geräusche tatsächlich leiser beim Steppen zu höheren Tracks ?

    Ich baue es dann so, dass in einem Emulator Ordner "sounds/floppy/" Unterordner liegen. Jeder dieser Unterordner kann z.B. für ein Laufwerk Model stehen oder auch alternative Sounds für ein bestimmtes Model enthalten.

    Der Nutzer kann jederzeit einen Ordner ergänzen. Der Emulator listet dann die gefundenen Ordner Namen zwecks Auswahl für ein Drive Sound Profil.

    Später kommt noch "sounds/tape/" hinzu, nach dem gleichen Prinzip.

    Wie hättest du es gerne? Im schalltoten Raum, im Zimmer, mit Gehäusedeckel drauf, oder ohne Gehäusedeckel?

    Im Sinne der Authentizität und Hörgewohnheiten würde ich eine Aufnahme mit geschlossenem Gehäuse in einem normalen nicht ganz schalltoten Raum im üblichen Hörabstand von 0,5-0,8 Meter ansetzen, Winkel von vorne, Laufwerk auf Tischplattenhöhe, mit glatter, etwas reflektierender Tischplatte.

    ja genau so... klingt gut.

    Da bin ich froh, das sich jemand zu dem Thema auskennt. Ich hätte das Mikro dran gehalten und gehofft, dass der Nachbars Hund nicht anfängt zu kläffen.


    Ich habe gerade den Header einer WAV Datei vor mir. Folgendes würde ich berücksichtigen:

    Kanäle: 1 oder 2 (wenn im 2. Kanal das gleiche Sample ist ... kein Problem)

    PCM (2 byte pro Kanal) oder Float (4 byte pro Kanal ) beides möglich

    Sample Rate: Je nach User Einstellung generiert der Emulator: 44100 oder 48000 Hz, wobei 48000 Hz bei den meisten Karten nativ ist. Sollten die WAV's mit den Laufwerks Geräuschen eine andere Sample Rate als die vom Nutzer Ausgewählte aufweisen, wird resampled. Also auch hier keine Vorgabe.

    Wenn man es perfekt machen will, muß man auch berücksichtigen, daß unterschiedliche Schrittgeschwindigkeiten sich auf das Resonanzverhalten auswirken.

    Und nicht zu vergessen, die Geräusche, die entstehen, wenn man es mit der Geschwindigkeit übertreibt, und die Mechanik nicht mehr mit kommt. Da gibt es zudem sicher einen großen Toleranzbereich, wo dieser Punkt erreicht ist.

    Und dann gibt es natürlich auch noch so schrottige Disketten, die besonders unruhig und laut laufen.

    Da hast du schon Recht. Der Aufwand ist jedoch alles andere als trivial. Man muss die Geräusche generieren, anstatt vorgefertigte WAV's zu verwenden. Der Schrittmotor erzeugt bei zu schneller Ansteuerung hochfrequente Töne, die je nach zeitlichem Abstand der Ansteuerung variieren.

    Unter'm Strich ist der Mehrwert begrenzt in Hinsicht zum Aufwand. Keine Ahnung ob ich das irgendwann mal versuche.

    Wäre es vielleicht eine Idee, Gideon zu fragen, ob Du seine Samples nutzen darfst?

    Das Ultimate64 bringt ja mittlerweile interne 1541 und 1581 mit entsprechenden DriveSounds mit.

    Um ehrlich zu sein habe ich die Drive Sounds im UII+ deaktiviert, da sie sehr unangenehm klingen und so gar nicht wie meine 1541 (deutlich dumpfer)

    Möglicherweise liegt es am Klangkörper in dem kleinen Cartridge.


    Schön sortiert nach Initialisierung, Lesefehler, Load Track usw...

    ja das hatte ich neulich auch entdeckt. Mal sehen, wenn andere Möglichkeiten weg brechen.

    Hier kann man aus der Tonspur von dem Video vielleicht häppchenweise was rausklauben:

    Auf keinen Fall. Freespin und Sing Song Serenade quälen den Stepper derart, das Tunes entstehen. Das lässt sich nicht vernünftig mit einer Hand voll WAV's nachbilden.

    Um das richtig zu machen, müssen die Sounds in Abhängigkeit der Stepper Ansteuerung generiert werden. Das ist was für später, da der Aufwand in Hinsicht auf den Nutzen schon sehr viel Motivation abverlangt.

    Mir geht es hier im ersten Schritt um die typische Drive Sound Emulation.


    Sing Song Serenade

    Zwecks Emulation von Floppy Geräuschen in Denise suche ich nach Aufnahmen, am Besten als WAV. Vielleicht hat hier schon jemand was in der Vergangenheit aufgenommen oder Ausrüstung um sowas vernünftig einzufangen.

    Ich müsste erstmal damit beginnen, das richtige Zubehör dafür zu besorgen. Vielleicht kann ich hier Zeit sparen.

    Ich beabsichtige die WAV Dateien in einem Emulator Ordner abzulegen, damit diese von Nutzern getauscht/ergänzt werden können.

    Im Emulator sind dann verschiedene Profile aus wählbar, je nach gefundenen Ordnern mit Sample Dateien. z.B. so:

    sounds/1541/*.wav

    sounds/1541II/*.wav


    Grundsätzlich werden folgende Samples benötigt:

    Spin Up -> Spindel Motor fährt an

    Spin Down -> Spindel Motor fährt runter

    Spin -> Motor dreht sich (wird als Schleife abgespielt)


    Step -> Schrittmotor führt einen Track Wechsel aus

    Step2 -> Schrittmotor führt einen Track Wechsel auf höheren Tracks aus


    Head Bang -> Schrittmotor versucht tiefer als Track Zero zu steppen und schlägt böse an (dieses machine gun Geräusch)


    [optional]

    disk insert -> Diskette Einlege Geräusch

    floppy close -> Knebel schließen oder Schnapp Verschluss älterer Laufwerke

    floppy open -> Knebel öffnen oder Schnapp Verschluss älterer Laufwerke

    disk eject -> Diskette entnehmen


    Step Up/Down -> bei akustischem Unterschied könnte man auch zwischen Step Up und Step Down unterscheiden

    nightly (das aktuellste, Beschreibung '...Win7' ignorieren)


    - ungarisch Übersetzung


    - Load ":*" unter Sonstiges als Option zuschaltbar. (wenn zugeschalten bleibt Regel, dass Load "*" verwendet wird, wenn erste Datei kein PRG ist, bestehen)


    - Option unter Sonstiges um bei einem Doppelklick auf ein Disk image oder eine Datei im Disketten Vorschaufenster den virtuellen Autostart auszulösen.


    - im Disk Vorschau Fenster ist die Auswahl Zeile nun im C64 Look. Deaktivierbar unter den globalen Einstellungen.


    - Slider zur Steuerung der Trägheit des Schrittmotors (experimentell, nur für bestimmte User und VICE Testbench... bringt keinen Mehrwert für D64 Programme, erhöht nur die Gefahr, dass was nicht funktioniert)


    - in der Ansicht zur Konfiguration von nicht initialisiertem Speicher sind Buttons für schnelles Wechseln von Standard Profilen. Alle bekannten Programme, die davon abhängig sind, laufen mit der einen oder

    anderen Konfiguration.


    - Controller Eingaben werden nun auch angenommen, wenn das Emu Fenster keinen Fokus hat bzw. nicht on Top ist. Für Tastatur Eingaben wird weiterhin Fokus benötigt.

    Wer das nicht möchte, hat 2 Möglichkeiten: entweder den Hotkey zum Pausieren der Emulation oder die globale Einstellung zum automatischen Pausieren des Emulators bei Fokus Verlust.


    - Just In Time Polling (JIT)

    Dies ist nun Standard mäßig aktiviert. Deaktivierbar unter dem Tab Sonstiges.

    Folgendes wird aus PAL Sicht beschrieben.


    bisheriges Polling:

    Aller 20 ms werden immer an der gleichen Position zwischen 2 Bildern sämtliche Eingaben aller aktiven Geräte geprüft.


    JIT:

    Hier entscheidet die Software, wann geprüft wird. Fragt das Programm z.B. auf Zeile 100 die Eingabe ab, werden direkt davor alle Geräte auf Änderungen geprüft.

    Auf diese Weise vergeht mehr Zeit und ein möglicher Tastendruck kann noch erfasst und in diesem Frame registriert werden. Beim normalen polling würden jetzt weitere 20 ms vergehen,

    bis der Tastendruck von der Software registriert wird.

    Zudem kann nun mehrfach pro Frame ein veränderter Eingabe Zustand erkannt werden. Der Slider "Mindest Wartezeit zwischen Eingabe Abtastungen" regelt, wieviel Zeit zwischen 2 Abtastungen mindestens vergehen muss.

    Es gibt wohl Controller mit einer polling Rate von einer Milli Sekunden. Für solche Controller sollte der Slider entsprechend niedriger eingestellt werden um einen Vorteil daraus zu ziehen.


    Synchronisationsquelle für JIT:

    Damit JIT Sinn macht, ist es nötig nach einigen Bildzeilen zur Echtzeit zu synchronisieren. Z.B. reicht es nicht aus, nur VSYNC zu verwenden.

    Das Bild würde in 1 oder 2 ms gebaut und im Anschluss durch VSYNC 18 ms gewartet werden. Das hätte den gleichen Effekt, wie ein deaktiviertes JIT, da viel zu wenig Zeit zwischen den Bildzeilen vergeht.

    Mindestens Audio Sync ist dringend notwendig für JIT. Der Audio Puffer wird mehrere Male pro Frame an den Audio Treiber übergeben und gewartet bis wieder Platz ist, somit vergeht die richtige Menge Echtzeit.

    Um die Anzahl Bildzeilen, nach denen zur Echtzeit synchronisiert wird, zu verkürzen und somit die Effizienz von JIT zu steigern, sollte unter dem Tab Audio das "SID Sample Intervall" reduziert werden.

    Bei einem Intervall von 1 wird ca. aller 4 Bildzeilen zur Echtzeit synchronisiert.

    Bei einem Intervall von 18 wird ca. aller 70 Bildzeilen zur Echtzeit synchronisiert.

    Ein niedriges Sample Intervall verbessert neben der Audio Qualität auch die Effizienz von JIT und ich vermute es sorgt bei FreeSync Monitoren (ohne VSYNC) für weniger Schwankungen in den FPS.

    Später wird Beam Racing eine alternative Synchronisationsquelle für JIT.

    Sicherlich bringt JIT nicht soviel wie runAhead, verbraucht aber so gut wie keine zusätzlichen Ressourcen.


    JIT und runAhead (RA):

    Äußerst schwierig zu beurteilen, ob JIT das Ergebnis hier verbessert oder nicht.

    Aus meiner Sicht sind beide Techniken nicht gut kombinierbar. JIT sorgt zwar dafür, das die Eingabe Geräte näher an der tatsächlichen Raster Position erkannt werden aber das angezeigte Bild ist bei RA der Zustand,

    welcher aus der Eingabe einiger frames in der Vergangenheit entstanden ist. Das bedeutet, dass das Frame wo JIT eigentlich seine magic ausspielen müsste, un-gedrosselt berechnet wird, da dies nicht das Anzeige Bild ist.

    Aus diesem Grund gibt es unter Sonstiges im Bereich 'RA' eine neue Checkbox: 'JIT unterdrücken bei aktivem runAhead'. (Default: aktiviert)

    Auf diese Weise muss JIT nicht ständig deaktiviert werden, wenn RA aktiviert wird und umgekehrt. Ein aktives JIT läuft also immer nur dann, wenn RA inaktiv ist.

    Möchte man JIT für RA nutzen, sollte der Haken entfernt werden.


    weitere Vorteile durch JIT:

    Es gibt sogar Programme, deren korrekte Emulation von JIT abhängig ist. (extrem selten sowas)

    WWF2 (Anmerkung: zumindest eine Version ist von einem bestimmten Ausgangszustand des Arbeitsspeichers abhängig, läuft also nicht auf jedem C64 )

    Dieses Programm hat kein Problem, wenn es ohne Speeder geladen wird.

    Bei verwendetem Jiffy allerdings kommt es vor, das nach dem Titel Bild und der Player Auswahl nicht weitergeladen wird. Der Motor wird einfach nicht mehr eingeschalten.

    Gegengetestet auf einem echten C64 mit echtem Laufwerk(+Jiffy) fällt auf, dass in ca. 7/10 Versuchen erfolgreich weiter geladen wird.

    Es hängt hier vom Timing des Tastendruckes ab. In Denise ohne JIT klappt es nur selten.

    Mit JIT verhält es sich wie auf dem Original. In VICE funktioniert das auch korrekt. In HOXS funktioniert es zu oft.

    Wenn ich Denise minimiere, kommt es hin und wieder vor, dass der Ton glitcht und das Audio total distortet ist.

    Maximiere ich Denise wieder, ists wieder ok und schicke ich es dann wieder in den Tray, bleibts auch einwandfrei.

    ich schaue mal.

    Muss man das überhaupt emulieren?

    Nein, für die Emulation ist das völlig unwichtig und in keiner Weise sinnvoll nutzbar.

    Eventuell nur interessant, wenn man das P64 auf eine echte Disk zurückschreibt, wobei dann wohl besser das entsprechende Tool diesen Ausgleich beim Schreibvorgang vornehmen sollte.