PWGLSynth can be seen as an attempt to make a bridge between non-real-time computer assisted composition environments and real-time synthesis systems, that are traditionally seen as separate entities. PWGLSynth can be used as a general purpose synthesis engine or music notation can be used as a starting point to generate control information for sound synthesis. The latter approach has been extensively used to control physical models of musical instruments.
PWGLSynth consists of two main parts: the C-component and the Lisp-component. The C-component is written in C++ and it contains a library of DSP-units, real-time scheduling, sequencer, audio hardware support and some other general purpose tools. Our system uses the PortAudio library for cross-platform audio input and output. The Lisp-component, in turn, is written in Common Lisp and CLOS and it is used to access the DSP-units database provided by the C-component. In PWGL this information is used to build popup-menus, boxes and sliders.
Figure 1 gives a simple wave-guide string model where critical synthesis data, such as frequency and loop-filter values, can be edited in real-time with the help of sliders. The excitation-see the contents of the 2D-Editor in the upper part of the patch-is provided by a processed sound sample that was originally recorded from live guitar playing.
Figure 2 contains a synthesis patch mixing two banks of resonators. Both banks are excited with a white noise generator. The left 'reson-bank' box receives filter data that has been obtained by analyzing a low piano string sound. The right 'reson-bank' box, in turn, gets the values from an analyzed bell sound. The user can change the balance between these sound sources by dragging the slider in the middle of the patch (see the slider with a label 'Mixer').
The following eight examples demonstrate some recent applications for our virtual guitar synthesizer realized with the help of PWGLSynth (these projects have been realized in close collaboration with the Laboratory of Acoustics and Audio Signal Processing in Helsinki University of Technology, TKK). Here, different kinds of idiomatic guitar textures were created using the concept of macro notes (presented in the NIME'08 paper "Towards Idiomatic and Flexible Score-based Gestural Control with a Scripting Language" by Laurson and Kuuskankare). Figure 3 shows a realization example based on an excerpt from J. S. Bach's Sarabande. This example contains macro-note arpeggios and trills, vibrato expressions, a tempo function and a portamento expression. The auxiliary notes generated by the macro note rules are displayed after the main note as red note-heads without stems (listen to exmple 5).
Figure 4 shows another realization example based on an arpeggio study by H. Villa-Lobos. We combine here two notions of timing control: a global one and a local one. A global tempo function (see the break-point function above the staff that is labelled "/time") makes a slow accelerando gesture lasting for 5 measures. This global timing control is reflected in our script where the local duration parameter gets gradually shorter and shorter (listen to exmple 6).
- trills mp3
- alternating arpeggio gestures based on a harmonic progression mp3
- rasgeuado technique simulation mp3
- tremolo study (excerpt from Recuerdos de la Alhambra by F. Tarrega) mp3
- alternating textures (excerpt from Sarabande in e-minor by J. S. Bach) mp3
- arpeggio study (excerpt from Study no 1 by H. Villa-Lobos) mp3
- rasgueado effect (excerpt from Concierto de Aranjuez by J. Rodrigo) mp3
- trills and scales (excerpt from Concierto de Aranjuez by J. Rodrigo) mp3
Here are some older guitar synthesis examples:
- J. S. Bach: Prelude mp3
- J. S. Bach: Loure mp3
- N. Paganini: excerpts from Caprice No. 24 mp3
- J. A. Muro: Lettera Amorosa mp3
- P. Heininen: Kitaraviiva mp3
Here are two virtual 'super guitar' synthesis examples:
Here are some other instrument simulations, first the harpsichord
model (1), then the clavichord model (2) and finally the guqin
- J. J. Froberger: Gigue (realized by Jonte Knif) mp3
- J. J. Froberger: Allemande (realized by Jonte Knif) mp3
- various glide, arpeggio, and harmonic textures mp3
The Laboratory of Acoustics and Audio Signal Processing webpage contains more sound examples and technical information concerning the instrument models.