grains.rst 4.87 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
:title: Grains - we are sounds in the Universe
:data-transition-duration: 1500
:css: css/grains.css

----

:id: title

Grains
======

We are sounds in the universe
-----------------------------

* Dragica Kahlina (@gluggergames)
* Jens-Christian Fischer (@jcfischer)


----

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
Dragica Kahlina
===============

* Theoretical Physicist Uni Basel
* Lecturer Digital Ideation HSLU
* Sound Artist

@gluggergames

----

Jens-Christian Fischer
======================

* MscIT University Liverpool
* Lecturer Web ZHAW
* Product Manager SWITCHengines

@jcfischer

----

43 44 45
Agenda
======

46
* What & Why
47 48 49 50
* Sound Synthesis
* Networking
* Audience Performance

51 52 53 54 55 56 57 58
----

What & Why
==========

How far can we take the *Web Programming*, *Synthesis* and *Free
Improvisation*

59 60 61
*Feedback* between performer and audience is key to a musical
performance. What happens when we enable (a certain amount of)
*control* by the audience?
62 63 64

----

65 66
What can we do with "run of the mill" technology?
=================================================
67

68 69
Constraints:
------------
70

71 72 73
* No specific network technologies
* No specific networking hardware
* No low level networking software
74 75


76 77 78 79 80
----

Sound Synthesis
===============

dkah's avatar
dkah committed
81 82
----

83
* Additive
dkah's avatar
dkah committed
84 85 86 87 88 89 90 91
* Subtractive
* FM (Frequency Modulation)
* AM (Amplitude Modulation)
* Physical Modeling
* Granular Synthesis

----

dkah's avatar
dkah committed
92 93 94 95 96 97 98 99 100
The base
========

.. image:: img/atom.png
    :height: 500px
    :align: center

----

dkah's avatar
dkah committed
101 102 103 104 105
Additive
========

* 1822 Joseph Fourier showed that some functions can be written as a sum of sines
* Using harmonics we can build up a variety of timbres
dkah's avatar
dkah committed
106 107 108 109 110 111 112 113 114 115
* Theoretically we could use arbitrary many sines to reconstruct almost all sounds

----

:data-x: r0
:data-y: r500
:data-scale: 0.1

Harmonics
=========
dkah's avatar
dkah committed
116 117

.. image:: img/harmonics.png
dkah's avatar
dkah committed
118
    :height: 500px
dkah's avatar
dkah committed
119 120
    :align: right

dkah's avatar
dkah committed
121 122 123 124 125 126
----

Contra
======

* Gets ressource intensive very fast
dkah's avatar
dkah committed
127
* Sound is often too clean, to sterile
dkah's avatar
dkah committed
128 129 130 131 132 133 134 135 136 137 138 139 140 141
* Its not easy to find good sounds, without FFT

----

:data-x: r0
:data-y: r500
:data-scale: 0.1

Saw Wave
========

.. image:: img/sawtooth.png
    :height: 350px
    :align: right
dkah's avatar
dkah committed
142 143 144

----

dkah's avatar
dkah committed
145

dkah's avatar
dkah committed
146 147 148 149 150 151
Subtractive
===========

* Source with a broad spectrum -> noise
* Filter too thin out spectrum
* Gives much more "natural" sound than additive synthesis
dkah's avatar
dkah committed
152 153 154 155 156 157 158


----

Contra
======

dkah's avatar
dkah committed
159 160 161
* Restricted in what is possible
* Needs lots of experience
* Used in a lot of analog synthesizer
dkah's avatar
dkah committed
162 163 164

----

dkah's avatar
dkah committed
165

dkah's avatar
dkah committed
166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210
CSound
======
----

History
=======
* 1957 first computer sound synthesis at Bell Labs by Max Mathews -> MUSIC I
* Until 1970s MUSIC 11 by  Barry Vercoe
* Around 1986 Barry Vercoe wrote the first CSound based on C
* CSound constantly incorporates new ideas like
    * MIDI / OSC for performances
    * GUI - System for controllers
    * Python for Live Coding

----

Example Program
===============

----

.. image:: img/csound.png
    :height: 600px

----

Why a dinosaur ?
================

* fast and resource friendly
* works without GUI
* already has Granular Synthesis Opcodes
* relatively simple to program

----

CSound Alternatives
===================

Freeware
--------

* Sonic Pi
* Pure Data
* Supercollider
211

dkah's avatar
dkah committed
212 213 214 215 216
Commercial
----------

* Max/MSP

217 218 219
----

Experimental Setup
220
==================
221 222

Ingredients
223
-----------
224 225 226

* Elixir_ / Phoenix_ / Erlang_ VM
* WebSockets_
227
* Processing_ / P5_
228 229
* Open Sound Control (OSC_)
* CSound_
230
* A certain amount of crazyness
231 232 233 234 235 236 237 238
* You and your mobile phone

.. _Elixir: http://elixir-lang.org
.. _Phoenix: http://www.phoenixframework.org
.. _Erlang: http://www.erlang.org
.. _WebSockets: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API
.. _OSC: https://en.wikipedia.org/wiki/Open_Sound_Control
.. _CSound: http://csound.github.io
239 240
.. _Processing: http://processing.org
.. _P5: http://p5js.org
241 242 243

----

244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302
Overview
========


.. image:: img/overview.png


----

Server
======

* Ubuntu Server running on SWITCHengines in Zurich
* Elixir / Phoenix software
* Receiving data from mobile clients (30 msgs / second / client) via WebSockets
* Keeping state
* Sending data to Laptop on Stage

----

Visualisation Client
--------------------

* JavaScript receives position data from server
* Calculates visualisation (flocking behaviour) with Processing
* Generates OpenSoundControl (OSC) messages, sends them via Websocket
* Node.js Program translates OSC messages from Websocket to UDP
* CSound Software listens to OSC messages and generates grains
* Audio is sent via USB to Sound Laptop

----

Sound Laptop
------------

* Various MIDI Controllers connected
* MainStage software creates virtual mixing desk
* Software Synths / Digital Effects
* Mixes Audio from CSound with Effects
* Sends Audio to Conference Hall PA


----

iPad Pro
--------

* Played by Dragica in Lucerne, Switzerland who (hopefully) sees &
  hears what we are doing here
* Runs various musical software
* Sound via Video-Conference, patched to Conference Hall PA

----

What could possibly go wrong?
=============================

----

303 304 305 306
Audience Participation
======================

Go To http://grains.switch.ch