Subsynth: a Generic Audio Synthesis Framework for Real-Time Applications

Total Page:16

File Type:pdf, Size:1020Kb

Subsynth: a Generic Audio Synthesis Framework for Real-Time Applications Iowa State University Capstones, Theses and Retrospective Theses and Dissertations Dissertations 1-1-2002 Subsynth: A generic audio synthesis framework for real-time applications Kevin August Meinert Iowa State University Follow this and additional works at: https://lib.dr.iastate.edu/rtd Recommended Citation Meinert, Kevin August, "Subsynth: A generic audio synthesis framework for real-time applications" (2002). Retrospective Theses and Dissertations. 20166. https://lib.dr.iastate.edu/rtd/20166 This Thesis is brought to you for free and open access by the Iowa State University Capstones, Theses and Dissertations at Iowa State University Digital Repository. It has been accepted for inclusion in Retrospective Theses and Dissertations by an authorized administrator of Iowa State University Digital Repository. For more information, please contact [email protected]. Subsynth: A generic audio synthesis framework for real-time applications by Kevin August Meinert A thesis submitted to the graduate faculty in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE Major: Computer Engineering Program of Study Committee: Carolina Cruz-Neira, Major Professor Daniel Ashlock AnneDeane Julie Dickerson Govindarasu Manimaran Iowa State University Ames, Iowa 2002 Copyright © Kevin August Meinert, 2002. All rights reserved. 11 Graduate College Iowa State University This is to certify that the master's thesis of Kevin August Meinert has met the thesis requirements of Iowa State University Signatures have been redacted for privacy iii TABLE OF CONTENTS LIST OF FIGURES ............................................................................................................................. v LIST OF LISTIN"GS ......................................................................................................................... vii ACKNOWLEDGEMENTS ............................................................................................................. viii ABSTRACT ...................................................................................................................................... ix CHAPTER 1 INTRODUCTION ......................................................................................................... 1 RESEARCH PROBLEM ....................................................................................................................... 1 STATEMENT OF PURPOSE ................................................................................................................. 2 SCOPE OF RESEARCH ....................................................................................................................... 3 CHAPTER 2 BACKGROUND ........................................................................................................... 6 DIGITAL AUDIO ...........•.................................................................................................................... 6 Sampling ...................................................................................................................................... 7 Quantizing ................................................................................................................................... 8 Digital/Analog Conversion .......................................................................................................... 9 Dual Representation .................................................................................................................. 10 Distortion ................................................................................................................................... 11 COMMON AUDIO FORMATS USED IN DIGITAL COMPUTERS TODAY ............................................. 12 DIGITAL AUDIO SYNTHESIS ........................................................................................................... 18 Unit Generator Language .......................................................................................................... 19 Unit Generator Building Blocks ................................................................................................ 20 Fixed-Waveform Table-lookup Synthesis ................................................................................. 23 Additive Synthesis and Wavestacking ...................................................................................... 26 Subtractive Synthesis ................................................................................................................. 26 Non-linear or Modulation Synthesis ......................................................................................... 27 SONIFICATION ................................................................................................................................ 28 Motivation for Sonification ....................................................................................................... 29 Examples of Sonification .......................................................................................................... 30 When to Use Sonification Instead of Visualization .................................................................. 31 Requirements for Sonification Tools ........................................................................................ 31 Methods of Sonification ............................................................................................................ 32 CHAPTER 3 REQUIREMENTS OF AN AUDIO SUBSYSTEM FOR IN"TERACTIVE APPLICATIONS ...................................................................................................................... .34 SCIENTIFIC SONIFICATION ............................................................................................................. 34 INTERACTIVE COMPOSITION AND PERFORMANCE ......................................................................... 34 VIRTUAL ENVIRONMENT SONIFICATION ....................................................................................... 35 REQUIREMENTS .......................................... ·················································································... 36 CHAPTER 4 CURRENT TOOLS FOR INTERACTIVE AUDIO .................................................. .40 MUSICAL INSTRUMENT DIGITAL INTERFACE (MIDI) ................................................................... .40 iv CHAPTER 4 CURRENT TOOLS FOR INTERACTIVE AUDIO .................................................. 40 MUSICAL INSTRUMENT DIGITAL INTERFACE (MIDI) ................................................................... 40 CSOUND ........................................................................................................................................ 42 SUPERCOLLIDER ............................................................................................................................ 43 VIRTUAL AUDIO SERVER (VAS) ................................................................................................... 45 VIRTUAL SOUND SERVER (VSS) ···································································································46 DIGITAL INSTRUMENT FOR ADDmVE SOUND SYNTHESIS (DIASS) ............................................. 48 OPENAL ........................................................................................................................................ 50 PORTAUDIOIPABLIO ···················································································································52 CHAPTER 5 SUBSYNTH ............................................................................................................... 56 CONCEPTUAL DESIGN APPROACH ................................................................................................. 57 Core Audio Framework ............................................................................................................ 59 Configuration ......................................................................................................................... 61 Task Management System ........................................................................................................ 62 IMPLEMENTATION ......................................................................................................................... 63 Technology Choices .................................................................................................................. 63 Core Audio Framework ............................................................................................................ 64 Included Modules ...................................................................................................................... 71 Included Builders ...................................................................................................................... 74 Included Runners ...................................................................................................................... 76 CHAPTER 6 CASE STUDIES ......................................................................................................... 80 SUBSYNTHMIDI ····························································································································80 G.A.M.E. TOOLKIT FOR SCIENTIFIC SONIFICATION ..................................................................... 82 L-System Background ..............................................................................................................
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]
  • THE 2003 Editionlinux
    SUBSCRIBE or renew your subscription to APC for your chance to WIN the new Alfa 156 JTS, valued at over $54,000 Only $65 for 12 issues THE 2003 edition linux POCKETBOOK Subscribe ... www.apcmag.com Online at magshop.com.au or Call 13 61 16 Authorised under NSW Permit No. L02/09075 VIC: 02/2531 SA: T02/3553 ACT: TP02/3650 NT: NT02/3286 For terms and conditions refer to www.xmas.magshop.au. Expiry date: 24/12/02 Contents CHAPTER 1 Customising Gnome 57 CHAPTER 6 Editorial INTRODUCTION 11 Exploring KDE 60 WORKING WITH WINDOWS 131 The origins of the Customising KDE 64 What about Windows? 132 Welcome back to The Linux Pocketbook 2003 edition! penguin 12 Windows connectivity 138 Many of you will probably remember the original print ver- CHAPTER 4 sions of The Linux Pocketbook on newsstands across the country. Why Linux? 18 Basic security 145 The original versions sold so well that we ran out of copies. We’ve The ways of the world 20 USING LINUX 67 had countless requests for reprints, so we’ve decided to bundle the Connecting to the Net 68 CHAPTER 7 entire book into this single resource. This version of the pocketbook relies heavily on Mandrake Linux 9.0 or Red Hat 8.0. Both were CHAPTER 2 Applications 71 PLAYING WITH LINUX 151 released late in 2002, and can be easily found for sale at www.everyth INSTALLING LINUX 21 Conjuring Linux 75 Linux multimedia 152 inglinux.com.au, or for download from either mandrakelinux.com or First published December 2000.
    [Show full text]
  • Porting Portaudio API on ASIO
    GRAME - Computer Music Research Lab. Technical Note - 01-11-06 Porting PortAudio API on ASIO Stéphane Letz November 2001 Grame - Computer Music Research Laboratory 9, rue du Garet BP 1185 69202 FR - LYON Cedex 01 [email protected] Abstract This document describes a port of the PortAudio API using the ASIO API on Macintosh and Windows. It explains technical choices used, buffer size adaptation techniques that guarantee minimal additional latency, results and limitations. 1 The ASIO API ASIO (Audio Streaming Input Ouput) is an API defined and proposed by Steinberg. It addesses the area of efficient audio processing, synchronization, low latency and extentibility on the hardware side. ASIO allows the handling of multi-channel professional audio cards, and different sample rates (32 kHz to 96 kHz), different sample formats (16, 24, 32 bits of 32/64 floating point formats). ASIO is available on MacOS and Windows. 2 PortAudio API PortAudio is a library that provides streaming audio input and output. It is a cross-platform API that works on Windows, Macintosh, Linux, SGI, FreeBSD and BeOS. This means that programs that need to process or generate an audio signal, can run on several different computers just by recompiling the source code. PortAudio is intended to promote the exchange of audio synthesis software between developers on different platforms. 3 Technical choices Porting PortAudio to ASIO means that some technical choices have to be made. The life cycle of the ASIO driver must be “mapped” to the life cycle of a PortAudio application. Each PortAudio function will be implemented using one or more ASIO functions.
    [Show full text]
  • Linux Games Page 1 of 7
    Linux Games Page 1 of 7 Linux Games INTRODUCTION such as the number of players and the size of the map, then you start the game. Once the game is running clients may Hello. My name is Andrew Howlett. I've been using Linux join the game. Clients connect to the game using TCP/IP, since 1997. In 2000 I cutover to Linux for all my projects, so it is very easy to play multi-player games over the except I dual-booted Windows to play games. I like to play Internet. Like many Free games, clients are available for computer games. About a year ago I stopped dual booting. many platforms, including Windows, Amiga and Now I play computer games under Linux. The games I Macintosh. So there are lots of players out there. If you play can be divided into four groups: Free Games, native don't want to play against other humans, then Freeciv linux commercial games, Windows Emulated games, and includes some nasty AIs. Win4Lin enabled games. This presentation will demonstrate games from each of these four groups. BZFlag Platform BZFlag is a tank combat game along the same lines as the old BattleZone game. Like FreeCiv, BZFlag uses a client/ Before I get started, a little bit about my setup so you can server architecture over TCP/IP networks. Unlike FreeCiv, relate this to whatever you are running. This is a P3 900 the game contains no AIs – you must play this game MHz machine. It has a Crystal Sound 4600 sound card and against other humans (? entities ?) over the Internet.
    [Show full text]
  • Python-Sounddevice Release 0.4.2
    python-sounddevice Release 0.4.2 Matthias Geier 2021-07-18 Contents 1 Installation 2 2 Usage 3 2.1 Playback................................................3 2.2 Recording...............................................4 2.3 Simultaneous Playback and Recording................................4 2.4 Device Selection...........................................4 2.5 Callback Streams...........................................5 2.6 Blocking Read/Write Streams.....................................6 3 Example Programs 6 3.1 Play a Sound File...........................................6 3.2 Play a Very Long Sound File.....................................8 3.3 Play a Very Long Sound File without Using NumPy......................... 10 3.4 Play a Web Stream.......................................... 12 3.5 Play a Sine Signal........................................... 14 3.6 Input to Output Pass-Through..................................... 15 3.7 Plot Microphone Signal(s) in Real-Time............................... 17 3.8 Real-Time Text-Mode Spectrogram................................. 19 3.9 Recording with Arbitrary Duration.................................. 21 3.10 Using a stream in an asyncio coroutine............................... 23 3.11 Creating an asyncio generator for audio blocks........................... 24 4 Contributing 26 4.1 Reporting Problems.......................................... 26 4.2 Development Installation....................................... 28 4.3 Building the Documentation..................................... 28 5 API Documentation
    [Show full text]
  • The Open Master Hearing Aid (Openmha) Application Engineers' Manual
    The Open Master Hearing Aid (openMHA) 4.16.1 Application Engineers’ Manual © 2005-2021 by HörTech gGmbH, Marie-Curie-Str. 2, D–26129 Oldenburg, Germany The Open Master Hearing Aid (openMHA) – Application Engineers’ Manual HörTech gGmbH Marie-Curie-Str. 2 D–26129 Oldenburg iii LICENSE AGREEMENT This file is part of the HörTech Open Master Hearing Aid (openMHA) Copyright © 2005 2006 2007 2008 2009 2010 2012 2013 2014 2015 2016 HörTech gGmbH. Copyright © 2017 2018 2019 2020 2021 HörTech gGmbH. openMHA is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 of the License. openMHA is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License, version 3 for more details. You should have received a copy of the GNU Affero General Public License, version 3 along with openMHA. If not, see <http://www.gnu.org/licenses/>. © 2005-2021 HörTech gGmbH, Oldenburg Contents 1 Introduction 1 1.1 Structure........................................ 1 1.2 Platform Services and Conventions......................... 2 2 The openMHA configuration language4 2.1 Structure of the openMHA configuration language................. 4 2.2 Communication between openMHA Plugins .................... 7 3 The openMHA host application8 3.1 Invocation of ’mha’ .................................. 8 3.2 Configuration variables of the openMHA host application............. 10 3.3 States of the openMHA host application ...................... 11 3.4 Audio abstraction layer................................ 11 4 GNU Octave/MATLAB tools 15 4.1 "mhactl_wrapper" - openMHA control interface for GNU Octave and MATLAB .
    [Show full text]
  • The Complete Solutions Guide for Every Linux/Windows System Administrator!
    Integrating Linux and Windows Integrating Linux and Windows By Mike McCune Publisher : Prentice Hall PTR Pub Date : December 19, 2000 ISBN : 0-13-030670-3 • Pages : 416 The complete solutions guide for every Linux/Windows system administrator! This complete Linux/Windows integration guide offers detailed coverage of dual- boot issues, data compatibility, and networking. It also handles topics such as implementing Samba file/print services for Windows workstations and providing cross-platform database access. Running Linux and Windows in the same environment? Here's the comprehensive, up-to-the-minute solutions guide you've been searching for! In Integrating Linux and Windows, top consultant Mike McCune brings together hundreds of solutions for the problems that Linux/Windows system administrators encounter most often. McCune focuses on the critical interoperability issues real businesses face: networking, program/data compatibility, dual-boot systems, and more. You'll discover exactly how to: Use Samba and Linux to deliver high-performance, low-cost file and print services to Windows workstations Compare and implement the best Linux/Windows connectivity techniques: NFS, FTP, remote commands, secure shell, telnet, and more Provide reliable data exchange between Microsoft Office and StarOffice for Linux Provide high-performance cross-platform database access via ODBC Make the most of platform-independent, browser-based applications Manage Linux and Windows on the same workstation: boot managers, partitioning, compressed drives, file systems, and more. For anyone running both Linux and Windows, McCune delivers honest and objective explanations of all your integration options, plus realistic, proven solutions you won't find anywhere else. Integrating Linux and Windows will help you keep your users happy, your costs under control, and your sanity intact! 1 Integrating Linux and Windows 2 Integrating Linux and Windows Library of Congress Cataloging-in-Publication Data McCune, Mike.
    [Show full text]
  • Flocking: a Framework for Declarative Music-Making on the Web
    Proceedings ICMC|SMC|2014 14-20 September 2014, Athens, Greece Flocking: A Framework for Declarative Music-Making on the Web Colin Clark Adam Tindale OCAD University OCAD University [email protected] [email protected] ABSTRACT JavaScript. As artists and musicians increasingly use net- worked devices, sensors, and collaboration in their work, Flocking 1 is a framework for audio synthesis and mu- these limitations take an increasing toll on the complexity sic composition written in JavaScript. It takes a unique and scalability of creative coding. approach to solving several of the common architectural Flocking is an open source JavaScript framework that problems faced by computer music environments, empha- aims to address some of these concerns by connecting mu- sizing a declarative style that is closely aligned with the sicians and artists with the cross-platform, distributed de- principles of the web. livery model of the web, and with the larger pool of li- Flocking’s goal is to enable the growth of an ecosys- braries, user interface components, and tutorials that are tem of tools that can easily parse and understand the logic available to the web development community. Further, and semantics of digital instruments by representing the it emphasizes an approach to interoperability in which basic building blocks of synthesis declaratively. This is declarative instruments and compositions can be broadly particularly useful for supporting generative composition shared, manipulated, and extended across traditional tech- (where programs generate new instruments and scores al- nical subcultural boundaries. gorithmically), graphical tools (for programmers and non- programmers alike to collaborate), and new modes of so- cial programming that allow musicians to easily adapt, ex- 1.1 Interoperability in Context tend, and rework existing instruments without having to A primary motivating concern for Flocking is that the “fork” their code.
    [Show full text]
  • The Early History of Music Programming and Digital Synthesis, Session 20
    Chapter 20. Meeting 20, Languages: The Early History of Music Programming and Digital Synthesis 20.1. Announcements • Music Technology Case Study Final Draft due Tuesday, 24 November 20.2. Quiz • 10 Minutes 20.3. The Early Computer: History • 1942 to 1946: Atanasoff-Berry Computer, the Colossus, the Harvard Mark I, and the Electrical Numerical Integrator And Calculator (ENIAC) • 1942: Atanasoff-Berry Computer 467 Courtesy of University Archives, Library, Iowa State University of Science and Technology. Used with permission. • 1946: ENIAC unveiled at University of Pennsylvania 468 Source: US Army • Diverse and incomplete computers © Wikimedia Foundation. License CC BY-SA. This content is excluded from our Creative Commons license. For more information, see http://ocw.mit.edu/fairuse. 20.4. The Early Computer: Interface • Punchcards • 1960s: card printed for Bell Labs, for the GE 600 469 Courtesy of Douglas W. Jones. Used with permission. • Fortran cards Courtesy of Douglas W. Jones. Used with permission. 20.5. The Jacquard Loom • 1801: Joseph Jacquard invents a way of storing and recalling loom operations 470 Photo courtesy of Douglas W. Jones at the University of Iowa. 471 Photo by George H. Williams, from Wikipedia (public domain). • Multiple cards could be strung together • Based on technologies of numerous inventors from the 1700s, including the automata of Jacques Vaucanson (Riskin 2003) 20.6. Computer Languages: Then and Now • Low-level languages are closer to machine representation; high-level languages are closer to human abstractions • Low Level • Machine code: direct binary instruction • Assembly: mnemonics to machine codes • High-Level: FORTRAN • 1954: John Backus at IBM design FORmula TRANslator System • 1958: Fortran II 472 • 1977: ANSI Fortran • High-Level: C • 1972: Dennis Ritchie at Bell Laboratories • Based on B • Very High-Level: Lisp, Perl, Python, Ruby • 1958: Lisp by John McCarthy • 1987: Perl by Larry Wall • 1990: Python by Guido van Rossum • 1995: Ruby by Yukihiro “Matz” Matsumoto 20.7.
    [Show full text]
  • The Pulseaudio Sound Server Linux.Conf.Au 2007
    Introduction What is PulseAudio? Usage Internals Recipes Outlook The PulseAudio Sound Server linux.conf.au 2007 Lennart Poettering [email protected] Universit¨atHamburg, Department Informatik University of Hamburg, Department of Informatics Hamburg, Germany January 17th, 2007 Lennart Poettering The PulseAudio Sound Server 2 What is PulseAudio? 3 Usage 4 Internals 5 Recipes 6 Outlook Introduction What is PulseAudio? Usage Internals Recipes Outlook Contents 1 Introduction Lennart Poettering The PulseAudio Sound Server 3 Usage 4 Internals 5 Recipes 6 Outlook Introduction What is PulseAudio? Usage Internals Recipes Outlook Contents 1 Introduction 2 What is PulseAudio? Lennart Poettering The PulseAudio Sound Server 4 Internals 5 Recipes 6 Outlook Introduction What is PulseAudio? Usage Internals Recipes Outlook Contents 1 Introduction 2 What is PulseAudio? 3 Usage Lennart Poettering The PulseAudio Sound Server 5 Recipes 6 Outlook Introduction What is PulseAudio? Usage Internals Recipes Outlook Contents 1 Introduction 2 What is PulseAudio? 3 Usage 4 Internals Lennart Poettering The PulseAudio Sound Server 6 Outlook Introduction What is PulseAudio? Usage Internals Recipes Outlook Contents 1 Introduction 2 What is PulseAudio? 3 Usage 4 Internals 5 Recipes Lennart Poettering The PulseAudio Sound Server Introduction What is PulseAudio? Usage Internals Recipes Outlook Contents 1 Introduction 2 What is PulseAudio? 3 Usage 4 Internals 5 Recipes 6 Outlook Lennart Poettering The PulseAudio Sound Server Introduction What is PulseAudio? Usage Internals Recipes Outlook Who Am I? Student (Computer Science) from Hamburg, Germany Core Developer of PulseAudio, Avahi and a few other Free Software projects http://0pointer.de/lennart/ [email protected] IRC: mezcalero Lennart Poettering The PulseAudio Sound Server Introduction What is PulseAudio? Usage Internals Recipes Outlook Introduction Lennart Poettering The PulseAudio Sound Server It’s a mess! There are just too many widely adopted but competing and incompatible sound systems.
    [Show full text]
  • Mixxx User Manual Release 2.1.0
    Mixxx User Manual Release 2.1.0 The Mixxx Development Team Apr 15, 2018 Contents 1 Introduction to Mixxx 1 1.1 How Mixxx Works............................................1 2 Getting Started 3 2.1 Opening Mixxx..............................................3 2.2 Importing your audio files........................................3 2.3 Analyze your library...........................................4 2.4 Configuring sound input and output...................................4 3 An Overview of the Mixxx Interface7 3.1 The Deck Sections............................................8 3.2 The Mixer Section............................................ 17 3.3 The Sampler Section........................................... 20 3.4 The Effects Section............................................ 22 3.5 The Microphone Section......................................... 22 3.6 Preview Deck Section.......................................... 22 4 The Mixxx Library 24 4.1 Overview of the Library features..................................... 24 4.2 Tracks - View and edit your whole collection.............................. 25 4.3 Loading Tracks.............................................. 28 4.4 Finding Tracks (Search)......................................... 29 4.5 Previewing Tracks............................................ 30 4.6 Edit metadata of audio files....................................... 30 4.7 Auto DJ - Automate your mix...................................... 33 4.8 Playlists - Arranging tracks in a set order................................ 33 4.9 Crates -
    [Show full text]
  • Kronos Reimagining Musical Signal Processing
    Kronos Reimagining Musical Signal Processing Vesa Norilo March 14, 2016 PREFACE First of all, I wish to thank my supervisors; Dr. Kalev Tiits, Dr. Marcus Castrén and Dr. Lauri Savioja,thanks for guidanceand acknowledgements and some necessary goading. Secondly; this project would never have materialized without the benign influence of Dr Mikael Laurson and Dr Mika Kuuskankare. I learned most of my research skills working as a research assistant in the PWGL project, which I had the good fortune to join at a relatively early age. Very few get such a head start. Most importantly I want to thank my family, Lotta and Roi, for their love, support and patience. Many thanks to Roi’s grandparents as well, who have made it possible for us to juggle an improb- able set of props: freelance musician careers, album productions, trips around the world, raising a baby and a couple of theses on the side. This thesis is typeset in LATEX with the Ars Classica stylesheet generously shared by Lorenzo Pantieri. This report is a part of the portfolio required for the Applied Studies Program for the degree of Doctorthe applied of Music. It studies consists of an program introductory portfolio essay, supporting appendices and six internationally peer reviewed articles. The portfolio comprises of this report and a software package, Kronos. Kronos is a programming language development environment designed for musical signal processing. The contributions of the package include the specification and implementation of a compiler for this language. Kronos is intended for musicians and music technologists. It aims to facilitate creation of sig- nal processors and digital instruments for use in the musical context.
    [Show full text]