V, pensiero! - Fly, thought! Experiment for interactive internet - - PowerPoint PPT Presentation

v pensiero fly thought
SMART_READER_LITE
LIVE PREVIEW

V, pensiero! - Fly, thought! Experiment for interactive internet - - PowerPoint PPT Presentation

V, pensiero! - Fly, thought! Experiment for interactive internet based piece using Csound6 Tarmo Johannes Kita Toshihiro 2013 WHY? Csound community is strong and active, spread over the world Chances to meet physically are


slide-1
SLIDE 1

„Và, pensiero!“ - Fly, thought!

Experiment for interactive internet based piece using Csound6 Tarmo Johannes Kita Toshihiro 2013

slide-2
SLIDE 2

WHY?

  • Csound community is strong and active, spread
  • ver the world
  • Chances to meet physically are rear
  • Are there ways to meet musically over distance?
  • Csound6 run-time compilation of orchestra and

score offer vast possibilities for internet based interactive music making

slide-3
SLIDE 3

„Và pensiero“- Fly, thought!

  • Dedicated to developers of Csound6 and all bright Csounders
  • People join to „choir“ - writing everybody their voice as an Csound

instrument

  • One player plays on a MIDI keyboard that triggers the „voices“
  • Participants can change their instruments in real time, depending on

the current situation. Nobody knows exactly how the choir will sound in the performance :)

  • The result (should be) streamed into internet, so the players and

public can hear it

slide-4
SLIDE 4

Software

  • pensiero-server – written in C++, Qt framework:

– sets up listener for incoming messages, loads csd file and plays it, compiles Csound

code from the messages, displays output

  • va_pensiero_orc.csd – collection of the „voices“, triggering midi instrument,

definitions of chords (the melody is orchestrated automatically) etc

  • Clients for sending TCP messages:

– pensiero-client.csd – works in CsoundQt with PythonQt support (sends selected text) – pensiero_client.ipynb – iPython notebook (requires iPython works in any web

browser, send Csound code from iPython cells.)

slide-5
SLIDE 5

Software

  • pensiero-server – written in C++, Qt framework:

– sets up listener for incoming messages, loads csd file and plays it, compiles Csound

code from the messages, displays output

  • va_pensiero_orc.csd – collection of the „voices“, triggering midi instrument,

definitions of chords (the melody is orchestrated automatically) etc

  • Clients for sending TCP messages:

– pensiero-client.csd – works in CsoundQt with PythonQt support (sends selected text) – pensiero_client.ipynb – iPython notebook (requires iPython works in any web

browser, send Csound code from iPython cells.)

slide-6
SLIDE 6

pensiero-server

  • Incoming connections are handled in separate

threads

  • Received messages are forwarded to Csound in a

separate thread to compile and play, result is sent back to client

  • The messages are displayed as chat conversation

between users and Csound

slide-7
SLIDE 7

Networking

  • pensiero-server must be visible from network

(open TCP port)

  • The public server handling/forwarding the

messages is now 54.228.204.118 (in Ireland)

  • The messages can be tunneled via ssh to another

computer even if it is behind a firewall (like in Boston) – the actual performance place can be anywhere with internet connection

slide-8
SLIDE 8

Streaming the result

  • Needs more work and testing
  • We tried vlc (VideoLAN media player) for streaming – works otherwise well

with Csound, but it blocked somehow compiling new code (compileOrc )

  • Working solution:

icecast <- darkice <- jackd <-Csound

  • Listen with any media player (for example):

mplayer -nocache http://johannes.homeip.net:8000/pensiero (currently the stream is ogg encoded)

  • TODO: minimize lag between sound production and listening
  • Automatic connection of darkice and Cound jack output
slide-9
SLIDE 9

Demo 1 send messages to test orchestra

  • test_orc.csd – plays instr 100 (pluck sound) every 5 seconds
  • HOST: 54.228.204.118, port: 5005
  • Use CsoundQt or iPython Notebook, command line or anything that can send a string as

TCP message

  • Command line example:

echo „giVal init 12“ | nc 54.228.204.118 5005

  • Prepared clients are up on: http://tarmo.uuu.ee/varia/failid/cs/pensiero-files/
  • Send your name first in the form ';name YOUR_NAME' for clearer output
  • You can send new instruments, run instruments with event_i or scoreline_i opcode,

(re)define tables etc – everything you can do within the orchestra header

  • Please don't send scoreline_i „e“ ! (Check against that not implemented yet ...)
slide-10
SLIDE 10

Demo 2 Forwarding live playing (test)

  • Does not work properly yet!
  • Tarmo plays on a midi keyboard at home, note
  • n/off are sent as event_i / turnoff2 to pensiero-

server

  • Problem: right timings get easily disturbed –

messages don't arrive exactly enough

  • Some synchronisation system or other solution is

necessay.

slide-11
SLIDE 11

Demo 3: Streaming

  • Tarmo plays „Va pensiero“ on MIDI keyboard at

home, streams up on http://johannes.homeip.net:8000/pensiero

  • pensiero-server runs in Tarmo's computer
  • Send messages to

HOST: johannes.homeip.net, PORT 5005

slide-12
SLIDE 12

Demo 4

  • Keyboard is played and sound produced on spot
  • (Messages to 54.228.204.118, port: 5005)
  • Everybody can play along via Csound messages!
slide-13
SLIDE 13

Possibilities for future

  • Remote teamwork (for example developing new

Csound instruments - needs extension for saving the code)

  • Interactive, intercontinental performances
  • Csound improvisations, jam sessions, live coding
  • another way for community events
  • TODO: better streaming, improvements in server,

tests, tests, tests

slide-14
SLIDE 14

Thank you!

Have a wonderful conference!

Tarmo, Kita tarmo@otsakool.edu.ee kita@ield.kumamoto-u.ac.jp