1 |
schoenebeck |
1392 |
<chapter id="live_editing"><title>Live Editing</title> |
2 |
|
|
<section id="about"><title>Only trust what you hear...</title> |
3 |
|
|
<para> |
4 |
|
|
So far we've been using <application>gigedit</application> as stand-alone |
5 |
|
|
application. The main drawback of this approach is that you cannot |
6 |
|
|
immediately hear the effect of your modifications unless you explicitly |
7 |
|
|
(re)load the respective instrument into a sampler, which is unconvenient |
8 |
|
|
and wastes a lot of time (especially with big instruments). Fortunately |
9 |
|
|
gigedit and <application>LinuxSampler</application> are friends and |
10 |
|
|
politely share the same instrument(s) at the same time if you tell them to |
11 |
|
|
do so. |
12 |
|
|
</para> |
13 |
|
|
<para> |
14 |
|
|
To do this, you first have to load the respective instrument(s) into |
15 |
|
|
<application>LinuxSampler</application>, i.e. by using a frontend |
16 |
|
|
application like <application>JSampler</application> or |
17 |
schoenebeck |
1580 |
<application>QSampler</application>. Here's how you do it with |
18 |
|
|
<application>QSampler</application>: Select the channel strip of the |
19 |
|
|
instrument you want to edit and click on the "Edit" button on the same |
20 |
|
|
channel strip, like shown in <xref linkend="shot_qsampler_edit" />. |
21 |
schoenebeck |
1392 |
|
22 |
|
|
Alternatively you can also select this function from the menu ( |
23 |
|
|
<menuchoice> |
24 |
|
|
<guimenu>"Edit"</guimenu> |
25 |
|
|
<guimenuitem>"Edit Channel..."</guimenuitem> |
26 |
|
|
</menuchoice> ). In any case |
27 |
|
|
<application>gigedit</application> should popup on the screen in less |
28 |
|
|
than 5 seconds. This time you can see <application>gigedit</application> |
29 |
|
|
like being "attached" to <application>LinuxSampler</application>. |
30 |
|
|
|
31 |
schoenebeck |
1580 |
<figure id="shot_qsampler_edit"><title>Selecting an instrument to edit from QSampler</title> |
32 |
|
|
<screenshot><mediaobject><imageobject> |
33 |
|
|
<imagedata fileref="shot_qsampler_edit.png" format="PNG"/> |
34 |
|
|
</imageobject></mediaobject></screenshot> |
35 |
|
|
</figure> |
36 |
|
|
|
37 |
|
|
In <application>JSampler</application> you won't see an "Edit" button |
38 |
|
|
by default. Instead you have to move the mouse pointer over the channel |
39 |
|
|
strip which contains the instrument you want to edit. The channel strip |
40 |
|
|
display will change immediately and a round, small "Edit" button |
41 |
|
|
appears like shown in <xref linkend="shot_jsampler_edit" />. Click on |
42 |
|
|
that button and gigedit will appear like with |
43 |
|
|
<application>QSampler</application>, so it's pretty much the same thing. |
44 |
|
|
|
45 |
|
|
<figure id="shot_jsampler_edit"><title>Selecting an instrument to edit from JSampler "Fantasia" 0.8a</title> |
46 |
|
|
<screenshot><mediaobject><imageobject> |
47 |
|
|
<imagedata fileref="shot_jsampler_edit.png" format="PNG"/> |
48 |
|
|
</imageobject></mediaobject></screenshot> |
49 |
|
|
</figure> |
50 |
|
|
|
51 |
schoenebeck |
1392 |
<figure id="shot_gigedit_hosted"><title>Gigedit running "attached" to LinuxSampler</title> |
52 |
|
|
<screenshot><mediaobject><imageobject> |
53 |
|
|
<imagedata fileref="shot_gigedit_hosted.png" format="PNG"/> |
54 |
|
|
</imageobject></mediaobject></screenshot> |
55 |
|
|
</figure> |
56 |
|
|
|
57 |
|
|
If nothing appears on the screen or in case you get an error when clicking |
58 |
|
|
on the "Edit" button, refer to <xref linkend="live_trouble" />. |
59 |
|
|
</para> |
60 |
|
|
<para> |
61 |
|
|
All modifications you do on the selected instrument with |
62 |
|
|
<application>gigedit</application> will immediately be audible when you |
63 |
|
|
play notes. |
64 |
|
|
When you close <application>gigedit</application> you'll notice that it |
65 |
|
|
won't ask you to save the instrument, which it would usually do when you |
66 |
|
|
run <application>gigedit</application> as stand-alone application. This is |
67 |
|
|
because the modifications are not lost when you close it, at least not |
68 |
|
|
unless you kill the sampler as well. So when you click again on "Edit" |
69 |
|
|
you'll see that all the modifications you made are still there. Also note |
70 |
|
|
when selecting "New" or "Open" from the menu to create a completely new |
71 |
|
|
instrument or open another one from a file, |
72 |
|
|
<application>gigedit</application> will be "detached" from the sampler, |
73 |
|
|
that is the other instrument will not be audible with the sampler. This is |
74 |
|
|
currently (2007-10-07) a minor limitation of the sampler and |
75 |
|
|
<application>gigedit</application>. So if you want to create a completely |
76 |
|
|
new instrument from scratch you first have to create that instrument with |
77 |
|
|
<application>gigedit</application>, save it to a file and then load it into |
78 |
|
|
the sampler. After that you can continue like described in this chapter and |
79 |
|
|
edit the new instrument "live" by clicking on the respective "Edit" button |
80 |
|
|
in <application>QSampler</application>. |
81 |
|
|
</para> |
82 |
|
|
</section> |
83 |
|
|
|
84 |
|
|
<section id="live_trouble"><title>Trouble with live-editing</title> |
85 |
|
|
<para> |
86 |
|
|
<application>LinuxSampler</application> and |
87 |
|
|
<application>gigedit</application> need to be compiled properly to be able |
88 |
|
|
to use the described "live editing" feature between those two applications. |
89 |
|
|
So here is a short technical explanation how the interaction between those |
90 |
|
|
two applications work: <application>LinuxSampler</application> per se |
91 |
|
|
doesn't actually know anything that an application like |
92 |
|
|
<application>gigedit</application> exists in this world. However the |
93 |
|
|
sampler provides a plugin system to extend it for this functionality. When |
94 |
|
|
you compile the sampler you define a directory where the sampler shall look |
95 |
|
|
for plugin DLLs to load on startup. So first check if that directory |
96 |
|
|
actually exists or if the sampler was not compiled with the correct / |
97 |
|
|
desired plugin directory. When you start the sampler from the console |
98 |
|
|
simply by typing the command <command>linuxsampler</command> and you see |
99 |
|
|
something like this: |
100 |
|
|
<screen> |
101 |
|
|
<prompt>bob@mybox ~ $</prompt> <command>linuxsampler</command> |
102 |
|
|
LinuxSampler 0.4.0.7cvs |
103 |
|
|
Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck |
104 |
|
|
Copyright (C) 2005-2007 Christian Schoenebeck |
105 |
|
|
Detected features: MMX SSE |
106 |
|
|
Creating Sampler...OK |
107 |
|
|
Registered sampler engines: 'GIG' |
108 |
|
|
Registered MIDI input drivers: ALSA |
109 |
|
|
Registered audio output drivers: ALSA,ARTS,JACK |
110 |
|
|
Loading instrument editor plugins...<errortext>Could not open instrument editor plugins directory (/usr/local/lib/linuxsampler/plugins): No such file or directory</errortext> |
111 |
|
|
Registered instrument editors: |
112 |
|
|
Starting LSCP network server (0.0.0.0:8888)...OK |
113 |
|
|
LinuxSampler initialization completed. :-) |
114 |
|
|
</screen> |
115 |
|
|
Then there's definitely something wrong. :) So either create the mentioned |
116 |
|
|
directory (in this case "/usr/local/lib/linuxsampler/plugins") manually or |
117 |
|
|
recompile <application>LinuxSampler</application> in case you want it to use |
118 |
|
|
another directory as plugins directory. Assuming you want it to use the directory "/usr/lib/linuxsampler/plugins" instead you could compile the sampler i.e. this way: |
119 |
|
|
<screen> |
120 |
|
|
<prompt>bob@mybox ~/cvs/linuxsampler $</prompt> <command>./configure --enable-plugin-dir=/usr/lib/linuxsampler/plugins && make</command> |
121 |
|
|
</screen> |
122 |
|
|
probably in conjunction with some other configure script parameters and some |
123 |
|
|
nice CXXFLAGS to optimize the sampler for your machine, but this is out of |
124 |
|
|
the scope of this document. After the compilation completed, you would |
125 |
|
|
install the sampler as user root as usual: |
126 |
|
|
<screen> |
127 |
|
|
<prompt>bob@mybox ~/cvs/linuxsampler $</prompt> <command>su</command> |
128 |
|
|
Password: |
129 |
|
|
<prompt>mybox linuxsampler #</prompt> <command>make install</command> |
130 |
|
|
</screen> |
131 |
|
|
Again make sure that your chosen plugin directory exists, if not create it |
132 |
|
|
and when running <application>LinuxSampler</application> now again, the |
133 |
|
|
error message on the console ("Could not open instrument editor plugins |
134 |
|
|
directory") should be gone. |
135 |
|
|
</para> |
136 |
|
|
<para> |
137 |
|
|
Now you must recompile <application>gigedit</application>, because it has |
138 |
|
|
to compile the appropriate plugin and has to place that plugin DLL into the |
139 |
|
|
samplers plugins directory. It should look like this: |
140 |
|
|
<screen> |
141 |
|
|
<prompt>bob@mybox ~/cvs/gigedit $</prompt> <command>./configure</command> |
142 |
|
|
checking build system type... i686-pc-linux-gnu |
143 |
|
|
checking host system type... i686-pc-linux-gnu |
144 |
|
|
checking for gcc... gcc |
145 |
|
|
checking for C compiler default output file name... a.out |
146 |
|
|
checking whether the C compiler works... yes |
147 |
|
|
checking whether we are cross compiling... no |
148 |
|
|
... |
149 |
|
|
checking for gmsgfmt... /usr/bin/gmsgfmt |
150 |
|
|
checking for xgettext... /usr/bin/xgettext |
151 |
|
|
checking for pkg-config... /usr/bin/pkg-config |
152 |
|
|
checking pkg-config is at least version 0.9.0... yes |
153 |
|
|
checking for GTKMM... yes |
154 |
|
|
checking for GIG... yes |
155 |
|
|
checking for SNDFILE... yes |
156 |
|
|
checking for SF_INSTRUMENT.loops... yes |
157 |
|
|
<errortext>checking for LINUXSAMPLER... yes |
158 |
|
|
Found linuxsampler 0.4.0.5cvs |
159 |
|
|
Retrieving LinuxSampler's plugin dir... /usr/lib/linuxsampler/plugins |
160 |
|
|
Relative plugin dir: ${libdir}/linuxsampler/plugins</errortext> |
161 |
|
|
configure: creating ./config.status |
162 |
|
|
config.status: creating Makefile |
163 |
|
|
config.status: creating src/Makefile |
164 |
|
|
config.status: creating src/gigedit/Makefile |
165 |
|
|
config.status: creating src/plugin/Makefile |
166 |
|
|
config.status: creating po/Makefile.in |
167 |
|
|
config.status: creating debian/Makefile |
168 |
|
|
config.status: creating doc/Makefile |
169 |
|
|
config.status: creating doc/quickstart/Makefile |
170 |
|
|
config.status: creating config.h |
171 |
|
|
config.status: config.h is unchanged |
172 |
|
|
config.status: executing depfiles commands |
173 |
|
|
config.status: executing intltool commands |
174 |
|
|
config.status: executing default-1 commands |
175 |
|
|
config.status: executing po/stamp-it commands |
176 |
|
|
<prompt>bob@mybox ~/cvs/gigedit $</prompt> <command>make</command> |
177 |
|
|
</screen> |
178 |
|
|
Make sure the higlighted section of the configure script output looks |
179 |
|
|
similar like above. After compilation completed, you once again install |
180 |
|
|
with the common procedure: |
181 |
|
|
<screen> |
182 |
|
|
<prompt>bob@mybox ~/cvs/gigedit $</prompt> <command>su</command> |
183 |
|
|
Password: |
184 |
|
|
<prompt>mybox gigedit #</prompt> <command>make install</command> |
185 |
|
|
</screen> |
186 |
|
|
This will install the <application>gigedit</application> binary, as well |
187 |
|
|
as its plugin .so file into the directory "/usr/lib/linuxsampler/plugins" |
188 |
|
|
(or whatever you chose). And when you start the sampler now from the |
189 |
|
|
console, it should look like this: |
190 |
|
|
<screen> |
191 |
|
|
<prompt>bob@mybox ~ $</prompt> <command>linuxsampler</command> |
192 |
|
|
LinuxSampler 0.4.0.7cvs |
193 |
|
|
Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck |
194 |
|
|
Copyright (C) 2005-2007 Christian Schoenebeck |
195 |
|
|
Detected features: MMX SSE |
196 |
|
|
Creating Sampler...OK |
197 |
|
|
Registered sampler engines: 'GIG' |
198 |
|
|
Registered MIDI input drivers: ALSA |
199 |
|
|
Registered audio output drivers: ALSA,ARTS,JACK |
200 |
|
|
Loading instrument editor plugins...OK |
201 |
|
|
<errortext>Registered instrument editors: 'gigedit'</errortext> |
202 |
|
|
Starting LSCP network server (0.0.0.0:8888)...OK |
203 |
|
|
LinuxSampler initialization completed. :-) |
204 |
|
|
</screen> |
205 |
|
|
Now you're done with setup and the steps described in |
206 |
|
|
<xref linkend="about" /> should work for you. If not, you probably found a |
207 |
|
|
bug. Feel free to contact us via our mailing list or open a bug report on |
208 |
|
|
our website. |
209 |
|
|
<note>If you just used precompiled binary packages of |
210 |
|
|
<application>LinuxSampler</application> and |
211 |
|
|
<application>gigedit</application>, i.e. from the Linux distribution of |
212 |
|
|
your choice, you shouldn't have to recompile them by yourself. Either the |
213 |
|
|
versions of <application>LinuxSampler</application> and / or |
214 |
|
|
<application>gigedit</application> are too old or they were simply not |
215 |
|
|
compiled / packaged correctly. In both cases, please report it to the |
216 |
|
|
respective package maintainer of your distribution!</note> |
217 |
|
|
</para> |
218 |
|
|
</section> |
219 |
|
|
</chapter> |