Towards a Pattern Language for Sound and Music Computing

Pau Arumi, Xavier Serra
2006 Zenodo  
Sound and music computing is all about. . . computing. But despite the large number of reusable software components and models-of-computation available for this domain, audio developers face new problems all the time. Most often, however, the same or similar problems have already been solved by others, but they lack the means for reusing those solutions. This dissertation proposes a design pattern language for data-flow systems: a technique that bridges the gap between the type of functionality
more » ... provided by libraries and data-flow frameworks, on one side, and data-flow models-of-computation, on the other. The problem with libraries is that they often are too specific. Frameworks cover a broader scope but often overlimiting how to do things. On the other hand, the data-flow models-of-computation favors analysis versus design and implementation. A pattern is a proved solution to a recurring design problem. It pays special attention to the context in which it is applicable, to the competing "forces" it needs to balance, and the consequences of its application. A pattern language, moreover, suggests a sequence of patterns to be applied depending on the current context. Patterns provide a better solution when the focus is on customizing a new design on an existing code. However, neither data-flow systems nor other audio-related areas have yet received relevant additions of domain specific patterns. We demonstrate that the proposed catalog provides useful design reuse in the audio domain, and we show that they can be found in many different applications. As an example, we present the design of an object-oriented framework that uses all the patterns. We also show that patterns are useful to communicate, document and compare designs of audio systems. We believe that the incorporation of pattern-driven design will allow audio software to "grow up" out of the craftsman state and into a more mature state
doi:10.5281/zenodo.3743102 fatcat:qzdleipjqvdw5argjyvs53dao4