Hallo Besucher, der Thread wurde 10k mal aufgerufen und enthält 37 Antworten

letzter Beitrag von buexe74 am

Gibt es Programme auf dem C64 für"oscilloscope view von Sids"?

  • Mist - mein Beitrag ist im Nichts verschwunden. Hier die Kurzversion:


    man könnte einen "Film" mit den Oszi Bildern von der REU streamen.


    Hat in diesem Zusammenhang jemand Interresse daran, mir bei der "Entwicklung" eines komprimierten Hires streaming Formates zur Seite zu stehen ? 25 fps Monochrom ?

  • Mein Player spielt Hires in 50fps... :whistling: Allerdings nur im Hires-Zeichensatz, aber eigentlich kam ich bei Tests immer mit 256 Zeichen aus. Wollte nämlich tatsächlich als Demo eines der Oszi-Videos von YT konvertieren, habe aber kein passendes gefunden und die Idee wieder verworfen - zumal das Interessante an der Sache ja die berechnete Darstellung wäre, und nicht "nur ein Video synchron zum SID abzuspielen"...

  • Wie meinst Du kein passendes gefunden ? Es gibt doch 1000 schöne auf Youtube. Ich hab auch ein paar konvertiert ...




    Aber erzähl mal mehr von deinem Player. 50 fps wäre schon toll, aber wie sieht es mit dem Platzbedarf pro Bild aus , welche Auflösung hat es ? Also Wieviel Film passt auf die REU ? Und wie kann man die Bilder von einem PC Bildformat in das C64 Char - Format bringen. Hast du ein Tool, welches so eine Aufgabe als Stapelverarbeitung übernehmen kann ?


    Also ich denke schon, dass es schön wäre sich einen sid mit "Film" - visualisierung am c64 anschauen zu können. Klar wäre eine Echtzeitumsetzung schöner, aber irgendwo muß man mal anfangen. Ausserdem sind die Grenzen hier fließend. Irgendwo muß ja immer ein bisschen "gefaked" werden. Man könnte den Sid auch in ein anderes "Format" bringen, welches sich dann leichter in Echtzeit Visualisieren lässt... aber das verschwimmt dann schon etwas mit der Film Version.

  • Mein Player spielt Hires in 50fps...

    8o
    Oha, kommt wieder etwas Bewegung in die Angelegenheit? Also der Knaller bzw. meine Vorstellung ist bzw.war



    das Interessante an der Sache ja die berechnete Darstellung wäre

    eben genauso bzw. annähernd genau, von mir aus auch etwas gefaked darzustellen. Schwarz/Weiß ist sehr gut,
    in Farbe wäre das natürlich die Weltidee!!

  • wie sieht es mit dem Platzbedarf pro Bild aus , welche Auflösung hat es ? Also Wieviel Film passt auf die REU ?

    Jedes Bild braucht 3kb (ohne Colorram), es passen über 5.000 Frames in die REU. Auflösung ist 320x200, aufgeteilt in 256 verschiedene Zeichen. Bei (unnötigen) 50fps wären das also 100 Sekunden Film, 200 Sekunden bei 25fps. Wenn du nur jedes zweite Frame einen neuen Zeichensatz nimmst hast du noch ein Drittel mehr...


    Wie meinst Du kein passendes gefunden ?

    Naja, zuerst mal sind die Videos nur in 30fps. Um sie synchron zu halten müßte man dann auf 25fps runter. Zweitens bräuchte ich ein Video, das max 200 Sekunden lang ist. Drittens ein SID-File, das bei $1000 liegt und 1x Speed ist. Und dann müßte ich 5000 Frames konvertieren, was mich zu Viertens bringt:


    Hast du ein Tool, welches so eine Aufgabe als Stapelverarbeitung übernehmen kann ?

    Nein ;(


    Aber mal sehen, vielleicht ist ja der Delta-Title-Track passend...

  • also sids in oszis convertieren ist kein Problem mit den richtigen Tools, als da wären Jsidplayer zum aufnehmen der einzelnen Voices, Audacity zum convertiern der .wav files in mono unsigned 8 bit wavs, sidwiz zum erstellen der Oszi Einzelbilder ( egal in welcher framerate 25, 30 oder 100), und z.B. Photoshop, um die Bilder auf die richtigen Abmessungen zu schrumpfen ( oder jede beliebige Video-schnitt-software beherrscht das auch ) Dann gibt es da noch den Sid Relocate falls man eine $1000 Abspieladresse wünscht.


    Ich hab da grad ein bisschen Übung drin. Falls Du willst, kann ich dir ein paar Sids umwandeln...


    um die 5000 Frames zu konvertieren bräuchte man ein command line Tool, welches man per batch datei ansteuern kann. Bin grad auf der Suche nach sowas...


    Auf csdb hab ich über ein Tool namens "bmp2char" in diesem thread gelesen - weiss jemand was davon ?


    http://csdb.dk/forums/index.php?roomid=13&topicid=58715



    Last Ninja 3 sieht ganz cool aus - Ist nur ein bisschen zu lang...

  • bmp to char converter gibts massenhaft, aber ich habe leider keinen gefunden, dem ich eine stapelverarbeitung aufzwingen konnte. Dabei wäre es speziell für diese Anwendung eigentlich eine elegante kompressionsmethode für die Bilder.


    momentan verfolge ich deshalb mal die Hires-format Methode weiter. Die wäre auch universeller einsetzbar - ConGo kann wenigstens Hires als stapelverarbeitung convertieren. leider auch nicht ganz richtig ( vorder und Hintergrundfarbe werden ständig vertauscht ohne daß es einen Grund dafür gäbe ) Hallo - das ist monocrom ! da kann die Hintergrundfarbe gleich bleiben für alle chars ! Muß man wieder selber korrigieren im code. Echt mühsam das ganze...


    Greez

  • HiresPlayer.part01.rar
    HiresPlayer.part02.rar


    Hier sind die ersten Gehversuche mit dem Oscilloscope View - am C64...


    erst mal als Hires Player - daher ist die Abspielzeit arg begrenzt.
    besser wärs noch, die Einzelbilder in Char-Screens umzuwandeln wegen des geringeren Platzbedarfs - hab ich jetzt aber grad keine Lust mehr drauf.

  • Hier sind die ersten Gehversuche mit dem Oscilloscope View - am C64...

    8o
    Alle Achtung, genauso dachte ich es mir, also fast. Wenn ich das richtig verstanden habe, zeichnest Du den sid tune via Oscilloscope auf, um ihn dann als "Reu" abzuspielen?
    Wie schauts denn mit einem meiner Lieblingstunes aus? Jeroen Tel's "RoboCop 3" oscilloscope view



    Also ich bin begeistert :bia

  • erst mal als Hires Player

    In wie vielen fps spielt er denn ab?


    besser wärs noch, die Einzelbilder in Char-Screens umzuwandeln (...) hab ich jetzt aber grad keine Lust mehr drauf.

    Hehe, war auch mein Hauptgrund. Naja, und daß SidWiz bei mir nicht läuft (Win10) und ich kein Bock auf Relocate-Gefummel hab :)



    Wie schauts denn mit einem meiner Lieblingstunes aus? Jeroen Tel's "RoboCop 3" oscilloscope view

    4 Minuten sind bei 25 Bildern pro Sekunde 6000 Frames. Die müßtest du per Hand konvertieren (je zwei pro Zeichensatz), dann hättest du deine C64-Osci-REU-Experience :)

  • Dieser Vorläufige "Hires Player" streamt in 25 fps von der REU. und zwar "nur" jeweils die Bitmap. Das sind aber 8000 Bytes alle 2 C64-Frames. Da reicht auch eine 16 Mb REU nicht lange.
    Theoretisch wäre es ja nicht besonders schwer die Bitmap in CHARS zu zerlegen ( es sei denn, man möchte jeden Char prüfen, ob er doppelt vorkommt ). Für diese Anwendung würde wahrscheinlich je ein Zeichensatz mit 265 Zeichen pro Bild genügen, um das Bild wiederzugeben..


    Aber das ist ja hier wirklich ein Sonderfall, da so viele Schwarze Fächen im Bild vorkommen.


    Viel schöner wäre es, man hätte ein "echte" Kompression der Daten, so wie das wahrscheinlich bei echten Videos auch läuft ( nehme ich an ).


    Dass also nur die sich zum vorigen Frame veränderten Bereiche ersetzt werden. Also das Bild in mehrere einzelne zusammenhängende Teile zerlegt wird. ( nicht zu viele und möglichst lange Teile , damit ein schnelles streaming gewährleistet bleibt ). Die Bereiche des Bildes, wo sich nicht ändert, muß natürlich auch nichts gestreamt werden. Das sollte quasi eine "variable" Kompressionsrate ergeben und einen Haufen Platz auf der Reu sparen.


    Der Vorteil daran wäre, dass man damit auch viele anderen Bildformate streamen könnte - zuminderst die Nativen.


    Der Nachteil ist, dass das unglaublich unübersichtlich wird beim coden und man kaum noch eine Chance hat, zu lokalisieren, wo die Fehler liegen könnten, wenns nicht auf anhieb zufällig klappt. Dann hat man nur noch REU-Salat auf dem Bildschirm.


    Übrigens SidWiz läuft bei mir ( Win 10 prof. 64bit ) schon. Ans Relocate muss man sich ein bischen gewöhnen, dann funktionierts ganz gut.


    Leider ist die Grössenskalierung der Bilder auf 320 mal 200 nicht so schön geworden, wie ich mir das vorgestellt hätte. SidWiz gibt ja gaub ich 1240 mal 720 sowas aus. Hab keine ahning von C , aber vielleicht könnte man das im SidWiz auch ändern...


    Vielleicht sind aber 320 mal 200 Bildpunkte Auflösung einfach zu wenig, um sowas sauber darzustellen ?


    vor-konvertiert von .bmp nach Hires habe ich mit ConGo, was die Sache eher schlecht macht, aber dafür eine Stapelverarbeitung besitzt. ( Natürlich nicht für CHAR Bildformate ). Danach muß man noch per Code das Videoram absuchen, wo Vor-und Hintergrundfarbe vertauscht wurden und an diesen stellen die Bitmap Invertieren...
    Dafür hab ich ein kleines C64-Tool gemacht.

  • Ich hab da so ein paar Ideen, wie man das ( Thema des Threads ) tatsächlich am C64 realisieren kann.


    Leider gibt der Oscillator für Voice 3 tatsächlich nix anderes aus, als eine Dreieck-Wellenform , eine Pulse-Wellenform , Sägezahn und Zufallswerte ( Rauschen ) in der entsprechenden Frequenz - aber ohne Filter. Das sieht etwas langweilig aus. Auch in Echtzeit.


    Meine Frage nun: Kann man das OSC_3 Register $D41B ( Wellenform von Voice 3 ) mot dem ENV_3 $D41C ( Hüllkurve von Voice_3 ) irgendwie so kombinieren, dass es interressanter und echter aussieht, ohne aufwendige Multiplikationen durchzuführen ? ( muss etwa in einer halben Rasterzeile berechnet werden können )



    P.S. Falls es jemand interressiert, wie die reinen Wellenformen am C64 in Echtzeit aussehen, kann ich das gerne hier reinstellen...

  • P.S. Falls es jemand interressiert, wie die reinen Wellenformen am C64 in Echtzeit aussehen, kann ich das gerne hier reinstellen...

    8o:zustimm: Aber auf jeden Fall, es klingt doch schon recht hoffnungsvoll! :tanz:

  • Ich hab den Thread gelöst ! Die Antwort ist Ja .


    Also: Hier präsentiere ich stolz den SidWave_Visualizer !
    SidWave_Visualizer.zip
    Man kann damit 2 Stimmen des Sids gleichzeitig in Echtzeit Visualisieren !!


    Readme:


    Die Einstellungen in WinVice sollten wie folgt gesetzt sein:


    SID EISTELLUNGEN: -> 2nd Sid auf Adresse $D420


    SOUND EINSTELLUNGEN: -> Stereo


    ( ich hab da WMV Treiber angewählt, da externe Soundkarte )


    ERWEITERUNGSMODUL I/O EINSTELLUNGEN: -> Userport Geräte -> Userport 8 bit Stereosampler aktivieren !



    Die Soundkarte könnte wie folgt konfiguriert sein:


    Man braucht entweder eine Soundkarte mit 2 getrennten Audio Ausgängen ( oder eine 2te, z.b. Externe Soundkarte )


    Jetzt muß man dem System sagen, daß es als Sound Ausgabegerät die Externe Soundkarte benutzen soll.


    Von dieser führt man das Audio Signal (per Audiokabel) wieder in einen Audio Eingang der Soundkart im PC. -> vorsicht vor Rückkopplungen !


    Dieses AufnahmeGerät ( den Soundeingang ) nicht als Wiedergabequelle benutzen !


    ( Es gibt da sicher auch Softwarelösungen mit Virtuellen Kabeln - da kenne ich mich aber nicht aus )


    Jetzt müsste der WinVice diesen Audio Eingang als Input für den 8 bit Stereo Sampler am Userport benutzen.


    Nun kanns losgehen ! Viel Spass ! Verbesserungsvorschläge zu mir !




    Tastaturbelegung:



    1,2,3 -> toggle Voice 1,2,3 on/off
    q,w,e -> Toggle right/left channel for Voice 1,2,3


    F1 next Sid in Playlist


    F3 load Sid



    Bedienung:


    Man startet das .prg mit WinVice Version 3 ( x64sc.exe )


    Skalieren kann man die Wellen mithilfe der Pegel / Balance / Lautstärke Einstellungen der Soundkarte.


    Falls ihr anderen Sound Visualisiert haben wollt, stellt einfach die Lautstärke von WinVice derweil auf Null !


    Manchmal hängt sich die WinVice Tonausgabe auf, wenn man die Stimmen umstellt ! In diesem fall muß man einfach nochmal die SID EINSTELLUNGEN aufrufen ohne was zu verändern - dann gehts wieder.


    Manche ältere Rechner sind auch zu langsam, um 2 Sids gleichzeitig mit hohen Einstellungen zu emulieren. Dann vielleicht das Resampling auf schnell setzen oder die Samplingrate runterdrehen.


    Man kann übrigens sehr schön sehen wie verschiedene Sid Versionen / Emulationen völlig andere Kurven erzeugen...


    Wer sich eigene Sids laden will muß das entweder im Monitor machen ( Sid muss bei Init Adress bei $1000 und play Adress bei $1003 haben ) oder sich eben seinen Sid so nennen, wie die im Playlist Folder ) - eine vernünftige Lade Routine zu basteln ist mir scheinbar zu kompliziert !



    Probleme:


    Nachteil 1: Es sind bisher leider immer nur 2 Stimmen gleichzeitig zu hören. Wenn ich die 3. Stimme auch hörbar machen würde, dann wäre die ja auf den rechten oder linken Audiokanal mit draufgemischt und würde natürlich die Darstellung der Wellenform verändern. Ich kann Winvice leider nicht sagen, auf welche Soundkarten er die verschiedenen Sids aufteilen soll.
    Das wäre allerdings an echter Hardware kein Problem, da man ja nur die Ausioausgänge der Sids wieder in den Sampler schicken müsste, deren Wellenform man angezeigt bekommen will.


    Falls jemand eine Idee hat, wie man das an der Emulation realisieren könnte, bitte sagen. Ich bin wirklich für jeden Hinweis dankbar - hört sich ja blöd an ein Sid mit nur 2 Stimmen!
    ( obwohl manchmal ist es auch ganz lustig zwischen den Stimmen hin und her zu switchen )


    Nachteil 2: Die Horizontalen Linien werden nicht dargestellt. Das macht sich besonders bei der PulseWave negativ bemerkbar. Ich hoffe ich kann das noch regeln. Die bisherigen versuche sahen leider schlechter aus, als die feine PunkteLinie. Aber eigentlich sollte es mit ner DoppelBufferung möglich sein. Mal sehen...


    Nachteil 3: Kein Mensch hat einen 8 bit Soundsampler als echte Hardware zur Hand, obwohl das kein Hexenwerk ist. Auf dieser Seite gibts die Hardwarebeschreibung dazu.


    http://daconcepts.com/vanessa/hobbies/projects.html


    Wär schon cool das in Realtime am echten Brotkasten zu sehen !!!! Den 2. und evtl. 3. Sid könnte möglicherweise eine Ultimate 1541 stellen.
    Hätte denn noch jemand Interesse an so nem 8 bit Sound Sampler ???


    Falls jemand weiss, wie man die Töne im C64 zusammensetzen kann , könnte man den Sampler auch weglassen - aber ich glaube das ist sehr rechenaufwendig, wenn heutige Rechner bei der emulation von 2 Sids noch in die knie gehen ...



    Zukunftsträume:


    Wenn mir jemand erklären könnte, wie man aus dem Sid Header die Sidlänge ( Datenmässig ) zu ermitteln, dann könnte ich auch sids, die nicht bei $1000 losgehen nach $1000 laden und an die richtige Stelle verschieben und von dort abspielen.


    Wegen der Inkompatibilität zu manchen sids wäre es wichtig zu wissen, welche Speicherbereiche Sids häufig mitbenutzen, damit ich dort möglichst keinen code liegen habe.