keyboard shortcut defaults: 

ENTER:        next scene
BACKSPACE:    previous scene
x:            blackout
0-9 :         transition time direct set
TAB:          tempo tap (if tansport_controls_enabled)
SPACE:     pause (if tansport_controls_enabled)
s:            resync (if tansport_controls_enabled)
PageDown (as default):     next scene (if Clicker_enabled)
PageUP (as default):       previous scene (if Clicker_enabled)
b (as default): 	blackout (disconnect all) (if Clicker_enabled)
F1:            pitch bend down
F2:            pitch bend up
F6:            apply last automation record
F7:            open last autoAid recording
F8:            open autoAid recordings folder
. :            bypass composition

CONTROL+o:    open file
CONTROL+s:    save file / overwrite  (v2)
CONTROL+r:    reload file
CONTROL+c:    Clip collector!
CONTROL+i:    show info
CONTROL+p:    opens Preferences
CONTROL+e:    edit scene text under cursor (v2)
a:	automation enable/disable
CONTROL+a:	Automation aid enable
m:	midi enable/disable (opens Preferences if midi input not set)
CONTROL+m: 		opens Preferences so you can set a midi input (was midi input chooser before)
CONTROL+Click on Midi:	opens Preferences so you can set a midi input (was midi input chooser before)
CONTROL+(1-9) Deck direct select
f:	force Finish Transition toggle

LEFT arrow:   transition time decrease in 0.1s steps ( hold CONTROL for 1s steps)
RIGHT arrow:  transition time increase in 0.1s steps ( hold CONTROL for 1s steps)
UP arrow:     move cursor up (in Info scroll text)
Down arrow:   move cursor down (in Info scroll text)

OSC remote addresses
login:	/login/YourPassword
next:	/next
previous:	/prev
blackout:	/blackout
transition time	/transitiontime Float 0.0 - 1.0
tap:	/tap
resync:	/resync
pause:	/pause
relaunch current scene:	/relaunch
pitch bend up:	/pitchbendup
pitch bed down:	/pitchbenddown
load deck: /load_deck Int
enable/disable midi: /midi Int 0/1
enable/disable automation: /automation Int 0/1

release the last command:	/release       (not really needed)

Default Midi Controls:

channel 1:
	note C0:	next scene
	note C#0:	previous scene
	note D0:	blackout
	note D#0:	relaunch current scene
	note E0:	automation enable
	note F0:	automation disable
	note F#0:	pause toggle
	note G0:	bypass toggle
	note B0:	same as pushing Reset
	note C1-B7:	deck select (1-84)

	controller no14:	transition time adjust (0-10 sec)
channel 2:
	note C0-G8:	scene direct select 1-127
channel 3:
	note C0-G8:	scene direct select 128-255
...
channel 16:
	note C0-G8:	scene direct select 1792-1919

You can change Base C for channel 1 in preferences.
Default is C0, deck direct recall starts from Base C + 1 octave up.

Clip name controls, they are case sensitive!
You can set most of them easily by right-clicking the scene name in Controller to open the scene edit dialog.

transition time set:	@T[sec]@
Layer transition blend change: 	@Blend [blend name] layer [layer nummbers delimited by ',' and/or layer range  like: '3-5']@
	for example:
		@Blend alpha layer 3@          sets transition blend of layers 3 to alpha
		@Blend alpha layers 2,4@          sets transition blend of layers 2 and 4 to alpha
		@Blend screen layers 3-6,8,10@    sets transition blend of layers 3,4,5,6,8 and 10 to screen
		
set bpm:	@BPM[bpm value]@ 
pause playback:	@pause@
play:	@play@
set cursor to random scene:	@randomScene@ - overrides automation Follows cursor setting when used together with automation!
switch deck:	@DECK[deck number]@   - count the decks in the list from 
		left to right to get deck number
		first deck is deck 1
		when triggering scene, column is not triggered
jump to:
	column:	@Jc[column number]@	ex: @Jc2@ will jump to and launch column 2.
	scene:	@Js[scene number]@	ex: @Js6@ will jump to and launch scene 6.
	bookmark:	@Jb[bookmark name]@	ex: @JbWant to jump here@ will jump to and launch the column
						where the bookmark "Want to jump here" is set like below
set bookmark:	@b[bookmark name]@	ex: @bWant to jump here@ sets the bookmark "Want to jump here"

Automations:
Timecode launch:	@LTC hh:mm:ss.ff@"
autolaunch next scene:	@A[msecs]@  or @A[beats]b@  or  @A[bars]B@
keep autolaunch running but launch scene:	@kA@  - not effective when autolaunch set in same scene name
autolaunch columns range Start: @AS[msecs]@  or @AS[beats]b@  or  @AS[bars]B@
autolaunch columns range End: @AE@
auto launch when playing clip ends in given layer @CA[layerNumber]@ eg: @CA3@ for layer 3.
              experimental on loops and still images/sources!
relaunch:	@R[msecs]@	- relaunches forever  
		ex: @R1000@ will relaunch forever every 1 second
relaunch count: @R[msecs]C[relaunch n times]@  - relaunches n times 
		ex: @R500C10@ will relaunch 10 times every 0,5 seconds
Schedule scene:	@SCHhh:mm:ss@ ex, @SCH16:25:01@ will lauch scene 
		when time is 16hours 25 minutes and 01 seconds
Automation Aid results: F7 opens last file, F8 opens records folder.


Place up to 9 exclamation marks in the clip name to have cues colorized, use it like :  5!   or   !!!!! .

place these in the clip name of the bottom layer.

config directory location PC : [UserHome]\Appdata\Local\RavenEntertainmenT\Linear OSC Controller for Resolume\
config directory location MAC : [UserHome]/Library/RavenEntertainmenT/Linear OSC Controller for Resolume/
automation aid recordings: [configDir]\autoAidRecordings

Hi,

I wrote this little program, because I was looking for 
a linear controller for Resolume, and could not find one,
that was suitable for my work.
I work in a theatre, where - when everything goes as planned-
all you have to do is hit enter to launch next scene.
But often you need to adjust fade times between columns, 
and when working on several of them, you cannot simply
adjust them equally.

So here it is.

A short guide:

Launch Resolume on as many computers as you like.
Open preferences, find OSC config, enable OSC in/out with correct settings,
disable Bundles.
The osc output port is the same for each Resolume, default is 7001.
The IP address is the ip of the machine running Controller.

Now load your composition.
You can have different footages in the compositions for the machines, 
But the master client's compostition should be loaded in Controller 
for correct feedback and correct backward controlling.

On the most bottom layer name the clips, to set a scene point.
You can name empty clips too, in an empty colum to get a blackout with fade.
In the clip name place @T[transitiontime]@ 
where [transitiontime] is the desired transition time for the column's load.
This will set all the transition times for all layers, when triggering column.
If not added, transition times will not be changed.
@BPM[value]@ changes the bpm speed

@DECK[number]@ switches to deck[number] 
eg. @DECK3@ switches to deck 3 without triggering anything

Now save the composition;
In V2 you can save the composition in Controller, then you need to reload in resolume
if you want it to reflect changes.

You have to set up config to connect to clients.
For this you can go to preferences.
You can assing 10 clients to control.
The first you enable can act as Master, this means that column triggering,
bpm setting, resync, play/pause, transition time will be passed by Controller
to other clients from Master.

You have the option to enable failover ip addresses for four clients.
This is useful if you want a backup line to the clients in case someone trips over one
of your lan cables or Wifi goes down, but they won't get used if connection checking is disabled.
 
Launch Controller and load the same composition.avc.
Now you see the open decks on the right.
Press the Reset Button to get in sync, 
all playing clips will be closed, 
and the first deck, will be seleted.
On the left side you see the selected deck clips.
You can launch them individually by clicking on the
small rectangle, or use enter button to launch next scene;
Backspace takes you one step back.
"X" does a blackout, without triggering a scene.
The red Reset Deck takes you to the beginning of the deck,with blackout;
You can see the next scene above the launch button.
if you reach the end of the deck, trigger the last scene,
the next scene will be a blackout, trigger, then EndOFDeck appears.

scene list will follow the active scene, but you can scroll if you want.

Noticed, the Slider global fade time?
Click / drag it anywhere to set transition time from 0 to 10 sec.
On the left end, the grey button sets to zero, right end button to 10 sec.
With your keyboard, you can quickly set time with the number keys (0-9);
With LEFT/RIGHT arrow keys you can increment/decrement 
transition time, in 0.1s steps;
The changes are transmitted immediately to resolume.
Edit config.xml to change values for the transition time keys if you really need to.

By default you are controlling localhost on port 7000.

If you edited the composition in Resolume, save it, 
click Reload in Controller to re-read the composition file.
You will see it reload on current deck without triggering anything.

Buttons react on mouseclick down, and keydown, 
buttons don't trigger again if key is held down, so no accidental retrigger.
(Except UP/DOWN arrows)

You can view this readme by clicking the "i" button, 
keyboard keys still work to control!
Hit ESC or click close to close;

Controller should work over the internet if you set up port forwarding correctly.

OSC remote feature is for using a phone or tablet or other to send the basic commands
to Controller.
Password for OSC remote, will only be used if osc remote IP ="0.0.0.0" in config file.
Default password is the first 6 letters of your machine ID.
To assign the IP address of your phone to remote controlling, send a "/login/YourPassword"
message to Controller.
Password is shown in the program window title.
You will see a short message appearing when remote has logged in with its IP address.

As of v1.56  transition time relaying can enabled/disabled via config.
This function allows the user to pass transition time changes made in the Master Resolume
to all layers, and to all clients.
If the user moves a transition time fader, Controller listens only to it for 2 seconds then, 
any transition time fader can be moved.
During that 2 seconds other layers fader will have no effect on the others, and will not be 
relayed.
Same goes for sending transition time from Controller, the wait time is 5 seconds.

You can enable Force-Finish transition to have transitions finished while running before
launching the next(prev) Cue.
This is accomplished by sending a transitiontime=0 to the clients to have them finish, 
then sending the previously used transition time.
This help you overcome Resolume default behavior which is not starting a second transition 
while a transition is running.
When enabled you can make a fast run thru your Cues.

Some more preferences settings:

Clicker Use enabled - enables next/prev actions on pageDown/pageUp(defaults) buttons, 
presentation clicker buttons can be reassigned in preferences.
The application can be allowed to receive Clicker buttons (and its assigned keys) hopefully if app is in background too.
In this case be sure to not assign the clicker Key vales, for example PageUp to any function in your foreground app (Resolume).
Background Clicking is not guaranteed to work Ever, don't buy this software because of this feature.

Scroll Control Enabled - forces resolume window scrolling by selecting layer1/clip in triggered column.

Transport Control Enabled - allows passing of play/pause to clients.

Automation Follows Cursor - when automation is running, and would launch the next scene, the scene that 
will be launched will be the next after the scene which runs automation, if disabled, the next launched 
scene is the one under the cursor.

Connection Check interval - the value in seconds to send a ping to Resolume and wait for the ping to get back.
You can set it to 0 to disable.
This feature is good for checking your network connection to Resolume.
If a lot of OSC data is sent from Resolume, for example when you have a lot of constantly changing effect 
parameters, and clips playing, it can happen that the ping message gets queued longer than the waiting time, 
and you get a "No connection to client" message displayed.
in this case you can set the interval higher, or if you are sure that your settings are correct, and you are running
Resolume on the same machine as Controller you can set the interval to 0 to disable this function.
Remember failover client IPs? they won't get used if connection checking is disabled.


Pure Relay mode covers almost all UI functions, exceptions are by default the ones that make resolume slave crash,
or behave not expected.
Some of these include:
	activeclip/width and height,
	activeclip/audio/position,
	layer disconnect, etc.
others may not work as expected too.
You can set your own white and blacklist for OSC messages, 
just place them into whitelist.txt and blacklist.txt into the config directory, ore rule one line.
If these files are empty the default filter gets cleared.

CLipLogger function, is supposed to create a tabbed text file with the clip names, that are launched in Resolume.
It's useful for shows where you need to create a playlist to calculate royalty fees.
You can find the start date/time, and played duration, together with the clip’s name and path if available.
The text files are stored in "Documents/Controller ClipLogs”.

LiveMode (works with Resolume 6 only)
When enabled you don't need to load any composition. Controller gets the clip names directly from resolume.
Any changes you do in Resolume to Layer 1 clip names are updated within a few seconds in Controller.

Composition Collector is a feature to collect your media, audio, video effects and ffgl plugin .dll files. 
(Disabled for Resolume 6 compositions)
Together with your composition.avc these will be saved in a directory you specify.
This can be used to back-up to one directory, and then you can easily transfer your composition to another 
computer. Only things to do are, copy the plugins directory to resolume plugin directory - see the 
directory structure for correct locations. Then open up composition file and relocate files to 
the actual media directory.
See preferences to enable collecting effect and source files.
There is an option for same name files from different source directories. These duplicate name files 
can be copied, and get unique names if "Copy files with same names as unique"  is enabled.
If disabled, the files with same file names will be copied only once.
If you added media to a collected composition, and want to collect the new media you can uncheck this option,
so the old files will not be copied again, just the newly added files will be.
A new option is to Convert file anmes to contain only ASCII character for the case you want to transport your 
collected files over various file systems.

Bugs may be present so always check your collected composition!

Regarding Automation...
You can make automation continous by adding autolaunch to every scene.
By this you are making basically a timeline.
You can add @ka@ command to skip over scenes while autolaunch, but you can play them leaving autolaunch running
to have a scene played if needed, but skipped if not.
Automation can be kept running when switching deck, so if deckSwitch has finished scene 1 in new deck
will be autolaunched.
There is a feature called automationAid, if enabled this measures the time and beats elapsed between scene launches and stores
the data in a file, so you can easily enter them in Resolume. Pushing F4 opens last file, F5 opens records folder.


Controller will work as Demo for 8 minutes on each startup, until you activate a registration key.
In Demo all features work.
After the 8 minutes you can keep using only Composition Collector.

Registration keys are created by hand after payment received. 
I live in GMT+1 timezone.
I will be creating your key as soon as possible, you will receive it via email to the 
address the payment was sent from.

Payments are not refundable after you received the registration key.
If you have any problems with key registration first, make sure you have admin rights.
If you still have problems, update to the latest version, and if that also doesn't help contact me.

That's all for now,
have fun!


You can contact me with any questions on palffyzoltanphoto@gmail.com.

To buy this software

visit: http://controller.palffyzoltan.hu/
