Natural_Demon
Stamgast
Origineel geplaatst door etaoin
Vergeet niet dat buiten extra bytes er ook bytes weg kunnen vallen. MIDI-hardware garandeert niet dat alles 100% doorkomt, dus je krijgt mogelijk zelfs een nieuwe note-on terwijl je nog denkt met een oude bezig te zijn. Dus feitelijk kun je alles > 7F niet zomaar weggooien maar moet je kijken wat het is.
daar heb ik ook aan gedacht en ik denk dat er een timer nodig is, die na zeg maar 0,1 seconde de stuff weer reset als aan enkele voorwaarden niet is voldaan.
maar volgens hoefd dit zelf nog niet, want naar 3 keer lopen wordt het sowiso gereset.
en als er een nieuwe note on komt, betekent dit ook meteen dat er niet aan voorwaarden is voldaan en wordt de boel gereset.
-1 de waarde is groter is groter dan 127
-2 de byte_counter loopt op en er kan niet woorden voldaan aan de voorwaarden, dus reset.
dus kan het betekenen dat deze noot genegeerd wordt.
maar die testen die ik gedaan heb mit midiox, lijkt me dit sterk.
zelf als 2 octaven tegelijk indruk terwijl ik de sequencer knop van mijn keyboard (via emagic MT4) in en uit druk, staan de bytes allemaal netjes naast elkaar, geen enkele byte heeft een ID tag, die zegd ik hoor bij die set die je 4 bytes geleden heb ontvangen.
ik geloof best dat er een clock signal kan tussen zitten (24PQN) en misschien nog een stop byte.
en als dat het geval is, dan is er toch iets fout met je sequnecer software of de midi poort aan je pc.
twike zegd dan wel, dat je ook niet 100% op midiox kan rekenen, maar volgens mij is deze software specific voor dit doeleinde ontworpen.
En waar is de handling van de note-off? Ik zie wel een note-on met velocity van 0, maar de meeste apparaten sturen een echte note-off message. Of is deze code specifiek voor een bepaalde controller die geen note-off verstuurt?
if(byte == 0x89){ // found note off status byte for channel 10?, did we miss anything?
midi_rx_handle_note_on = 0; // reset
byte_counter = 0; // reset
}
ja, ik weet dat er ook note off berichten zijn, maar volgnes werkt deze setup wel
omdat ik met die note off eigenlijk niks doe.
omdat ik maar na de vondst van mijn WANTED data een 2ms trigger signal naar de bassdrum hoef te sturen.
corigeer me maar als ik het fout heb.