An Evaluation of the Web Audio API
Total Page:16
File Type:pdf, Size:1020Kb
Bachelor Thesis in Computer Science Implementing virtual analog synthesizers with the Web Audio API An evaluation of the Web Audio API Författare: Oskar Eriksson Handledare: Jesper Andersson Termin: VT13 Kurskod: 2DV00E Abstract This thesis in computer science aimed to evaluate the suitability of the Web Audio API to implement virtual analog synthesizers. In order to do so a method for producing a reference architecture for analog synthesizers and a categorization and point system for the evaluation were developed. A reference architecture were made and then implemented with the API and the evaluation were then made based on that implementation. The API were found to cover a lot of the necessary areas, but lacking in a few key components; a noise generator, a native way to automate custom numeric properties and the implementation of the oscillator were deemed too closed to support all use cases. Table of Contents 1. Introduction..................................................................................................................................1 1.1 The Web Audio API and Audio Synthesis.............................................................................1 1.2 Problem formulation............................................................................................................. 1 1.3 Purpose, goal and target reader............................................................................................. 1 1.4 Limitations............................................................................................................................ 2 2 Method.......................................................................................................................................... 3 2.1 Defining a reference architecture.......................................................................................... 3 2.1.1 Level one - Top level.....................................................................................................3 2.1.2 Level two - Section level...............................................................................................3 2.1.3 Level three - Element level............................................................................................3 2.2 Evaluating the Web Audio API............................................................................................. 4 2.3 Reliability..............................................................................................................................4 2.4 Implementation order constraints..........................................................................................4 3 Theory........................................................................................................................................... 5 3.1 Analog synth architecture......................................................................................................5 3.1.1 The Oscillator................................................................................................................ 5 3.1.2 The Filter....................................................................................................................... 6 3.1.2.1 Filter slopes............................................................................................................7 3.1.2.2 Filter resonance......................................................................................................8 3.1.3 The Amplifier................................................................................................................ 8 3.1.4 Modulation.................................................................................................................... 8 3.1.4.1 Envelopes...............................................................................................................9 3.1.4.2 LFO........................................................................................................................9 3.2 Web Audio API architecture................................................................................................10 3.3 Reference Architectures...................................................................................................... 10 4 Results and Analysis................................................................................................................... 11 4.1 A reference architecture for virtual analog synthesizers.....................................................11 4.1.1 Top Level..................................................................................................................... 11 4.1.2 Section Level............................................................................................................... 11 4.1.3 Element Level..............................................................................................................14 4.2 API evaluation results......................................................................................................... 17 4.2.1 Top Level.....................................................................................................................17 4.2.2 Section Level...............................................................................................................17 4.2.3 Element Level..............................................................................................................18 4.3 Miscellaneous findings........................................................................................................21 5 Discussion...................................................................................................................................22 5.1 Implementation................................................................................................................... 22 5.2 Results................................................................................................................................. 23 5.3 Method................................................................................................................................ 23 6 Conclusion.................................................................................................................................. 24 6.1 Summary............................................................................................................................. 24 6.2 Further studies.....................................................................................................................24 7. References...................................................................................................................................... 7.1 Online references.................................................................................................................... 7.2. Published references............................................................................................................... 7.3 Image references and sources.................................................................................................. Appendix............................................................................................................................................ 1. Synthesizer block diagrams........................................................................................................... 1.1 Mini Moog.............................................................................................................................. 1.2 MiniBrute................................................................................................................................ 1.3 Mopho Keyboard.................................................................................................................... 1.4 MicroKORG XL..................................................................................................................... 1.5 Magellan.................................................................................................................................. 1.6 Ableton Analog........................................................................................................................ 1.7 MicroKORG XL filter section routings.................................................................................. 1.8 Magellan filter section routings.............................................................................................. 2. Feature matrix................................................................................................................................ 3. Categorization and point matrix..................................................................................................... Abbreviations and terminology used ADSR - attack, decay, sustain and release Analog Synthesizer - a physical synthesizer made with electronic circuits API – application programming interface Automatization - see ‘tweening’ Formant filter - a filter that gives the signal a human vocal quality LFO - low frequency oscillator, used to generate continuous modulation signals Modulation/control signal - a signal that controls a parameter of a module Native (browser) - something built into the browser by default Native (API) - something provided by the API in the API’s most basic form Octave - a relation between two pitches where one is double or half the frequency of the other, or do to do using the French solfège system Oscillator - an unit, digital or analog, that generates a cyclic audio signal