Csound6: Old Code Renewed

Total Page:16

File Type:pdf, Size:1020Kb

Csound6: Old Code Renewed View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by MURAL - Maynooth University Research Archive Library Csound6: old code renewed John FITCH and Victor LAZZARINI and Steven YI Department of Music National University of Ireland Maynooth, Ireland, fjpff@codemist.co.uk, [email protected], [email protected] Abstract Miller, 1964]. Following the introduction of This paper describes the current status of the de- the PDP-11 minicomputer, a modified version velopment of a new major version of Csound. We of the software appeared as MUSIC 11[Vercoe, begin by introducing the software and its historical 1981]. Later, with the availability of C (and significance. We then detail the important aspects UNIX), this program was re-written in that lan- of Csound 5 and the motivation for version 6. Fol- guage as Csound[Boulanger, 2000], allowing a lowing, this we discuss the changes to the software simpler cycle of development and portability, in that have already been implemented. The final sec- comparison to its predecessor. tion explores the expected developments prior to the first release and the planned additions that will be The system, in its first released version, em- coming on stream in later updates of the system. bodied a largely successful attempt at provid- ing a cross-platform program for sound syn- Keywords thesis and signal processing. Csound was then Music Programming Languages, Sound Synthesis, adopted by a large development community in Audio Signal Processing the mid 90s, after being translated into the ANSI C standard by John ffitch in the early 1 Introduction half of the decade. In the early 2000s, the final In March 2012, a decision was taken to move releases of version 4 attempted to retrofit an ap- the development of Csound from version 5 to plication programming interface (API), so that a new major version, 6. This meant that most the system could be used as a library. of the major changes and improvements to the 1.1.2 Csound 5 software would cease to be made in Csound The need for the further development of the 5, and while new versions would be released, Csound API, as well as other innovations, these will consist mainly of bug fixes and mi- prompted a code freeze and a complete overhaul nor changes (possibly including new opcodes). of the system into version 5[ffitch, 2005]. Much Moving to a new version allowed developers to of this development included updating 1970s rethink key aspects of the system, without the programming practices by applying more mod- requirement of keeping ABI or API compatibil- ern standards. One of the major aims was to ity with earlier iterations. The only restriction, make the code reentrant, so that its use as a li- which is a fundamental one for Csound, is to brary could be made more robust. In 2006, ver- provide backwards language compatibility, en- sion 5.00 was released. The developments em- suring that music composed with the software bodied by this and subsequent releases allowed will continue to be preserved. a varied use of the software, with a number of This paper describes the motivation for the third-party projects benefitting from them. changes, current state of development and prospective plans for the system. 1.2 Csound operation in a nutshell As a MUSIC-N language, Csound incorporates 1.1 Short History of Csound a compiler for instruments. During perfor- 1.1.1 Early History mance, these can be activated (instantiated) by Csound has had a long history of development, various means, the traditional one being the which can be traced back to Barry Vercoe's standard numeric score. In Csound 5, compi- MUSIC 360[Vercoe, 1973] package for computer lation can only be done once per performance music, which was itself a variant of Max Math- run, so new instruments cannot be added to ews' and Joan Miller's MUSIC IV[Mathews and an already running engine (for this performance needs to be interrupted so the compilation can of older components (such as the old parser), take place). and a reorganisation of the API. It was also an The steps involved in the compiler can be opportunity to code-walk, and with that find divided into two: parsing, and compilation inconsistencies and bugs that would normally proper. The first creates an abstract syntax tree be hidden. In particular, changes related to re- (AST) representing the instruments. The com- peated loading and compilation of new instru- pilation then creates data structures in memory ments would require (and indeed force) a wel- that correspond to the AST. When an instru- come separation of language and synthesis en- ment is instantiated, an init-pass loop is per- gine, which is well underway at present. formed, executing all the once-off operations for that instance. This is then inserted in a list of 3 Developments to date active instruments, and its performance code is 3.1 Build System and Tests executed sequentially, processing vectors (audio In Csound 5, the official build system is SCons1. signals), scalars (control signals) or frames of Over time, a CMake-based2 build was intro- spectral data. The list orders instruments by duced and used for local developer use, as well ascending number, so higher-order ones will al- as later for Debian packaging and iOS builds. ways be executed last. All of the key aspects of In Csound 6, the official build system is now Csound operation are exposed by the API. the CMake-based build. Moving to CMake in- 2 Motivation troduced some hurdles and changes in workflow, but it also brought with it generation of build In the six years since its release, Csound 5 con- system files, such as Makefiles, XCode projects, tinued to develop in many ways, mostly in re- and Eclipse projects. This solved a problem of sponse to user needs, as well as providing fur- IDE-based projects for building Csound becom- ther processing capabilities in the form of new ing out of sync with changes in the SConstruct opcodes. After a long gestation, early in 2012, file for SCons, as well as brought more ways the new flex-bison parser was completed and for developers to approach building and working added as a standard option. This was the final with Csound code, particularly through IDE's. major step of development for Csound, where Using the CTest feature in CMake, unit and the last big chunk of 1970s code, the old ad- functional tests have been added to Csound 6's hoc parser, was replaced by a modern, main- codebase. CTest is the test running utility used tainable, and extendable parser. Following the to execute the individual C-code tests. In ad- 2011 Csound Conference in Hannover, it was dition, CUnit3 is employed to create the indi- clear that there were a number of user requests vidual tests and test-suites within the test code that would be more easily achievable with a re- files. In addition to C-code testing, the suite think of the system. Such suggestions included: of CSD's used for application/integration test- ing continues to grow, and a new set of Python • the capacity of new orchestra code, tests has also been added for testing API usage ie. instruments and user-defined opcodes from a host language. (UDOs), to be added to a running instance of the engine 3.2 Code reorganisation • additions to the orchestra language, for in- The Csound code base is passing through a sig- stance, generic arrays nificant reorganisation. Firstly, parts of it that are now obsolete, such as the old parser, have • rationalisation of the API to allow further been removed. Some opcodes with special li- features in frontends censing conditions that have been deemed not • loadable binary formats, API construction to be conducive to further development have of instruments been completely rewritten (also with some ef- ficiency and generality improvements). The • further development of parallelism CSOUND struct has been rationalised and re- • facilities for live coding organised, with many modifications due to the various changes outlined in the next sections. The time was ripe for major changes to be 1http://www.scons.org made. User suggestions prompted developers to 2http://www.cmake.org begin an internal cleanup of code, the removal 3http://cunit.sourceforge.net Finally, the public API is going through a re- and csoundCompileTree(), as well as by the design process (details of which are discussed addition of a general csoundStart() function below). to get the engine going. The parsing function creates an abstract syntax tree (AST) from a 3.3 Type system string containing Csound code. The compi- The Csound Orchestra language uses strongly lation function then creates the internal data typed variables and enforces these at compile- structures that the AST represents, ready for time. This type information is used to deter- engine instantiation(see figure 1). mine the size of memory to allocate for a vari- able as well as for specifying the in- and out- arg types for opcodes. The system of types used prior to Csound 6 was hard-coded into the parser and compiler. Adding new types would require adding code in many places. In Csound 6, a generic type system was imple- mented as well as tracking of variable names to types. The new system provides a mechanism to create and handle types, such that new types can be easily added to the language. The sys- tem also helps clarify how types are used during compilation. Another feature is that variable definitions and types were previously discarded after compile-time; in Csound 6, this informa- tion is kept after compilation.
Recommended publications
  • Synchronous Programming in Audio Processing Karim Barkati, Pierre Jouvelot
    Synchronous programming in audio processing Karim Barkati, Pierre Jouvelot To cite this version: Karim Barkati, Pierre Jouvelot. Synchronous programming in audio processing. ACM Computing Surveys, Association for Computing Machinery, 2013, 46 (2), pp.24. 10.1145/2543581.2543591. hal- 01540047 HAL Id: hal-01540047 https://hal-mines-paristech.archives-ouvertes.fr/hal-01540047 Submitted on 15 Jun 2017 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. A Synchronous Programming in Audio Processing: A Lookup Table Oscillator Case Study KARIM BARKATI and PIERRE JOUVELOT, CRI, Mathématiques et systèmes, MINES ParisTech, France The adequacy of a programming language to a given software project or application domain is often con- sidered a key factor of success in software development and engineering, even though little theoretical or practical information is readily available to help make an informed decision. In this paper, we address a particular version of this issue by comparing the adequacy of general-purpose synchronous programming languages to more domain-specific
    [Show full text]
  • Proceedings of the Fourth International Csound Conference
    Proceedings of the Fourth International Csound Conference Edited by: Luis Jure [email protected] Published by: Escuela Universitaria de Música, Universidad de la República Av. 18 de Julio 1772, CP 11200 Montevideo, Uruguay ISSN 2393-7580 © 2017 International Csound Conference Conference Chairs Paper Review Committee Luis Jure (Chair) +yvind Brandtsegg Martín Rocamora (Co-Chair) Pablo Di Liscia John -tch Organization Team Michael Gogins Jimena Arruti Joachim )eintz Pablo Cancela Alex )ofmann Guillermo Carter /armo Johannes Guzmán Calzada 0ictor Lazzarini Ignacio Irigaray Iain McCurdy Lucía Chamorro Rory 1alsh "eli#e Lamolle Juan Martín L$#ez Music Review Committee Gusta%o Sansone Pablo Cetta Sofía Scheps Joel Chadabe Ricardo Dal "arra Sessions Chairs Pablo Di Liscia Pablo Cancela "olkmar )ein Pablo Di Liscia Joachim )eintz Michael Gogins Clara Ma3da Joachim )eintz Iain McCurdy Luis Jure "lo Menezes Iain McCurdy Daniel 4##enheim Martín Rocamora Juan Pampin Steven *i Carmelo Saitta Music Curator Rodrigo Sigal Luis Jure Clemens %on Reusner Index Preface Keynote talks The 60 years leading to Csound 6.09 Victor Lazzarini Don Quijote, the Island and the Golden Age Joachim Heintz The ATS technique in Csound: theoretical background, present state and prospective Oscar Pablo Di Liscia Csound – The Swiss Army Synthesiser Iain McCurdy How and Why I Use Csound Today Steven Yi Conference papers Working with pch2csd – Clavia NM G2 to Csound Converter Gleb Rogozinsky, Eugene Cherny and Michael Chesnokov Daria: A New Framework for Composing, Rehearsing and Performing Mixed Media Music Guillermo Senna and Juan Nava Aroza Interactive Csound Coding with Emacs Hlöðver Sigurðsson Chunking: A new Approach to Algorithmic Composition of Rhythm and Metre for Csound Georg Boenn Interactive Visual Music with Csound and HTML5 Michael Gogins Spectral and 3D spatial granular synthesis in Csound Oscar Pablo Di Liscia Preface The International Csound Conference (ICSC) is the principal biennial meeting for members of the Csound community and typically attracts worldwide attendance.
    [Show full text]
  • Computer Music
    THE OXFORD HANDBOOK OF COMPUTER MUSIC Edited by ROGER T. DEAN OXFORD UNIVERSITY PRESS OXFORD UNIVERSITY PRESS Oxford University Press, Inc., publishes works that further Oxford University's objective of excellence in research, scholarship, and education. Oxford New York Auckland Cape Town Dar es Salaam Hong Kong Karachi Kuala Lumpur Madrid Melbourne Mexico City Nairobi New Delhi Shanghai Taipei Toronto With offices in Argentina Austria Brazil Chile Czech Republic France Greece Guatemala Hungary Italy Japan Poland Portugal Singapore South Korea Switzerland Thailand Turkey Ukraine Vietnam Copyright © 2009 by Oxford University Press, Inc. First published as an Oxford University Press paperback ion Published by Oxford University Press, Inc. 198 Madison Avenue, New York, New York 10016 www.oup.com Oxford is a registered trademark of Oxford University Press All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior permission of Oxford University Press. Library of Congress Cataloging-in-Publication Data The Oxford handbook of computer music / edited by Roger T. Dean. p. cm. Includes bibliographical references and index. ISBN 978-0-19-979103-0 (alk. paper) i. Computer music—History and criticism. I. Dean, R. T. MI T 1.80.09 1009 i 1008046594 789.99 OXF tin Printed in the United Stares of America on acid-free paper CHAPTER 12 SENSOR-BASED MUSICAL INSTRUMENTS AND INTERACTIVE MUSIC ATAU TANAKA MUSICIANS, composers, and instrument builders have been fascinated by the expres- sive potential of electrical and electronic technologies since the advent of electricity itself.
    [Show full text]
  • Interactive Csound Coding with Emacs
    Interactive Csound coding with Emacs Hlöðver Sigurðsson Abstract. This paper will cover the features of the Emacs package csound-mode, a new major-mode for Csound coding. The package is in most part a typical emacs major mode where indentation rules, comple- tions, docstrings and syntax highlighting are provided. With an extra feature of a REPL1, that is based on running csound instance through the csound-api. Similar to csound-repl.vim[1] csound- mode strives to enable the Csound user a faster feedback loop by offering a REPL instance inside of the text editor. Making the gap between de- velopment and the final output reachable within a real-time interaction. 1 Introduction After reading the changelog of Emacs 25.1[2] I discovered a new Emacs feature of dynamic modules, enabling the possibility of Foreign Function Interface(FFI). Being insired by Gogins’s recent Common Lisp FFI for the CsoundAPI[3], I decided to use this new feature and develop an FFI for Csound. I made the dynamic module which ports the greater part of the C-lang’s csound-api and wrote some of Steven Yi’s csound-api examples for Elisp, which can be found on the Gihub page for CsoundAPI-emacsLisp[4]. This sparked my idea of creating a new REPL based Csound major mode for Emacs. As a composer using Csound, I feel the need to be close to that which I’m composing at any given moment. From previous Csound front-end tools I’ve used, the time between writing a Csound statement and hearing its output has been for me a too long process of mouseclicking and/or changing windows.
    [Show full text]
  • Expanding the Power of Csound with Integrated Html and Javascript
    Michael Gogins. Expanding the Power of Csound with Intergrated HTML and JavaScript EXPANDING THE POWER OF CSOUND WITH INTEGRATED HTML AND JAVA SCRIPT Michael Gogins [email protected] https://michaelgogins.tumblr.com http://michaelgogins.tumblr.com/ This paper presents recent developments integrating Csound [1] with HTML [2] and JavaScript [3, 4]. For those new to Csound, it is a “MUSIC N” style, user- programmable software sound synthesizer, one of the first yet still being extended, written mostly in the C language. No synthesizer is more powerful. Csound can now run in an interactive Web page, using all the capabilities of current Web browsers: custom widgets, 2- and 3-dimensional animated and interactive graphics canvases, video, data storage, WebSockets, Web Audio, mathematics typesetting, etc. See the whole list at HTML5 TEST [5]. Above all, the JavaScript programming language can be used to control Csound, extend its capabilities, generate scores, and more. JavaScript is the “glue” that binds together the components and capabilities of HTML5. JavaScript is a full-featured, dynamically typed language that supports functional programming and prototype-based object- oriented programming. In most browsers, the JavaScript virtual machine includes a just- in-time compiler that runs about 4 times slower than compiled C, very fast for a dynamic language. JavaScript has limitations. It is single-threaded, and in standard browsers, is not permitted to access the local file system outside the browser's sandbox. But most musical applications can use an embedded browser, which bypasses the sandbox and accesses the local file system. HTML Environments for Csound There are two approaches to integrating Csound with HTML and JavaScript.
    [Show full text]
  • DVD Program Notes
    DVD Program Notes Part One: Thor Magnusson, Alex Click Nilson is a Swedish avant McLean, Nick Collins, Curators garde codisician and code-jockey. He has explored the live coding of human performers since such Curators’ Note early self-modifiying algorithmic text pieces as An Instructional Game [Editor’s note: The curators attempted for One to Many Musicians (1975). to write their Note in a collaborative, He is now actively involved with improvisatory fashion reminiscent Testing the Oxymoronic Potency of of live coding, and have left the Language Articulation Programmes document open for further interaction (TOPLAP), after being in the right from readers. See the following URL: bar (in Hamburg) at the right time (2 https://docs.google.com/document/d/ AM, 15 February 2004). He previously 1ESzQyd9vdBuKgzdukFNhfAAnGEg curated for Leonardo Music Journal LPgLlCe Mw8zf1Uw/edit?hl=en GB and the Swedish Journal of Berlin Hot &authkey=CM7zg90L&pli=1.] Drink Outlets. Alex McLean is a researcher in the area of programming languages for Figure 1. Sam Aaron. the arts, writing his PhD within the 1. Overtone—Sam Aaron Intelligent Sound and Music Systems more effectively and efficiently. He group at Goldsmiths College, and also In this video Sam gives a fast-paced has successfully applied these ideas working within the OAK group, Uni- introduction to a number of key and techniques in both industry versity of Sheffield. He is one-third of live-programming techniques such and academia. Currently, Sam the live-coding ambient-gabba-skiffle as triggering instruments, scheduling leads Improcess, a collaborative band Slub, who have been making future events, and synthesizer design.
    [Show full text]
  • Algorithmic Composition with Open Music and Csound: Two Examples
    Algorithmic Composition with Open Music and Csound: two examples Fabio De Sanctis De Benedictis ISSM \P. Mascagni" { Leghorn (Italy) [email protected] Abstract. In this paper, after a concise and not exhaustive review about GUI software related to Csound, and brief notes about Algorithmic Com- position, two examples of Open Music patches will be illustrated, taken from the pre-compositive work in some author's compositions. These patches are utilized for sound generation and spatialization using Csound as synthesis engine. Very specific and thorough Csound programming ex- amples will be not discussed here, even if automatically generated .csd file examples will be showed, nor will it be possible to explain in detail Open Music patches; however we retain that what will be described can stimulate the reader towards further deepening. Keywords: Csound, Algorithmic Composition, Open Music, Electronic Music, Sound Spatialization, Music Composition 1 Introduction As well-known, \Csound is a sound and music computing system"([1], p. 35), founded on a text file containing synthesis instructions and the score, that the software reads and transforms into sound. By its very nature Csound can be supported by other software that facilitates the writing of code, or that, provided by a graphic interface, can use Csound itself as synthesis engine. Dave Phillips has mentioned several in his book ([2]): hYdraJ by Malte Steiner; Cecilia by Jean Piche and Alexander Burton; Silence by Michael Go- gins; the family of HPK software, by Didiel Debril and Jean-Pierre Lemoine.1 The book by Bianchini and Cipriani encloses Windows software for interfacing Csound, and various utilities ([6]).
    [Show full text]
  • WELLE - a Web-Based Music Environment for the Blind
    WELLE - a web-based music environment for the blind Jens Vetter Tangible Music Lab University of Art and Design Linz, Austria [email protected] ABSTRACT To improve the process of music production on the com- This paper presents WELLE, a web-based music environ- puter for the blind, several attempts have been made in ment for blind people, and describes its development, de- the past focusing on assistive external hardware, such as sign, notation syntax and first experiences. WELLE is in- the Haptic Wave [14], the HaptEQ [6] or the Moose [5]. tended to serve as a collaborative, performative and educa- All these external interfaces, however, are based on the in- tional tool to quickly create and record musical ideas. It is tegration into a music production environment. But only pattern-oriented, based on textual notation and focuses on very few audio software platforms support screen readers accessibility, playful interaction and ease of use. like JAWS. Amongst them is the cross-platform audio soft- WELLE was developed as part of the research project ware Audacity. Yet in terms of music production, Audacity Tangible Signals and will also serve as a platform for the is only suitable for editing single audio files, but not for integration of upcoming new interfaces. more complex editing of multiple audio tracks or even for composing computer music. DAW's (Digital Audio Work- stations) like Sonar or Reaper allow more complex audio Author Keywords processing and also offer screen reader integration, but us- Musical Interfaces, Accessibility, Livecoding, Web-based In- ing them with the screen reader requires extensive training.
    [Show full text]
  • Two Cross-Platform Csound-Based Plugin Generators
    TWO CROSS-PLATFORM CSOUND-BASED PLUGIN GENERATORS Victor Lazzarini Rory Walsh, Martin Brogan An Grúpa Theicneolaíocht Fuaime agus Ceoil Music Department Dhigitigh Dundalk Institute of Technology National University of Ireland, Maynooth, [email protected] Ireland [email protected] [email protected] , ABSTRACT API call, it can be used to send control data to a running instance. This article describes two new plugin generators for the development of effects and instruments using the In the present systems, audio data is sent to the main Csound audio programming language, csLADSPA and input buffer of Csound and collected from the main csVST. It discusses the basics of these two systems, output buffer. This implies that the number of channels exploring some of their internal aspects. The text of a plugin is defined as a global constant in the Csound continues on to show three basic examples, two plugin code. However, the sampling rate and vector size will be effects and one synthesis instrument. These determined by the plugin host, overriding any values demonstrate both time-domain and spectral processes. defined by Csound. The API is also responsible for The article concludes with a look at specific details of loading and compiling all Csound code. operation of the two plugin generators. 2. THE PLUGIN GENERATORS 1. INTRODUCTION csLADSPA uses the LADSPA format. This plugin model The availability of a variety of plugin models and host came to fruition in early 2000 following the combined applications has provided fertile ground for the efforts of Paul Davis, Richard Furse, and Stefan development of audio effects.
    [Show full text]
  • C Copyright 2014 Hugo Solis
    c Copyright 2014 Hugo Solis Axial; a Sound Art Work of an Oceanographic Expedition Hugo Solis A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy University of Washington 2014 Reading Committee: Juan Pampin, Chair Richard S. Karpen James Coupe Program Authorized to Offer Degree: Digital Arts and Experimental Media University of Washington Abstract Axial; a Sound Art Work of an Oceanographic Expedition Hugo Solis Chair of the Supervisory Committee: Dr. Juan Pampin DXARTS Axial is a sound installation in which a cargo container is employed as a resonant object: resonant in its acoustic sense because the container is used as sound generator, but also resonant in its metaphorical connotation because the container and the generated sounds translate and represent the geological properties of Axial, an active submarine volcano on the Juan de Fuca Ridge located about 250 miles off the coast of Oregon. The container is also the space-instrument for interpreting the scientific data obtained during the oceanographic expedition Enlighten10, during which the artist recorded the sounds of the hydrothermal vents located in the area at depth of over 4,500 feet. This thesis describes in detail the entire compositional process as well as the con- cepts, procedures, and context of the artwork. Chapter one offers a general description of the project and should be the starting point for a first-time reader because it helps to establish the context. Chapter two describes the concept of digital plurifocality and presents the properties of the Plurifocal Events Controller, a technological infrastructure for creating spatially distributed sound works.
    [Show full text]
  • Composer(Teach Elec)
    Matt Ingalls COMPOSER COMPUTER MUSICIAN CLARINETIST [email protected] 106 Fairmount, Oakland, CA 94611 510.444.3595 http://mattingalls.com Education Master of Arts in Composition. Mills College, Oakland, California [1997] Alumnae Scholarship. Heller Scholarship. Carruthers Scholarship Paul Merritt Henry Prize for Excellence in Music Composition “Who’s Who” Among Students in American Universities and Colleges Composition & Electronic Music Studies with Chris Brown, Alvin Curran, and George Lewis Bachelor of Music in Composition. University of Texas at Austin [1994] Dean's List. Golden Key National Honor Society. Tuition Waiver Scholarship Computer Music Studies with Russell Pinkston. Composition Studies with Karl Korte and Dan Welcher Employment: Teaching University of San Francisco [Fall 2005/Fall 2006] Adjunct Faculty: Digital Audio Synthesis Dartmouth College [Fall 1998] Adjunct Faculty: Music Harmony and Theory I Mills College [Fall 1995 - Spring 1996] Teaching Assistant: Seminar in Electronic Music & Computer Music Studio Technician Employment: Audio Software Engineer Ryerson University [3/2014 - 6/2014] Contract/Grant to create an iPad performance app in conjunction with the 50th Anniversary of Terry Riley’s In C. Voxer [10/2011 - 1/2014] Senior Software Engineer developing the Voxer Walkie-Talkie iOS app. Rogue Amoeba [4/2011 - 7/2011] Created a MacOS utility for loading and playing sound files. MIDI Keyz [2/2011 - 3/2011] Created utility for automatic musical chord identification from a streaming MIDI input. GVOX [8/2005 - 11/2009] Senior Software Engineer: Mac/Win versions of Encore Music Notation, MusicTime Deluxe and Master Tracks. Livid Instruments [7/2005] Created Max/MSP externals for copy protection and data compression. Arboretum Systems [5/2005 & 10/1999 - 1/2000] Ported RayGunPro and Ionizer plugins to AudioUnit format.
    [Show full text]
  • Building a Synthesizer Using Csound and the Intel Galileo: Towards an Internet of Things Music Programming Environment
    Building a synthesizer using Csound and the Intel Galileo: towards an Internet of Things music programming environment Lazzarini Victor1,Timoney Joe1, Byrne Shane1 1 Maynooth University, Maynooth, Co. Kildare, Ireland [email protected] Summary This paper explains how the Intel Galileo can be configured to run as a music synthesizer. A special build of the music programming language application Csound was configured to run on the Intel Galileo. Achieving this meant that the Galileo could be set up to receive Midi information over USB that could drive a music synthesizer system. Furthermore, sound parameters could be controlled using Midi to allow real-time timbral change. The next step is to integrate this in as an Internet of Things (IoT) music application, providing a new technology platform to allow musicians to program, compose and play music from disparate locations. 1. Introduction Arduino to run and control Csound. The fact that the Intel Galileo is effectively a perfect marriage of these It is only recently that Internet of Things music two technologies affords the developer the option of synthesis applications have emerged. One example incorporating the board into situations where was the Universal Orchestra from Google [1]. This connectivity and wearable technologies are required. was a Google Chrome experiment run with the An ideal application is in creating sound art Science Museum in London. It allowed users from installations, particular those driven by kinematics. around the world to communicate using their web Running the Csound software package on a Linux browser to play either real or virtual versions of a set image on the Galileo makes the implementation of of orchestra instruments.
    [Show full text]