Csound on the Web - LAC2014 - Linux Audio...
Transcript of Csound on the Web - LAC2014 - Linux Audio...
![Page 1: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/1.jpg)
Csound on the WebLAC2014
Victor Lazzarini, Edward Costello, Steven Yi and John ffitch
National University of Ireland, Maynooth
LAC Karlsruhe, May 2014
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 1 / 21
![Page 2: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/2.jpg)
Background
Introduction
Context of WorkGoals of WorkEmscriptenPNaClDemonstrationsConclusions
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 2 / 21
![Page 3: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/3.jpg)
Background
Csound Ecosystem
Command Line - Use Csound as CompilerDesktop Applications - ShellDesktop Applications - APIMobile Applications - iOS, AndroidEmbedded - Raspberry Pi, BeagleBoneWeb - Server-sideWeb - Client-Side
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 3 / 21
![Page 4: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/4.jpg)
Background
Csound Ecosystem
Command Line - Use Csound as CompilerDesktop Applications - ShellDesktop Applications - APIMobile Applications - iOS, AndroidEmbedded - Raspberry Pi, BeagleBoneWeb - Server-sideWeb - Client-Side
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 3 / 21
![Page 5: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/5.jpg)
Background
Csound Ecosystem
Command Line - Use Csound as CompilerDesktop Applications - ShellDesktop Applications - APIMobile Applications - iOS, AndroidEmbedded - Raspberry Pi, BeagleBoneWeb - Server-sideWeb - Client-Side
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 3 / 21
![Page 6: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/6.jpg)
Background
Csound Ecosystem
Command Line - Use Csound as CompilerDesktop Applications - ShellDesktop Applications - APIMobile Applications - iOS, AndroidEmbedded - Raspberry Pi, BeagleBoneWeb - Server-sideWeb - Client-Side
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 3 / 21
![Page 7: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/7.jpg)
Background
Csound Ecosystem
Command Line - Use Csound as CompilerDesktop Applications - ShellDesktop Applications - APIMobile Applications - iOS, AndroidEmbedded - Raspberry Pi, BeagleBoneWeb - Server-sideWeb - Client-Side
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 3 / 21
![Page 8: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/8.jpg)
Background
Csound Ecosystem
Command Line - Use Csound as CompilerDesktop Applications - ShellDesktop Applications - APIMobile Applications - iOS, AndroidEmbedded - Raspberry Pi, BeagleBoneWeb - Server-sideWeb - Client-Side
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 3 / 21
![Page 9: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/9.jpg)
Background
Csound Ecosystem
Command Line - Use Csound as CompilerDesktop Applications - ShellDesktop Applications - APIMobile Applications - iOS, AndroidEmbedded - Raspberry Pi, BeagleBoneWeb - Server-sideWeb - Client-Side
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 3 / 21
![Page 10: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/10.jpg)
Background
Csound on the Web - Goals
Build client-side web applications using common browsertechnologyNo extra installation required ⇒ Simplified DeploymentExpand return on investment in knowing CsoundNew way to share workPreserve works (dependencies are self-contained)Build using main Csound source code, always in sync with latestcode changes
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 4 / 21
![Page 11: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/11.jpg)
Background
Csound on the Web - Goals
Build client-side web applications using common browsertechnologyNo extra installation required ⇒ Simplified DeploymentExpand return on investment in knowing CsoundNew way to share workPreserve works (dependencies are self-contained)Build using main Csound source code, always in sync with latestcode changes
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 4 / 21
![Page 12: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/12.jpg)
Background
Csound on the Web - Goals
Build client-side web applications using common browsertechnologyNo extra installation required ⇒ Simplified DeploymentExpand return on investment in knowing CsoundNew way to share workPreserve works (dependencies are self-contained)Build using main Csound source code, always in sync with latestcode changes
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 4 / 21
![Page 13: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/13.jpg)
Background
Csound on the Web - Goals
Build client-side web applications using common browsertechnologyNo extra installation required ⇒ Simplified DeploymentExpand return on investment in knowing CsoundNew way to share workPreserve works (dependencies are self-contained)Build using main Csound source code, always in sync with latestcode changes
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 4 / 21
![Page 14: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/14.jpg)
Background
Csound on the Web - Goals
Build client-side web applications using common browsertechnologyNo extra installation required ⇒ Simplified DeploymentExpand return on investment in knowing CsoundNew way to share workPreserve works (dependencies are self-contained)Build using main Csound source code, always in sync with latestcode changes
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 4 / 21
![Page 15: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/15.jpg)
Background
Csound on the Web - Goals
Build client-side web applications using common browsertechnologyNo extra installation required ⇒ Simplified DeploymentExpand return on investment in knowing CsoundNew way to share workPreserve works (dependencies are self-contained)Build using main Csound source code, always in sync with latestcode changes
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 4 / 21
![Page 16: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/16.jpg)
Background
Web Technologies
NPAPI - Going out of useFlash - No option for integrating Csound, going out of useSilverlight - No option for integrating Csound, going out of use, notcross-platformJava Applet/Webstart - Going out of useJavaScript/WebAudio - HTML5 Standard, can use Emscriptencompiler to compile C/C++ to JavascriptPortable NativeClient (PNaCl) - works across Operating Systems,requires Chrome/Chromium/Chrome OS with PNaCl support
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 5 / 21
![Page 17: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/17.jpg)
Background
Web Technologies
NPAPI - Going out of useFlash - No option for integrating Csound, going out of useSilverlight - No option for integrating Csound, going out of use, notcross-platformJava Applet/Webstart - Going out of useJavaScript/WebAudio - HTML5 Standard, can use Emscriptencompiler to compile C/C++ to JavascriptPortable NativeClient (PNaCl) - works across Operating Systems,requires Chrome/Chromium/Chrome OS with PNaCl support
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 5 / 21
![Page 18: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/18.jpg)
Background
Web Technologies
NPAPI - Going out of useFlash - No option for integrating Csound, going out of useSilverlight - No option for integrating Csound, going out of use, notcross-platformJava Applet/Webstart - Going out of useJavaScript/WebAudio - HTML5 Standard, can use Emscriptencompiler to compile C/C++ to JavascriptPortable NativeClient (PNaCl) - works across Operating Systems,requires Chrome/Chromium/Chrome OS with PNaCl support
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 5 / 21
![Page 19: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/19.jpg)
Background
Web Technologies
NPAPI - Going out of useFlash - No option for integrating Csound, going out of useSilverlight - No option for integrating Csound, going out of use, notcross-platformJava Applet/Webstart - Going out of useJavaScript/WebAudio - HTML5 Standard, can use Emscriptencompiler to compile C/C++ to JavascriptPortable NativeClient (PNaCl) - works across Operating Systems,requires Chrome/Chromium/Chrome OS with PNaCl support
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 5 / 21
![Page 20: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/20.jpg)
Background
Web Technologies
NPAPI - Going out of useFlash - No option for integrating Csound, going out of useSilverlight - No option for integrating Csound, going out of use, notcross-platformJava Applet/Webstart - Going out of useJavaScript/WebAudio - HTML5 Standard, can use Emscriptencompiler to compile C/C++ to JavascriptPortable NativeClient (PNaCl) - works across Operating Systems,requires Chrome/Chromium/Chrome OS with PNaCl support
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 5 / 21
![Page 21: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/21.jpg)
Background
Web Technologies
NPAPI - Going out of useFlash - No option for integrating Csound, going out of useSilverlight - No option for integrating Csound, going out of use, notcross-platformJava Applet/Webstart - Going out of useJavaScript/WebAudio - HTML5 Standard, can use Emscriptencompiler to compile C/C++ to JavascriptPortable NativeClient (PNaCl) - works across Operating Systems,requires Chrome/Chromium/Chrome OS with PNaCl support
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 5 / 21
![Page 22: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/22.jpg)
Emscripten
Introduction
Created by Alon Zakai at MozillaTranscompiles LLVM bytecode into JavascriptAllowing software written in C or C++ to be compiled intoJavascript applications for the webUses web standards, no need for plugins
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 6 / 21
![Page 23: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/23.jpg)
Emscripten
Introduction
Created by Alon Zakai at MozillaTranscompiles LLVM bytecode into JavascriptAllowing software written in C or C++ to be compiled intoJavascript applications for the webUses web standards, no need for plugins
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 6 / 21
![Page 24: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/24.jpg)
Emscripten
Introduction
Created by Alon Zakai at MozillaTranscompiles LLVM bytecode into JavascriptAllowing software written in C or C++ to be compiled intoJavascript applications for the webUses web standards, no need for plugins
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 6 / 21
![Page 25: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/25.jpg)
Emscripten
Introduction
Created by Alon Zakai at MozillaTranscompiles LLVM bytecode into JavascriptAllowing software written in C or C++ to be compiled intoJavascript applications for the webUses web standards, no need for plugins
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 6 / 21
![Page 26: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/26.jpg)
Emscripten
Csound Emscripten
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 7 / 21
![Page 27: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/27.jpg)
Emscripten
Csound Emscripten
Allows the compilation of .csd, .orc, .sco filesCsound may be controlled using software input channels, usingwebpage widgets or OSC; Web MIDI not yet supported in manybrowsersLive audio input is available, as is audio file inputPotential to access full Csound API
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 8 / 21
![Page 28: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/28.jpg)
Emscripten
Csound Emscripten
Allows the compilation of .csd, .orc, .sco filesCsound may be controlled using software input channels, usingwebpage widgets or OSC; Web MIDI not yet supported in manybrowsersLive audio input is available, as is audio file inputPotential to access full Csound API
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 8 / 21
![Page 29: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/29.jpg)
Emscripten
Csound Emscripten
Allows the compilation of .csd, .orc, .sco filesCsound may be controlled using software input channels, usingwebpage widgets or OSC; Web MIDI not yet supported in manybrowsersLive audio input is available, as is audio file inputPotential to access full Csound API
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 8 / 21
![Page 30: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/30.jpg)
Emscripten
Csound Emscripten
Allows the compilation of .csd, .orc, .sco filesCsound may be controlled using software input channels, usingwebpage widgets or OSC; Web MIDI not yet supported in manybrowsersLive audio input is available, as is audio file inputPotential to access full Csound API
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 8 / 21
![Page 31: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/31.jpg)
PNaCl
Introduction
Open-source, Developed by GoogleArchitecture Independent form of Native Client, which allowsrunning native code in a sandboxCompiles C/C++ into abstract, architecture-independent pexeexecutablesBi-directional communication with JavaScript via the Pepper APIPNaCl is available in Google’s Chrome, Chromium, and ChromeOS
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 9 / 21
![Page 32: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/32.jpg)
PNaCl
Introduction
Open-source, Developed by GoogleArchitecture Independent form of Native Client, which allowsrunning native code in a sandboxCompiles C/C++ into abstract, architecture-independent pexeexecutablesBi-directional communication with JavaScript via the Pepper APIPNaCl is available in Google’s Chrome, Chromium, and ChromeOS
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 9 / 21
![Page 33: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/33.jpg)
PNaCl
Introduction
Open-source, Developed by GoogleArchitecture Independent form of Native Client, which allowsrunning native code in a sandboxCompiles C/C++ into abstract, architecture-independent pexeexecutablesBi-directional communication with JavaScript via the Pepper APIPNaCl is available in Google’s Chrome, Chromium, and ChromeOS
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 9 / 21
![Page 34: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/34.jpg)
PNaCl
Introduction
Open-source, Developed by GoogleArchitecture Independent form of Native Client, which allowsrunning native code in a sandboxCompiles C/C++ into abstract, architecture-independent pexeexecutablesBi-directional communication with JavaScript via the Pepper APIPNaCl is available in Google’s Chrome, Chromium, and ChromeOS
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 9 / 21
![Page 35: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/35.jpg)
PNaCl
Introduction
Open-source, Developed by GoogleArchitecture Independent form of Native Client, which allowsrunning native code in a sandboxCompiles C/C++ into abstract, architecture-independent pexeexecutablesBi-directional communication with JavaScript via the Pepper APIPNaCl is available in Google’s Chrome, Chromium, and ChromeOS
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 9 / 21
![Page 36: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/36.jpg)
PNaCl
Csound PNaCl
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 10 / 21
![Page 37: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/37.jpg)
PNaCl
Csound PNaCl API
Play and PauseCompile ORC and SCO codeSend score messagesSend values over channelsNot full access to Csound API, similar to csound˜ and csoundapi˜No audio input (yet, Pepper API Beta has added support)
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 11 / 21
![Page 38: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/38.jpg)
PNaCl
Csound PNaCl API
Play and PauseCompile ORC and SCO codeSend score messagesSend values over channelsNot full access to Csound API, similar to csound˜ and csoundapi˜No audio input (yet, Pepper API Beta has added support)
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 11 / 21
![Page 39: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/39.jpg)
PNaCl
Csound PNaCl API
Play and PauseCompile ORC and SCO codeSend score messagesSend values over channelsNot full access to Csound API, similar to csound˜ and csoundapi˜No audio input (yet, Pepper API Beta has added support)
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 11 / 21
![Page 40: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/40.jpg)
PNaCl
Csound PNaCl API
Play and PauseCompile ORC and SCO codeSend score messagesSend values over channelsNot full access to Csound API, similar to csound˜ and csoundapi˜No audio input (yet, Pepper API Beta has added support)
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 11 / 21
![Page 41: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/41.jpg)
PNaCl
Csound PNaCl API
Play and PauseCompile ORC and SCO codeSend score messagesSend values over channelsNot full access to Csound API, similar to csound˜ and csoundapi˜No audio input (yet, Pepper API Beta has added support)
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 11 / 21
![Page 42: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/42.jpg)
PNaCl
Csound PNaCl API
Play and PauseCompile ORC and SCO codeSend score messagesSend values over channelsNot full access to Csound API, similar to csound˜ and csoundapi˜No audio input (yet, Pepper API Beta has added support)
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 11 / 21
![Page 43: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/43.jpg)
Demonstrations
Demonstrations
Emscripten and PNaCl Test SuitesWeb Sequencer (PNaCl)Csound Notebook (PNaCl)Processing.js Example (PNaCl)Manual Example (Emscripten)OSC Demo (Emscripten)
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 12 / 21
![Page 44: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/44.jpg)
Demonstrations
Emscripten and PNaCl Test Suites
Emscripten: http://eddyc.github.io/CsoundEmscriptenPNaCl: http://vlazzarini.github.io
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 13 / 21
![Page 45: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/45.jpg)
Demonstrations
Web Sequencer
http://fcahoon.github.io/seq/
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 14 / 21
![Page 46: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/46.jpg)
Demonstrations
Csound Notebook
http://csound-notebook.kunstmusik.com
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 15 / 21
![Page 47: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/47.jpg)
Demonstrations
ProcessingJS Example
http://www.kunstmusik.com/processingjs example
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 16 / 21
![Page 48: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/48.jpg)
Demonstrations
Manual Example
http://eddyc.github.io/CsoundManual
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 17 / 21
![Page 49: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/49.jpg)
Demonstrations
OSC Demo
http://eddyc.github.io/CsoundEmscripten
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 18 / 21
![Page 50: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/50.jpg)
Conclusion
Conclusions
Emscripten: More ubiquitous, less performant, faster loading time,limited by Web Audio APIPNaCl: More performant, less ubiquitous, design limitations withmessage passingBoth technologies are actively developed
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 19 / 21
![Page 51: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/51.jpg)
Conclusion
Future Work
Continue to develop the two web API’s based on userrequirementsLook at unified API that can use either PNaCl or Emscriptenbuilds, depending on what is available (also keep an eye onPepperJS)
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 20 / 21
![Page 52: Csound on the Web - LAC2014 - Linux Audio Conferencelac.linuxaudio.org/2014/download/csoundonthewebslides.pdf · Desktop Applications - Shell ... Csound on the Web LAC2014 4 / 21.](https://reader033.fdocuments.in/reader033/viewer/2022050715/5f0d48d97e708231d43995e8/html5/thumbnails/52.jpg)
Conclusion
Acknowledgements
This work has been partly funded by the Irish HEA PRTLI-5 Digital Artsand Humanities programme.
Lazzarini, Costello, Yi and ffitch (NUIM) Csound on the Web LAC2014 21 / 21