Discussion:
MIDI Modul - am C-64 o.a.?
(zu alt für eine Antwort)
Kay Martinen
2024-03-11 21:40:54 UTC
Permalink
Hallo

Hab bei c't einen Artikel (https://heise.de/-9650995) über ein HW-MIDI
Modul gefunden (13 US-$) das an Microcontrollern wie Arduino, ESP o.a.
verwendet werden kann.

Das komplette Modul braucht offenbar nur Strom und eine Serielle
Ansteuerung (IMHO MIDI-Seriell) der verbaute Chip (1) darin soll aber
auch einen Parallelen Eingang haben. Was für Langsamere Geräte (wie den
C-64) evtl. sinn machen könnte.

Ich habe mich beim Lesen unwillkürlich gefragt ob man dieses Modul auch
von einem Originalen C-64 aus ansteuern könnte. Für den soll es ja auch
MIDI Software/Hardware gegeben haben. Allerdings meine ich dessen
Serieller Port schafft kaum 2400 Baud und für MIDI braucht es 31250
Bits/sek 8N1 was etwa 31kBaud entsprechen müßte. Da hier nicht moduliert
wird müsste Bit=Baud gelten, außer man zählt die Start- und Stop-bits ab
die zwar einen Signalwechsel haben aber keine Nutzdaten.

Hatten MIDI-Interfaces für den C-64 Expansion-Port Anschluß und einen
eigenen UART der schnell genug war? Dann müsste das wohl der einfachste
Weg sein, ggf. braucht man nur den Pegel anpassen und könnte damit
sofort los legen - ohne einen Großen, teuren, Schweren Synthesizer mit
Keyboard. Bei https://www.c64-wiki.de/wiki/MIDI-Interface sieht das eher
nach Userport aus - beim Steinberg Research und JMS Gerät. Nur das Card
32 sieht nach Expansion Port aus. Hatte die jemand?

Ein "Interface" zu stricken das dieses Modul Parallel an einen C-64
anbindet ist vermutlich nicht einfach. Es müsste ja von vorhandener
Software angesteuert werden können und erfordert dann mindestens eine
"Treiber-routine" die man vorher in's RAM laden müsste. Die muß dann
wohl an etablierte Interfaces adressiertes umlenken auf den Parallelen
Anschluß und ggf. auch den Rückweg (MIDI In).


Beim PC damals weiß ich noch das einige Soundblaster u.a. Karten einen
15pol. Anschluß hatten auf dem neben Gameport auch MIDI an lag. Ich hab
sogar noch einen MIDI Adapter dazu. Hat damals mit einem Einfachen
Keyboard gut funktioniert.

Aber generell muß man sich schon fragen wozu man ausgerechnet ein MIDI
Soundmodul an einem Microcontroller betreiben wollte. Nach meiner
Erfahrung waren MIDI Musikstücke damals entweder nur kaufbar und gut
oder Kostenlos und Schlecht (umgesetzt). Wo wollte man das einsetzen bei
einem µC Projekt. "Ode to Joy" spielen wenn man zur Haustür rein kommt? ;-)

Und man mußte schon damals aufpassen ob das ein General MIDI stück ist
oder etwas anderes. Bei einem Mismatch/Verkehrtem Spielt das Keyboard
oft krudes unhörbar gräßliches ab. IMO ein Problem der Kanal- und
Stimmen-zuordnung.

Bye/
/Kay


(1)
https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/products/unit/Unit-Synth/SAM2695.pdf
--
nix
Gerrit Heitsch
2024-03-12 06:46:48 UTC
Permalink
Post by Kay Martinen
Hallo
Hab bei c't einen Artikel (https://heise.de/-9650995) über ein HW-MIDI
Modul gefunden (13 US-$) das an Microcontrollern wie Arduino, ESP o.a.
verwendet werden kann.
Das komplette Modul braucht offenbar nur Strom und eine Serielle
Ansteuerung (IMHO MIDI-Seriell) der verbaute Chip (1) darin soll aber
auch einen Parallelen Eingang haben. Was für Langsamere Geräte (wie den
C-64) evtl. sinn machen könnte.
Ich habe mich beim Lesen unwillkürlich gefragt ob man dieses Modul auch
von einem Originalen C-64 aus ansteuern könnte. Für den soll es ja auch
MIDI Software/Hardware gegeben haben. Allerdings meine ich dessen
Serieller Port schafft kaum 2400 Baud und für MIDI braucht es 31250
Bits/sek 8N1 was etwa 31kBaud entsprechen müßte. Da hier nicht moduliert
wird müsste Bit=Baud gelten, außer man zählt die Start- und Stop-bits ab
die zwar einen Signalwechsel haben aber keine Nutzdaten.
Hatten MIDI-Interfaces für den C-64 Expansion-Port Anschluß und einen
eigenen UART der schnell genug war?
Da war oft ein MC6850 als UART verbaut.



Dann müsste das wohl der einfachste
Post by Kay Martinen
Weg sein, ggf. braucht man nur den Pegel anpassen und könnte damit
sofort los legen - ohne einen Großen, teuren, Schweren Synthesizer mit
Keyboard. Bei https://www.c64-wiki.de/wiki/MIDI-Interface sieht das eher
nach Userport aus - beim Steinberg Research und JMS Gerät.
Nein, das Steinberg Research hat 2 Anschlüsse, einmal Userport und
einmal Expansionport. Kann man gut im Bild sehen.

Gerrit
Kay Martinen
2024-03-12 14:13:46 UTC
Permalink
Post by Gerrit Heitsch
Post by Kay Martinen
Hab bei c't einen Artikel (https://heise.de/-9650995) über ein HW-MIDI
Modul gefunden (13 US-$) das an Microcontrollern wie Arduino, ESP o.a.
verwendet werden kann.
Ich habe mich beim Lesen unwillkürlich gefragt ob man dieses Modul
auch von einem Originalen C-64 aus ansteuern könnte. Für den soll es
ja auch MIDI Software/Hardware gegeben haben. Allerdings meine ich
dessen Serieller Port schafft kaum 2400 Baud und für MIDI braucht es
Hatten MIDI-Interfaces für den C-64 Expansion-Port Anschluß und einen
eigenen UART der schnell genug war?
Da war oft ein MC6850 als UART verbaut.
Ich las was von einer ACIA. Also: Ja!

Wirkt es nicht heute fast unwahrscheinlich das eine 0,9 MHz 8-Bit CPU
schnell genug ist so ein 31k2 Schnelles Interface im richtigen
Takt/Zeitraster mit den nötigen Daten zu bespielen?

Okay, es sind für einen Ton nur 6 Bytes zu übertragen aber die müssen ja
Zum richtigen Zeitpunkt gesendet werden, sowohl Note On als auch Note
Off denn dazwischen liegt ja die Spieldauer der Note. Und das wäre nur
ein Ton. Einen "richtigen" Polyphonen Synth an zu steuern könnte
zeitgleich 15 Kanäle füllend entsprechend mehr Daten erfordern. Und jede
Note muß zeitlich "sitzen".
Post by Gerrit Heitsch
Post by Kay Martinen
Keyboard. Bei https://www.c64-wiki.de/wiki/MIDI-Interface sieht das
eher nach Userport aus - beim Steinberg Research und JMS Gerät.
Nein, das Steinberg Research hat 2 Anschlüsse, einmal Userport und
einmal Expansionport. Kann man gut im Bild sehen.
Ich hab da zwei Kabel mit Verbindern gesehen, ja. Erst heute habe ich
das Bild vergrößert und konnte die Exp.Port Leiste auch erkennen.

Vorher nahm ich an das sei eine Durschleifung des Userports. War damals
ja nicht selten, hatte ich auch bei einigen Modulen.

Frage: Hattest du das Steinberg Research interface? Wozu war der
Userport-Anschluß gut? Signal, Steuerung oder Strom?

Bye/
/Kay
--
nix
Gerrit Heitsch
2024-03-12 18:01:57 UTC
Permalink
Post by Kay Martinen
Post by Gerrit Heitsch
Post by Kay Martinen
Hab bei c't einen Artikel (https://heise.de/-9650995) über ein
HW-MIDI Modul gefunden (13 US-$) das an Microcontrollern wie Arduino,
ESP o.a. verwendet werden kann.
Ich habe mich beim Lesen unwillkürlich gefragt ob man dieses Modul
auch von einem Originalen C-64 aus ansteuern könnte. Für den soll es
ja auch MIDI Software/Hardware gegeben haben. Allerdings meine ich
dessen Serieller Port schafft kaum 2400 Baud und für MIDI braucht es
Hatten MIDI-Interfaces für den C-64 Expansion-Port Anschluß und einen
eigenen UART der schnell genug war?
Da war oft ein MC6850 als UART verbaut.
Ich las was von einer ACIA. Also: Ja!
Wirkt es nicht heute fast unwahrscheinlich das eine 0,9 MHz 8-Bit CPU
schnell genug ist so ein 31k2 Schnelles Interface im richtigen
Takt/Zeitraster mit den nötigen Daten zu bespielen?
Wenn man volle Kontrolle über das System hat, dann geht da eine Menge.

Und es sind 985 kHz Takt beim C64, die 85 kHz sollte man nicht unter den
Tisch fallen lassen. Aber wegen der Badlines geht bei eingeschaltetem
Bildschirm da noch der eine oder andere Takt ab. Meines Wissens 43 Takte
* 25 * 50 Hz = 53750 Takte in denen die CPU warten muss. Mehr wenn
Sprites in Benutzung sind.
Post by Kay Martinen
Post by Gerrit Heitsch
Post by Kay Martinen
Keyboard. Bei https://www.c64-wiki.de/wiki/MIDI-Interface sieht das
eher nach Userport aus - beim Steinberg Research und JMS Gerät.
Nein, das Steinberg Research hat 2 Anschlüsse, einmal Userport und
einmal Expansionport. Kann man gut im Bild sehen.
Ich hab da zwei Kabel mit Verbindern gesehen, ja. Erst heute habe ich
das Bild vergrößert und konnte die Exp.Port Leiste auch erkennen.
Vorher nahm ich an das sei eine Durschleifung des Userports. War damals
ja nicht selten, hatte ich auch bei einigen Modulen.
Frage: Hattest du das Steinberg Research interface? Wozu war der
Userport-Anschluß gut? Signal, Steuerung oder Strom?
Nein, ich habs nicht so mit Musik machen.

Ich könnte mir aber Strom vorstellen. Dort bekam man schliesslich 9V AC
und kann sich daraus passende Spannungen basteln. Die Box ist recht
groß, da muss mehr als nur ein 6850 zu finden sein.

Gerrit
Kay Martinen
2024-03-12 20:16:22 UTC
Permalink
Post by Gerrit Heitsch
Post by Kay Martinen
Wirkt es nicht heute fast unwahrscheinlich das eine 0,9 MHz 8-Bit CPU
schnell genug ist so ein 31k2 Schnelles Interface im richtigen
Takt/Zeitraster mit den nötigen Daten zu bespielen?
Wenn man volle Kontrolle über das System hat, dann geht da eine Menge.
Naja, das ist eben kein Linux wo ein at, cron oder systemdämon beliebig
oft dazwischen funken könnte.
Post by Gerrit Heitsch
Und es sind 985 kHz Takt beim C64, die 85 kHz sollte man nicht unter den
Tisch fallen lassen.
Okay, hab's doch schon abgerundet. Aber ob die 85kHz wirklich einen
Unterschied machen, ich weiß nicht.
Post by Gerrit Heitsch
Post by Kay Martinen
Frage: Hattest du das Steinberg Research interface? Wozu war der
Userport-Anschluß gut? Signal, Steuerung oder Strom?
Nein, ich habs nicht so mit Musik machen.
Mit dem Machen hab ich's bei Musik auch nicht so, aber damit rum spielen.
Post by Gerrit Heitsch
Ich könnte mir aber Strom vorstellen. Dort bekam man schliesslich 9V AC
und kann sich daraus passende Spannungen basteln.
Stimmt ja. Die waren nur auf dem User-Port verfügbar.
Post by Gerrit Heitsch
Die Box ist recht
groß, da muss mehr als nur ein 6850 zu finden sein.
Ja, z.b. Clock/Sync und Tape. Nur wozu hab ich jetzt keine Idee.

Könnte ja auch ein Subprozessor und ein FIFO drin stecken so das die CPU
dem nur die Daten mit einem Takt-zeichen rein schiebt und der das dann
automatisch passend raus haut, und gleich noch ein Sync-Signal dazu
liefert - oder vielleicht auch noch direkt was auf Tape speichert...

Bye/
/Kay
--
nix
Gerrit Heitsch
2024-03-13 19:14:39 UTC
Permalink
Post by Kay Martinen
Post by Gerrit Heitsch
Post by Kay Martinen
Wirkt es nicht heute fast unwahrscheinlich das eine 0,9 MHz 8-Bit CPU
schnell genug ist so ein 31k2 Schnelles Interface im richtigen
Takt/Zeitraster mit den nötigen Daten zu bespielen?
Wenn man volle Kontrolle über das System hat, dann geht da eine Menge.
Naja, das ist eben kein Linux wo ein at, cron oder systemdämon beliebig
oft dazwischen funken könnte.
Post by Gerrit Heitsch
Und es sind 985 kHz Takt beim C64, die 85 kHz sollte man nicht unter
den Tisch fallen lassen.
Okay, hab's doch schon abgerundet. Aber ob die 85kHz wirklich einen
Unterschied machen, ich weiß nicht.
Sind 85000 Takte. Also mehr als 10000 Befehle pro Sekunde. Mit 10000
Befehlen kann man auch beim 6502 einiges machen.

Gerrit

Loading...