Proceedings Der Linux Audio Conference 2018
Total Page:16
File Type:pdf, Size:1020Kb
Proceedings of the Linux Audio Conference 2018 June 7th - 10th, 2018 c-base, in partnership with the Electronic Studio at TU Berlin Berlin, Germany Published by Henrik von Coler Frank Neumann David Runge http://lac.linuxaudio.org/2018 All copyrights remain with the authors. This work is licensed under the Creatice Commons Licence CC BY-SA 4.0 Published online on the institutional repository of the TU Berlin: DOI 10.14279/depositonce-7046 https://doi.org/10.14279/depositonce-7046 Credits Layout: Frank Neumann Typesetting: LATEX and pdfLaTeX Logo Design: The Linuxaudio.org logo and its variations copyright Thorsten Wilms c 2006, imported into "LAC 2014" logo by Robin Gareus Thanks to: Martin Monperrus for his webpage "Creating proceedings from PDF files" ii Partners and Sponsors Linuxaudio.org Technische Universität Berlin c-base Spektrum CCC Video Operation Center MOD Devices HEDD Native Instruments Ableton iii iv Foreword Welcome everyone to LAC 2018 in Berlin! This is the 15th edition of the Linux Audio Conference, or LAC, the international conference with an informal, workshop-like atmosphere and a unique blend of scientific and technical papers, tutorials, sound installations and concerts centering on the free GNU/Linux oper- ating system and open source software for audio, multimedia and musical applications. We hope that you will enjoy the conference and have a pleasant stay in Berlin! Henrik von Coler Robin Gareus David Runge Daniel Swärd Heiko Weinen v vi Conference Organization Core Team Henrik von Coler Robin Gareus David Runge Daniel Swärd Heiko Weinen Conference Website and Design David Runge Paper Administration and Proceedings Frank Neumann Organization of music program, installations, and workshops Henrik von Coler David Runge Concert Sound Henrik von Coler Jonas Margraf Paul Schuladen vii Review Committee Fons Adriaensen Huawei Research, Germany Henrik von Coler Technische Universität Berlin, Germany Götz Dipper ZKM, Karlsruhe, Germany Robin Gareus Germany Harry van Haaren OpenAV, Ireland Joachim Heintz University for Music Drama and Media Hanover, Germany Björn Kessler RISM (Répertoire International des Sources Musicales), Germany Romain Michon CCRMA, Stanford University, United States Martin Rumori Institute of Electronic Music and Acoustics, Graz, Austria Bruno Ruviaro Santa Clara University, United States Steven Yi Independent, United States IOhannes Zmölnig IEM, University of Music and Performing Arts (KUG), Graz, Austria Music Jury Andre Bartetzki Henrik von Coler Goetz Dipper David Runge viii Workshops Day 2 Joao Pais Introduction to pmpd The levTools – a modular toolset in purr Marten Seedorf, Simon Steinhaus data for creating and teaching electronic music Louigi Verona Djing with FLOSS: Mixxx Workshop Hermann Voßeler Inbuilt Musicality Albert Gräf Getting Started with Purr Data Day 3 Uroš Maravic,´ David Vagt One Hour Challenge Will Godfrey Yoshimi Live Carla Plugin Host - Feature overview and Filipe Coelho workflows Understanding and being creative with Joao Pais Pure Data’s data structures Day 4 How to create real-time audio appliances Daniel James, Christopher Obbard with Debian GNU/Linux David Runge Pro-audio on Arch Linux (revisited) Rui Nuno Capela QjackCtl Considered Harmful Uroš Maravic,´ Tres Finocchiaro LMMS 1.2: Changes and Improvements ix Music Program Opening Night Louigi Verona Minimal House DJ Set Superdirt Superdirt2 Tape Night Massimo Vito Avantaggiato ATLAS OF UNCERTAINTY Anna Terzaroli Dark Path #2 Magnus Johansson Iammix Helene Hedsund Bus No. 1 Massimo Fragalà Memorie Michele Del Prete Spycher Andre Bartetzki SHIFT Performance Night Alex Hofmann COSMO Claude Heiland-Allen mathr performs with Clive José Rafael Subía Valdez Tessellations Krzysztof Gawlas Pick It Up Elektronisches Orchester Charlottenburg Rotation II Installations and Demonstrations Jaime E Oliver La Rosa Caracoles IV Marcello Lussana Sentire x Table of Contents • Using Perlin noise in sound synthesis 1 Artem Popov • SpectMorph: Morphing the Timbre of Musical Instruments 5 Stefan Westerfeld • RSVP,a preset system solution for Pure Data 13 José Rafael Subia Valdez • Open Hardware Multichannel Sound Interface for Hearing Aid Research on BeagleBone Black with openMHA: Cape4all 21 Tobias Herzke, Hendrik Kayser, Christopher Seifert, Paul Maanen, Christopher Obbard, Guillermo Payá-Vayá, Holger Blume, Volker Hohmann • MRuby-Zest: a Scriptable Audio GUI Framework 27 Mark McCurry • Camomile: Creating audio plugins with Pure Data 33 Pierre Guillot • Ableton Link – A technology to synchronize music software 39 Florian Goltz • Software Architecture for a Multiple AVB Listener and Talker Scenario 43 Christoph Kuhr, Alexander Carôt • Rtosc - Realtime Safe Open Sound Control Messaging 51 Mark McCurry • Jacktools - Realtime Audio Processors as Python Classes 59 Fons Adriaensen • Distributed time-centric APIs with CLAPI 65 Paul Weaver, David Honour xi xii Using Perlin noise in sound synthesis Artem POPOV Gorno-Altaysk, Russian Federation, [email protected] Abstract This paper is focused on synthesizing single- Perlin noise is a well known algorithm in computer cycle waveforms with Perlin noise and its suc- graphics and one of the first algorithms for gener- cessor, Simplex noise. An overview of both algo- ating procedural textures. It has been very widely rithms is given followed by a description of frac- used in movies, games, demos, and landscape gen- tional Brownian motion and several techniques erators, but despite its popularity it has been sel- for adding variations to noise-based waveforms. dom used for creative purposes in the fields outside Finally, the paper describes an implementation computer graphics. This paper discusses using Per- of a synthesizer plugin using Perlin noise to cre- lin noise and fractional Brownian motion for sound ate musically useful timbres. synthesis applications. Keywords 2 Perlin noise Perlin noise, Simplex noise, fractional Brownian mo- Perlin noise is a gradient noise that is built tion, sound synthesis from a set of pseudo-random gradient vectors of unit length evenly distributed in N-dimensional 1 Introduction space. Noise value in a given point is calculated by computing the dot products of the surround- Perlin noise, first described by Ken Perlin in his ing vectors with corresponding distance vectors ACM SIGGRAPH Computer Graphics article to the given point and interpolating between “An image Synthesizer” [Perlin, 1985] has been them using a smoothing function. traditionally used for many applications in com- Sound is a one-dimensional signal, and for puter graphics. The two-dimensional version of the purpose of sound synthesis Perlin noise of Perlin noise is still widely used to generate tex- higher dimensions is not so interesting. While tures resembling clouds, wood, and marble as it is possible to scan Perlin noise in 2D or 3D well as procedural height maps. space to get a 1-dimensional waveform, it’s nec- essary to make sure the waveform can be seam- lessly looped to produce a musically useful tim- bre with zero DC offset. For one-dimensional Perlin noise, the noise value is interpolated between two values, namely the values that would have been the result if the closest linear slopes from the left and from the right had been extrapolated to the point in question [Gustavson, 2005]. Thus, the noise value will always be equal to zero on in- Figure 1: 2D Perlin noise as rendered by Gimp teger boundaries. By sampling the resulting 1- plugin “Solid noise” dimensional noise function, it’s possible to gen- erate a waveform that can be looped to produce Despite its popularity, Perlin noise has been a pitched tone (Figure 2). seldom used for creative purposes in the fields outside the world of computer graphics. For 3 Simplex noise music applications, Perlin noise has been occa- sionally used for creating stochastic melodies or Simplex noise is an improvement to the original as a modulation source. Perlin noise algorithm proposed by Ken Perlin 1 Figure 2: Perlin noise (left) and Simplex noise Figure 3: 3 octaves of Perlin noise (left) summed (right) with the gradients used for interpolation to generate a fBm waveform (right) himself [Perlin, 2001]. The advantages of sim- while successively incrementing their frequen- plex noise over Perlin noise include lower com- cies in regular steps by a factor called lacunarity putational complexity, no noticeable directional and decreasing the amplitude of the octaves by artifacts, and a well-defined analytical deriva- a factor called persistence with each step [Vivo tive. and Lowe, 2015]. Simplex noise is created by splitting an N- n dimensional space into simplest shapes called i i simplices. The value of the noise function is a fBm(x)= p · noise(2 · x) (2) i=0 sum of contributions from each corner of the X simplex surrounding a given point [Gustavson, Lacunarity can have any value greater than 1, 2005]. but non-integral lacunarity values will result in In one-dimensional space, simplex noise uses non-zero fBm values on the integer boundaries. intervals of equal length as the simplices. For To keep the waveform seamless in a sound syn- a point in an interval, the contribution of thesizer, lacunarity has be an integer number. each surrounding vertex is determined using the A reasonable choice for lacunarity is 2, since equation: bigger values result in a very quick buildup of the upper harmonics (Eq. 2). 2 4 (1 − d ) · (g · d) (1) Fractional Brownian motion is often called Perlin noise, actually being a fractal sum of sev- Where g is the value of the gradient in a given eral octaves of noise. While typically the same vertex and d is the distance of the point to the noise function is used for every octave, different vertex. noise algorithms can be combined in the same Both Perlin noise and Simplex noise produce fashion to create multifractal or heterogeneous very similar results (Fig. 2) and are basically fBm waveforms [Musgrave, 2002]. interchangeable in a sound synthesizer1. For brevity, Perlin noise or noise will be used to 5 Waveform modifiers refer to both algorithms for the scope of this 5.1 Gradient rotation paper, since Simplex noise is also invented by Ken Perlin.