1 |
<html> |
2 |
<head> |
3 |
<meta name="author" content="Christian Schoenebeck"> |
4 |
<title>LSCP Shell</title> |
5 |
<meta name="description" content="The LinuxSampler Control Protocol Shell allows you to control the sampler from the command line."> |
6 |
<link rel="stylesheet" href="http://doc.linuxsampler.org/css/preview.css"> |
7 |
<script type="text/javascript" src="http://doc.linuxsampler.org/js/preview.js"></script> |
8 |
</head> |
9 |
<body> |
10 |
<p> |
11 |
The command line application <i caption="LinuxSampler Control Protocol">lscp</i> |
12 |
is a text based shell for controlling the sampler entirely from the |
13 |
command line, providing colored output, type completion, help text while |
14 |
typing LSCP commands and other convenient features for terminal |
15 |
enthusiasts who want to use the sampler without any |
16 |
<i caption="Graphical User Interface">GUI</i> frontend application. |
17 |
</p> |
18 |
<img src="lscp_shell.png" caption="LSCP Shell"> |
19 |
|
20 |
<h3>Visual Feedback</h3> |
21 |
<p> |
22 |
As you can see on the screen shot above, the LSCP shell displays all |
23 |
possibilities to complete the current command in real-time while you are |
24 |
typing. In contrast to other shells you don't need to |
25 |
hit a special key over and over for that. These hints are always |
26 |
automatically displayed right next to your text cursor (in yellow color). |
27 |
Also the color of your current command line changes while you are typing: |
28 |
<ol> |
29 |
<li><b>White:</b> |
30 |
As long as the current command line is incomplete, it will be |
31 |
displayed in white color. |
32 |
</li> |
33 |
<li><span style="color:red;"><b>Red:</b></span> |
34 |
You accidently hit the wrong key? The shell will automatically mark |
35 |
mistyped characters in red color, that is only the part of your |
36 |
command line which is wrong. So you immediately see that your command |
37 |
line is wrong before even hitting the return key and you also see |
38 |
which characters you have to delete with backspace to correct the |
39 |
current command line. |
40 |
</li> |
41 |
<li><span style="color:green;"><b>Green:</b></span> |
42 |
As soon as your current command line is complete and correct, the |
43 |
line will change to green color, so you immediately see that you may |
44 |
now trigger the return key. |
45 |
</li> |
46 |
</ol> |
47 |
There is even more: as soon as the shell detects which LSCP command you |
48 |
are going to fire, which may be long before you actually complete the |
49 |
current command line, the shell will automatically display a detailed |
50 |
description for that LSCP command, taken from the LSCP specification |
51 |
document. These text sections are automatically grabbed from the LSCP |
52 |
specification document at compile time and built into the shell. So there |
53 |
is no special document directory structure or even an Internet connection |
54 |
required for that feature. |
55 |
</p> |
56 |
<p> |
57 |
So these visual feedback features reduce the amount of times you have to |
58 |
grab for the LSCP specification documents, and provide a huge speed up of |
59 |
your LSCP typing tasks. |
60 |
</p> |
61 |
|
62 |
<h3>Type Completion</h3> |
63 |
<p> |
64 |
As with other shells, you may hit the tab key to auto complete your current |
65 |
command line. However in contrast to other shells this feature is not |
66 |
limited to a small set of keywords, this feature is directly combined with |
67 |
the real LSCP parser module, and thus it completes your command line as |
68 |
much as possible, which may include a sequence of several keywords, and |
69 |
may also stop at a certain character within a keyword. In other words: it |
70 |
auto completes as much characters until a position is reached where a |
71 |
human decision is required. |
72 |
</p> |
73 |
|
74 |
<h3>Automatic Correction of trivial Errors</h3> |
75 |
<p> |
76 |
There are days when things must go fast, when you may even not have the |
77 |
time to care about the visual feedback features described above. On such |
78 |
days it happens that you fire commands with the shell that may have typos |
79 |
and other mistakes. The LSCP shell will help you and automatically |
80 |
corrects trivial mistakes for you. So after you fired a command with the |
81 |
return key, the command line will be checked, and if it is incorrect, the |
82 |
shell will check for your command line for trivial mistakes, automatically |
83 |
correct those errors for you, display the updated, corrected command line |
84 |
in the shell and execute it with the sampler. Or do you want to get |
85 |
bothered for things like upper/lower case or space/underscore confusions? |
86 |
</p> |
87 |
|
88 |
<h3>Always up to date</h3> |
89 |
<p> |
90 |
You may think that those mentioned automation features may only work for |
91 |
a certain part of the LSCP protocol, or that they may lag behind new LSCP |
92 |
extensions or changes. Fortunately this never the case! As with modern |
93 |
development environments, the LSCP shell is directly connected with the |
94 |
sampler's real LSCP parser module. That means whenever there are any |
95 |
changes to either the LSCP protocol (i.e. keywords and grammar rules) or |
96 |
to the LSCP specification document, they will automatically also be |
97 |
available to the LSCP shell. So it does not require any further |
98 |
development effort to maintain the shell and keep track of the latest |
99 |
LSCP features. And since the LSCP shell is designed as thin client, you |
100 |
may even use an old version of the LSCP shell on your local machine and |
101 |
use it to control a remote computer with a more recent LinuxSampler (and |
102 |
LSCP) version, without missing any of the latest LSCP changes with the |
103 |
shell's automation features. |
104 |
</p> |
105 |
|
106 |
</body> |
107 |
</html> |