performing music remotely
Howdy!
I'm Ben Michel (@obensource)
I ♡ MAKING MUSIC
I ♡ WRITING JAVaSCRIPT
because:
My background
- Music Performance (Composition, Performing)
- Audio Engineering (Recording, Signal Processing)
- Application Development (CS, JavaScript, Node.js)
frontend
at ZHealth
live sountracks
local Meetups
Donut.js, PDXNode
let's talk about recording
because of this:
we've gone from
here...
...and here
...and here
to Here:
and here...
and here...
...and here.
and yet,
a different story for music began back in 1957...
MAX MATHEWS
wrote 'music'
The first computer program developed
to perform sound-generation
BASED ON WHAT HE'D LEARNED about THE
NYQUIST-SHANNON SAMPLING THEOREM
(breaking a continuous signal into chunks)
HE DECLARED THAT THE "COMPUTER IS...
a UNIVERSAL musical INSTRUMENT."
A LOT
HAS HAPPENED BETWEEN then & NOW...
synthesis became real!
we can haz all the wayz to synthesize soundz
- Subtractive
- Additive
- FM (Frequency Modulation)
Approaches for sound-generation:
we can haz MIDI
(Musical Instrument Digital Interface)
midi = Performance descriptions, not sound
languages
- Max/MSP
- SuperCollider / ChucK
- CSound
- Faust
- Java / Python
- C++
applications
- Digital Audio Workstations
- Realtime Performance
- Synthesizer Plugins
- Instrument FX
but what about making music in the internet?
We have the internet of audio, but...
since The 'realtime' web began with this decade...
and we have new standard web tools to build audio and midi applications in the browser...
the time for the internet of music
is now
the Web audio api
a sound generation & processing toolset for javascript, native to your browser.
the Web MIDI api
a javascript toolset which can process, send, receive, and generate midi data.
web audio + web MIDI
example
Chris Wilson's – 'Analog' Synth
That was neat, but what about distributed music?
web Audio
+
WEb MIDI
+
REALTIME TECH
(P2P WebRTC Datachannels, WebSockets Broadcasts)
with
sound & performance
information over the network!
we get
we can play music together...
which MEANS
in realtime...
('near-realtime' technically)
from distributed places!
In light of
what Max MAthews said
I now believe...
OH rly?
HOW SO?
because midi.
unlike audio, midi is naturally light-weight
(ultra light-weight)
with the web midi api
distributed midi instruments can be inter-connected
(via JavaScript!)
so imagine...
like srsly everywhere
there are big
problems here
(With the physical internet, in JavaScript, etc)
the biggest: Latency
at best
like trying to play with...
an insanely terrible drummer
But regardless
we can build useful remote performance & collaboration tools
built on the awesomeness of
broadcasting
&
Peer Connections
which expose work-arounds to our speed of light problem
and based on my performance models that humans can use, and browsers can understand
you perform centrally
broadcast remotely
(Rendered via Web Audio)
or to the rest of the band at the venue
or to teach the kids at school
or the kids could make music with and for other kids
Regardless of their distance
or socio-economic divide
it's time to start
thinking about what common music looks like for our global culture
so the next generation might not get lost in a sea of audio
or in a culture which produces this
or just live out the mantras of hyper-consumerism
but they can loose themselves in creating our common culture together
this is why i started
websound
a place to move
the music community forward
(we're an opensource initiative)
and get developers, musicians,
and institues...
talking together
what's the awesome power of web midi look like?
web app DEMO
remote performer
Thank you!
Keep in touch!
Twitter: @obensource, @websoundorg
www.websound.community
Performing Music Remotely
By Ben Michel
Performing Music Remotely
A talk I gave at Instrument (a design agency in Portland, Oregon), which ended with a demo of a live, distributed musical performance (watch here: https://www.youtube.com/watch?v=3PrbBHiTeDs).
- 1,558