grains.rst 4.45 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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
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

.. image:: img/harmonics.png
    :height: 150px
    :align: right

* Theoretically we could use arbitrary many sines to reconstruct almost all sounds
* Practically this is impossible
* Sound is often too clean, to sterile

----

Subtractive
===========

* Source with a broad spectrum -> noise
* Filter too thin out spectrum
* Gives much more "natural" sound than additive synthesis
* Restricted in what is possible
* Needs lots of experience
* Used in a lot of analog synthesizer
dkah's avatar
dkah committed
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164

----

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
165

166 167 168
----

Experimental Setup
169
==================
170 171

Ingredients
172
-----------
173 174 175

* Elixir_ / Phoenix_ / Erlang_ VM
* WebSockets_
176
* Processing_ / P5_
177 178
* Open Sound Control (OSC_)
* CSound_
179
* A certain amount of crazyness
180 181 182 183 184 185 186 187
* 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
188 189
.. _Processing: http://processing.org
.. _P5: http://p5js.org
190 191 192

----

193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251
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?
=============================

----

252 253 254 255
Audience Participation
======================

Go To http://grains.switch.ch