MIDIPoet - Composer

MIDIPoet Composer lets you compose interactive pieces involving text and/or image. The composition is done by drawing logical diagrams that indicate the forms of occurrence of visual events, that is, they indicate what happens to text/image, and when and how it happens. Each of these diagrams is a tree formed by blocks and segments; blocks represent events, or conditions that must be fulfilled in order to make events happen. The diagrams or trees are hierarchical structures, with relationships established by segments that join the blocks. The final branches are the events (children); which are triggered when the conditions (parents) are fulfilled.


This is an example of a simple logical diagram, in which there are two conditions (yellow and blue blocks) that must be fulfilled so that the event (red block) can happen.


Diagrams are constructed in the following way:
- A parent can have many children, a child cannot have many parents.
- A child can exist without parents. This means that the event represented by this block doesn't need any conditions to happen.
- Various separate diagrams can be drawn on the same composition. The composition will be the sum of all drawn diagrams.


when the yellow and green conditions are met, the two red events will happen simultaneously.
In the diagram at the left, if the conditions "t=0" and "key a" are met, the "back" event happens. If the "t=0" and "key b" conditions are met, the events "t1" and "t2" happen simultaneously (first t1, then t2)

This is the simplest possible diagram, in whic event "t1" will happen at the beginning of the piece, since it has no conditions.


Blocks are distinguished by their colour. The black stripes on top and bottom of blocks indicate if a block can be a parent (black strip at the bottom) and/or a child (black strip on top).

These following blocks can be parent blocks (most of them also child blocks) These blocks represent conditions:

Time: Indicates the time at which the children blocks will be activated. Cannot be a child block. If this block is not at the root of a diagram, the default activation time is 0 (start).

Conditional: Specifies internal conditions that have to be met in order to activate the children blocks. Can be parent and/or child.

Keyboard input : Specifies a computer keyboard key that has to be pressed in order to activate the children blocks. Can be parent and/or child.

MIDI input: Specifies a range of MIDI notes; when any of these notes is recieved, the children blocks are activated. Can be parent and/or child.

The child blocks, which represent events, can be:

Text event: Event that modifies the properties of one or many text areas.

Image event: Event that modifies the properties of one or many image areas.

Screen background event: Event that modifies the properties of the screen's background.

Screen drawing style event: Event that modifies the drawing style of the screen.

MIDI output event: Event that generates a MIDI output message.


The events that manipulate text and image make reference to areas. A text or image area is equivalent to a character in the composition. An unlimited number of independent text and image areas can exist. The areas will be defined as they are required, like characters that enter the scene and develop their role. Each of this areas has attributes or properties (text: content, position, color, etc; image: content, position, etc) which are modified using the events mentioned above.


How to make a composition

- Drawing the diagrams
- Editing the diagrams
- Events: in general -- image and text areas, screen background, drawing style, cyclic events

- Editing the events' properties
- Text events
- Image events
- Screen background events
- Drawing style events
- About drawing styles
- Time
- Conditionals
- Keyboard inputs
- MIDI inputs
- MIDI outputs

- Images
- Data sources, ranges and tables

- General properties of a composition
- Saving/Loading a composition


The compositions are performed using the MIDIPoet player. Both programs (composer and player) can be used simultaneously, to compose and test the pieces.

It is strongly recommended to download the *.mip sample pieces, to analyze/modify them and learn more about MIDIPoet.