Download Recent developments in PWSYNTH
PWSynth was originally a visual synthesis language situated in PatchWork. Recently our research team has started a complete rewrite of the system so that it can be adapted to our new programming environment called PWGL. In this paper we present the main differences of the old and new systems. These include switching from C to C++, efficiency issues, interface between PWGL and the synthesis engine, and a novel copy-synth-patch scheme.
Download Multichannel Signal Representation in PWGLSynth
This paper gives an overview of one of the most important features in our synthesis language called PWGLSynth. We will concentrate on how to represent visually multichannel signals in a synthesis patch. PWGLSynth synthesis boxes support vectored inputs and outputs. This scheme is useful as it allows to construct compound entities which are used often in sound synthesis such as banks, parallel structures, serial structures, etc. PWGLSynth provides a rich set of tools that allow to manipulate vectors. For instance vectors can mixed, modulated, merged, or split into sub-vectors.
Download Audio analysis in PWGLSynth
In this paper, we present an incremental improvement of a known fundamental frequency estimation algorithm for monophonic signals. This is viewed as a case study of using our signal graph based synthesis language, PWGLSynth, for audio analysis. The roles of audio and control signals are discussed in both analysis and synthesis contexts. The suitability of the PWGLSynth system for this field of applications is examined and some problems and future work is identified.
Download Instrument reusability scheme in PWGLSynth
This paper presents our recent developments that aim to make the instrument definition process of our visual synthesis environment more accessible to a broader audience. There are several novel aspects that aim to overcome some of the classical limitations found in sound synthesis systems. After an introductory section we discuss two advanced examples where scores containing several model-based instrument parts can be realized without having to edit the original instrument definitions. In the first one, we can duplicate instrumental parts of a single instrument definition. In the latter example, we can mix in a single score several instrument models with the help of a mixer patch that is automatically created by system.
Download KRONOS ‐ A Vectorizing Compiler for Music DSP
This paper introduces Kronos, a vectorizing Just in Time compiler designed for musical programming systems. Its purpose is to translate abstract mathematical expressions into high performance computer code. Musical programming system design criteria are considered and a three-tier model of abstraction is presented. The low level expression Metalanguage used in Kronos is described, along with the design choices that facilitate powerful, yet transparent vectorization of the machine code.
Download Compositional Sketches in PWGLSynth
PWGLSynth has already a long history in controlling physicsbased instruments. The control system has been score-based, i.e. the user prepares a score in advance, and by interactive listening process the result can be be refined either by adjusting score information, performance rules and/or the visual instrument definition. This scheme allows detailed control on how the instrument model reacts to control information generated from the score. This paper presents a complementary approach to sound synthesis where the idea is to generate algorithmically typically relatively short musical textures. The user can improvise with various compositional ideas, adjust parameters, and listen to the results in real-time either individually or interleaved. This is achieved by utilizing a special code-box scheme that allows any textual Lisp expression to be interfaced to the visual part of the PWGL system.
Download A Method of Generic Programming for High Performance DSP
This paper presents some key concepts for a new just in time programming language designed for high performance DSP. The language is primarily intended to implement an updated version of PWGLSynth, the synthesis extension to the visual musical programming environment PWGL. However, the system is suitable for use as a backend for any DSP platform. A flow control mechanism based on generic programming, polymorphism and functional programming practices is presented, which we believe is much better suited for visual programming than traditional loop constructs found in textual languages.
Download A Grammar for Analyzing and Optimizing Audio Graphs
This paper presents a formal grammar for discussing data flows and dependencies in audio processing graphs. A graph is a highly general representation of an algorithm, applicable to most DSP processes. To demonstrate and exercise the grammar, three central problems in audio graph processing are examined. The grammar is used to exhaustively analyze the problem of scheduling processing nodes of the graph, examine automatic parallelization as well as signal rate inferral. The grammar is presented in terms of mathematical set theory, independent of and thus applicable to any conceivable software platform.
Download Visualization of Signals and Algorithms in Kronos
Kronos is a visual-oriented programming language and a compiler aimed at musical signal processing tasks. Its distinctive feature is the support for functional programming idioms like closures and higher order functions in the context of high performance real time DSP. This paper examines the visual aspect of the system. The programming user interface is discussed, along with a scheme for building custom data visualization algorithms inside the system.
Download Kronos VST – The Programmable Effect Plugin
This paper introduces Kronos VST, an audio effect plugin conforming to the VST 3 standard that can be programmed on the fly by the user, allowing entire signal processors to be defined in real time. A brief survey of existing programmable plugins or development aids for audio effect plugins is given. Kronos VST includes a functional just in time compiler that produces high performance native machine code from high level source code. The features of the Kronos programming language are briefly covered, followed by the special considerations of integrating user programs into the VST infrastructure. Finally, introductory example programs are provided.