Use Style: Paper Title
Total Page:16
File Type:pdf, Size:1020Kb
MIDI Implementation of a Kulintang Modal Synthesizer using the VST2.4 Standard Ann Franchesca B. Laguna1, Nicanor Marco P. Valdez2 and Rowena Cristina L. Guevara3 Digital Signal Processing Laboratory, Electrical and Electronics Engineering Institute, University of the Philippines Diliman [email protected], [email protected], [email protected] Abstract—Philippine Indigenous Music is slowly disappearing II. BACKGROUND partly because of insufficient accessibility to Philippine indigenous musical instruments. This project aims to give A. Philippine Kulintang Ensemble musicians access to the sounds of the Philippine instrument The kulintang is commonly played as part of a kulintang known as the kulintang through a synthesizer plug-in. This paper ensemble. A kulintang is typically made up of five to nine ventures into the implementation of a Virtual Studio Technology graduated bossed gongs that are horizontally suspended on a Instrument (VSTi) plug-in containing kulintang sounds analyzed wooden platform. It is played by striking the bosses with a using the Modal Distribution and synthesized using Sum of stick. The gongs are usually made of brass and have a diameter Sinusoid (SOS) Synthesis. The VSTi plug-in was implemented in of 53 cm to 77 cm, and depth of 6 cm to 7cm. A set is usually C++ using the VST2.4 SDK (Software Development Kit). The plug-in is controlled by Musical Instrument Digital Interface played by one player who uses two sticks to strike as many as (MIDI) events. The Filipino Kulintang MIDI (FKM1.0) was two gongs at a time. A kulintang ensemble typically consists of proposed as an initial MIDI mapping standard for Filipino a kulintang, a mid-range gong called babandir, a drum called kulintang instruments. A VST Dynamic Link Library (DLL) dabakan, one or two large gongs called agong, and four containing the kulintang synthesizer was successfully ported and suspended gongs called gandingan. Each Southern Philippine controlled by a Digital Audio Workstation (DAW). Twenty three Indigenous Group has its own variation of the ensemble. A tuning presets with eight gongs each were included in the library. notation system using numbers on a tablature that denote the rhythm and gong type was created by Butocan, A.M. et al. [3]. Keywords-Kulintang, Virtual Studio Technology, Philippine For this project, the focus will be on the kulintang instrument. Indigenous Music, Audio Synthesis. The other instruments in the ensemble will be addressed in future studies. I. INTRODUCTION Philippine indigenous music has been declining because it TABLE I. KULINTANG PRESETS has not been able to sustain itself in the mainstream music Federizon Number of scene. The number of practitioners has also been decreasing Scale Federizon Scale Label Kulintang Preset Gongs due to the increasing influence of western-style music in the Number Philippines. The goal of this project is to give contemporary N/A N/A Agsaway 8 Philippine artists easier access to sounds from their musical 1 DMR DMR1 8 roots in the hope that it will bring back a resurgence of 2 Santos Santos 8 Philippine culture in modern Philippine music. Moreover, the 3 DMR DMR2 8 project also aims to provide a pedagogical tool for teaching 4 Dioquino Dioquino 8 Filipino musical culture. 5 DMR DMR3 8 6 DMR DMR4 8 The kulintang is one of the most popular Indigenous 7 DMR DMR5 8 Philippine musical instruments. This project implements a 8 DMR DMR6 8 Kulintang VSTi plug-in which allows a DAW to play kulintang 9 Laureola Laureola 8 sounds via MIDI data and to initiate a standard MIDI mapping 10 Maceda Maceda 8 scheme for Philippine Indigenous Instruments. The synthesis is 11 Cacnio Cacnio 8 adapted from the Modal Distribution frequency and amplitude 12 Balingit Balingit 8 estimates obtained by Agsaway et al. [1]. Sum of Sinusoids 13 Villanueva Villanueva 8 (SOS), or additive synthesis, was then used in the 14 Arambulo Arambulo 8 15 DMR DMR7 8 implementation of the synthesizer. 16 Magind. 10 Tape SD 1 R 17 Maguindanao10 8 This paper is ordered as follows: a short background on the 17 Magind. 9 Tape SD 1 R 2 Maguindanao9 8 Philippine kulintang ensemble and Virtual Studio Technology 18 Magind. 11 Tape SD 1 R 12 Maguindanao11 8 is presented, the methodology is shown, the conclusions of the 19 Magind. 14 Tape SD 1 R 12 Maguindanao14 8 project and, finally, recommendations and topics of interest for 20 Magind. 23 Tape SD 1 R 22 Maguindanao23R22 11 future work. 21 Magind. 23 Tape SD 1 R 1 Maguindanao23R1 8 22 Magind. 5 Tape 1 SD 1 R 6 Maguindanao5 8 Kulintang tunings do not follow the Western musical scale because they belong to the Gong-Chime culture of Southeast Asia. Federizon analyzed a list of Kulintang tunings using a Stroboconn in the 1960’s [4]. The results are available in the University of the Philippines Center for Ethnomusicology (UPCE). The data is in the form of musical notes on a G-clef with the variation in Cents from the actual western note marked underneath. His data included 22 unique scales. Each of the scales of Federizon has 8 gongs except for one which has 11. Note values range from C4 (261.6 Hz) to A#5 (932.3 Hz). A list of the Kulintang Presets is given in Table I. Multiple recordings of the instruments in a kulintang set with 8 gongs were recorded and analyzed in [1]. The recordings exhibit various ways of playing a kulintang gong such as striking it then letting the sound decay, and striking it then muffling it with a hand. The modal partials generated from the Fig. 1. VST Host and VSTi Plug-in Interaction first 8 recordings (which were generated by striking each gong on the boss with a stick) were used in this study. The current VST version is VST 3.0. However, most DAWs only support VST 2.4. Starting with VST 2.0, VST modules The modal data does not contain the actual gong waveforms have been capable of accepting Musical Instrument Digital but the amplitudes and frequencies of different partials at Interface (MIDI) events needed to control the audio output. different time frames. The modal partials per waveform were Synthesizer modules can be implemented using the VST summarized into two matrices: one for amplitude and one for standard in order to create plug-ins that can be imported in frequency. Each column corresponds to a time frame. For the DAWs. frequency matrix, each row corresponds to the instantaneous frequencies (in Hz) of a partial for a time frame. For the To create a VSTi, a new class for the new plug-in must be amplitude matrix, each row corresponds to the instantaneous created through the inheritance of the AEffectX Class which can amplitude of a partial for a time frame. Excerpts from the be found in the SDK. The three most relevant functions of this modal database are given in Tables II and III as examples. class are: the constructor TABLE II. EXCERPT FROM THE AMPLITUDE MATRIX OF KULINTANG1_01_BEED_EST.TXT processEvents Time Frame (0.005828 s) processReplacing Partial 1 of 53 2 of 53 3 of 53 11 of 215 0.000479 0.000538 0.000479 The constructor is called by the host to create the plug-in 12 of 215 0.000321 0.000362 0.000326 and must contain all the initialization functions. 13 of 215 0.000180 0.000305 0.000276 The processEvents function is called whenever the plug-in TABLE III. EXCERPT FROM THE FREQUENCY MATRIX OF receives events such as MIDI data from the host. All MIDI KULINTANG1_01_BEED_EST.TXT handling starts from the function processEvents. Time Frame (0.005828 s) The processReplacing function handles the audio input and Partial 1 of 53 2 of 53 3 of 53 11 of 215 273.589056 273.367035 273.124425 output of the plug-in. The function is constantly being called as 12 of 215 298.931976 299.572594 300.303680 it searches for input data to process, output data to return to the 13 of 215 322.931685 323.147098 324.335863 host and changes in the state of the plug-in which will tell it if it should write data to the output or not. For a VSTi, there is no audio input. The function deals with the output buffer through B. Virtual Studio Technology frames of a variable length related to the sound driver settings. Virtual Studio Technology (VST) was developed by This length is often very small such as 256 bytes. Steinberg Media Technologies in order to allow the simulation of real world instruments and audio effects in a Digital Audio In VST Terminology, a parameter is a variable that the user Workstation (DAW). The VST Software Development Kit can edit while a program is a set of preset parameters. (SDK) is coded in C++ [2]. III. METHODOLOGY VST has two main components: the host and the plug-in. A. Generation of Kulintang Program Partials The Virtual Studio Technology Instrument (VSTi) is a special type of VST plugin for playing and mapping synthesized The note and cent values from Federizon’s kulintang scales instruments. Plug-ins come in the form of Dynamic Link were converted to Hz and tabulated. These frequencies were Library (DLL) files. The DLL files are used by a VST Host, used as the basis for each of the preset programs. It was noticed such as DAWs, to implement audio processing algorithms. Fig. that Federizon’s note values were an octave below the 1 shows the interaction between a VST Host and a VSTi plug- fundamental frequencies obtained from the recordings. The in. frequencies tabulated from Federizon were doubled to bring them up to the range of the gong recordings.