|
ease of use and extensibility in mind. Their purpose is not more, but also not less than to serve some basic needs of musicologists interested in corpus-based music analysis. In contrary to Rubato, where a tool represents an innovative theory which is still to be validated, the tools here typically are much smaller and represent well known relations2
The Humdrum tools use the file system and UNIX-shell typical techniques like pipes and environment variables for data in- and output. Combined this way in shell scripts, the techniques can be seen as realizations of hierarchically structured data flow models: a shell script can be - like any basic command - a node within any shell script. Empowered by shell script programming the Humdrum commands follow the UNIX paradigm that the tools should be kept simple but easy to combine. Humdrum files have a common row-and-column based syntax, which is easily accessible by a lot of common UNIX tools like grep, sed, wc, etc. and by programming languages in general, especially in text processing languages like AWK and Perl. The semantic of a token (text field) within Humdrum files is determined by syntactic relations to other tokens, especially by one or more interpretation tokens preceding it in the column (spine interpretation tokens). Besides of using well supported token formats3
2.1 User and Programming LevelsThe Humdrum tools can only display their full usefulness, when combined and expanded in creative ways. So user participation in software configuration (e.g. combining two tools) and development (e.g. developing a new tool) is highly recommended in the Humdrum world. In fact, because there is no Humdrum frame application and no need for GUI components (like in Rubato or OpenMusic), any working process or programming task can allready be performed by suitably skilled musicologists and not just by professional software developers. The most important productivity factor in using Humdrum is the ability of the user both to map knowledge about musicological working processes to tools and representations and to become inspired by the technically possible. (Often the knowledge of techniques leads to new implementable ideas.) Becoming more experienced with the Humdrum tools, users typically advance and show increasing technical skills of usage and programming:
|