Forum: Mikrocontroller und Digitale Elektronik AVR + Midi


von Stef (Gast)


Lesenswert?

Hallo beisammen,

ich möchte einen MEGA16 per BasCom zum Midi-Controller umfunktionieren
und hab damit ein kleines Problem.

Ich habe die Pollin-Platine mit einem integrierten MAX232 und greife
für den Midi-Anschluß TDX, wiederum vom 34-Poligen Pfostenstecker +5V
ab. Mein Versuch (simples Note-on) war dahingehend (connected am
Portd.1>TXD, sorry, wenn die Befehle nicht 100%ig stimmen, bin grad auf
Arbeit, hab das Prog nicht hier):

dim a as byte
dim b as ybte
dim c as byte
dim f as byte

a=&h91
b=&h0d
c=&hf7
f=1

main:
serout f,1,d,1,31250,0,1,0  ; Start-Bit
serout a,8,d,1,31250,1,8,1 ;Note on und Stop-bit
serout f,1,d,1,31250,0,1,0  ; Start-Bit
serout b,8,d,1,31250,1,8,1 ;Note und Stop-bit
serout f,1,d,1,31250,0,1,0  ; Start-Bit
serout c,8,d,1,31250,1,8,1 ;Velocity und Stop-bit
wait 1
goto main

Am Synth, der an der Midi-Schnittstelle klemmt, kommt nur eine
Error-Message a l'a "Channel Full" und ich bekomme keine Note
heraus.

Irgendwo stand was davon, das man wegen dem integrietem Inverter im
MAX232 das ganze per "a=a xor &b111111111, b=b xor &b111111111, c=c
xor &b111111111" drehen muß und /oder a=255-a, b=255-c /c=255-c
ausführen muß, funktioniert aber auch nicht. Entweder er macht gar
nichts oder fürht ein Progchange durch. Direkt am Prozessor ohne
MAX232, annem anderen Pin (TXD) bzw direkt per print "wert" und
$baud=31250 (bei 8 MHz) klappt ebenfalls nicht; die Fehler sind die
gleichen....

Frage: a) Wie kann ich das lösen, b) ist am Midi in am Synth ebenfalls
ein Inverter?



Grüsse + mächtig vielen Dank!

Stef

von Sascha D. (plutoonline)


Lesenswert?

Hi Stef,
ist das Basic?
Ich kenne mich mit Basic leider nicht so gut aus aber ich versuch Dir
mal zu helfen.
Also Du mußt das Midi Signal direkt am Prozessor PIN (TXD) ausgeben.
Aber mit Serout und nicht mit Print. Invertieren muß man da normal
nichts, ausser wenn man direkt an den Gameport der Soundkarte geht kann
das vorkommen.
Der Anschluß am Proz muß folgendermaße aussehen:

TXD--------[220 Ohm]-----Midi-Buchse  (Pin5)
+5V--------[220 Ohm]-----Midi-Buchse  (Pin4)

es kann sein das ich PIN4 und PIN5 vertauscht habe, also vorher nochmal
checken.

Und dann mußt du folgendes senden:
-NoteOn   z.B (144+Kanal also 144+10 für Kanal 10)
-Note     z.B (39 für d#3)
-Anschlagdynamik   z.B. (Standardmäßig 100)

Ich hoffe ich konnte Dir einwenig weiterhelfen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.