wer kann mir helfen
ich möchte mit Midi-Kanal 7 (binär 151), Velcity 100
und bei den Noten 80 bis 88, Kanäle vom Tiny2313 schalten,
aber irgendwie wird der Midi-Kanal beim empfangen des Protokolls
verschluckt bzw. überschrieben von Velocity
Im unteren Code sollte eigentlich
Protokoll(1) 151 (Note-on Ch. 7)
Protokoll(2) 80 ....88
Protokoll(3) 100 sein
tatsächlich ist aber Protokoll(1) 100 Velocity, mit Drumcomputer getestet, ändert man Velo geht nichts mehr
Protokoll(2) sind die Noten wie es sich gehört
Protokoll(3) is nichts da
was kann die Ursache sein, das der Note-On Befehl nicht im Protokoll steht
und Velo auf Protokoll(1) geschrieben wird und nicht auf Protokoll(3)
gruß und schonmal Danke Gerhard
das Programm unten funktioniert, aber ohne den Note-on Befehl
Code:$regfile = "attiny2313.dat" $crystal = 8000000 $baud = 31250 Open "COMD.2:31250,8,n,1" For Input As #1 Dim Zeiger As Byte At &HA0 Zeiger = 1 Dim Flag As Byte At &HA1 Dim Adresse As Eram Byte Dim Adresse_temp As Byte At &HA3 Dim Tempword As Word At &HA5 Adresse_temp = Adresse Dim Tempbyte As Byte At &HA7 Dim Protokoll(3) As Byte At &HA8 Ddrd = &B11100010 Ddrb = &B11111111 Config Timer0 = Timer , Prescale = 1024 On Timer0 Timer_irq Stop Timer0 Config Timer1 = Timer , Prescale = 64 On Timer1 Timer_irq2 Disable Timer1 Stop Timer1 Timer1 = 0 Enable Timer0 Enable Interrupts Do Tempbyte = Waitkey(#1) Gosub Zeichenempfang If Flag = 1 Then Gosub Protokoll Flag = 0 Zeiger = 1 End If Loop Zeichenempfang: Protokoll(zeiger) = Tempbyte If Tempbyte = 0 Then Zeiger = 1 End If If Protokoll(1) = 100 Then 'sollte eigentlich 151 sein If Tempbyte = 0 Then Flag = 1 End If Incr Zeiger Else Zeiger = 1 Timer0 = 0 Start Timer0 Enable Timer0 End If Return End Timer_irq: Stop Timer0 Disable Timer0 Zeiger = 1 Return End Timer_irq2: Portb = 0 Portd.6 = 0 Timer1 = 0 Disable Timer1 Stop Timer1 Protokoll(1) = 0 Protokoll(2) = 0 Protokoll(3) = 0 Return End Protokoll: If Protokoll(1) = 100 Then ' sollte eigentlich Protokoll(3) sein Flag = Protokoll(2) If Flag = 80 Then Portd.6 = 1 Elseif Flag = 81 Then Portb.0 = 1 Elseif Flag = 82 Then Portb.1 = 1 Elseif Flag = 83 Then Portb.2 = 1 Elseif Flag = 84 Then Portb.3 = 1 Elseif Flag = 85 Then Portb.4 = 1 Elseif Flag = 86 Then Portb.5 = 1 Elseif Flag = 87 Then Portb.6 = 1 Elseif Flag = 88 Then Portb.7 = 1 Elseif Flag = 0 Then Portb = 0 End If End If Protokoll(1) = 0 Protokoll(2) = 0 Protokoll(3) = 0 Timer1 = 53036 Enable Timer1 Start Timer1 Return End







Zitieren

Lesezeichen