- 286 -Mazzola, Guerino / Noll, Thomas / Lluis-Puebla, Emilio: Perspectives in Mathematical and Computational Music Theory 
  Erste Seite (1) Vorherige Seite (285)Nächste Seite (287) Letzte Seite (454)      Suchen  Nur aktuelle Seite durchsuchen Gesamtes Dokument durchsuchen     Aktuelle Seite drucken Hilfe 

and an example denotator:

MyNote:@Note[MyO:@O(5),MyD:@D(1),MyP:@P(65),MyL:@L("f")]

To construct the forms and the denotator, two methods are available, a direct one and a stack-based one. We will use the stack-based approach for this example.

FormFactory formFactory = new FormFactory();  
formFactory.pushRModule("O");  
Form oform = formFactory.getForm();  
formFactory.pushRModule("D");  
Form dForm = formFactory.getForm();  
formFactory.pushZModule("P");  
Form pForm = formFactory.getForm();  
formFactory.pushZStringModule("L");  
Form lForm = formFactory.getForm();  
formFactory.makeLimit("Note", 4);  
Form noteForm = formFactory.getForm();

The second last line creates a limit form from the four items on top of stack and pushes the new form onto the stack. The getForm method simply returns the form on top of stack. The creation of a denotator proceeds in a similar way.

DenoFactory denoFactory = new DenoFactory();  
denoFactory.pushReal("MyO", oForm, 5.0);  
denoFactory.pushReal("MyD", dForm, 1.0);  
denoFactory.pushInteger("MyP", pForm, 65);  
denoFactory.pushString("MyL", lForm, "f");  
denoFactory.make("MyNote", noteForm);  
Denotator myNote = denoFactory.getDenotator();

To access parts of forms and denotators, corresponding helper classes named FormAccess and DenoAccess also provide the direct and stack-based methods. For example the following code will retrieve the P component of myNote.

DenoAccess denoAccess = new DenoAccess(myNote);  
denoAccess.forward(3);  
Denotator myP = denoAccess.getDenotator();

The second last line pushes the third component of the myNote denotator onto the stack.

The other fundamental aspect of the denotator model is visualization or the mapping of denotators into multimedia space in general. The basic assumption in Distributed RUBATO is that denotators are not only the underlying model for data representation and communication, but that they also provide a direct channel to the user. This means that a user interacts with the RUBATO system not just by clicking himself through a conventional WIMP (Windows, Icons, Menus and Pointing) desktop metaphor, but organizes his work by manipulating directly a visual representation in 3D-space of the relevant denotators.


Erste Seite (1) Vorherige Seite (285)Nächste Seite (287) Letzte Seite (454)      Suchen  Nur aktuelle Seite durchsuchen Gesamtes Dokument durchsuchen     Aktuelle Seite drucken Hilfe 
- 286 -Mazzola, Guerino / Noll, Thomas / Lluis-Puebla, Emilio: Perspectives in Mathematical and Computational Music Theory