Visual constructors are represented by one or several arguments boxes where the user drop expressions, and a result box where he can get the resulting expression. The constructors perform no real computation. The resulting expression is a tree whose root is labeled with the constructor name and branches which are the used sub-expressions. The Real-time input Editors Editors allow to work on Elody objects by editing and modifying them. The evaluation of an expression, that is the transition from the intentional description to the corresponding extensional description , is only done for graphical and Midi rendering.
Users always handle non-evaluated, intentional descriptions.
This allows to play objects even if they are not in the Player. Programming One of the main purpose of a music composition environment is to allow to express intentional descriptions with all the required generality, and to maintain the relation with the corresponding extensional description. Reaching generality and abstraction within intentional description presuppose a kind of programming. The homogeneous language approach adopted in Elody tries to insert the programming activity in a conceptual framework directly related to the existing skills and knowledge of the user. Instead of providing the user with a separate programming language with specific concepts, syntax, semantic and editings tools, the key idea of the homogeneous language approach is to extend in a consistent way the domain of objects the user manipulates with his editing tools to include user-defined programs.