a midiben amúgy hogy van az időzítés? emlékszem, mintha programoztam volna midis dolgot, tök jó kis egyszerű nyelve van, de nem ugrik be hogy hogyan van az időzítés benne.
A MIDI alapvetően esemény alapú, ezek az egyszerűbb (csatorna) események lehetségesek:
8xh y z = Note Off = billentyű elengedése (y = magasság, z = sebesség, az utóbbi gyakran figyelmen kívül hagyható), X mindenhol a csatorna száma, a paraméterek 7 bitesek
9xh y z = Note On = billentyű leütése (y = magasság (69 = 440 Hz, a BASIC-hez képest +23), z = erősség, a z = 0 valójában Note Off)
Axh y z = Polyphonic Pressure = billentyű Y lenyomva tartásának az erőssége (Z), ezt az olcsóbb billentyűzetek általában nem támogatják
Bxh y z = Control Change = vezérlő (hangerő stb.) Y változása Z értékre
Cxh y = Program Change = program (hangszer) Y választása
Dxh y = Channel Pressure = az összes billentyű lenyomva tartásának az átlagos erőssége a csatornán
Exh y z = Pitch Bend = hajlítás, 0 és 16383 közötti 14 bites érték (y = alsó 7 bit, ami valójában gyakran 0), 8192 esetén nincs hajlítás, a "szabványos" tartomány alapértelmezés szerint +/- 2 félhang
Valós idejű bemenetnél ezeket a legrövidebb késéssel fel kell dolgozni, a PC-s API-k adnak információt a késés mértékéről is a pontos időzítéshez. A MIDI file formátum az események közötti időt tárolja.
ja és az exos sound tud olyat hogy az envelope-ban megadható RELEASE, ami a midi billentyű elengedésnek feleltethető meg
Az EXOS hangkezelőjével az a probléma, hogy a hangjegy időtartamát már az indításakor is ismerni kell, ami valós idejű bemenet (hangszeres játék) esetén nyilvánvalóan nem lehetséges. Illetve a hang paramétereit (magasság stb.) sem lehet az indítása után már módosítani, csak INTERRUPT lehetséges, ami lecsengés nélkül megszakítja.
várom már hogy fájból tudjunk basicben midit olvasni
Az IS-BASIC támogat file műveleteket, tehát elvileg semmi akadálya.