Figure53 / qcmd

QLab 3 Text Mode
http://figure53.com/qlab
MIT License
9 stars 2 forks source link

Qcmd

qcmd is intended to be a simple command line client for QLab utilizing QLab 3's new OSC interface. qcmd should be useable from any machine on the same local network as the QLab workspace you intend to work with.

This project is OS X only and has been tested against Ruby 1.8.7-p358 (OS X 10.8 default), Ruby 1.8.7 REE 2012.02, and Ruby 1.9.3-p327.

This project should be considered experimental. DO NOT RUN SHOWS WITH IT.

Installation

Before installing qcmd, you'll have to install the Command Line Tools for Xcode. They're free, but you'll need an Apple ID to download them.

Once you've done that, you can install qcmd to your machine by running the following command:

$ sudo gem install qcmd

That should do ya.

Starting the qcmd console.

Run the following command in a terminal window:

$ qcmd

From there, you can connect to a machine, connect to a workspace, and then send commands to cues and the workspace.

qcmd supports tab completion for commands in case you get stuck or are wondering what you can do from the console. Type the beginning of a command and hit tab to auto-complete the command, or hit it twice to see all possible completions.

Run qcmd with the -v option to get full debugging output. Use the main project repository (https://github.com/Figure53/qcmd) to report any issues.

An example session might look like this:

$ qcmd
                         .::::    .::                .::
                       .::    .:: .::                .::
                     .::       .::.::         .::    .::
                     .::       .::.::       .::  .:: .:: .::
                     .::       .::.::      .::   .:: .::   .::
                       .:: .: .:: .::      .::   .:: .::   .::
                         .:: ::   .::::::::  .:: .:::.:: .::
                              .:

                   qcmd 0.1.9 (c) 2012 Figure 53, Baltimore, MD.

Found 2 QLab machines

1. my-mac-laptop
2. f53imac

Type `connect "MACHINE NAME"` or `connect IP_ADDRESS` to connect to a machine

13:40
> connect my-mac-laptop
Connecting to machine: my-mac-laptop
Connected to machine "my-mac-laptop"
Connecting to workspace: Untitled Workspace 1
Connected to "Untitled Workspace 1"
Loaded 3 cues
13:41 [my-mac-laptop] [Untitled Workspace 1]
> cues

------------------------------- Cues: Main Cue List -------------------------------

   Number      Id           Name        Type

        1       1            YOP       Audio
        2       2     Not Armory       Audio
        3       3           BUTT       Audio

13:41 [my-mac-laptop] [Untitled Workspace 1]
> cue 3 name "Fix this name"
ok
13:41 [my-mac-laptop] [Untitled Workspace 1] [3 Fix this name]
> start
ok
13:41 [my-mac-laptop] [Untitled Workspace 1] [3 Fix this name]
> ..
13:41 [my-mac-laptop] [Untitled Workspace 1]
> hardStop
ok
13:41 [my-mac-laptop] [Untitled Workspace 1]
> copy-name 3 2
ok
13:41 [my-mac-laptop] [Untitled Workspace 1] [2 Fix this name]
> cues

------------------------------- Cues: Main Cue List -------------------------------

   Number      Id              Name     Type

        1       1               YOP    Audio
        2       2     Fix this name    Audio
        3       3     Fix this name    Audio

13:41 [my-mac-laptop] [Untitled Workspace 1] [2 Fix this name]
> alias smiley (cue $1 name ":) :) :) :) :) :)")
Added alias for "smiley": (cue $1 name ":) :) :) :) :) :)")
13:41 [my-mac-laptop] [Untitled Workspace 1] [2 Fix this name]
> smiley 2
ok
13:41 [my-mac-laptop] [Untitled Workspace 1] [2 :) :) :) :) :) :)]
> cues

------------------------------- Cues: Main Cue List -------------------------------

   Number      Id                  Name     Type

        1       1                   YOP    Audio
        2       2     :) :) :) :) :) :)    Audio
        3       3         Fix this name    Audio

13:41 [my-mac-laptop] [Untitled Workspace 1] [2 :) :) :) :) :) :)]
> exit
exiting...

If you already know the machine you want to connect to, you can use the -m option to connect immediately from the command line:

$ qcmd -m "my mac laptop"
Connecting to workspace: Untitled Workspace 1
Connected to "Untitled Workspace 1"
Loaded 1 cue
10:15 [my mac laptop] [Untitled Workspace 1]
>

If there's only one workspace available, qcmd will connect to the given machine and then try to automatically connect to that workspace. If there's more than one workspace, you can list it on the command line as well to connect immediately:

$ qcmd -m "my mac laptop" -w "very special cues.cues"
10:36 [my mac laptop] [very special cues.cues]
>

Finally, if all you want qcmd to do is run a single command and exit, you can use the -c option from the command line along with the -m and -w to make sure qcmd knows where to send the message:

$ qcmd -m "my mac laptop" -w "very special cues.cues" -c "cue 1 start"
ok

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request