Posted: Sat Dec 04, 2004 11:11 pm
I really wish ResRocket DRGN still existed so I could show you a model of something which worked really damn well for this exact thing. I'd basically just say "Take ResRocket DRGN and make it with audio instead."
So, instead, try to imagine something with the same basic interface layout as CoolEdit Pro (or Audition), except where anyone can create a new track and record into it, and as soon as a recording is made it's sent up to the server and redistributed to everyone. While the user is actively working on that track, only they have access to it, but after they've stopped working on it (by signing out or specifically giving up control), anyone else could take control of the track. There was also a realtime chat interface beneath (actually, the server was just implemented as a MOO which had special rooms which would tell the client to bring up the sequencer and feed it data, so the chat was "for free" and all of the change notify events were just distributed by the MOO and so on; conceptually it could also be done with an IRC bot or similar).
There are plenty of ways to go about architecting this, and if I weren't already way-too-busy with a time-sinkhole I'd totally join in on the programming.
FWIW, if you do go about this, my suggestion would be to do a proof-of-concept using just MIDI to start with (fewer issues to deal with in terms of bandwidth etc.) and using SDL (which supports MIDI) as a platform abstraction layer, so it's not tied to a single platform. Client-server comms could be done using standard HTTP stuff, where occasionally the clients just ask the server for the current song status, then the server spews out an XML document or similar which says which tracks contain which (externally-linked) mid/mp3/wav/etc. files and where they lie on the timeline.
Edits would just be done as normal POST requests, and would be broken down into three basic operations - upload a riff, add a riff instance, remove a riff instance.
So, instead, try to imagine something with the same basic interface layout as CoolEdit Pro (or Audition), except where anyone can create a new track and record into it, and as soon as a recording is made it's sent up to the server and redistributed to everyone. While the user is actively working on that track, only they have access to it, but after they've stopped working on it (by signing out or specifically giving up control), anyone else could take control of the track. There was also a realtime chat interface beneath (actually, the server was just implemented as a MOO which had special rooms which would tell the client to bring up the sequencer and feed it data, so the chat was "for free" and all of the change notify events were just distributed by the MOO and so on; conceptually it could also be done with an IRC bot or similar).
There are plenty of ways to go about architecting this, and if I weren't already way-too-busy with a time-sinkhole I'd totally join in on the programming.
FWIW, if you do go about this, my suggestion would be to do a proof-of-concept using just MIDI to start with (fewer issues to deal with in terms of bandwidth etc.) and using SDL (which supports MIDI) as a platform abstraction layer, so it's not tied to a single platform. Client-server comms could be done using standard HTTP stuff, where occasionally the clients just ask the server for the current song status, then the server spews out an XML document or similar which says which tracks contain which (externally-linked) mid/mp3/wav/etc. files and where they lie on the timeline.
Edits would just be done as normal POST requests, and would be broken down into three basic operations - upload a riff, add a riff instance, remove a riff instance.