Home
Name Modified Size InfoDownloads / Week
Documentation 2013-07-17
Sources 2012-03-25
Executables 2012-03-21
ReadMe.txt 2011-07-01 9.3 kB
Totals: 4 Items   9.3 kB 1
Project overview
****************

The goal of this project is to provide an open, extendible and efficient acoustical simulation library which can be used by application programmers. This package should allow to realistically and efficiently model and simulate complicated and fairly general acoustical systems - especially wind instruments with or without tone holes and eventually the singing or speaking voice - in the frequency domain as well as in the time domain.

Special focus should be put on efficiency because computer optimisation may require many thousands of evaluations of virtual instruments which are usually only slightly modified between successive analysis steps by an optimiser application program. Time domain modelling often requires generating real time sound when parameters of the sound generator are modified. Nevertheless, modelling accuracy and physical realism should be another major concern. The package should contain most accurate models for the frequency domain as well as for the time domain because it is a main goal of this project to provide the core of new and accurate tools for instrument makers as well as for scientists who want to study the influence of faint differences in geometry or other acoustical boundary conditions on sound and playability of musical instruments or on resonance frequencies, damping conditions and other properties of travelling or standing waves in general acoustical systems.

A main application which makes use of the library's frequency domain modeling will be the computer optimisation of general acoustical systems in terms of resonance and radiation characteristics, damping and excitation properties. Applied to musical instruments these characteristics are called intonation, sound quality, efficiency and playability. The library's time domain simulation mode will be used for synthesizing sounds of more or less simplified up to nearly realistic virtual instruments depending on the required tradeoff between accuracy and computation speed. By controlling various model parameters in real time articulation and phonation can be studied in virtual singers and speakers.

The library will be programmed in ANSI C++ with no assumptions about or dependencies of operating system or computer architecture. The Class dependencies will be defined in UML in order to enforce proper interplay and to make it easier to keep documentation and implementation consistent and extensible. Models have to register their parameters, usage details and documentary text in order to allow applications being independent of the implementation status of the library. Applications written in any programming language should be able to easily access the library's functionality. All graphical and user interface related issues will have to be handled by the application program, otherwise complete platform independence would not be achievable.

The developing process will be a multi-national effort with independent contributions of several researchers, co-ordinated by a small board of experienced acousticians and software developers continuously communicating by means of a dedicated online forum hosted by the TC-MA of the EAA (the workgroup area). Concepts, documentation, sources and prototype applications will be made available, too. Contributions in terms of comments, ideas, conceptual proposals as well as actual C-code are highly welcome.



Current Status
**************

Current project status and where to download documentation, executables and source code.

This project is still in an early stage. Nevertheless a preliminary working release has already been published. Although the concept does include other simulation domains, only frequency domain models have been implemented up to now. The currently existing code allows to calculate input impedances of arbitrary bore profiles consisting of cylindrical sections, conical sections, bessel horn sections, exponential horn sections, bent cylindrical and conical tubes, bore discontinuities and branches (tone holes). All elements (except for the branch) take multi-modal wave propagation of an arbitrary number of modes into account. The very common case of 1 (plane wave), 2 or 3 modes has especially been optimised for performance. Lossless as well as lossy wave propagation is available for all elements. Simulation parameters like air temperature, humidity and carbon dioxide content as well as a separate boundary layer loss factor can be specified for each individual section of the bore profile. Termination impedances can be either specified numerically or chosen from a range of predefined radiation models.

There are several ways to make use of the ART-library. The command line tool ART.exe accepts many command line options (enter "art -h" to get help) to demonstrate the full functionality of the library. It accepts text files containing bore profile descriptions and it generates complex impedance data to be plotted or displayed.

The dynamic link library ART.dll provides a sophisticated interface for application programs written in any computer language. The required header files containing the interface definitions have been provided for Pascal (Delphi) and C++. An expression parser incorporated into this interface allows to specify all simulation and geometry parameters by giving symbolic expressions containing constants, variables and other parameters. Intermediate results for parameters, interior impedances and transfer matrices are cached by the interface. The dependencies are taken into account in order to recalculate any value only when it is necessary. This should allow to quickly update resulting data when only a few parameters have been changed interactively or by an optimiser. Simple Delphi examples for how to create GUI or console applications for simulating instruments by calling ART library functions are provided.  

Using the art.h header file in a C++ application the object modules of the ART library can also be linked into the executable of the main program. This might be the way to go if dynamic link libraries are not available or should not be used. The source code has been compiled using MSVC++ V6.0 in order to create the Win32 versions of art.exe and art.dll. The compatibility with the GCC and therefore with Linux is being checked now and should be available soon. 



Authors
*******

In 2002 Jonathan Kemp published his thesis "Theoretical and experimental study of wave propagation in brass musical instruments" (Univ. of Edinburgh) containing a comprehensive review of the theory of multimodal wave propagation and extending it to include ducts with rectangular cross-section (ready to be implemented).

The basic concepts for the simulation framework of the ART project have been presented at the ViennaTalk 2005 by Wilfried Kausel, who founded the WG2 at the subsequent TCMA meeting in Budapest in order to trigger an international collaboration for the collection of existing and future physical models with the aim of integrating them into a common framework to make them more generally available and useful.

In 2006 Alistair Braden contributed the first C++ code as part of his thesis "Bore Optimisation and Impedance Modelling of Brass Musical Instruments" (Univ. of Edinburgh). He extended the theory of multimodal wave propagation to include bent cylindrical tubes and he implemented straight and bent cylinders and cones, bessel horns, exponential sections and bore discontinuities. His code was ported to Windows by Kausel who also optimised its performance and included local simulation parameters like temperature and boundary loss factor. He also started to create the application interface layer by adding the parameter dependency tree and by implementing the "self- documentation feature" of all available models and parameters.

During an internship at the University of Music in Vienna Delphine Chadefaux added branch elements (tone holes) and she implemented the "matrix accumulation concept" as an optional alternative to the "impedance back-propagation concept" which turned out to be numerically more stable and which allows to cache the system matrix of a bigger section of the bore profile (e.g. the bell) when this is not to be modified during series of impedance recalculations. She also improved the model for the speed of sound in air taking relative humidity and carbon dioxide content into account.

In 2009 Vasileios Chatziioannou became a member of the acoustic research team at the University of Music in Vienna and he is now in charge of the simulation kernel. He improved the code significantly by fixing many remaining bugs, straightening out and documenting the code. He also added the thermo-viscous loss model of straight tubes to the bent tube and cone sections which were lossless before.

Since March 2011 Sadjad Siddiq has been working on the programmers' interface. He implemented the caching algorithm and integrated the expression parser. Currently he is also porting the code to state-of-the-art C++ compilers.

Clemens Geyer, a master level student at the University of Music in Vienna, is currently checking and reestablishing the GCC- and Linux compatibility and is going to add time domain processing to the simulation core. 
Source: ReadMe.txt, updated 2011-07-01