What, I can dream, can't I? A way to effectively collaborate on music the same way a program like OpenCanvas allows users to collaborate with art would be ideal. Besides that, it was fun wasting all morning making this in winforms (Click for a larger view):
Most of the network interfacing windows are inspired by OpenCanvas, with some added extras to make it easier to figure out what other people are doing, and less likely to step on each other's toes. Here are some of the changes:Chat
- Mostly self-explanatory. Once networking has begun, a chat dialog pops up showing who has joined the session and who has quit. Notice that the userlist has a marker for users who are not you. These are color-coded markers which change the colors in the main window's interface (Patterns, samples, etc) to show where each user is when they're working.Patterns Window
- Color-coded markers indicate where the other users are currently tracking, as well as a small arrow indicator by the pattern they're in, if you're not in the same pattern as them. Right now, the orderlist can be changed by anyone, but perhaps a lock or vote system should be put into place so that orders don't get changed in a weird way by accident.
Channels are locked, and can be unlocked easily using the context menu so as to share your channel(s) with other users. Otherwise, by default, each user gets their own channels dedicated to themselves, which are color coded in the window by the user's label. New channels are locked by default and color-coded by the owner. Similarly to OpenCanvas, starting a new mod from scratch sets X channels to each user by default based on the number of users available (for example, 2 users with 8 channels each will automatically give the host 8 channels and lock the last 8 for the next user who joins to be automatically assigned to).Shared Samples
- This toolbox helps maintain resources inside the song. On opening an existing song without networking metadata embedded, the host gains ownership of all resources by default. As the owner of a particular resource, hitting the Unlock checkbox shares the resources with any other user who also checks the box. The user can then alter the sample or instrument. Status shows what action is currently being taken on a resource. Switching tabs or Unlocking once again commits the resource to all users. A resource being updated by its owner will always be locked, as well as all resources with transfers in progress.History
- It is a simple log which shows recent activity from all users. Import, Export, and Filter options should also be included, but aren't shown in this mockup. The History log allows a user to review changes that were made while inattentive or idle, as well as proposed changes that were done without forewarning.