HerMIDI für SidWizard - wer kann ihn bauen?

Es gibt 106 Antworten in diesem Thema, welches 16.752 mal aufgerufen wurde. Der letzte Beitrag (10. Januar 2017 um 23:03) ist von mario.

  • once again, ich kann es nicht leicht ändern, weil es mir zu komplex ist mehrere wochen damit zu verbringen mir den source reinzuziehen und da das interface zu implementieren das ich noch gar nicht habe, geschweige denn ob ich es überhaupt schaffen würde mit meinen bescheidenen asm kenntnissen. für mich ist es einfacher einen chip mit 8 beinen und ein paar widerstände zusammenzulöten, auch in summe für den zweck einfacher als ein ganzes midi interface. potentiell ist es doch so, das jeder der im f64 sagt "das kann MAN leicht machen", dadurch das er es einschätzen kann wohl auch die fähigkeiten besitzt es locker auf die reihe zu kriegen, es aber dann doch nicht macht weil man keinen persönlichen nutzen daraus ziehen kann bzw. lieber darauf wartet das ein anderer es macht, was praktisch in 0,05% der fälle passiert...

  • Also ich sage ganz offen: Ich kann das nicht (bauen/programmieren) :)
    Vom besagten Optokoppler schrieb Hermit was (im readme?), sinngemäß ´wird nicht benötigt da idR nur 1 Keyborad dranhängt, kann nachgerüstet werden´ - ich schau nochmal eben...

    Bestimmt gibt es andere/evtl. bessere (aber noch in Planung befindliche) Möglichkeiten - aber ich würd eben einfach gern erstmal über mein Keyboard spielen/Noten eingeben - und mir würde dieses HerMidi-Interface - evtl. mit Optokoppler - völlig reichen.

  • Also ich habe mir mal angeschaut, wie MIDI vom C64 aus funktioniert. Kann man sehr gut in VICE per "Settings->Cartridge/IO settings->MIDI settings" testen, falls man ein MIDI-Interface am PC hat (z.B. ein MIDI-Keyboard mit USB-Anschluss). Anbei ein Testprogramm, was mit der Einstellung "Namesoft" als MIDI Interface funktioniert. Einfach test.prg in VICE laden und auf dem Keyboard herumspielen. Die empfangenen Zeichen werden im Bildschirmspeicher angezeigt und als Töne gespielt (nur Monophone). Die MIDI-Emulation muß vor dem Starten des Programms eingeschaltet sein.

    Ich habe auch den SID-Wizard für das Namesoft-Interface angepasst, anbei die compilierte neue D64-Datei und die diff-Datei zum Original-Source (die letzte SVN-Version 253 von heute morgen). Leider wird im SID-Wizard noch nichts mit den MIDI-Nachrichten gemacht, außer als Noten angezeigt, aber nicht abgespielt oder aufgenommen, wie man hier sehen kann:

    Bitte melde dich an, um diesen Link zu sehen.

    Außerdem gibt es ein paar Grafikfehler (Text rechts in der Instrumentenansicht stimmt nicht), aber ist ja auch keine releaste Version.

    War zwar aufwendiger als angenommen das einzubauen, da ich den verwendeten Assembler noch nicht kannte und die Toolchain-Programme zur Generierung einer D64-Diskette und den Packer usw. einrichten musste, aber dann ging es recht schnell :) Das diff sollte man vielleicht mal dem Autor geben, damit er es besser einbauen kann und nicht nur so auf die schnelle gehackt wie ich das gemacht habe.

  • Wow, gute Arbeit, bin auf Arbeit aber werd ich mir morgen mal anschauen/testen!
    Wenn der Wizard mit deinem Interface-Nachbau läuft wär das natürlich Spitze, 'Problem' ist eben nur das ich ne Ultimate im Cart-Port habe...dafür würd ich sie aber auch rausziehen (deswegen wär für mich dieses Hermidi am praktischsten) ;) Midi zum testen hab ich am PC.
    Kannst du deine Arbeit vielleicht an Hermit weiterleiten, vor allem die Software - damit er das vielleicht gleich ins Release mit einbauen kann?

    Und am Hermidi-Interface, ist da auch schon jemand am bauen? Komme morgen früh erst wieder online, handy ist leer...aber freut mich das da grad soviel passiert!

  • Habe dem Autor von SID Wizard eben eine eMail mit meinem Patch geschickt.

    Ich bin das HerMIDI-Interface nicht am bauen, ist mir zu eingeschränkt, da ich auch MIDI-Out möchte. Aber ist wirklich nicht schwierig, du kannst das problemlos auf Lochraster aufbauen. Bei eBay nach PICKit suchen, gibt es ab 22 Euro, z.B.

    und dann kannst du den PIC auch selbst flashen. Ich könnte dir den Chip auch flashen, aber wenn es Firmware Updates gibt dann willst du den sicher selbst schnell neu programmieren und wenn man einmal angefangen hat mit der PIC-Programmierung, dann findet man immer mehr Anwendungen für so einen kleinen Chip :) Die restlichen Bauteile und passende DIN-Buchsen gibt es alle bei reichelt.de. Da gibt es auch das Original PICkit 2 Starter Kit, kostet dort aber 59,70 Euro. Hättest du aber schon in wenigen Tagen, aus China dauert immer Wochen zum versenden.

  • danke gartenzwerg für deine bemühungen, damit habe ich jetzt nicht gerechnet! blöderweise habe ich mir schon das PICkit2 aus china bestellt, also werde ich dann trotzdem zuerst das hermidi bauen.

  • Gern geschehen. Siehste, sind nicht nur reine Labertaschen hier im Forum unterwegs :D

    Das HerMIDI-Interface ist aber auch gar nicht so schlecht, wenn man nur MIDI-In braucht. Hat auch den Vorteil, daß man problemlos parallel noch ein Turbo Chameleon betreiben kann und ist sehr kompakt mit der Bauweise im Stecker. Das Turbo Chameleon erlaubt ja keine weiteren Cartridges per Expander. Andere Cartridges sollten allerdings problemlos parallel zu meiner Version betreibbar sein (sofern nichts im IO1-Bereich verwendet wird), sodaß man die Platine ggf. auch fest in den C64 einbauen könnte.

    "hermit" hat auch bereits auf meine eMail geantwortet und sich für den Patch bedankt. Läuft auch unter VICE in Linux (allerdings geht MIDI scheinbar nur mit OSS und nicht mit ALSA, gut daß ich mir unter Windows um sowas keine Sorgen machen brauche). Er will das als weiteres Interface in den SID Wizard einbauen, möglicherweise alle vom VICE unterstützten Interfaces, da die sich nur minimal unterscheiden.

    Ich habe auch schon eine gute Idee für meine Schaltungsversion, damit es besser in ein Standard Cartridge Gehäuse passt, ohne groß Sägen zu müssen. Ich werde das wie beim passport-Interface aufbauen, mit angelöteten (und zugentlasteten) Kabeln: Bitte melde dich an, um diesen Link zu sehen.. Dann braucht man nur drei Löcher ins Gehäuse zu bohren (und noch eins für die LED, die man über die RTS-Leitung ansteuern kann). Ist dann auch stabiler und ist nicht mehr anfällig gegen abbrechen oder Wackelkontakte der Lötkontakte, was gerne mal passiert, wenn es bei Steckern mit Platinenmontage häufig ein- und ausgesteckt wird.

  • Bin ja wirklich sprachlos...kleiner Gartenzwerg ganz groß :thumbsup:
    Unglaublich zu was manche im Stande sind, und in was für einer Zeit....!!!

    Wenn dein Cartridge ´Serienreife´ erlangt nehm ich dir auf jeden Fall eins ab, allein schon für andere Programme.

    oneBitman: Wäre super wenn du mir damit einen PIC programmieren könntest, gegen Unkostenerstattung natürlich, Lochrasterplatine hab ich hier noch eine rumliegen und löten kann ich wohl halbwegs - werd mich am HerMidi dann einfach mal versuchen (ausser du planst da grad schon nen Aufbau für mehrere :))

    gartenzwerg: Gern auch nen PIC, falls oneBitman den zurückgibt etc., mit den Updates hast du natürlich Recht, aber ich könnte den sonst ja sockeln - oder ist das zu zeitkritisch für einen Sockel? So oft werd ich Updates (hoffentlich) nicht brauchen.

    Muss jetzt erstmal eben das Keyboard mit Vice testen...

  • Sockeln ist gar kein Problem bei den niedrigen Frequenzen. Alles unter 1MHz könnte man sogar ohne Nebenwirkungen mit 10cm langen Kabel o.ä. verbinden.

    Ich würde aber mal damit rechnen, daß es öfters Updates gibt. Die Routine ist ziemlich zeitkritisch, ist alles taktgenau ausgerechnet im Code für den C64, und auf PIC-Seite wohl auch. Wird auch nicht exakt die 31250 Baud generieren können, wegen dem ungeraden Takt am C64, sodaß da bestimmt noch Raum für interessante Fehler ist :)

    Interessanterweise ist auch der Teil des C64 Programms, der für die Kommunikation mit dem PIC vorgesehen ist, im PIC selbst gespeichert und kann in den C64 geladen werden. Klingt erstmal paradox, aber die PIC-Implementierung bietet von Haus aus ein normales Floppy-Interface, was dann von Kernel-Funktionen vom C64 angesprochen werden kann, um den Code nachzuladen und danach geht es erst in die trickreiche MIDI-Kommunikation. Zumindest steht das im Source Code, weiss nicht was davon aktuell schon implementiert oder verwendet wird. Vorteil dabei ist, daß die Kommunikationsroutine immer zum angeschlossenen PIC passt, egal welche SID Wizard Version man hat. Nachteil ist, wenn man die Kommunikationsroutine verbessern will, dann muß man den PIC neu flashen.

    Das Flashen geht übrigens wirklich einfach: MPLAB installieren (ich habe noch die alte Version installiert, nicht MPLAB X, aber wird wohl auch mit der neuen Version so gehen) und dann kann man das HEX-File darin öffnen und per Mausklick den PIC programmieren. Hat sich schon nach ein paar Updates rentiert, gegenüber wenn ich das flashen würde, in einen Briefumschlag stecken müsste und jedesmal zum Briefkasten rennen müsste. Aber oneBitman kann dir bestimmt auch einen flashen, wenn er schonmal dabei ist. Ich müsste sonst noch einen PIC12F509 bestellen.

    PS: Falls es wirklich noch einen PIC12P509 gibt, wie in dem Schaltplan zu sehen, nicht kaufen, da der nur einmal programmierbar ist und nicht mehr löschbar. Ist ansonsten voll kompatibel zum PIC12F509.

  • jo cooler wäre schon einen zu nehmen der mehrfach beschreibbar ist, danke für den hinweis. ich kann problemlos den programmierten pic per brief verschicken, generell kann ich alles was in einen brief passt gerne bereitstellen, nur wenn die sachen zu gross werden ist das vom porto her (österreich...) leider nicht mehr tragbar. vom layout her bin ich mit veroboards bzw. streifenraster gut befreundet, und bei so wenigen bauteilen ist das schnell gemacht. aber zuerst mal abwarten wann die chinesen den programmer schicken, auch den besagten pic muss ich erst bestellen. also ich rechne frühestens in einem monat mit einer funktionierenden schaltung, viele baustellen derzeit :D

  • Ich werd das einfach selbst versuchen, zur Not gibts ja hier fachkundige Hilfe ;)
    Danke schonmal für die interessanten und hilfreichen Erklärungen!

    Die beiden Dateien von oben teste ich nebenbei gerade, aber irgendwas mach ich wohl noch falsch - bei ´test.prg´ passiert nach ´run´ nichts und bei SidWizard konnt ich auch grad mit dem Keyboard nichts machen, jetzt ist Vice grad mit der Meldung ´Main CPU: JAM at $1035 abgeschmiert...werd nochmal eben ein bisschen rumprobieren...

    Edit: Ah, bei ´test.prg´ hör ich jetzt was...sehr gut

    Nach einem Reset wieder nicht, erst wenn ich auf meinem KB den Rhytmus umschalte?! Egal, ist ja nur ein Test...probier ich aber so jetzt auch mal im SW - wo nichts passiert, ausser das einige Noten bei Chord aufblinken.
    Trotzdem genial, freu mich schon aufs Release, wird schon noch alles hinhauen/eingebaut werden :)

    Werd jetzt nochmal eben nach nem Programmer schauen...

  • Mit dem CPU Jam hatte ich auch mal gehabt, aber das war als ich das Programm am debuggen war, sonst lief das immer. Vermutlich ist der NMI problematisch: Wenn zu schnell Daten ankommen, und man gerade im Debugger hängt, dann wird der scheinbar mehrmals aufgerufen (so sah es zumindest im Single Step im VICe Monitor aus), noch bevor er beendet wurde. Sollte eigentlich auch dann funktionieren, aber vielleicht läuft der Stack irgendwann mal über.

    Das man erst den Rythmus umschalten muß ist schon merkwürdig, aber mein Assembler-Code zur Auswertung der MIDI-Messages mag auch nicht der beste und fehlerfreieste sein, ist ja nur mal eben gehackt :whistling:

    Ich habe hier ein nützliches Programm zum Debuggen gefunden:

    Bitte melde dich an, um diesen Link zu sehen.

    Funktioniert mit der "SEQUENTIAL"-MIDI-Emulation Einstellung bei mir. Damit kannst du sehen, was für Messages dein Keyboard schickt und ob die auch in VICE ankommen. Wenn du mir die problematische Testsequenz gibst, kann ich versuchen das in test.prg zu simulieren, ob es vielleicht noch ein Logikfehler im Programm gibt. Mein Akai sendet z.B. zwischendurch immer mal ein WHEEL-Event, wohl weil die Drehregler zwischendurch immer mal von alleine um einen Wert springen.

    Oder einfach warten, bis hermit das sauber programmiert eingebaut hat.

  • Frage zur Sicherheit lieber,

    z.B. sollte doch auch gehen, oder? Oder funktioniert der eventuell mit dem Mplab nicht?
    Bei dem von dir verlinkten brauche ich ja dann anscheinend noch eine Adapterplatine mit Sockel, und hier wohl nicht - zumal er nur einen Bruchteil kostet...

    Edit zu MYMIDI:
    In Vice auf sequential und im Programm: Tasteneingabe vom KB passiert nix, starte ich einen Rhytmus: crash/schwarzes Bild

    Mit Datel In Vice und im Prog scheint es grad zu funktionieren, Tasten vom KB jedenfalls, crasht aber ebenso sobald ich einen Rhytmus am KB starte

    Drehrad oder sowas hat das KB übrigens nicht, ein Casio CT-640 von 1986 oder so, ganz einfaches Teil eigentlich. Aber vielleicht kommen die Eingaben beim Rhytmus ja auch einfach zu schnell?!

    Stell ich Vice und Programm MYMIDI auf Namesoft kommt sofort bei Tasteneingabe vom KB ein schwarzes Bild.

  • Ja, sollte auch gehen. Steht zumindest in etwas schrägem deutsch, daß es scheinbar ein PICSTART Plus emuliert, was von MPLAB unterstützt wird.

    PICSTART war der alte Programmer. Hatte ich früher auch mal, aber ich verwende heute nur noch den PICKit. Man braucht nur eine Stiftleiste mit 5 Pins in der Schaltung vorzusehen und kann das dann in-circuit programmieren. Besonders bei SMD-Chips gut, die ja eingelötet werden müssen. Aber sieht so aus, als würde bei dem Angebot auch ein Kabel für in-circuit Programmierung beiliegen. Wird also nur nicht die neuesten PICs unterstützten.

    Der Programmieranschluss sieht z.B. so aus (Schaltung in der Mitte der Seite) :

    Bitte melde dich an, um diesen Link zu sehen.

    R2 und D1 kann man noch weglassen, wenn man nicht programmieren will, während die externe Versorgungsspannung anliegt. Ist wirklich praktisch, wenn man nicht immer den Chip aus dem Sockel holen muß, wenn man mal öfters Änderungen hat.

  • Vielleicht ist es mit der Rythmusfunktion tatsächlich zu schnell. Wobei MIDI nur 3900 Bytes pro Sekunde zulässt, schon merkwürdig. Werde ich mal testen, sobald ich mein MIDI-Interface mit MIDI-Out aufgebaut habe, da kann ich dann die maximale Geschwindigkeit vom C64 aus ausgeben lassen und im VICE ankommen lassen, oder auch umgekehrt. Könnte man vielleicht sogar die Computer mit über MIDI vernetzen.

  • Ja kennt man, haben sowas in der Art nicht ein paar Minicomputer (Raspi)? Ich werds mit dem programmer einfach mal versuchen, dauert ja ein paar Tage, und mir die anderen Sachen bei Reichelt mal raussuchen. Will den PIC allerdings im DIP-Gehäuse nehmen, ist mir lieber, gerade bei Lochraster!

    Wo ich gerade noch so drüber nachdenke: Wie mache ich das mit dem Laufwerksanschluss denn, da hängt ja schon die Ultimate dran? Hab gesehen bei Jim Brain glaube ich gibts ne 4-Port-Weiche - gibt es Alternativen? Intern hab ich ein SD2IEC dran, kann ich das nicht intern da auchnoch ´dranhängen´? Und was dabei beachten?

    Edit: Den Programmer hab ich mir jetzt in GB bestellt, kostet nur wenig mehr, dafür aber eine wesentlich kürzere max. Lieferzeit - ~10 Tage.

  • Die Anleitung zum SID Wizard sagt, daß man es an ein 1541 Laufwerk am Ausgang dranstecken könnte, aber es gäbe Probleme mit Fastloader die die ATN-Leitung verwenden. Generell sind die Leitung aber alle als Open Collector geschaltet, sodaß es kein Problem sein sollte, mehrere Geräte daran einfach parallel anzuschließen.

  • hermit hat meinen Source für die MIDI-Unterstützung für das NameSoft Interface eingebaut, die compilierten PRGs und D64s sind im Repository:

    Bitte melde dich an, um diesen Link zu sehen.

    Wie gewohnt starten, gewünschtes Profil auswählen, z.B. NORMAL, dann per F8 das Menü aufrufen, zu "MIDIDEV" am Ende gehen und per zweimal Enter NAMESOFT auswählen. @Nobody probiere am besten damit auch mal aus, ob immer noch der CPU Jam kommt.

  • Sehr schön, ja werd ich testen,dauert jedoch bis morgen früh.
    Der Cpu-Jam kam bei deinem Test.prg, werd den Wizard morgen aber trotzdem mal probieren!

    Der Abend ist ja auch noch jung - würd mich nicht wundern wenn Hermit da heut auch nochmehr macht...

  • Wie gehabt...hab auch mal Seq, Passport und Datel versucht, ohne Änderung (aber das Zahlenwirrwar scheint weg, nur das gesamte Bild flackert hin und wieder bei Midi-Eingabe ein wenig).
    Sollte er denn Noten die ich über Keyboard drücke schon anzeigen? Nachdem ich den Rhytmus geändert habe (war gar nicht an, muss nur auf die Wahltasten drücken) wurden die Noten, die ich danach ganz normal per Keyboard spiel, im Sid-Wiz rechts im Kopf der Chord-Tabelle angezeigt - aber auch erst nachdem ich dort auf den Rhytmus-Tasten rumgedrückt habe, vorher nicht. Werden auch nicht im Pattern selbst angezeigt, da steht der Cursor auf der Stelle...Space hab ich natürllch auch gedrückt, er ist nicht im ´playonly-mode´, per Pc-Tastatur kann ich Noten eingeben, die er normal darstellt.
    Bei den anderen Midi-Cart-Emulationen passiert gar nichts, auch fast bei jedem Vice per Hardreset neu gestartet und das entspr. Modul im Wiz eingestellt.

    Ist das Keyboard vielleicht auch zu alt/irgendein veralteter Midi-Standard?

    Muss jetzt erstmal schlafen, morgen kann ich weiterprobieren...vielleicht tut sich bei Hermit heut ja auch schonwieder was.