Download Simulating Idiomatic Playing Styles in a Classical Guitar Synthesizer: Rasgueado as a Case Study
This paper presents our research efforts to synthesize complex instrumental gestures using a score-based control scheme. Our specific goal is to simulate the rasgueado technique that is popular especially in flamenco music. This technique is also used in the classical guitar repertoire. Rasgueado is especially challenging as ordinary music notation is not adequate to represent the dense stream of notes required for a convincing simulation. We will take two approaches to realize our task. First, we use the practical knowledge of how the actual performance is accomplished by the human player. A second, complementary, approach is to analyze an excerpt from real guitar playing. Our main focus here is to extract the onset times and the amplitudes of the recoded gesture. Next we combine the results from the two analysis steps using a constraintbased approach to find possible pitch and fingering sequences. Finally we translate the findings to our macro-note scheme that allows us to fill algorithmically a musical score.
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 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 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 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 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.