Difference between revisions of "How to Collaborate On-line"
Line 99: | Line 99: | ||
<ol> | <ol> | ||
<li>Launch the Session Exchange applicaton</li> | <li>Launch the Session Exchange applicaton</li> | ||
− | <li>Make certain to '''create a new session using the EXACT name of the session as your friend's session name''' that is being shared.[[Image:session-ex11.png|thumb| | + | <li>Make certain to '''create a new session using the EXACT name of the session as your friend's session name''' that is being shared.[[Image:session-ex11.png|thumb|300px|right ]]</li> |
<li>Make certain to add your username and Add your group member's username (in this case: msaul) as a Collaborator.</li> | <li>Make certain to add your username and Add your group member's username (in this case: msaul) as a Collaborator.</li> | ||
<li>Select the session, select the user, and then select the session name (either original file, or the dated "snapshot" file)</li> | <li>Select the session, select the user, and then select the session name (either original file, or the dated "snapshot" file)</li> |
Revision as of 21:04, 8 July 2010
Break the misconception that once you have a home recording studio, you can do it all yourself. I perform in a band, and benefit from the expertise of my other group members...
Like the saying goes, "The result is greater than the sum of all of the parts"...
There are several methods to collaborate online with other users using Ardour and Ninjam...
Contents
Using Ardour session-exchange
Purpose
The problem with collaborating online with Ardour is that the files that are generated when you record an auditory product are very LARGE. For example, if you decide to create a zipped tarball (a method to build a single file from a group of directories/files and then compress or "zip" that file to save space) a simple 5 minute song with just percussion and bass guitar could take up somewhere between 90 Mb to 120 Mb of hard disk space... Imagine posting that file on the cloud, or making that file available on a distribution server! Then just consider the pain of compressing and decompressing those files - there must be an easier method...
... and there is...
If you are not concerned with collaborating simultaneously on a project, there is a python script (program) that will allow you to easily share your sessions for editing by other users. The name of this application is called session-exchange, and it has been around for several years...
The advantage of session-exchange is that the user can allow for uploading and downloading of files to other users, and only have the musicians work on the most recent edits of the auditory product (i.e. "songs"). When you create a song in Ardour, you are required to either create a session, or open an existing session. This allows ardour to create subdirectories to store all audio data into a concise location on your computer system. Ardour uses the term snapshot to relate to a new session file that is generated (i.e. not affecting the original session) that simply stores the current state of the edited session. No doubt, all of the original files are shared with the other users, but as other users add their own editing contributions to your song. Therefore, only snapshots needs to be shared, thus saving space and transmission time. This is an efficient method of collaborating a song via the Internet...
An analogy: This may be an oversimplification, but relate it to how the vi text editor works: there is a swap file (editing transaction) file and the original file. Only upon saving the editing session is the original file updated with the newer information... No doubt, the swap file is smaller than the actual file, and thus easier to transfer between computer systems. Also, the swap file is useful for backup purposes (eg. in case of accidental disconnection from your remote editing session)... The only difference here is that the snapshot tells the session exchange program which other auditory files (that are new) to be downloaded as well...
Installing Ardour Session Exchange
The easiest method to install session-exchange is to download the source from Ardour SVN site. SVN stands for Apache Subversion which is a method to make it easier for programmers to collaborate together on complex programming projects. This basically the online version of RCS which stands for Revision Control System.
Here are some WIKIs for definitions of SVN and RCS:
http://en.wikipedia.org/wiki/Apache_Subversion
http://en.wikipedia.org/wiki/Revision_Control_System
Steps to Install Ardour Session Exchange:
- Go to the Ardour Download site: http://ardour.org/download_full
- Go to the section labelled: Public read-only SVN access
- Open a shell terminal window, and login as root or super-user (eg. sudo su )
- Switch to the Ardour Download site, copy and paste the command (listed in the Public read-only SVN access section) into your shell window:
svn co http://subversion.ardour.org/svn/ardour2/branches/2.0-ongoing
(It is recommended to use the command stated on the site, since the version may change over time...) - After the above executed command is completed, there will be a subdirectory created in your current directory
(In this case called 2.0-ongoing). - Change into the 2.0-ongoing subdirectory, and change to the other subdirectory called tools.
- Issue the following command to run session-exchange:
./session_exchange.py - A Session Exchange application window should appear on your screen.
(Note: You can right-click on the desktop, and create a launcher to run this application in the specified pathname, so you can just double-click on your desktop to launch this application...
Configuring Ardour Session Exchange
Now that you have installed and have launched Ardour's session-exchange program, we need to configure the application to allow us to share our recorded Ardour projects with other users. Perform the following steps to configure your Ardour session-exchange application:
Steps to Configure Ardour Session Exchange:
- Before you start configuring Ardour Session Exchange, make certain that you have an Ardour session on your computer to share. Also, note the pathname to your Ardour session directory that you want to share.
- Next, you need to give yourself a username so other members will be able to identify you. Click on the edit menu, and select preferences. Type in a username for yourself (I have used the username msaul just as an example), and then click OK.
- We need to create a session for sharing purposes. In this way, we can focus on a particular session until we complete our project.
- You have two choices: Create Session (start a new session, and open in Ardour to create a song, then save, and collaborate with other user), or Add Session (specify the pathname to an already existing Ardour session).
- For this tutorial, we will add an Ardour session to be shared (I created one called doors_demo.
- Click File then Add Session. An Add Session dialog box will appear.
- Specify the pathname of the session to be shared (usually created in the user's home directory, and then select the session name that ends with the .ardour extension, then click OK.
(You can add as many sessions to share as you wish...) - You should now see your session contained in the Session Exchange application window.
If you click on the session by name, you will see the yourself as the only user participating in the session exchange. If you click on your username, you will see the original session, as well as any of the session "snapshots" that have been taken...
- Next you need to add another user or users in order to help collaborate or work on your song.
- In the Session Exchange application window, click the edit menu, and then select Add Collaborator.
- In the Add Collaborator dialog box, create a username, and then enter the IP address for that user's computer system.
In order to obtain the IP address for a computer system, you can open a shell terminal window and issue the command: ifconfig
(look for the value labelled inet addr).
(Note: accept the default port number)... You can create other users for sharing as well... - When you have entered the required information, click OK.
Fetching a Snapshot
If you have properly setup Session Exchange, then you should be ready to share your Ardour song with other users...
Note #1: The other user will need to install and setup their Session Exchange application, but use your IP address and your username...
Note #2: The other users MUST create the sessions using the exact spelling or your session names: otherwise, you will not be able to exchange sessions...
Steps to Fetch an Ardour Session:
Let's assume that we are the "other" user that will download or "fetch" the doors_demo session that msaul has created.
- Launch the Session Exchange applicaton
- Make certain to create a new session using the EXACT name of the session as your friend's session name that is being shared.
- Make certain to add your username and Add your group member's username (in this case: msaul) as a Collaborator.
- Select the session, select the user, and then select the session name (either original file, or the dated "snapshot" file)
- Click the edit menu, then select Fetch Snapshot.
- If files are downloading, you should notice at the bottom of the dialog box a message indicating "connection made".
- When the message at the bottom of the dialog box reads, "connection lost", then the downloading process is completed.
- You should be able to open that revised session, for further editing and collaboration.
A Warning About Collaborating with Ardour Session Exchange
The Ardour Session Exchange application is designed to collaborate with a group of people, but only one person at a time should exchange, edit. and save sessions,before allowing others to proceed with the exchanging and editing of these sessions.
This application reminds me of the SVN or RCS applications mentioned previously, except there seems to be no safeguards to "lock files" when they have been "exchanged" or "checked-out" to be worked on by other users. Perhaps a locking mechanism would be in order in a future release of this application. Perhaps this type of safeguard would be too "imposing" for the artistic or collaborative process of composers, that should be able to communicate to prevent those type of mistakes from happening.
Regardless, this is an interesting tools which believe I will use many times in the future....
The next type of collaborative application is called Ninjam, and it encourages collaborating (jamming) in real-time (or more appropriately in "fake-time")...
Using Ninjam
To be completed...