r4 - 06 Jul 2004 - 17:27:00 - JuanChansonYou are here: TWiki >  Xdv Web > ProJects > PhopCrop > PhopCropEng > PhopCropProtoOne

introduction

this is the first prototype of the multiplayer performance system titled PhopCrop. its implemented using gsrv (from Gulliki:WebHome), perl and PD and was realized as a joint venture by xdv and exStream project in may 2004. the basic idea is having a small shared space that multiple users can operate on. this space is governed by some simple laws for masses and their movement. within this space certain objects can be created, where each object has a repesentation on the graphical as well as on the aural plane. the behaviour of an object on these planes is controlled by the pseudophysics (pphysics). an object may also feed back into the pphysical system.

diagram

a diagram of the internal structure of phopcrop follows:

  • simple phopcrop diagram:
    phopdia1.png

installation

prerequisites

gsrv: gsrv is an existing component from the gullibloon system. its a subscription based OSC multiplexer. checkout gsrv from the cvs and build it.

phopdata: phopdata is a simplistic server written in perl and available in the OSC_srv package, also from gullibloon. phopdata requires the perl OSC modules from moocow's site.

pd: the physics, audio, graphics and interface modules are at this time all written in pd.

list of required pd extensions:

  • Gem >= 0.888
  • zexy
  • OSC
  • pmpd
  • flext, dyn~

possibly other stuff too that escapes me at the moment. if something's missing you might want to have a look here.

download

the actual pd patch.

usage

you might have to check the IP adress for the osc and phopdata server in "pd connector" and "pd creator" boxes.

  1. start gsrv on some machine: cd /path/to/gsrv ; ./gsrv2
  2. start phopdata: cd /path/to/OSC_srv ; ./phopdata.pl
  3. put some soundfiles into the audio folder and list them in 'files.txt' so that pd can load them.
  4. start pd: pd phopcrop/phopcrop.pd
  5. press the bang labeled "sub"
  6. turn on audio in pd
  7. click the "reset, dim, create" message and the gem window should appear
  8. use these keys to work the interface:
    • '2' to create ouput objects with gravitiy fields
    • '1', '3', '4', '5' to create generator objects
    • 'a' to switch the active object
    • mouse to move selected object
    • 'd' to delete selected object
    • 'r' to reload the sample in the selected object

a standard session would go like this: pressing the "reset, dim, create" message. the gem window appears. focus the gem window if it isnt already. press "2" and a big orange sphere should appear on the screen. if it doesnt, its time to check if the adresses for the OSC connections to gsrv and phopdata are correct and if you successfully subscribed to all relevant messages on gsrv (check this by opening "dumpOSC 5251" in a terminal and issuing "sendOSC -h localhost 5151 /subscriptions"). press the bang labelled "reset". try again pressing "2".

when you finally have the first orange sphere on the screen you need to make a second one. at this point you need to make sure that the two objects are internally linked to id's 1 and 2. this is a hack, sorry. you can check this via the output of the pd console. if it doesnt, do a reset again and start over, creating 2 output objects by pressing "2" two times. object number 2 is by arbitrary choice the output object. once the output channels are activated, you can start adding object type 1, 3 or 5 by pressing the respective keys. if 1 or 5 doesnt make a sound check if you turned on sound in pd and if the patch finds the or any soundfiles. 3 should work rightaway. now press "a" and watch how the red marker circulates among the objects on screen. start dragging the currently marked object around on the screen.

note

  1. when you're using it on 2 or more computers, the physics-engine may only be switched on in one of them. you can switch it off by de-clicking the right checkbox above "pd physicsserver".
  2. phopcrop requires a fast ethernet connection because the object movement is broadcasted explicitly. a smarter way to handle this is the most important next step in continuing this project.

module development

for now you have to check the *_objX.pd files. X is a number and corresponds to the keys you press for generating them. a good way to start is copying e.g. (audio|graph|phys)_obj3.pd to (audio|graph|phys)_obj6.pd and edit them. then you'll have to add some routing chords in the gem keyboard input-chain.

screenshots and example sounds to follow.

-- Xdv.x75 - 06 Jun 2004

Topic attachments
I Attachment Action Size Date Who Comment
elsegz phopcrop.tar.gz manage 15.4 K 06 Jun 2004 - 21:22 JuanChanson tar file
pngpng phopdia1.png manage 11.2 K 06 Jun 2004 - 20:30 JuanChanson simple phopcrop diagram
 
Xdv TWiki
(c) 2008 xdv.org