AVR + Midi

Gast #258726
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
#258727
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.