'Real'-Time Peer Networking and Collaboration

Enable people to simultaneously work from one or multiple file repositories [such as iArchive, Freesound, SVN, WebDAV, etc] on common project files and assets. It would also be helpful to enable peer communication from within Psycle [XMPP?]. A sprite or small Icon would remotely represent an individual's cursor location in the xPsycle environment, allowing them to gesture around things of interest and also for a collaborator to see where they are currently working.

Projects/Sites with similar ideas:
 * MadTracker has integrated chat :-)
 * Gobby Collaborative Text Editor
 * mateEdit
 * wikiPedia Collaborative real-time editor
 * Ninjam GPL internet Jamming
 * Same Place (collaborative browsing) Suite


 * From #psycle on irc.freenode.net on 2007.05.26:
 *  I had an idea .. for co-ops
 *  if you could press a button for "mark current state" then any changes after this would highlight
 *  so when you get the psy back all the changes that were made are highlighted
 *  so you can easily see what's happened
 *  alk : it's a logical idea ( the "diff" concept ).
 *  JosepMa so what would be needed is "set diff point" function and "display diffs function"
 *  this last one is toggleable
 *  the patterns which contain diffs would be highlighted in the pattern sequencer
 *  and say the colour behind the diff notes in the patterns goes bright yellow or something
 *  display diffs could be a push method as well or both clients could be working on a central file
 *  something like svn maye? but I'm not familiar.
 *  it could be as simple as an auto-save/update from server that compares diffs as you say
 *  with concurrent edits comes conflict resolution ..
 *  mmm.. yup.. that should be it. the different parties should initially talk about which part each one would edit. But for conflict resolution, you need to be able to do merges, and also be able to compare them (also sound-wise)
 *  merge is something on the todo, (even in the sourceforge tracker). it isn't a big amount of work, but needs modifications in the song class as well as making the merge funcion itself.
 *  the closer to 'real-time' the push/pull gets the fewer conflicts. Also, would it be possible to 'lock' patterns or segments while one collaborator edits?
 * <JosepMa> both, realtime and delayed present problems
 * <bryli<e> Just an automatic lock.. something like ~10-20 rows with the last edit at the mean. That or lock a contraption or edit column with 'Sorry, this contraption/column is being remotely edited'
 * <JosepMa> you might be tweaking a machine, listening to a few patterns, and the sequence might be modified by the other party
 * <bryli<e> which would be fine.. it doesn't have to be flawless.. useps will come to understand that latency is inherent and that they are working on very dynamic content :)
 * <bryli<e> at times.. other times it might be hours or days between edits
 * <alk_> how useful would it be to be able to work on the same tune at the same time
 * <bryli<e> very useful especially when the collaboraters are in direct communication
 * <alk_> it might be, I'm not sure though
 * <alk_> maybe because of my control-freakness ;)
 * <alk_> for co-ops I don't want the other person to get it until I'm happy with the update
 * <bryli<e> good point.. so you would want to push your changes to the server
 * <bryli<e> some people might be happy with the app. pushing most of their small changes, so I guess have an adjustable update frequency with completely manual at one end and as 'fast as latency allows' at the other to make as many people happy as possible
 * <alk_> aha
 * <bryli<e> Psycle doesn't seem to be as geared toward real-time preformance as some apps. perhaps
 * <alk_> it's not