18 research outputs found
Streaming Spectral Processing with Consumer-level Graphics Processing Units
This paper describes the implementation of a streaming spectral
processing system for realtime audio in a consumer-level onboard
GPU (Graphics Processing Unit) attached to an off-the-shelf
laptop computer. It explores the implementation of four processes:
standard phase vocoder analysis and synthesis, additive synthesis
and the sliding phase vocoder. These were developed under the
CUDA development environment as plugins for the Csound 6 audio
programming language. Following a detailed exposition of
the GPU code, results of performance tests are discussed for each
algorithm. They demonstrate that such a system is capable of realtime
audio, even under the restrictions imposed by a limited GPU
capability
Streaming Spectral Processing with Consumer-level Graphics Processing Units
This paper describes the implementation of a streaming spectral
processing system for realtime audio in a consumer-level onboard
GPU (Graphics Processing Unit) attached to an off-the-shelf
laptop computer. It explores the implementation of four processes:
standard phase vocoder analysis and synthesis, additive synthesis
and the sliding phase vocoder. These were developed under the
CUDA development environment as plugins for the Csound 6 audio
programming language. Following a detailed exposition of
the GPU code, results of performance tests are discussed for each
algorithm. They demonstrate that such a system is capable of realtime
audio, even under the restrictions imposed by a limited GPU
capability
Real-time Sliding Phase Vocoder using a Commodity GPU
We describe a new approach to the processing of audio by way of transformations to and from the frequency domain. In previous papers we described the Sliding Discrete Fourier Transform (SDFT), comprising an extension to the classic phase vocoder algorithm to perform a frame update every sample. We proposed this as offering musical advantages over the common STDFT, including lower latency and the potential for new classes of effect. Its major disadvantage has been the very high computational cost, which makes it intractable for real-time use even on high-specification consumer workstations. We report on a version of the SDFT that exploits the intrinsic parallelism of the scheme on a commodity GPU, to implement the transform and its inverse in real time for multiple audio channels. This implementation is used to provide previously uncomputable real-time effects. We describe a key new effect, enabled by the method, which we have called Transformational FM (TFM).</p
Real-Time Polyphonic Octave Doubling for the Guitar
This thesis studies digital signal processing solutions for enriching live guitar sound by way of mixing-in octave-doubled versions of the chords and melodies performed on the instrument in real-time. Following a review of techniques applicable for real-time polyphonic octave doubling, four candidate solutions are proposed, amongst which two novel methods: ERB-PS2 and ERB-SSM2. Performance of said candidates is compared to that of three state of the art effect pedal offerings of the market. In particular, an evaluation of the added roughness and transient alterations introduced by each solution in the output sound is conducted. The ERB-PS2 method, which consists in doubling the instantaneous phases of the sub-bands signals extracted with a constant-ERB-bandwidth non-decimated IIR filter bank, is found to provide the best overall performance amongst the candidates. This novel solution provides greatly reduced latency compared to the baseline pedals, with comparable, and in some case improved, sound quality
Sliding DFT for fun and musical profit
Many Csound users may have seen reference to the SDFT or Sliding Discrete Fourier Transform in recent months. Here we review the basic ideas, and describe the Csound implementation. The main musical message is that it is integrated with the f-signals for the streaming phase vocoder written by one of us earlier, and so is easy to use. The down side is that it is slow, and definitely not yet for real-time performance. We briefly discuss approaches to improved performance