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