Partial List objects are composed of Partials (akin to tracks), which themselves consist of a list of Breakpoints (each with time, frequency, amplitude, phase, and bandwidth members).
Mainstream languages still often provide trade-offs between flexibility and performance.
In this paper, we will discuss the design, implementation, and usage of an integrated framework for audio analysis, resynthesis, and cross-synthesis (morphing) that combines several DASP back-ends with a set of end-user GUI tools and a powerful and extensible scripting language for audio analysis/synthesis.
The model class Loris Sound (a subclass of Sampled Sound, see the class tree in Figure 1) has a sample array (the original sound), an analyzer configuration, and a partial list (the time-adjusted bandwidth-enhanced partial spectrum).
In addition to simple accessor methods (getters and setters for the data members), class Loris Sound provides the partial list iterators mentioned above, special soundlike methods (e.g., amplitude normalization), and the main analysis and resynthesis methods.
It comprises about 375 classes in a group of object-oriented frameworks for signal description and processing, and includes external interface objects whose methods are actually proxies for C functions linked in from dynamically loaded libraries.
This facility allows us to connect to external operating system resources such as sound and MIDI I/O, as well as to sound analysis/synthesis libraries such as are the topic of this paper.In this scenario, the GUI tools are required to support flexible file I/O and data management, audio data display and (possibly) editing, analyzer configuration and execution with interactive monitoring of the results, and easy tool extension or customization (which are not at all common in current mainstream GUI tools for audio).As an extension language, it is convenient to have a simple, untyped language with a rapid turn-around compiler and an interpreter or shell-like interface.There are a collection of Loris utility functions that operate on Partial Lists to offer operations such as partial list distillation, collation, and time dilation.Loris is a complex C framework that includes several stand-alone applications as well as a SWIG wrapper that allows users to script Loris processes in the Python language.Siren supports GUI construction and interactive tool development with the standard Smalltalk GUI library (a sophisticated extension of the model-view-controller 435 framework), as well as with a set of custom components for DASP applications, such as reusable sound and score editor components.SWIG  is an interface compiler that connects programs written in C and C with scripting languages such as Perl, Python, Ruby, and Tcl.It works by taking the declarations found in C/C header files and generating wrapper code that scripting languages need to access the underlying C/C code.There is a Smalltalk back-end to SWIG by Ian Upright ; with this, one has external interface objects whose methods call the functions created by SWIG, which themselves mirror the object methods of the source package that was fed into SWIG.The newest bread of languages are audio-specific; this group includes Super Collider , Chuck, and Vessel .It poses a problem for many users, however, that these two sets of tools are mutually exclusive, that there appear to be very few tools that integrate graphical interactive data editors together with scripting languages for batch processing and easy extension (and even fewer where the graphical tools are themselves extensible).