InnovationQ will be updated on Sunday, April 29, from 10am - noon ET. You may experience brief service interruptions during that time.
Browse Prior Art Database

MIDI Composition Programming Language

IP.com Disclosure Number: IPCOM000107385D
Original Publication Date: 1992-Feb-01
Included in the Prior Art Database: 2005-Mar-21
Document File: 4 page(s) / 146K

Publishing Venue


Related People

Johnson, WJ: AUTHOR [+4]


A language is described which provides an efficient MIDI representation of music in a computer system, particularly for composition and organization.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 35% of the total text.

MIDI Composition Programming Language

       A language is described which provides an efficient MIDI
representation of music in a computer system, particularly for
composition and organization.

      The Backus Naur Form (BNF) grammar below allows for an
efficient encoding when composing MIDI music and allows identifying
patterns of existing compositions for future reference.  Furthermore,
the music encoding is a tree structure which elaborates into a
complete MIDI composition. This permits an efficient encoding by
defining one instance of common composition pieces which can be
referenced multiple times throughout a composition.  Furthermore, the
present method allows programming compilation practices to be
employed when parsing, interpreting and generating to peripherals.
The BNF is best implemented with an ASN.1 or X.409 encoding, although
a variety of efficient encodings could be utilized.

      When an encoding is parsed, an expanding elaboration of the
encoding occurs.  A small encoding expands into a large hierarchical
tree structure where attributes of branches are scoped down to
ascending branches and leaf nodes of the tree.  The tree structure
defines a scoping of the attributes.  The attributes themselves
define composition attributes of the basic objects of the
composition.  The basic objects are the MIDI primitive constructs or
series thereof. Objectives and advantages of this method are:
      O    Programmatically defining music with a computer language
which is efficient (and in encoding size), adaptable, compilable,
communicable, conveniently processable and provides a simplistic
model capable of the most complex unique representations.
      O    Suits programmatic creation of MIDI composition
      O    Efficient encoding in memory/storage requirements
      O    Highly organized representation provides computer
representation and generation from application programs
      O    Language can be compiled or implemented with LEX and YACC
      O    MIDI can generate 3000 10-bit words per second when
emitted from instruments.  Editing large complex musical pieces with
an application is tedious.  This article allows convenient
representation for composition editing applications.
The BNF grammar follows. The MIDI_CONSTRUCT elements are the
particularly useful elements in building a composition. The language
has been unnecessarily extended with its own constructs (e.g., CHORD,
NOTE, etc.).
COMPOSITION        := start track_count TRACK1 ... TRACKi finish
                            All TRACKi portions start exactly the
same time in a composition.
TRACKi             := measure_count MEASURE1 ... MEASUREn
                            All MEASUREi portions start exactly the
same time in a track.