Proceedings Der Linux Audio Conference 2018

Total Page:16

File Type:pdf, Size:1020Kb

Proceedings Der Linux Audio Conference 2018 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.
Recommended publications
  • Proceedings 2005
    LAC2005 Proceedings 3rd International Linux Audio Conference April 21 – 24, 2005 ZKM | Zentrum fur¨ Kunst und Medientechnologie Karlsruhe, Germany Published by ZKM | Zentrum fur¨ Kunst und Medientechnologie Karlsruhe, Germany April, 2005 All copyright remains with the authors www.zkm.de/lac/2005 Content Preface ............................................ ............................5 Staff ............................................... ............................6 Thursday, April 21, 2005 – Lecture Hall 11:45 AM Peter Brinkmann MidiKinesis – MIDI controllers for (almost) any purpose . ....................9 01:30 PM Victor Lazzarini Extensions to the Csound Language: from User-Defined to Plugin Opcodes and Beyond ............................. .....................13 02:15 PM Albert Gr¨af Q: A Functional Programming Language for Multimedia Applications .........21 03:00 PM St´ephane Letz, Dominique Fober and Yann Orlarey jackdmp: Jack server for multi-processor machines . ......................29 03:45 PM John ffitch On The Design of Csound5 ............................... .....................37 04:30 PM Pau Arum´ıand Xavier Amatriain CLAM, an Object Oriented Framework for Audio and Music . .............43 Friday, April 22, 2005 – Lecture Hall 11:00 AM Ivica Ico Bukvic “Made in Linux” – The Next Step .......................... ..................51 11:45 AM Christoph Eckert Linux Audio Usability Issues .......................... ........................57 01:30 PM Marije Baalman Updates of the WONDER software interface for using Wave Field Synthesis . 69 02:15 PM Georg B¨onn Development of a Composer’s Sketchbook ................. ....................73 Saturday, April 23, 2005 – Lecture Hall 11:00 AM J¨urgen Reuter SoundPaint – Painting Music ........................... ......................79 11:45 AM Michael Sch¨uepp, Rene Widtmann, Rolf “Day” Koch and Klaus Buchheim System design for audio record and playback with a computer using FireWire . 87 01:30 PM John ffitch and Tom Natt Recording all Output from a Student Radio Station .
    [Show full text]
  • 1.3 Μm Emitting Srf2:Nd3+ Nanoparticles for High Contrast In
    Nano Research 1 DOINano 10.1007/s12274Res -014-0549-1 3+ 1.3 µm emitting SrF2:Nd nanoparticles for high contrast in vivo imaging in the second biological window. Irene Villa1, Anna Vedda1, Irene Xochilt Cantarelli2, Marco Pedroni2, Fabio Piccinelli2, Marco Bettinelli2, Adolfo Speghini2, Marta Quintanilla3, Fiorenzo Vetrone3, Ueslen Rocha4, Carlos Jacinto4, Elisa Carrasco5, Francisco Sanz Rodríguez5, Ángeles Juarranz de la Cruz5, Blanca del Rosal6, Dirk H. Ortgies6, Patricia Haro Gonzalez6, José García Solé6, and Daniel Jaque García6 () Nano Res., Just Accepted Manuscript • DOI: 10.1007/s12274-014-0549-1 http://www.thenanoresearch.com on July 29, 2014 © Tsinghua University Press 2014 Just Accepted This is a “Just Accepted” manuscript, which has been examined by the peer-review process and has been accepted for publication. A “Just Accepted” manuscript is published online shortly after its acceptance, which is prior to technical editing and formatting and author proofing. Tsinghua University Press (TUP) provides “Just Accepted” as an optional and free service which allows authors to make their results available to the research community as soon as possible after acceptance. After a manuscript has been technically edited and formatted, it will be removed from the “Just Accepted” Web site and published as an ASAP article. Please note that technical editing may introduce minor changes to the manuscript text and/or graphics which may affect the content, and all legal disclaimers that apply to the journal pertain. In no event shall TUP be held responsible for errors or consequences arising from the use of any information contained in these “Just Accepted” manuscripts. To cite this manuscript please use its Digital Object Identifier (DOI®), which is identical for all formats of publication.
    [Show full text]
  • Ironpython in Action
    IronPytho IN ACTION Michael J. Foord Christian Muirhead FOREWORD BY JIM HUGUNIN MANNING IronPython in Action Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> IronPython in Action MICHAEL J. FOORD CHRISTIAN MUIRHEAD MANNING Greenwich (74° w. long.) Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> For online information and ordering of this and other Manning books, please visit www.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact Special Sales Department Manning Publications Co. Sound View Court 3B fax: (609) 877-8256 Greenwich, CT 06830 email: [email protected] ©2009 by Manning Publications Co. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid-free paper, and we exert our best efforts to that end. Recognizing also our responsibility to conserve the resources of our planet, Manning books are printed on paper that is at least 15% recycled and processed without the use of elemental chlorine.
    [Show full text]
  • Project Verona
    Are we done? We now have a perfectly - secure cipher ! No ! are ! In fact as as the . - - if we can share of this can use same mechanism to Keys very long , long message keys length , " [ the itself ) • share " message One-time restriction Malleable Issues with the one-time pad: - : . Never . ! One-time Very important reuse the one-time pad to encrypt two messages Completely broken = ① = ① Mz C k M , and Cz k Suppose , = C +0 ④ k ⑦ Mz can this to recover Then , ④ Cz (k mi) ( ) , f- leverage messages = ← m ④ Mz learn the ✗or of two ! , messages One-time pad reuse : - Verona . Project (US counter-intelligence operation against U.s.sk during Cold War) ↳ ~ Soviets reused some in codebook to of ~ 3000 sent Soviet pages led decryption messages by intelligence over 37- year period [notably exposed espionage by Julius and Ethel Rosenberg ] - Microsoft Point-to-point Tunneling CMS- PPTP) in Windows 98 /NT (used for VPN) ↳ Same key (in stream cipher) used for both server → client communication AND for client → server ↳ communication (RCH) - 802.11 : client and server use WEP both same key to encrypt traffic one-time reuse (can even recover small many problems just beyond pad key after observing number of frames ! ) - : one-time no can the : M#ble pad provides integrity ; anyone modify ciphertext m ← K +0 C ← ' replace c with c. ④ m ' ' ⇒ = k ④ c ④ m ④ m ← 's cored into ( ) m adversary change now ✗ original message . a then tem If satisfies 114/3 / Ml . cipher perfect secrecy , : s to most . This that about Intuition Every ciphertext can decrypt at 1kt IMI messages means ciphertext leaks information the all Cannot be .
    [Show full text]
  • Linux Scheduler Documentation
    Linux Scheduler Documentation The kernel development community Jul 14, 2020 CONTENTS i ii CHAPTER ONE COMPLETIONS - “WAIT FOR COMPLETION”BARRIER APIS 1.1 Introduction: If you have one or more threads that must wait for some kernel activity to have reached a point or a specific state, completions can provide a race-free solution to this problem. Semantically they are somewhat like a pthread_barrier() and have similar use-cases. Completions are a code synchronization mechanism which is preferable to any misuse of locks/semaphores and busy-loops. Any time you think of using yield() or some quirky msleep(1) loop to allow something else to proceed, you probably want to look into using one of the wait_for_completion*() calls and complete() instead. The advantage of using completions is that they have a well defined, focused pur- pose which makes it very easy to see the intent of the code, but they also result in more efficient code as all threads can continue execution until the result isactually needed, and both the waiting and the signalling is highly efficient using low level scheduler sleep/wakeup facilities. Completions are built on top of the waitqueue and wakeup infrastructure of the Linux scheduler. The event the threads on the waitqueue are waiting for is reduced to a simple flag in ‘struct completion’, appropriately called “done”. As completions are scheduling related, the code can be found in ker- nel/sched/completion.c. 1.2 Usage: There are three main parts to using completions: • the initialization of the ‘struct completion’synchronization object • the waiting part through a call to one of the variants of wait_for_completion(), • the signaling side through a call to complete() or complete_all().
    [Show full text]
  • Toolbox of Action
    AlpInnoCT Toolbox of Action Solutions and approaches for Combined Transport in the Alpine Space Handbook with results from the AlpInnoCT Project Foreword 03 Combined Transport in the Alpine Space — RoLa – Rolling Highway. Source: www.ralpin.com/media/ Results from the AlpInnoCT Project The Alps are a sensitive ecosystem to be protected from pollutant emissions & climate change. Continued growth in freight traffic ModaLohr. Source: www.txlogistik.eu/ volume leads to environmental and social problems. These trends reinforce the need to review existing transport modes & develop innovative models to protect the Alpine Space. Therefore, the project Alpine Innovation for Combined Transport (AlpInnoCT) tackled the main challenges to raise CT efficiency and productivity. This included new approaches like the application of production industry knowhow as well as the analysis of existing strategies, policies and processes. Verona Quadrante Europa. Source:www.ferpress.it/ This Toolbox of Action summarizes the main results and aims transport-logistic2015- interporto-quadrante- to provide information for political and economic decision makers europa-presentazione- and the civil society, on how Combined Transport can be fostered progetto-easyconnecting/ in Europe and the Alpine Space for a successful shift of freight traffic, from road to rail. The AlpInnoCT project was carried out in the framework of the Alpine Space Programme – European Territorial Cooperation 2014 – 2020 (INTERREG VB), funded by the European Regional Development Fund (ERDF) and national
    [Show full text]
  • Chuck: a Strongly Timed Computer Music Language
    Ge Wang,∗ Perry R. Cook,† ChucK: A Strongly Timed and Spencer Salazar∗ ∗Center for Computer Research in Music Computer Music Language and Acoustics (CCRMA) Stanford University 660 Lomita Drive, Stanford, California 94306, USA {ge, spencer}@ccrma.stanford.edu †Department of Computer Science Princeton University 35 Olden Street, Princeton, New Jersey 08540, USA [email protected] Abstract: ChucK is a programming language designed for computer music. It aims to be expressive and straightforward to read and write with respect to time and concurrency, and to provide a platform for precise audio synthesis and analysis and for rapid experimentation in computer music. In particular, ChucK defines the notion of a strongly timed audio programming language, comprising a versatile time-based programming model that allows programmers to flexibly and precisely control the flow of time in code and use the keyword now as a time-aware control construct, and gives programmers the ability to use the timing mechanism to realize sample-accurate concurrent programming. Several case studies are presented that illustrate the workings, properties, and personality of the language. We also discuss applications of ChucK in laptop orchestras, computer music pedagogy, and mobile music instruments. Properties and affordances of the language and its future directions are outlined. What Is ChucK? form the notion of a strongly timed computer music programming language. ChucK (Wang 2008) is a computer music program- ming language. First released in 2003, it is designed to support a wide array of real-time and interactive Two Observations about Audio Programming tasks such as sound synthesis, physical modeling, gesture mapping, algorithmic composition, sonifi- Time is intimately connected with sound and is cation, audio analysis, and live performance.
    [Show full text]
  • Advances in Mobile Cloud Computing and Big Data in the 5G Era Studies in Big Data
    Studies in Big Data 22 Constandinos X. Mavromoustakis George Mastorakis Ciprian Dobre Editors Advances in Mobile Cloud Computing and Big Data in the 5G Era Studies in Big Data Volume 22 Series editor Janusz Kacprzyk, Polish Academy of Sciences, Warsaw, Poland e-mail: [email protected] About this Series The series “Studies in Big Data” (SBD) publishes new developments and advances in the various areas of Big Data-quickly and with a high quality. The intent is to cover the theory, research, development, and applications of Big Data, as embedded in the fields of engineering, computer science, physics, economics and life sciences. The books of the series refer to the analysis and understanding of large, complex, and/or distributed data sets generated from recent digital sources coming from sensors or other physical instruments as well as simulations, crowd sourcing, social networks or other internet transactions, such as emails or video click streams and other. The series contains monographs, lecture notes and edited volumes in Big Data spanning the areas of computational intelligence incl. neural networks, evolutionary computation, soft computing, fuzzy systems, as well as artificial intelligence, data mining, modern statistics and Operations research, as well as self-organizing systems. Of particular value to both the contributors and the readership are the short publication timeframe and the world-wide distribution, which enable both wide and rapid dissemination of research output. More information about this series at http://www.springer.com/series/11970 Constandinos X. Mavromoustakis George Mastorakis ⋅ Ciprian Dobre Editors Advances in Mobile Cloud Computing and Big Data in the 5G Era 123 Editors Constandinos X.
    [Show full text]
  • Isupercolliderkit: a Toolkit for Ios Using an Internal Supercollider Server As a Sound Engine
    ICMC 2015 – Sept. 25 - Oct. 1, 2015 – CEMI, University of North Texas iSuperColliderKit: A Toolkit for iOS Using an Internal SuperCollider Server as a Sound Engine Akinori Ito Kengo Watanabe Genki Kuroda Ken’ichiro Ito Tokyo University of Tech- Watanabe-DENKI Inc. Tokyo University of Tech- Tokyo University of Tech- nology [email protected] nology nology [email protected]. [email protected]. [email protected]. ac.jp ac.jp ac.jp The editor client sends the OSC code-fragments to its server. ABSTRACT Due to adopting the model, SuperCollider has feature that a iSuperColliderKit is a toolkit for iOS using an internal programmer can dynamically change some musical ele- SuperCollider Server as a sound engine. Through this re- ments, phrases, rhythms, scales and so on. The real-time search, we have adapted the exiting SuperCollider source interactivity is effectively utilized mainly in the live-coding code for iOS to the latest environment. Further we attempt- field. If the iOS developers would make their application ed to detach the UI from the sound engine so that the native adopting the “sound-server” model, using SuperCollider iOS visual objects built by objective-C or Swift, send to the seems to be a reasonable choice. However, the porting situa- internal SuperCollider server with any user interaction tion is not so good. SonicPi[5] is the one of a musical pro- events. As a result, iSuperColliderKit makes it possible to gramming environment that has SuperCollider server inter- utilize the vast resources of dynamic real-time changing nally. However, it is only for Raspberry Pi, Windows and musical elements or algorithmic composition on SuperCol- OSX.
    [Show full text]
  • Procedural Generation of a 3D Terrain Model Based on a Predefined
    Procedural Generation of a 3D Terrain Model Based on a Predefined Road Mesh Bachelor of Science Thesis in Applied Information Technology Matilda Andersson Kim Berger Fredrik Burhöi Bengtsson Bjarne Gelotte Jonas Graul Sagdahl Sebastian Kvarnström Department of Applied Information Technology Chalmers University of Technology University of Gothenburg Gothenburg, Sweden 2017 Bachelor of Science Thesis Procedural Generation of a 3D Terrain Model Based on a Predefined Road Mesh Matilda Andersson Kim Berger Fredrik Burhöi Bengtsson Bjarne Gelotte Jonas Graul Sagdahl Sebastian Kvarnström Department of Applied Information Technology Chalmers University of Technology University of Gothenburg Gothenburg, Sweden 2017 The Authors grants to Chalmers University of Technology and University of Gothenburg the non-exclusive right to publish the Work electronically and in a non-commercial purpose make it accessible on the Internet. The Author warrants that he/she is the author to the Work, and warrants that the Work does not contain text, pictures or other material that violates copyright law. The Author shall, when transferring the rights of the Work to a third party (for example a publisher or a company), acknowledge the third party about this agreement. If the Author has signed a copyright agreement with a third party regarding the Work, the Author warrants hereby that he/she has obtained any necessary permission from this third party to let Chalmers University of Technology and University of Gothenburg store the Work electronically and make it accessible on the Internet. Procedural Generation of a 3D Terrain Model Based on a Predefined Road Mesh Matilda Andersson Kim Berger Fredrik Burhöi Bengtsson Bjarne Gelotte Jonas Graul Sagdahl Sebastian Kvarnström © Matilda Andersson, 2017.
    [Show full text]
  • Nuke Survival Toolkit Documentation
    Nuke Survival Toolkit Documentation Release v1.0.0 Tony Lyons | 2020 1 About The Nuke Survival Toolkit is a portable tool menu for the Foundry’s Nuke with a hand-picked selection of nuke gizmos collected from all over the web, organized into 1 easy-to-install toolbar. Installation Here’s how to install and use the Nuke Survival Toolkit: 1.) Download the .zip folder from the Nuke Survival Toolkit github website. https://github.com/CreativeLyons/NukeSurvivalToolkit_publicRelease This github will have all of the up to date changes, bug fixes, tweaks, additions, etc. So feel free to watch or star the github, and check back regularly if you’d like to stay up to date. 2.) Copy or move the NukeSurvivalToolkit Folder either in your User/.nuke/ folder for personal use, or for use in a pipeline or to share with multiple artists, place the folder in any shared and accessible network folder. 3.) Open your init.py file in your /.nuke/ folder into any text editor (or create a new init.py in your User/.nuke/ directory if one doesn’t already exist) 4.) Copy the following code into your init.py file: nuke.pluginAddPath( "Your/NukeSurvivalToolkit/FolderPath/Here") 5.) Copy the file path location of where you placed your NukeSurvivalToolkit. Replace the Your/NukeSurvivalToolkit/FolderPath/Here text with your NukeSurvivalToolkit filepath location, making sure to keep quotation marks around the filepath. 6.) Save your init.py file, and restart your Nuke session 7.) That’s it! Congrats, you will now see a little red multi-tool in your nuke toolbar.
    [Show full text]
  • Working with Ironpython and WPF
    Working with IronPython and WPF Douglas Blank Bryn Mawr College Programming Paradigms Spring 2010 With thanks to: http://www.ironpython.info/ http://devhawk.net/ IronPython Demo with WPF >>> import clr >>> clr.AddReference("PresentationFramework") >>> from System.Windows import * >>> window = Window() >>> window.Title = "Hello" >>> window.Show() >>> button = Controls.Button() >>> button.Content = "Push Me" >>> panel = Controls.StackPanel() >>> window.Content = panel >>> panel.Children.Add(button) 0 >>> app = System.Windows.Application() >>> app.Run(window) XAML Example: Main.xaml <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns: x="http://schemas.microsoft.com/winfx/2006/xaml" Title="TestApp" Width="640" Height="480"> <StackPanel> <Label>Iron Python and WPF</Label> <ListBox Grid.Column="0" x:Name="listbox1" > <ListBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Path=title}" /> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </StackPanel> </Window> IronPython + XAML import sys if 'win' in sys.platform: import pythoncom pythoncom.CoInitialize() import clr clr.AddReference("System.Xml") clr.AddReference("PresentationFramework") clr.AddReference("PresentationCore") from System.IO import StringReader from System.Xml import XmlReader from System.Windows.Markup import XamlReader, XamlWriter from System.Windows import Window, Application xaml = """<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Title="XamlReader Example" Width="300" Height="200"> <StackPanel Margin="5"> <Button
    [Show full text]