Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxn!ihnp4!ihwpt!knudsen From: knudsen@ihwpt.UUCP (mike knudsen) Newsgroups: net.micro.6809,net.music.synth Subject: MIDI Syntax (short!) Message-ID: <846@ihwpt.UUCP> Date: Thu, 1-May-86 14:29:14 EDT Article-I.D.: ihwpt.846 Posted: Thu May 1 14:29:14 1986 Date-Received: Sat, 3-May-86 18:58:58 EDT Distribution: net Organization: AT&T Bell Laboratories Lines: 70 Xref: watmath net.micro.6809:818 net.music.synth:1101 Here is a repost of a 1-page syntax for MIDI bytes. Very handy for writing state-machine software; nail it to wall for a cheat-sheet. Regret to say I lost the original author's name. I cleaned it up a little, shortened names and tabbed it so that: alternatives always begin with | and are flush, but continuation lines are tabbed in two spaces. Lucky I read news today before reposting the justly famous MIDI Primer by Bob Mcqueer -- two others already have. Too bad, cause I'd cleaned up and commented my copy a little, and separated the "pulpit" section from the facts. -------- begin repost of MIDI.BNF ------------------- The latest issue of the IMA bulletin had an article on BNF for MIDI. The article points out that this syntax is what can be TRANSMITTED and the actual RECEIVER implementation may differ slightly from this grammer. This may allow greater error tolerance. The example given is that of tranmitting a system exclusive message without the termination byte F7. A channel status byte could also be used to terminate a system exclusive in the event the eox byte is lost due to error or power down etc... Definitions 3-17 define running status and realtime data insertion as well as the various channel messages. 1. ::= < MIDI Stream> 2. ::= | 3. ::= | | 4. ::= 5. ::= 6. ::= 7. ::= 8. ::= C | D 9. ::= 8 | 9 | A | B | E 10. ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | | 8 | 9 | A | B | C | D | E | F 11. ::= 12. ::= | | 13. ::= | 14. ::= | | 15. ::= 16. ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 17. ::= F8 | FA | FB | FC | FE | FF 18. ::= | | | | 19. ::= 20. ::= 21. ::= F0 22. ::= F7 23. ::= | | | | 24. ::= F6 25. ::= 26. ::= 27. ::=F2 28. ::= F3 ------ end of MIDI.BNF --------