ReaLay is a plugin for the Reaper DAW that works in conjunction with Dropbox to allow seamless collaboration of Reaper projects. Press a button and start where your friends left off.
- Allows any number of people to collaborate on Reaper projects one at a time with an exclusive checkout lock type of system
- Gives you some redundancy/backup for free thanks to Dropbox file versioning
- Removes the need for any manual intervention to move files around for syncing
- Reaper 4.261 (May work in other versions, untested)
- Python 3.2 (May be compatible with 3.3+, untested)
- Dropbox
- Each collaborator to have VERY similar Reaper setups (same plugins, etc)
- Some conventions (a .RPP filename which matches the project directory, centralized location for local/remote mirror, etc)
- That you NEVER edit your local project without first checking it out
- Download the source
- using Git:
git clone https://github.com/ironcladlou/realay.git
- as a zip: https://github.com/ironcladlou/realay/zipball/master
- Copy
realay.py
to the%APPDATA%/REAPER/Scripts
directory - Create a new preferences file named
%HOMEPATH%/.realayprefs
(userealayprefs.example
as a reference) - Invoke the plugin as a ReaScript action bound to whatever UI trigger you want (e.g., a toolbar button)
In the test demonstrated below, I am using a temporary directory and some sample projects. In real use, the remote directory is a Dropbox folder shared between myself and my collaborator ("James"). This is what keeps all the project metadata in sync between collaborators and facilitates the entire system.
Disclaimers (they are numerous):
- I've done some pretty extensive testing of the thing (including via dropbox with another human), and it has numerous safety features to prevent the user from screwing anything up.
- The UI is visually a trainwreck, as this is the first time I've ever touched Tkinter.
- Python is absolutely not my primary programming language, so it may be difficult to extend
- It needs a small bit of work to address portability issues (mainly with the RPP processing making some assumptions about Windows 7's user directory path).
- It does make destructive changes to your local disk, including deleting entire trees for syncing, which I tried to make as safe as possible with things such as the confirmation dialog which tells you what it's going to do.
- There is extensive logging which can be enabled with a debug mode. There are likely all sorts of bugs yet to be discovered. There are probably tons of race conditions that would be exposed if lots of people were collaborating and doing lots of checkins/checkouts simultaneously.
Hopefully somebody else will find it useful.
Create your shared projects in the dropbox folder. All media must be in the project directory. Portable project files are key. They'll then appear in ReaLay as "non-projects."
Open ReaLay
(todo: find/add old image)
Select your new project directory, and make it a ReaLay project.
(todo: find/add old image)
At this point, every collaborator will see the new project (thanks to Dropbox synchronizing the metadata). Anybody can now check out the project.
(todo: find/add old image)
When checking out, you'll be prompted to confirm as the operation is destructive. Whatever's in the master version will by synced to your local project directory (which will be created if it doesn't exist). This step tries its best to post-process the local .RPP
file to massage paths to your local configuration.
(todo: find/add old image)
The project is now checked out exclusively to you. Nobody else can check it out until you check it back in. It's now time to open up your local version of the project and do some recording.
(todo: find/add old image)
Now you've finished making your changes, so you open ReaLay to check them back in. As you can see, while we were working, somebody added a new project, and James
started working on another. Select your project and check it in.
(todo: find/add old image)
You'll be prompted to confirm, as this will replace the master
project with your local copy.
(todo: find/add old image)
As an added safety measure, ReaLay will attempt to close all open projects prior to checkin, to give you an opportunity to save or discard any remaining local changes you may have outstanding.
(todo: find/add old image)
All done! Your changes are pushed out to Dropbox and there is a new master copy for anybody else to check out and work with.
(todo: find/add old image)