o.OM: Structured-Func<onal Communica<on between Computer - - PowerPoint PPT Presentation

o om structured func onal communica on between computer
SMART_READER_LITE
LIVE PREVIEW

o.OM: Structured-Func<onal Communica<on between Computer - - PowerPoint PPT Presentation

o.OM: Structured-Func<onal Communica<on between Computer Music Systems using OSC and Odot Jean Bresson, John MacCallum, Adrian Freed UC Berkeley Center


slide-1
SLIDE 1

Jean ¡Bresson, ¡John ¡MacCallum, ¡Adrian ¡Freed ¡ UC ¡Berkeley ¡— ¡Center ¡for ¡New ¡Music ¡and ¡Audio ¡Technologies ¡ IRCAM ¡/ ¡UMR ¡9912 ¡"STMS" ¡CNRS ¡— ¡UPMC ¡Sorbonne ¡Universités ¡

EFFICAC(e) ¡— ¡ANR-­‑13-­‑JS02-­‑0004-­‑01 ¡ Extended ¡Frameworks ¡for ¡"In-­‑4me" ¡ Computer-­‑Aided ¡Composi4on

  • .OM: ¡Structured-­‑Func<onal ¡

Communica<on ¡between ¡Computer ¡Music ¡ Systems ¡using ¡OSC ¡and ¡Odot

slide-2
SLIDE 2

2

  • M. ¡Wright. ¡Open ¡Sound ¡Control: ¡an ¡enabling ¡technology ¡for ¡musical ¡networking. ¡Organised ¡Sound, ¡10(3), ¡2005. ¡

28 /synth/1/note/hz\0\0\0\0 ,f\0\0 440.

address (key, identifier, …) data (value(s), …) message (record, entry, …) type tag(s) message size (32-bit int)

Open Sound Control (OSC)

–lingua franca for interactive media/arts programming –binary encoding –key/value store –punctuation –http://opensoundcontrol.org/spec-1_0

slide-3
SLIDE 3

3

  • M. ¡Wright. ¡Open ¡Sound ¡Control: ¡an ¡enabling ¡technology ¡for ¡musical ¡networking. ¡Organised ¡Sound, ¡10(3), ¡2005. ¡

28 /synth/1/note/hz\0\0\0\0 ,f\0\0 440. 28 /synth/1/gain/db\0\0\0\0 ,i\0\0 -20 28 /synth/2/note/hz\0\0\0\0 ,f\0\0 446. 28 /synth/2/gain/db\0\0\0\0 ,i\0\0 -32 ...

bundle (key/value store, dictionary, …)

#bundle\0 2016-09-22T23:45:59.616117Z

bundle identifier time tag (64-bit fixed point NTP)

Open Sound Control (OSC)

–lingua franca for interactive media/arts programming –binary encoding –key/value store –punctuation –http://opensoundcontrol.org/spec-1_0

slide-4
SLIDE 4

4

  • M. ¡Wright. ¡Open ¡Sound ¡Control: ¡an ¡enabling ¡technology ¡for ¡musical ¡networking. ¡Organised ¡Sound, ¡10(3), ¡2005. ¡

/synth/*/note/hz 440. /synth/[1-3]/note/hz 440. /synth/{1,3,5}/note/hz 440.

Open Sound Control (OSC)

–lingua franca for interactive media/arts programming –binary encoding –key/value store –punctuation –http://opensoundcontrol.org/spec-1_0

slide-5
SLIDE 5

5

#bundle 2016-09-22T23:45:59.616117Z /synth/1/note/hz 440. /synth/1/gain/db -20 /synth/2/note/hz 446. /synth/2/gain/db -32

  • .*

#bundle 2016-09-22T23:45:59.616117Z /synth/1/note/hz 440. /synth/1/gain/db -20 /synth/1/note/midi 69. /synth/1/gain/amp 0.1 /synth/2/note/hz 446. /synth/2/gain/db -32

  • .*

–superset of osc 1.1 (additional types) –dynamic programming environment –embedded in a host environment –includes a small, lightweight expression language evaluator (o.expr) –https://github.com/CNMAT/CNMAT-odot

  • A. ¡Freed, ¡J. ¡MacCallum, ¡and ¡A. ¡Schmeder. ¡A ¡Dynamic, ¡Instance-­‑Based, ¡Object-­‑Oriented ¡Programming ¡in ¡Max/MSP ¡using ¡Open ¡Sound ¡

Control ¡Message ¡Delega<on. ¡In ¡Proceedings ¡of ¡the ¡InternaWonal ¡Computer ¡Music ¡Conference, ¡Huddersfield, ¡UK, ¡2011. ¡

slide-6
SLIDE 6
  • .*

6

Max libo (C) Pd Python Javascript Node.js OpenMusic Python Javascript CFFI (LISP) SWIG libopd libomax

  • .*
  • A. ¡Freed, ¡J. ¡MacCallum, ¡and ¡A. ¡Schmeder. ¡A ¡Dynamic, ¡Instance-­‑Based, ¡Object-­‑Oriented ¡Programming ¡in ¡Max/MSP ¡using ¡Open ¡Sound ¡

Control ¡Message ¡Delega<on. ¡In ¡Proceedings ¡of ¡the ¡InternaWonal ¡Computer ¡Music ¡Conference, ¡Huddersfield, ¡UK, ¡2011. ¡

–superset of osc 1.1 (additional types) –dynamic programming environment –embedded in a host environment –includes a small, lightweight expression language evaluator (o.expr) –https://github.com/CNMAT/CNMAT-odot

slide-7
SLIDE 7
  • .*

7

  • A. ¡Freed, ¡J. ¡MacCallum, ¡and ¡A. ¡Schmeder. ¡A ¡Dynamic, ¡Instance-­‑Based, ¡Object-­‑Oriented ¡Programming ¡in ¡Max/MSP ¡using ¡Open ¡Sound ¡

Control ¡Message ¡Delega<on. ¡In ¡Proceedings ¡of ¡the ¡InternaWonal ¡Computer ¡Music ¡Conference, ¡Huddersfield, ¡UK, ¡2011. ¡

–non-atomic –loss of documentation –loss of time stamp –implicit type conversion

slide-8
SLIDE 8
  • .*

8

  • A. ¡Freed, ¡J. ¡MacCallum, ¡and ¡A. ¡Schmeder. ¡A ¡Dynamic, ¡Instance-­‑Based, ¡Object-­‑Oriented ¡Programming ¡in ¡Max/MSP ¡using ¡Open ¡Sound ¡

Control ¡Message ¡Delega<on. ¡In ¡Proceedings ¡of ¡the ¡InternaWonal ¡Computer ¡Music ¡Conference, ¡Huddersfield, ¡UK, ¡2011. ¡

–atomic –preserves documentation –preserves time stamp –no type conversion

slide-9
SLIDE 9
  • .*

9

  • A. ¡Freed, ¡J. ¡MacCallum, ¡and ¡A. ¡Schmeder. ¡A ¡Dynamic, ¡Instance-­‑Based, ¡Object-­‑Oriented ¡Programming ¡in ¡Max/MSP ¡using ¡Open ¡Sound ¡

Control ¡Message ¡Delega<on. ¡In ¡Proceedings ¡of ¡the ¡InternaWonal ¡Computer ¡Music ¡Conference, ¡Huddersfield, ¡UK, ¡2011. ¡

–decouples ‘what’ is computed from ‘where’ it is computed

slide-10
SLIDE 10
  • .*

10

Max libo (C) Pd Python Javascript Node.js OpenMusic Python Javascript CFFI (LISP) SWIG libopd libomax

  • .*
  • A. ¡Freed, ¡J. ¡MacCallum, ¡and ¡A. ¡Schmeder. ¡A ¡Dynamic, ¡Instance-­‑Based, ¡Object-­‑Oriented ¡Programming ¡in ¡Max/MSP ¡using ¡Open ¡Sound ¡

Control ¡Message ¡Delega<on. ¡In ¡Proceedings ¡of ¡the ¡InternaWonal ¡Computer ¡Music ¡Conference, ¡Huddersfield, ¡UK, ¡2011. ¡

slide-11
SLIDE 11
  • .expr

11

  • A. ¡Freed, ¡J. ¡MacCallum, ¡and ¡A. ¡Schmeder. ¡A ¡Dynamic, ¡Instance-­‑Based, ¡Object-­‑Oriented ¡Programming ¡in ¡Max/MSP ¡using ¡Open ¡Sound ¡

Control ¡Message ¡Delega<on. ¡In ¡Proceedings ¡of ¡the ¡InternaWonal ¡Computer ¡Music ¡Conference, ¡Huddersfield, ¡UK, ¡2011. ¡

–small, lightweight functional expression language –function abstraction, and higher order functions –no side effects –not designed –brittle and awkward syntax –multiple languages –designed :) –robust syntax and semantics –homoiconic 1.0: 2.0:

slide-12
SLIDE 12

OpenMusic: Visual programming environment for Computer-Aided Composition

12

hKp://repmus.ircam.fr/openmusic/

  • ­‑ Visual ¡programming ¡language ¡built ¡on ¡top ¡of ¡LISP ¡
  • ­‑ Used ¡by ¡composers ¡to ¡implement ¡composiWonal ¡

processes ¡(generaWon/transformaWon ¡of ¡musical ¡ structures). ¡

  • ­‑ Demand-­‑driven ¡execuWon ¡
  • ­‑ Local ¡state ¡— ¡Use ¡graphical ¡editors ¡to ¡visualise ¡and ¡edit ¡

input/intermediate/output ¡data ¡(scores, ¡sounds, ¡etc.) ¡

  • ­‑ Specialised ¡libraries ¡for ¡specific ¡compuWng ¡or ¡musical ¡

approaches ¡ ¡(chaos, ¡probabilisWc ¡models, ¡constraint ¡ programming, ¡DSP, ¡etc.)

slide-13
SLIDE 13

The OM Composer’s Books

13

  • J. ¡Bresson, ¡C. ¡Agon, ¡G. ¡Assayag ¡(Eds.) ¡

CollecWon ¡Musique ¡/ ¡Sciences ¡ IRCAM ¡-­‑ ¡EdiWons ¡Delatour ¡France Volume ¡3: ¡2016 ¡!

slide-14
SLIDE 14

OSC communication with external systems in OpenMusic

14

  • ­‑ External ¡input ¡devices ¡
  • ­‑ Control ¡of ¡spa<al ¡audio ¡or ¡real-­‑<me ¡DSP ¡
  • ­‑ Orchestra<on ¡server ¡
  • ­‑ Human-­‑Computer ¡Improvisa<on ¡
  • ­‑ etc.
  • J. ¡Garcia, ¡J. ¡Bresson, ¡M. ¡Schumacher, ¡T. ¡CarpenWer, ¡X. ¡Favory: ¡Tools ¡and ¡Applica<ons ¡for ¡Interac<ve-­‑Algorithmic ¡Control ¡of ¡Sound ¡Spa<aliza<on ¡in ¡OpenMusic. ¡

InSonic, ¡Karlsruhe, ¡2015.

slide-15
SLIDE 15
  • .OM : An implementation of odot in OM

15

  • ¡Create ¡— ¡Process ¡— ¡Send ¡— ¡Receive ¡OSC ¡messages ¡and ¡bundles ¡
  • ¡Format ¡expressions ¡in ¡the ¡odot ¡language ¡
  • ¡Evaluate ¡odot ¡expressions ¡on ¡OSC ¡bundles
slide-16
SLIDE 16
  • .OM : examples of application

16

Use ¡case ¡1: ¡Control ¡of ¡real<me ¡spa<al ¡audio ¡synthesis — ¡Reduced ¡and ¡constant ¡size ¡of ¡the ¡streamed ¡bundles ¡ — ¡Possibility ¡to ¡write ¡open ¡interpreWve ¡instrucWons, ¡ ¡ ¡ ¡ ¡ ¡ ¡(freedom ¡to ¡choose ¡or ¡change ¡the ¡interpretaWon)

slide-17
SLIDE 17
  • .OM : examples of application

17

Use ¡case ¡1: ¡Control ¡of ¡real<me ¡spa<al ¡audio ¡synthesis

slide-18
SLIDE 18
  • .OM : examples of application

18

Use ¡case ¡2: ¡Receiving ¡recep<on ¡contour ¡recogni<on ¡data ¡computed ¡from ¡live ¡video ¡capture ¡

  • ­‑ ¡Odot ¡expressions ¡used ¡as ¡mapping ¡to ¡graphical ¡representaWon ¡
  • ­‑ ¡OSC ¡bundles ¡collected ¡in ¡a ¡data-­‑stream ¡container
slide-19
SLIDE 19
  • .OM : examples of application

19

— ¡Sequencer ¡/ ¡Wmeline ¡view ¡of ¡the ¡OSC ¡stream ¡(visualisaWon ¡and ¡authoring) ¡ — ¡Possibility ¡to ¡personalise ¡to ¡representaWon ¡(from ¡OM ¡or ¡from ¡outside, ¡in ¡the ¡same ¡language)

slide-20
SLIDE 20
  • .OM — Recap'

20

Advantages ¡of ¡using ¡o. ¡in ¡OM/media ¡environments: ¡ — ¡Embedding ¡func<onal ¡specifica<on ¡and ¡programming ¡within ¡OSC ¡ — ¡Op<mize ¡and ¡extends ¡expressivity ¡in ¡communica<on ¡frameworks ¡ — ¡Operate ¡directly ¡on ¡the ¡transferred ¡data ¡ — ¡Sharing ¡a ¡common ¡language ¡between ¡heterogenous ¡environments

thank you :)