The WDF tool kit is comprised of all the components which are coloured in the next figure. This means that the following components are included into the WDF Tool Kit:
  • WDF Loader and Saver -- loading and saving of the WDF files.
  • WDF Permission Manager -- a tools for managing and controlling the permissions allowed
  • WDF Navigator -- the music editor and integrator. The main entry for building WDF objects and for inspecting them.
  • Classification, Identification, Protection, Printing Manager -- an object oriented model for collecting and managing all the information related to classification, protection, identification, and printing record listed in the previous paragraphs.
  • Lyric Editor -- the editor for loading and assigning lyrics lines to parts.
  • Audio Player --.a player for producing music from several audio formats.
  • WEDELOOMM: WEDEL Object Oriented Music Model. The OO model of music used at the basis for modelling
  • Converters (symbolic Music) -- tools for converting well known symbolic music formats such as Finale, SCORE and MIDI into the WEDEL format.
  • MIDI Generator -- a tool for converting WEDEL music format to MIDI format.



The WDF object oriented model is derived from that of MOODS including the implementation of:
  • New symbols;
  • The management of all the related elements on the WEDEL object;
  • The integration of image score and symbolic;
  • The integration of audio files with all components: symbolic music and image score;
  • converters from Finale, SCORE, and MIDI in the several versions;
  • XML based loaders and savers for the WEDEL Model defined in the previous sections and comprised by several files;
  • image score loader, IWF;
  • an object oriented model of all the structures of the WEDEL HEADER;
  • Font Table editor;
  • html links towards external documents and starting from the music notation elements;
  • the class hierarchy due to the management of classification, permission, protection and identification;
  • the lyric editor and management of lyric in the model;
  • the freaboard editor and management of tablaures in the Music model;
  • transversal functionalities for managing audio files, producing MIDI, playing Wave files, etc.;
  • model support for multistaff music pieces: arpa, piano, organ;
  • of the model for The inclusion of tablature and fretboards;
  • the support for the management of staff with 1, 2, 3 ,4 ,5, 6 lines;
  • justification and line breaking algorithms based on style parameters;
  • a strongly improved version of MILLA mechanism for managing visualisation rules independently on the music complexity including: beaming, up/down, etc.;
  • a debugger for MILLA specification;
  • WEDEL Editor for navigating on WEDEL Objects structure;
  • Permission Manager for controlling the activities of WEDEL Editor and Music Editor according to the permission granted into the WEDEL Object;
  • Adding several symbols: tablaturs, pedals, some clefs, alterations with parenthesis, several different noteheads, some horizontal symbols (slurs, crescendo, descrescendo, bend, tie, with different lines: dashed, dotted, continuous), da capo, a coda, etc.
  • Support for Exchanging, Merging, joining, splitting layers to parts and viceversa
  • Support for printing music, both main score and parts
  • Support for controlling consistency of measures
  • Support for formatting in automatic manner multi layers
  • Export in MIDI format
  • Player audio, WAVE and MP3
  • Of mechanism for extracting excerpts from music scores
  • Of mechanism for extracting excerpts from audio files
  • Synchronisation mechanism from symbolic execution to the Audio file
  • Representation and visualization of music score and the audio file
  • Representation and visualization of music in image score format and the audio file
  • Adjustment of the music execution rate in real time for music score
  • Adjustment of the music execution rate in real time for music score in image score format.
  • Moving, hiding, importing part
  • Transposition algorithms
  • Mechanisms for including lyric
  • Reorganisation of the GUI of MOODS:
  • reducing hierarchy deep of menus for graphic symbols,
  • inclusion of classical menus for direct activation of functionalities
  • adoption of the scroll bar for visualising page
  • the mechanism for managing the printing view

General Idea on the WEDEL Tool Kit, WTK

The idea is to provide (by DSI) to the involved partners the OO Music Model as a static library with the associated header files. In each class of the WDEDEL-OOMM have been added a virtual protected method for each type of service that have to be implemented by the partners. The addition of several functionalities for supporting drivers for:
  • Analysing music (MusicAnalysis() );
  • Reducing orchestra music to piano, (PianoReduction());
  • Comparing music, (ComparingMusic());
  • Printing Braille, (PrintingBraille());
  • Describing music with speech music, (SpokenMusic());
  • VIP Music Editing (VIPEditing());
These last aspects have been provided by DSI to other partners as Call Backs in the object oriented hierarchy of the WEDEL Object Oriented Music Model.
For example for Music Analysis have been added:
	int Partitura::MusicAnalysis(MusicAnalysisData*)
	int Battuta::MusicAnalysis(MusicAnalysisData*)
	
	etc.


The partner have to implement the methods to provide the service using the public and internal services of the classes, the partner could also use an own defined class (e.g. MusicAnalysisData) where input information is provided (e.g. exact specification of the service required, file/device where to put the results, configuration parameters, etc.) where additional intermediate data can be stored and where aggregated results can be saved to be passed to the upper layer (typically user interface).

Two kinds of WTK have been identified:
  1. the WTK for VIPs (this is a real tool kit in which the distribution will allow the implementation of totally new music editors).
  2. the WTK for music analysis (this is the typical Plug In module, the WEDEL Music Editor remains the main music entry of the system and the added functionalities are attached via a menu and can interact with the WEDEL Object Oriented Music Model).

Please note that the Piano reduction can be used also from the tools developed for VIP people.


The WTK for VIPs





This tool kit is composed of:
  • WDF-Editor, classes for user-interface (main window, dialogs) and classes for data representation of information stored in a WEDEL file.
  • WEDEL-OOMM, the music classes with service methods.
The WDF-Editor starts the VIP Music Editor calling the function:
int OpenMusicEditor(WEDELFile* pWDF,Partitura* pMainScore, int partNumber)
where
  • WEDELFile *pWDF
    is the pointer to the loaded/new WEDEL File, from this pointer the information related to the components of the WEDEL file can be retrieved and modified.

  • Partitura *pMainScore
    is the pointer to the loaded main score or a new one, the VIP services can be called on this object to navigate and modify the object.
  • int partNumber
    is the part to be opened, 0 for the main score, 1 for the first part, 2 for the second etc.
The return value indicates if the VIP Music Editor is properly started (value 1) or not (value 0). The objects referred by pWDF and pMainScore will be accessible until the WDF-Editor calls the CloseMusicEditor function. The WDF-editor closes the VIP Music Editor calling the function:
   int CloseMusicEditor()
the return value indicates if the editor is properly closed (value 1) or not (value 0).

To maintain syncronized the list of the symbolic parts and the parts viewed in the music editor the following function can be used:
  • void WDFPartAdded(int partNumber, char* name) this function is called from the WDF-Editor when a new part is added, partNumber is the number of the part and name its name.
  • void WDFPartDeleted(int partNumber) this function is called from the WDF-Editor when a part is removed.
  • void MusicEditorPartAdded(int partNumber, char* name) this function have to be called from the MusicEditor when a new part is added.
  • void MusicEditorPartDeleted(int partNumber) this function has to be called from the MusicEditor when a part is removed.
Once started the VIP-MusicEditor can use the VIP-Services to retrieve the information needed.

The partners involved into the development of the music editor for VIPs will provide a function for printing Braille and spoken music:
  • int PrintingBraille(WEDELFile *, Partitura *, PartNum, BraillePrintData & )
  • int SpokenMusic(WEDELFile *, Partitura *, PartNum, SpokenMusicData & )
An attribute for each entity of the OO hierarchy will be available. It has been implemented by including it as an attribute of
DrawObject: int VIPUserData

The WTK for Music Analysis



This WTK is composed of:
  • WDF-Editor, classes for user-interface (main window, dialogs) and classes for data representation of information stored in a WEDEL file.
  • WEDEL-MusciEditor, classes for user-interface (score window, dialogs)
  • WEDEL-OOMM, the music classes with service methods.
For the communication between the WEDELMUSICEditor and the WEDEL-Analysis plug in, a specific class is used:
class WEDELMUSICalAnalysis
{
public:
  WEDELMUSICalAnalysis(wxMEScoreFrame*, WEDELFile*, Partitura*);
  ~WEDELMUSICalAnalysis();
  int Initialize();
  wxMenu *CreateMenu();
  int HandleMenu(int menuID);
  bool DoIdle();
}
When the WEDEL-MusicEditor is started a new WEDELMUSICalAnalysis object is created specifying the music editor frame, the object representing the WEDELFile and the object representing the score and then method Initialize() is called. After that the CreateMenu() method is called and the wxMenu object returned is added to the menu bar. The IDs of the menus must start from 1000 and end before 1100.
The method HandleMenu is called when a menu with the menuID from 1000 to 1100 is selected.
The method DoIdle is called when the system is idle, it have to return TRUE if more idle time is needed, FALSE otherwise (in this case DoIdle is not called until a new event is received and the system becomes idle again). Finally the object is destroyed when the editor is closed.

The WEDELMUSICalAnalysis may access to the WEDELFile information using its interface and to the symbolic main score using the music analysis services implemented.
The wxMEScoreFrame is used by the WEDELMUSICalAnalysis object to highlight score elements.

A virtual method of class DrawObject has been added to highlight score elements:
void DrawObject::Hilite(int processEvent,GDevice*)
where :
  • processEvent can be: BeforeDraw (0) ,AfterDraw (1),BeforePrint (2) ,AfterPrint (3)
  • GDevice* is the device (GScreen or GPrint) where to draw the symbol.
Two attributes for each entity of the OO hierarchy are available for marking music objects. They have been implemented by including two attributes in the DrawObject class:
  • int markType
  • int markVariant
In the following section several details about the object oriented models used for modelling both the informative and symbolic music parts of the WDF objects are reported:
  • WDF Editor Object Oriented Model
  • WEDEL Object Oriented Music Model
  • WEDEL Music Editor Object Oriented Model