Steven Yi
National University of Ireland
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Steven Yi.
Ubiquitous Music | 2014
Victor Lazzarini; Edward Costello; Steven Yi; John ffitch
This chapter discusses two approaches to provide a general-purpose audio programming support for Ubiquitous Music web applications. It reviews the current state of web audio development and discusses some previous attempts at this. We then introduce a JavaScript version of Csound that has been created using the Emscripten compiler and discuss its features and limitations. In complement to this, we look at a Native Client implementation of Csound, which is a fully functional version of Csound running in Chrome and Chromium browsers.
Archive | 2016
Victor Lazzarini; Steven Yi; John ffitch; Joachim Heintz; Øyvind Brandtsegg; Iain McCurdy
This chapter will explore the more advanced data types in Csound. We will begin by discussing Strings and manipulating texts. Next, we will explore Csound’s spectral data types for signal analysis and transformations. Finally, we will discuss arrays, a data type that acts as a container for other data types.
Archive | 2016
Victor Lazzarini; Steven Yi; John ffitch; Joachim Heintz; Øyvind Brandtsegg; Iain McCurdy
This chapter will discuss processing of audio signals through the use of time-domain techniques. These act on the samples of a waveform to deliver a variety of effects, from echoes and reverberation to pitch shifting, timbral modification and sound localisation. The chapter is divided into four sections dealing with the basic methods of fixed and variable delays, filtering and spatial audio. Code examples are provided implementing many of the techniques from first principles, to provide the reader with an insight into the details of their operation.
Archive | 2016
Victor Lazzarini; Steven Yi; John ffitch; Joachim Heintz; Øyvind Brandtsegg; Iain McCurdy
This chapter provides an overview of the key principles that underline the operation of Csound: frontends; the sampling theorem; control and audio rates; processing blocks; function table generation; real-time and offline audio; the API. These ideas will be presented as a foundation for the detailed exploration of Csound programming in the subsequent chapters.
Archive | 2016
Victor Lazzarini; Steven Yi; John ffitch; Joachim Heintz; Øyvind Brandtsegg; Iain McCurdy
This chapter presents a case study of a live electronics piece where the only sound source is audio feedback captured with two directional microphones. The performer controls the timbre by means of microphone position. Algorithms for automatic feedback reduction are used, and timbral colouring added by using delays, granular effects, and spectral panning.
Archive | 2016
Victor Lazzarini; Steven Yi; John ffitch; Joachim Heintz; Øyvind Brandtsegg; Iain McCurdy
This chapter presents a case study of a fixed-media piece composed entirely using Csound. It discusses the main ideas that motivated the work, and its three basic ingredients: a non-standard spectral delay method; a classic algorithm using time-varying delays; and feedback. The source sounds used for the piece are discussed, as well as its overall structure. The case study is completed by looking at how post-production aspects can be seamlessly integrated into the orchestra code.
Archive | 2016
Victor Lazzarini; Steven Yi; John ffitch; Joachim Heintz; Øyvind Brandtsegg; Iain McCurdy
This chapter introduces music programming systems, beginning with a historical perspective of their development leading to the appearance of Csound. Its direct predecessors, MUSIC I-IV, MUSIC 360 and MUSIC 11, as well as the classic MUSIC V system, are discussed in detail. Following this, we explore the history of Csound and its evolution leading to the current version. Concepts such as unit generators, instruments, compilers, function tables and numeric scores are introduced as part of this survey of music programming systems.
Archive | 2016
Victor Lazzarini; Steven Yi; John ffitch; Joachim Heintz; Øyvind Brandtsegg; Iain McCurdy
This chapter exemplifies the usage of Csound in a live electronics setup. After introducing the general idea, two branches of working with spoken word as live input are shown. Knuth analyses the internal rhythm and triggers events at recognised accents, whereas Alma analyses sounding units of different sizes and brings them back in different modes. The concept is shown as a work in progress, with both realisations for improvisation and sketches for possible compositions.
Archive | 2016
Victor Lazzarini; Steven Yi; John ffitch; Joachim Heintz; Øyvind Brandtsegg; Iain McCurdy
This chapter examines the set of pieces Csound Haiku and describes the most interesting features of each one. The Csound code is intentionally written with a clarity, simplicity and concision that hopefully allows even those with no knowledge of the Csound language to garner some insight into the workings of the pieces. This is intended to confront the conscious esotericism of some live-coding performances. The pieces are intended to be run in real time thereby necessitating the use of efficient synthesis techniques. Extensive use of real-time event generation is used, in fact the traditional Csound score is not used in any of the pieces. It was my preference in these pieces to devise efficient synthesis cells that would allow great polyphony rather than to create an incredibly complex and CPU-demanding, albeit possibly sonically powerful, synthesis engine that would only permit one or two simultaneous real-time instances. The pieces’ brevity in terms of code should make their workings easily understandable. These illustrations will highlight the beauty to be found in simplicity and should also provide technical mechanisms that can be easily transplanted into other projects.
Archive | 2016
Victor Lazzarini; Steven Yi; John ffitch; Joachim Heintz; Øyvind Brandtsegg; Iain McCurdy
This chapter discusses the standard numeric score, which can be used to control events in Csound. Following a general introduction to its syntax and integration with the system, the text explores the basic statement types that compose it, and how they are organised. The score processor and its functionality are explored, followed by a look at loops and playback control. The chapter concludes with a discussion of score generation by external programs and scripting languages.