Open main menu

CDOT Wiki β

Changes

How to Collaborate On-line

10,859 bytes added, 19:53, 20 November 2011
no edit summary
[[Category:Ubuntu]][[Category:Linux]][[Category:Studio]]
'''''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 the other group members...
Like the saying goes, '''"The result is greater than the sum of all of the parts"...'''
The problem with collaborating online with Ardour is that the files that are generated when you record an auditory product using Ardour 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" “zip” that file ) can balloon to save space) a simple 5 minute song with just percussion and bass guitar could take up somewhere between '''90 Mb MB to 120 Mb MB of hard disk space'''for a simple 4-5 minute song... 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 more than one person '''<u>notsimultaneously editing</u>''' concerned with collaborating simultaneously on a projectthe same session, 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 usersall collaborators of a session, 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 (and the related data updates) need to be shared, thus saving space and transmission time. This is an efficient method of collaborating a song via Ardour sessions over 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... information… No doubt, the '''the swap file is smaller than the actual file, and thus easier to transfer between computer systems'''. Also, the '''the swap file is useful for backup purposes''' (eg. in case of accidental disconnection from your remote editing session)... The only difference here from this vi text editor comparison is that the snapshot tells informs the session exchange program which other auditory files (that are new) required to be downloaded as wellin addition to the snapshot file...
<li>Go to the Ardour Download site: [http://ardour.org/download_full http://ardour.org/download_full]</li>
<li>Go to the section labelled: '''Public read-only SVN access'''</li>
<li>'''Open a shell terminal window''', and login as root or super-user (eg. '''sudo su''' )</li> <li>'''Switch to the Ardour Download site''', copy and paste the command (listed in the Public read-only SVN access sectionunder '''tools''' and '''look for file called session_exchange.py''') into your shell window:<br /><br />'''svn co http://subversion.ardour.org/svn/ardour2/branches/2.0-ongoing''' <br /><br />(It is recommended to use the command stated on the site, since the version may change over time...)</li>
<li>After the above executed command is completed, there will be a subdirectory created in your current directory<br />(In this case called '''2.0-ongoing''').</li>
<li>Change into the '''2.0-ongoing''' subdirectory, and change to the other subdirectory called '''tools'''.[[Image:session-ex1.png|thumb|250px|right ]]</li>
<li>Next you need to add another user or users in order to help collaborate or work on your song.[[Image:session-ex5.png|thumb|150px|right ]]</li>
<li>In the ''Session Exchange application window'', click the '''edit''' menu, and then select '''Add Collaborator'''.</li>
<li>In the Add Collaborator dialog box, '''create a username''', and then '''enter the IP address for that user's computer system'''.<br /><br />In order to obtain the IP address for a computer system, you can open a shell terminal window and issue the command: '''ifconfig'''<br />(look for the value labelled '''inet addr''').<br /><br />('''Note: ''' accept the default port number)... You can create other users for sharing as well...<br /><br />'''Also note:''' If your computer is connected via a router, you can configure your router to "route" the port number to a specific IP address to your networked machine. Your router's user manual should provide information how to do this. This is NOT a very complicated operation, and is usually located under "Advanced Settings"...<br /><br /></li>
<li>When you have entered the required information, click '''OK'''.
</ol>
<ol>
<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|150px350px|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>Select the session, select the user, and then select the session name (either original file, or the dated "snapshot" file)</li>
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(discussed above), except there seems to be no safeguards to "lock files" '''“lock files”''' when they have been "exchanged" “exchanged” or "checked“checked-out" 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 '''"imposingconstricting" ''' for the artistic or collaborative process of composers, that should be able to communicate to prevent those type of mistakes from happening.musical composition…
'''Regardless, this is an interesting tools which believe I will use many times in the future....'''
= Using '''Ninjam''' =
 
'''Ninjam is a way to allow users to perform a "jamm" session over the Internet.According to Wikipedia a jam session is defined as:
 
 
''"a musical act where musicians play ([http://en.wikipedia.org/wiki/Jam_session jam session]) by improvising without extensive preparation or predefined arrangements. Jam sessions are often used to develop new material, find suitable arrangements, or simply as a social gathering and communal practice session."'''''
 
 
Therefore, Ninjam is not recommended to playing pre-arranged musical arrangements, but can be used to help improve sections of songs, or help individuals to learn how to improve their live performance skills. Note: Ninjam sessions have the ability to be recorded: therefore, sessions can be recorded to be edited via a DAW such as Ardour, and allow the user to practice their skills. On the other hand, the user can collaborate with Ardour to create songs in order for an individual to "play-along" and practice their skills...
 
 
== How Ninjam Works ==
 
 
'''It is incorrect to think that Ninjam allows users to play in "real-time". This would be impossible due to delays or what is referred to as "latency".'''
 
'''The Ninjam Guide "Ninjam in a Nutshell" states:'''
 
 
''"Most people have experienced this phenomonon when watching newscasts with a satellite uplink or speaking on a cell phone -- there is a perceivable difference in time between the moment someone speaks and the apparent time the other party hears them... The end result is if two people are trying to play a song together, the induced lag (which is termed latency by most tech heads), ends up causing each person to extend their tempo waiting to catch the other person’s playing. Since the other person is doing the exact same thing, the end result with two people is usually a continually slowing tempo."''
 
'''
In order to deal with this challenge, Ninjam allows user to collaborate in "Fake-Time".''' A common beat track is used, which allows users to start recording their measure, then other user's will start playing their measures, etc.
 
 
The Ninjam in a Nutshell" guide then states:
 
 
''"The end result is that nobody hears the exact same jam. It’s a bit contrary to classical jamming and requires everyone to adhere to a common tempo, but once you get used to it many find that it’s compatible with most styles of jamming and the strict tempo enhances the experience."''
 
 
'''There are 2 separate applications that run for Ninjam:'''
 
 
<ul>
<li>'''Ninjam Client:''' An application that allows the user to connect to a Ninjam Server (nicknamed a "Ninjam Farm"), to play with other users. For example, here is a link to various Ninjam farms:
<br /><br />[http://ninjam.com/jamfarm/index.php http://ninjam.com/jamfarm/index.php]<br /><br />Note: You should use the ones for testing purposes only, and NOT the BPM contest servers if you are just testing-out your connection...<br /><br /></li>
<li>'''Ninjam Server:''' An application that allows the user to run a Ninjam server to '''create your own Ninjam Farm''' (private area) for user jam sessions...<br /><br /></li>
</ul>
 
== Installing Ninjam Client (via wine) ==
 
Although there is a Linux version for Ninjam, I can't seem to get it installed on my Ubuntu Studio 10.04 64-bit system...
 
I'm not certain this is the BEST method for running Ninjam client in Linux, I did have success in running the Windows version of Ninjam client via wine.
Here is how I was able to do it..
 
 
'''STEPS TO INSTALL NINJAM CLIENT (VIA WINE):'''
 
 
<ol>
<li>Make certain that you have already installed the '''wine application'''. If you are not certain, refer to this link to learn how to install applications (like wine) via the Synaptic Package Manager: [ [[Install_Applications_in_Ubuntu]] ]<br /><br />
</li>
 
<li>'''Go to the Ninjam website'''.<br /><br />Here is a link to the Ninjam Download Page: [ [http://ninjam.com/download.php http://ninjam.com/download.php] ]<br /><br /> <li>'''ATTENTION:''' In my situation, I was not able to use wine to install the Ninjam installer, application, so I actually '''downloaded and installed the Windows version of Ninjam on a Windows system'''. I copied the entire NINJAM directory into a USB stick, and then copied over to my Linux system.<br /><br /></li>
<li>'''Open a shell terminal window, and run wine to run your Windows (i.e. Ninjam) application'''<br /><br />For example, assume that I copied to the NINJAM directory and its contents to my home directory (/home/msaul). Then I ran the wine application as follows:<br /><br />'''wine /home/msaul/NINJAM/ninjam.exe'''<br /><br /></li>
<li>'''After a <u>while</u>, the Ninjam Client application window should appear...'''<br /><br /></li>
<li>In the future, '''you can create a shortcut''' to run this wine application for Ninjam client for convenience...</li>
</ol>
 
 
 
== Configuring Ninjam Client for Jack (via wineasio) ==
 
If you wish, you can connect to a session to listen to a session in progress. The Ninjam Farm page (refer to link above) provides updates (if you refresh your web-browser) of users currently participating in various test jam sessions.
 
 
On the other hand, if you wish to participate in the Jam Sessions with your own instruments, you must setup your computer system to do this.
 
This tutorial will assume that we are running Jack Audio server. In my situation, I am running Jack, Qsynth, and Bristol Organ via my Tascam US122 USB device to record MIDI data from my old Yamaha keyboard...
 
 
'''STEPS TO INSTALL AND SETUP WINEASIO:'''
 
 
<ol>
<li>'''Determine which type of computer system''' you have (32-bit or 64-bit)<br /><br /> </li>
<li>'''Download the zipped file called wineasio_0.7.5_debs.zip''' (just right click that file link and save-as on your system). Here is link that contains that file link: [ [http://wwww.ubuntuforums.org/showthread.php?p=7792433 html] ]<br /><br /></li>
<li>'''Open a File Browser, go to the Downloads directory, and double-click on the downloaded file: wineasio_0.7.5_debs.zip'''. You should see a version of wineasio for 32-bit and 64-bit architecture...<br /><br /></li>
<li>'''Point and double-click on the appropriate file''' for your computer system's architecture, and '''follow the instructions in the deb installation window'''.<br /><br /></li>
<li>'''ATTENTION: This is very important!''' You need to '''register WINEASIO''' to run in wine. '''DO NOT BE LOGGED IN AS SUPERUSER WHEN RUNNING THE FOLLOWING COMMAND!''' Instead as a regular (unpriviledged) user, issue the following command:<br /><br /> '''regsvr32 wineasio.dll''' (even if you have a 64-bit computer system!)<br /><br /></li>
<li>The wineasio driver should be properly installed...</li>
</ol>
 
Now you need to run Ninjam client and configure it to work with the wineasio driver. Please perform the following steps:
 
 
STEPS TO CONFIGURE NINJAM CLIENT WITH WINEASIO:
 
[[Image:ninjam1.png|thumb|150px|right ]]
<ol>
<li>'''Start the Jack Audio server'''. If you are not certain how to do this, refer to one of my other tutorials: [ [[Quick & Simple - Setting up Jack Server and Q-synth]] ]</li>
<li>'''Open a shell terminal window''', and use wine to start the Ninjam client. Your situation will be different than the following example, but let's assume that Ninjam client has been copied over to my home directory, and my home directory pathname is /home/msaul. Under that assumption, the command to startup the Ninjam client would be:
<br /><br />'''wine /home/msaul/NINJAM/ninjam.exe'''<br /><br /></li>
<li>When the Ninjam Client application window appears, click on the '''Options''' menu, then click '''Audio Configuration'''.[[Image:ninjam5.png|thumb|200px|right ]]</li>
<li>The NINJAM audio I/O configuration dialog box will appear.</li>
<li>Set the Input/Output System to '''ASIO'''.</li>
<li>If all is well, you should see the '''ASIO Driver display Wine ASIO Driver''', and the Input Range and Output Range values should appear in the text boxes...</li>
<li>You can now click on the '''ASIO Configuration''' button to display the Jack Audio Connection dialog box.<br /><br />You will not see anything until you actually connect to a Ninjam session, then the NINJAM SESSION will appear in the connections dialog box...</li>
<li>'''Switch back to the NINJAM audio I/O configuration dialog box''', click '''OK''' to exit ...</li>
<li>'''Switch to the Ninjam Client window'''.</li>
<li>Click on the '''file''' menu, then select '''Connect'''.<table align="right">
<tr>
<td>[[Image:ninjam2.png|thumb|300px|right ]]</td>
<td>[[Image:ninjam3.png|thumb|300px|right ]]</td>
</tr>
</table></li>
<li>The NINJAM Connection Configuration dialog box will appear.</li>
<li>Enter a host number to connect (preferably '''test.ninjam.com:2600''' or '''test.ninjam.com:2601''') for testing purposes.</li>
<li>Click the Connect button, and click the '''"I agree"''' checkbox in the NINJAM Server License Agreement, and then click the '''Accept''' button.</li>
<li>'''Switch to the Jack Connections dialog box'''. Select the '''ALSA''' tab, and connect the device (In my situation, '''Tascam US-122''') to '''Bristol (B3) Organ'''.</li>
<li>Then select the '''AUDIO''' tab. You should now see '''ASIO_NINJAM'''. Make the necessary connections. You should now be able to perform in the session...</li>
</ol>
 
 
'''NOTE:''' When you are performing, you are creating on ogg file of your performance, which is saved on your computer! This is useful, since '''you may want to test to see if you are recording in the session''', although there may not be other members present. You can always listen to the recording afterwards to confirm you are being heard. '''WARNING: Due to the latency of connections, you need to be patient and listen to the ENTIRE recording, before assuming that you did not record!''' FYI...
 
 
You can view (or change) the default location of the saved files. To view or set the default recorded session location, click on the '''options''' menu, then select '''Preferences'''...
 
 
== Installing and Running Ninjam Server ==
To be completed...
= Additional Resources =
[http://www.google.com/url?sa= Additional Resources t&source=web&cd=1&ved=0CBIQFjAA&url=http%3A%2F%2Fwww.ninjam.com%2Fninjam-nutshell&ei=tDg7TI2QFIH6lwe18pXWBw&usg=AFQjCNHsqp2A1_NVSoKe4EJq30xnC-YvwQ Ninjam in a Nutshell] (Basic Ninjam Guide) [http://ninjam.com/ Ninjam Website] (Downloads, servers, Forums) [http://ninjam.com/jamfarm/index.php http://ninjam.com/jamfarm/index.php] (Ninjam Farm - open test servers - Please use last 2 for open access...)
13,420
edits