A FLEXIBLE AND DYNAMIC C++ FRAMEWORK AND LIBRARY FOR DIGITAL AUDIO SIGNAL PROCESSING (original) (raw)
Related papers
MODELS AND APIs FOR AUDIO SYNTHESIS AND PROCESSING: A PANEL DISCUSSION
The topic of this panel is object models, programming languages, and application programmer's interfaces for digital audio processing. The panel brings together developers who share the experience of designing more than one model or language for DASP software, and who are willing to compare and contrast them in terms of their underlying assumptions, the design trade-offs they made in the process, and the rules of thumb that they have learned over their years of experience. Referring back to previous works on languages and environments for computer music, we ask the questions raised in the past: what factors contribute to the success of a computer music language or tool? How do we best apply the features of modern programming languages, development and delivery environment? What have we learned since the 1980s (or the 1960s for that matter) that influences model and language design for music? The panel will be structured a free-flowing discussion of the decisions and trade-offs in system design, rather than a show-and-tell of each of the participants systems, or long position papers.
CLAM, an object oriented framework for audio and music
2005
CLAM is a C++ framework that is being developed at the Music Technology Group of the Universitat Pompeu Fabra (Barcelona, Spain). The framework offers a complete development and research platform for the audio and music domain. Apart from offering an abstract model for audio systems, it also includes a repository of processing algorithms and data types as well as a number of tools such as audio or MIDI input/output. All these features can be exploited to build cross-platform applications or to build rapid prototypes to test signal processing algorithms.
Mimium: A Self-Extensible Programming Language for Sound and Music
Proceedings of the 9th ACM SIGPLAN International Workshop on Functional Art, Music, Modelling, and Design, 2021
We propose a programming language for music named mimium, which combines temporal-discrete control and signal processing in a single language. mimium has an intuitive imperative syntax and can use stateful functions as Unit Generator in the same way as ordinary function definitions and applications. Furthermore, the runtime performance is made equivalent to that of lower-level languages by compiling the code through the LLVM compiler infrastructure. By using the strategy of adding a minimum number of features for sound to the design and implementation of a general-purpose functional language, mimium is expected to lower the learning cost for users, simplify the implementation of compilers, and increase the self-extensibility of the language. In this paper, we present the basic language specification, semantics for simple task scheduling, the semantics for stateful functions, and the compilation process. mimium has certain specifications that have not been achieved in existing languages. Future works suggested include extending the compiler functionality to combine task scheduling with the functional paradigm and introducing multi-stage computation for parametric replication of stateful functions. CCS Concepts: • Applied computing → Sound and music computing; • Computer systems organization → Real-time languages; • Theory of computation → Timed and hybrid models.
An open architecture for real-time audio processing software
PREPRINTS-AUDIO ENGINEERING …, 1999
OSW, or "Open Sound World," allows development of audio applications using patching, C++, high-level specifications and scripting. In OSW, components called "transforms" are dynamically configured into larger units called "patches." New components can be expressed using familiar mathematical definitions without deep knowledge of C++. High-level specifications of transforms are created using the "Externalizer," and are compiled and loaded into a running OSW environment. The data used by transforms can have any valid C++ type. OSW uses a reactive real-time scheduler that safely and efficiently handles multiple processors, time sources and synchronous dataflows.
Oops: An Audio Synthesis Library In C For Embedded (And Other) Applications
2017
This paper introduces an audio synthesis library written in C with "object oriented" programming principles in mind. We call it OOPS: Object-Oriented Programming Sound, or, "Oops, it's not quite Object-Oriented Programming in C." The library consists of several UGens (audio components) and a framework to manage these components. The design emphases of the library are efficiency and organizational simplicity, with particular attention to the needs of embedded systems audio development.
Intuitive real-times platform for audio signal processing and musical instrument response emulation
2014 International Conference on Signal Processing and Integrated Networks (SPIN), 2014
In recent years, the DSP group at the University of Manchester has developed a range of DSP platforms for realtime filtering and processing of acoustic signals. These include Signal Wizard 2.5, Signal Wizard 3 and Vsound. These incorporate processors operating at 100 million multiplicationaccumulations per second (MMACs) for SW 2.5 and 600 MMACS for SW 3 and Vsound. SW 3 features six input and eight output analogue channels, digital input/output in the form of S/PDIF and a USB interface. For all devices, The software allows the user, with no knowledge of filter theory or programming, to design and run standard or completely arbitrary FIR, IIR and adaptive filters. Processing tasks are specified using the graphical icon based interface. In addition, the system has the capability to emulate in real-time linear system behavior such as sensors, instrument bodies, string vibrations, resonant spaces and electrical networks. Tests have confirmed a high degree of fidelity between the behavior of the physical system and its digitally emulated counterpart. In addition to the supplied software, the user may also program the system using a variety of commercial packages via the JTAG interface.
Music Programming with the new Features of Standard C++
International Computer Music …, 1998
Object-oriented programming using C++ classes is established practice in the general programming community and is beginning in computer music applications (Chaudhary, Freed et al. 1988;. However, large components of computer music systems are still commonly written in the C programming language, either because object-orientation is felt unnecessary or more often because of efficiency concerns. Such concerns are central to successful implementations of reactive performance-oriented computer music systems. By judicious use of new features of the recently established ISO Standard C++ (Becker 1998; Stevens 1998), real-time computer music applications may be developed that are more efficient and reliable than typical C programs, easier to understand and write, and easier to optimize for a particular operating environment. This paper reviews new features of ISO C++ relevant to reactive music system programming and illustrates by example a new programming style for musical applications that exploits unique strengths of C++.